Monday, August 10, 2015

Log Aug 1,2,3


1. Added the circuit design file detailing the PCB layout and pouring data.
    
    Commits:

2. Modified the adafruit_pwm_servo library for personalized operation , however since the need to 
    move from arduino to pi, pi can support 9 transducers directly through its GPIO's but should there
    be a need to add more, then they can be controlled through adafruit_pwm_servo_driver which in 
    turn is controlled by I2C by pi.

   Commits:

3. Due to difficulties in acquirement of certain parts, added a few more tested alternatives to the 
    readme.
   
   Commits:

4. Added documentation to explain the working and the need for PLL and decade counter
    in the circuit .
   
   Commits:

Log July 28,29,30,31

1. Added the arduino file , Now since i mentioned the drawback was due to the max clocking 
    frequency of arduino's digital pins being 33khz which is not sufficient to switch the transistors
    fast enough , i migrated to using Pi with wiringpi, due to compatibility between arduino's wiring 
    and wiringpi, it can be used out of the box with pi with few minor alterations.
 
    Commits:

2. Added provision for custom frequency generation in arduino(wiringpi) code
    
    Commits:

3. Added the code for frequency to change in the simulation upon selecting a frequency to transmit 
    and also for selecting a particular carrier and modulating frequency based on a standard list of
    frequencies using java.reflections and hashmap.
    
    Commits:

4. Moved certain blocks specific to signal generation and 8051 present in arduino/wiringpi to 
    separate headers and c++ files to improve code re-usability and easy implementation .
  
    Commits:

5. Updated readme with parts required and their description 

    Commits: 

6. Added grid array implementation to Ultra_main.java and scroll bar to change elevation above the
    transducer plane.

    Commits:




Log July 27


1. Added documentation regarding calculation of the values for signal generation and working of the 
    module as a whole.

    Commits:

2. Updated frequency.h with the hexadecimal values to be sent through UART to 8051 from PI
     inorder to generate frequencies of the desired value,( the calculations of the hex values are detailed
     in the above commits ).
     
     Commits:

Monday, July 27, 2015

Log July 22,23-26



1. Fixed segmentation error in the assembly code by removing few redundant clear operations.               
    Commits:

2. Added 8 data bit , no parity, 1 stop bit UART protocol for communication between 8051 and
    arduino. Commits:

3. Added Spatial impulse response for quicker and more efficient field modelling ,few minor 
    bugs are yet to be resolved. This approach is more cost effective regarding the processor's
    resources because like anyother Linear time invariant system ,it aims at realizing the system's
    response for one set of impulse or input and depending on that anyother transducers's output
    or response will be a time shifted version of the former and hence can easily be obtained by
    time domain convolution with unit_step_function(t-t0) where t0 is the time delay between 
    switching on the 2nd transducer relative to the first for which the response is modeled. Therefore
    once the response is computed ,that thread can be suspended and the computed data can be easily
    modified to find the response for other neighboring transducers thereby easing complexity. 
    Commits:

Log July 19,20



1. Added Documentation to the assembly code explaining the operation and the conditions involved 
    in communicating with the 8051 to generate the carrier and modulated waves. Commits:

2. Added Support for Ultra_virtual class to select the frequency required to  be generated for the            
    carrier and the modulating waves and send the same to the COM port. Commits:

3. Updated Frequency.h to recognize the frequency data incoming to the arduino and since strcmp           
    didn't work , I added another header to mimic its operation called comp.h. Commits:

Saturday, July 18, 2015

Log 17,18 July

1. Finished constructing the circuit for the 8051 signal generator to produce signals for the carrier
    and modulated waves. Updated the PCB layout on my PCB web account
    (Please check the PCB layout tab and  not the schematic(Its messy)).

2. Updated Connection_details.txt for information regarding the pin connections of the PCB layout
    Commits:

3. Few minor code fixes regarding the abstract class Frequency in Ultra_main.java
    Commits:

Log 16 July

1. Coded the algorithm for 8051 to generate the two sine waves for carrier and modulating waves.
  

    Structure of Operation


    1. Instead of using standard oscillators such as wein bridge , colpitts etc , I decided to use an
        8051 for generating the two sine waves since it allows us to change their frequencies 
        programmatically  without going through the tedious process of changing the resistors and                   capacitors supposing         at later point some other transducer is used.
    2. If any other microcontroller in charge of switching the transducers on and off intends to
        communicate with the 8051 to set the carrier and modulating frequencies. To first enable
        serial communication the INT0 pin that is P3.2 pin of 8051 must be transitioned from high to               low and held at low          for atleast a period of 4*(Duration of 1 Machine Cycle) .
    3. Upon doing this the serial communication interrupt is enabled on the 8051 and the MC can
        converse with it using UART. But the signal generation occurs only after both the carrier and
        modulating wave frequencies have been updated to the 8051 even if supposing we want carrier
        to remain unchanged and change the modulating still both have to be updated. 
    4. After updating the serial communication is once again disabled since the signal generation
        algorithm multiplexes TH1 register which is also required for serial communication.

Commits :

2. Coded the headers to be included by any MC in-charge of controlling the transducers. They                 basically implement structures and define few default constants to set frequency and grid pattern

Commits:

3. Added abstract class Frequency and child classes Carrier and Modulated to Ultra_main.java for 
   easy configuration of the frequencies to be used and sent to the MC for signal generation.

Commits: