When we learned the spring 2010 ESE350 final design project's theme was "games," we decided that building a RC car would be fun, interesting, and interactive. The baseline of our project to wirelessly control the steering and speed of a car with motion sensor controls. Motor actuation will be enabled through the use of the FireFly and HC12 microcontrollers.
~Control Scheme~
We would attach an sensor board with an accelerometer to the Firefly node and the sensor inputs would direct the servo motor and DC motor for steering and acceleration respectively. The user would be able to tilt the FireFly away and towards him to drive the car forward and in reverse. The angle at which the user tilts the FireFly (from normal) would be proportional to how fast the DC motor spins in either direction. In addition, the user can "steer" the car by tilting the FireFly to the left or right. The servo motor would rotate the front wheels in the appropriate direction, which would enable turning capabilities when coupled with the back wheel acceleration.
Like we mentioned above, our baseline goal is to control this response wirelessly. To accomplish this, we would use the FireFly's networking capabilities (likely over BMAC) to connect to another FireFly node inside the car, and transmit the accelerometer data over that link. Then we would use SPI to connect that node to the HC12 microcontroller also located inside the car, which would use the accelerometer data to generate the appropriate PWM signals to power the DC and servo motors that move and turn the car.
~Extensions~
Once our baseline goal of having a functional remote accelerometer controlled (RAC) car have been reached, we will incrementally make this prototype more developed and sophisticated with additional features.
We first hope to install a functional lighting system to the RAC car through the addition of blue and red LEDs to the headlight and back-light locations. The back-lights will turn on if the microcontroller senses the car is moving in reverse. Furthermore, if the ambient light is dim enough (measured with a photodiode), we would toggle both the headlights and taillights to turn on automatically.
Next, we hope to establish an anti-collision system to our RAC car. We would install PING sensors to the front and back of the car, which will detect objects directly in front of and behind the vehicle. With this capability, we can calculate the speed of the car by detecting the changing distances to a target and measuring the time it takes for the distances to change. We hope to constantly print this value on a LCD display, possible by wiring it to an Arduino if installing the LCD on the FireFly isn't feasible. By comparing both the car's speed and its proximity to the nearest obstacle, we can prevent collisions by deactivating the acceleration once thresholds for both factors have been exceeded.
An extension to this feature would be an auto-pilot capability, where the car would avoid all obstacles by driving around them (through a combined use of PING sensors and motor response). In addition, we could also/alternatively implement an automated wall hugging function through the addition of a side PING sensor.
We hope to have the prototype stage, with the remote control of motors working and progress on one of the ancillary stages by the preliminary demo.
Challenges we face are interleaving on the SPI bus to take traffic from the wireless link and also to send data to the HC12. If we were to use an LCD screen, we have to figure out where to connect it and how. We also have space constraints in using a toy car, along with motor issues such as weight and the need to supply enough current. Finally, we need to power all of the peripherals within the confined car space while keeping the outside appearance pristine.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment