ECE 92 was a course held during Spring quarter of 2015. Students got into groups of 1-3 to make a project centered around an Arduino micro controller. The projects for that year were:
by Dylanger Gutierrez and Subhodeep Choudhury
The goal for this project was to develop a Thermoelectric heater and cooler controlled through a microprocessor. For this project an Arduino, a peltier plate, a 16x2 LCD display, a large heat sink, and a 12 volt 10 amp power supply was used.
The hard drive clock displays the current time that is read from a real time clock. The frequency-controlled LED display analysis the inputted music signal ad activates certain LED banks based on the frequencies detected.
MATERIALS & COSTS
Total Cost: ~ $113.51
OBSTACLES AND FUTURE IMPROVEMENTS
The most challenging part of this project was reversing the current in the peltier heater and cooler. In order to solve this problem an H-Bridge was constructed, but the circuit was unstable and specifically the high-low side driver shorted easily, and once shorted the driver would burn the MOSFETs running the bridge. The idea was revoked, and 2 darlington pair transistor controlled by a DIP switch was used to manually reverse current. For further improvements all manual control other than inputting temperature is removed, and there would be an option for computer integration.
The build consisted of several modules listed as follows:
This allowed the project to be split up amongst all members. The first module was the peltier mounted on top of the heat sink and 2 temp sensors were mounted on the top and the bottom of the peltier plate with thermal epoxy. The heat sink then had a fan on one side connected to the universal power supply through a voltage divider. The second module had the LCD and arduino connected with several digital IO pins. The last module was just the power supply with several output connections with varied voltages connected to the other modules.
by Girish Kowligi, Bragatheesh Sureshkumar, George Pina
The Bluetooth car is controlled by the Arduino microcontroller which interfaces with the motor driver. The microcontroller receives information from the Bluetooth module which is connected over serial to a computer. The car also features an ultrasonic distance sensor which is used to prevent the car from running into obstacles and stalling.
by Gauthier Dieppedalle, Brian Sandler
The data is returned by the device via HTTP in JSON format.
OBSTACLES AND SOLUTIONS
The Arduino WiFi-Shield is not compatible with the latest Arduino IDE (1.0.5). To transfer weather data over the Internet we had to download and run our code on a previous version of the Arduino software (1.0).
Threading in Arduino
The Arduino microcontroller does not natively support loop threading. We wanted to run multiple functions at the same time to have an exact timing of each sample of data. We tried downloading libraries made by Arduino’ s users but these didn’t work. In order to solve the problem, we wrote code that waits for the server to get data, to post info on the website.
The goal of this project was to develop a portable weather station that can be left unattended and remotely monitored. The data must be easily retrievable via HTTP requests, such that the user can do with it as he or she pleases. In our example we used the data to create a live-updating dashboard, but the software can also be written to fetch and store the data in a database for analysis at a further point in time.
FUTURE IMPROVEMENTSSome of the various improvements could include:
ACCURACY OF MEASUREMENTS
Pseudo-Binary Clock By Richard Wei
This project was inspired by similar binary clocks that can be seen online. I chose to make this particular project since it seems to be the most useful, interesting, and fun project that I’ve seen. The pseudo binary clock is powered by an Arduino Uno, with 13 digital output pins that each connect to an LED that represents a binary digit (1,2,4,8) and two buttons to adjust the hours and minutes respectively. The clock is not a true binary clock since it is still read in base 10, using a binary display to represent each
The main components of this project include LEDs, wire, resistors, buttons, and of course, the Arduino itself. The Arduino has 13 digital output pins leading to 200 Ω resistors and then LEDs, which are all joined to one grounded wire. The two buttons use analog pins to advance the Arduino’s internal time by an hour or a minute. One of the initial issues was how the Arduino should keep track of time. Initially, the goal was to make it advance time by one second based on the wall outlets, since those had an output of 60 Hz, but the time library for the Arduino IDE proved to be simpler.
There are many ways this clock can be improved; a shift register would have been a much more efficient usage of the pins, with an audio shield the clock could have had an alarm function as well, and of course, the exterior casing could be vastly improved in terms of both design and materials used.
3D LED Display
by Kevin Kha and Yang Ren
Tennis Racquet Hit Counter
By Marcellis Carr-Barfield, Aaron Chang
1. Housing for the 9V battery
2. LCD screen where the hit counter and time are printed
3. Wires connecting the Arduino to the accelerometer underneath the racquet grip.
4. The accelerometer connected to the base of the racquet head
The Tennis Racquet Hit Counter is a battery powered Arduino-based device that uses an accelerometer strapped to the handle of a tennis racquet, in conjunction with a separate LCD, to count the number of times the racquet has come into contact with a tennis ball. The device will print the total number of balls hit, along with the total number of minutes that the devices has been running to the LCD.
OBSTACLES AND FUTURE IMPROVEMENTS
There are many possibilities for future development that would improve the project beyond the obstacles we were able to overcome. Our vision for the future of this project are as follows:
PROGRAMMING AND DESIGN
The LCD and accelerometer are each connected to the Arduino’s 5V power supply. This is the optimum voltage for both the accelerometer and LCD. Both devices also take advantage of the Arduino’s i2c bus (analog ports 4 and 5 on the Arduino Uno) to minimize the amount of connections required per device.
In order to count the number of times that the racquet has hit a tennis ball, we programmed the Arduino to look for spikes and dips in the change of acceleration of the racquet head. This is because the collision with the tennis ball causes hundreds of oscillations in the racquet, and the resulting changes in acceleration correspond to the graph of a damped oscillator (see Graphs and Data). Once the change of acceleration spikes above and below a certain threshold within 25 hundredths of a second, a hit counter is incremented and printed to the LCD. There is then a delay of 75 hundredths of a second to allow for the amplitude of the oscillations to die down so that extra hits will not be detected.
GRAPHS AND DATA
Below are two graphs of the change of acceleration over time. The time between subsequent dots are four thousandths of a second, and the graphs display a ten second interval. Each impact of the racquet with a tennis ball produces extremely rapid, yet brief oscillations in the racquet. These are displayed below as the areas in the graphs that resemble the graphs of a damped oscillator. The graph on the right is a zoomed version of the graph on the left, to emphasize this more clearly. Measuring the amplitude of oscillation allows hits to be counted.