Thursday, August 13, 2015

Test - Result Aug 11



1. Amplifying of the resulting signal failed to meet its desired mark therefore resulting in haphazard
    interference pattern except for the principle beam at inclination 0 degrees from the perpendicular
    to the plane of the transducers where the beams converge in phase by default ,thereby giving rise
    to constructive interference. This point produced a very feeble quiver sensation when kept against
    the palm at separation of 1cm. The reason for absence of a strong pressure point is clearly due to
    the circuits inability to amplify the amplitude modulated wave. Therefore the transducers were fed
    a signal of peak-to-peak voltage 2.3 V instead of the required 20V to feel a strong pressure point

2. Although the CMOS containing the complimentary pair of NMOS and PMOS seemed tempting
    at first due to its relative ease of isolation of source and load ( a much required necessity for
    Raspberry pi and to prevent interference of improper impedance matching at load from affecting
    the signal generation at the source) due to its voltage controlled gate rather than BJT's current
    controlled base, however a quick look shows the gain of CMOS to be very small as compared to
    the gain of BJT which can very greatly be enhanced and made linear by bypassing the emitter
    resistance with a capacitor. This increases the switching time of the BJT significantly beyond that
    of CMOS which is again a much  needed necessity.

3. The test showed a perfect correlation regarding the switching of the transistors upon stimulus from
     PI.

4. Link to the video demonstrating the test
    https://youtu.be/f9x8eXbNcak

Monday, August 10, 2015

Log Aug 4,5


1. Added support for linux with few minor modifications to Ultra_main.java to incorporate support
    for linux.
   
    Commits:

2. Added documentation to 8051_signal_generation.asm completely explaining each block and their
    need and operation.
    
    Commits:

3. Changed licensing from GPL to Apache 2
    
    Commits:

4. Resolved few other errors and minor modifications.
   
    Commits:
    
5. Added steps to compile and run from commandline for Linux users, please note /root/Inter_Haptics
    is the path where Inter_Haptics has been cloned to , if this varies then depending on which 
    directory you have cloned the repo to then change accordingly.
   
    Commits:

6. Added the test image to demonstrate the propagation
   
    Commits:

7. Added method to automate the process of selecting either to implement linear or grid algorithm for
    the selected arrangement of transducers 

    Commits:


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: