Designed and built a working circuit that used an IR diode coupled with a photo-transistor to monitor the food reservoir on a flower. Utilized a common-emitter configuration of a BJT amplifier to boost the signal from the sensors to the I/O card in a PC. Designed the PCB on the computer; chemically etched it, and then soldered all the components to it.
Wrote a software program in C to read the data from the I/O card. It scanned each port via direct memory addressing and used logical bit operators to determine the status of each flower. The changes of any bit were time-stamped, sorted and recorded in a log file. Design a special algorithm to sort the entries in real-time and withstand cases of multiple nested visits. The user interface was textual and displayed information such as: acceptable input characters, the status of each flower, and even the help file listings.
Designed a GUI using Visual Basic which also controlled electromagnetic feeders. Converted my previous program from C to VB to make it fully graphical. Added the sub-routines to trigger the feeder via a timer or by a visit from a bee. Also added the functionality to refill each feeder based on a probability dictated by the end user. All adjustable aspects of the hardware were easily accessible in an organized option menu. Displayed the status of each flower/feeder using color coded icons.
Developed the algorithm to prevent erroneous entries in the log file. Due to limitations in the hardware, the sensors indicated false readings. Since changes to the hardware were not permissible, the software was programmed to look for the erroneous condition and prevent it from being logged. Furthermore, added a feature to combine rapid repetitive visits of the same flower and be logged as one prolonged visit.
Wrote a program to collect data from USB RFID tag readers. Adapted an RFID card reader for the purpose of tracking the movement of bees. Constructed classes in Visual Basic to handle the operation of each RFID reader. Programmed each instance of the class to be created at run-time and to run independently from each other. Exploited multi-threading to maximize the performance of each reader. Integrated the 16 readers in a network and maintained their individual polling rate. Developed a GUI to incorporate all previously written features. Wrote a program to collect data from RFID tag and record it in a log file. Contact maintained with end users to make the software more user friendly and add in any changes and suggestion presented by the client
Redesigned a MS Excel macro to run faster and more efficiently. Developed algorithms in C to use raw data and generate probability distribution tables, calculate angle and distance ranks, sort and filter results, and make selections based on probability density charts. Added features to analyze simulation and print results to a log file.
Accomplishments include increased simulation speed by a factor of 3000. More efficient algorithms were developed for calculating angles. The results of the new code were that the number of file I/O instructions were reduced.