Wireless Motion Sensor

SalmonPost1Image1

 

The idea for the Wireless Motion Sensor projects was to display an alert on the A3BU controller when a distant motion sensor was tripped. In order to achieve this, we used Xbee wireless modules to communicate between two A3BU controllers. The first controller would simply detect when the motion sensor was being tripped. The second A3BU controller would display an alert message on its LCD when the first controller detected movement. There were four distinct parts to this project. The first was to get an A3BU to communicate with the motion sensor. The second was to set up the Xbee modules to allow communication between the two A3BUs. The third was to use the communication from the receiving Xbee in order to make the second A3BU display an alert message. Then the last part was to create a couple of mobile power sources for the two A3BU controllers.

Binary Adder

MustardPost1Image1

 

This project is a calculator made with two series of LEDs (a yellow series representing input, and a red series representing output); a blue LED for feedback; a potentiometer, used for input; and the A3BU. Interrupts receive input from the pot, and are also tied to a pushbutton switch on the A3BU; the pushbutton is utilized to ‘advance’ the program logic to subsequent operations. It’s a fine example of a project where there’s some hardware, but most of the focus is on software. This addition-only calculator has the user turn a knob to cycle through a series of integers in binary (1-7 in decimal). When the desired number is reached, a push-button is pressed, the A3BU stores the current addend, and the potentiometer knob is again rotated. Once the second addend is reached, the push-button is again pressed, the A3BU sums the two addends, and then outputs the generated value to the red row of LEDs. When the push-button is pressed a third time, the values are cleared from memory, and the program is ready to start over. It’s important for the program to ‘know where it is’ within its flow of execution; otherwise, it executes operations out-of-sequence, leading to unexpected behavior. To this end, a series of flags are used. These flags prevent the program from advancing to its next state until the user indicates (by pressing the push-button) that he or she is ready to advance.