Networking Cars Log
From ESE205 Wiki
Weekly Log for Networking Modules
By Curtis Hoffman and Deep Jyoti
TA: Andrew O'Sullivan
- 1 Week 1: 9/4/17 - 9/10/17
- 2 Week 2: 9/11/17 - 9/17/17
- 3 Week 3: 9/18/17 - 9/24/17
- 4 Week 4: 9/24/17 - 10/01/17
- 5 Week 5: 10/01/17 - 10/08/17
- 6 Week 6: 10/08/17 - 10/15/17
- 7 Week 7: 10/15/17 - 10/22/17
- 8 Week 8: 10/22/17 - 10/29/17
- 9 Week 9: 10/29/17 - 11/05/17
- 10 Week 10: 11/05/17 - 11/12/17
- 11 Week 11: 11/12/17 - 11/19/17
- 12 Week 11: 11/19/17 - 11/26/17
- 13 Week 11: 11/26/17 - 12/03/17
Week 1: 9/4/17 - 9/10/17
- Created wiki page and log.
- Changed project from building a quadcopter to focusing on creating an effective docking mechanism between two vehicles.
- Came up with some potential objectives and challenges.
Week 2: 9/11/17 - 9/17/17
- Researched controlling electromagnets with Arduinos, I2C communication protocols, creating an Arduino controlled battery charger, and bootlegging store bought remote controlled cars to be run using an Arduino. (Deep, 4 Hours)
- Contacted Prof. Zhang about using Pi Cars for this project. (Deep)
- Research latching methods and weatherproof methods for data transfer. (Curtis, 2 Hrs)
- Research methods for two vehicles to communicate relative location with each other. Also investigated existing implementations of this idea. (Curtis, 2 Hrs)
- Discussed ideas for designing the latch and whether or not to use actual motorized cars.
Week 3: 9/18/17 - 9/24/17
- Research Vehicle to Vehicle Communication (V2V), Serial Commuication Interface, Self-driving truck platooning. (Curtis, 3 Hrs)(Deep, 2 Hours)
- Met with Professor Zhang for an introduction of Pi Car. (Both, .5 Hrs)
- Research Pi Car and Rasberry Pi.
- Researched IR communication (Deep 3 Hours)
Week 4: 9/24/17 - 10/01/17
- Finalized Gantt Chart (Both 2 hour)
- Began working on budget (Curtis 2 hours)
Week 5: 10/01/17 - 10/08/17
- Completed Arduino and Rasberry Pi pre-reqs: Creating a simple circuit to light a LED for Arduino and accessing the web on the pi (Deep 15 mins)
- Created design for IR sensor placement on car (Deep 1 hour)
- Built simple circuit with ultrasonic sensor and push button to begin testing code (Deep 1 hour)
- Created detailed circuit schematic for two Arduinos with ultrasonic sensors communicating with each other and found to code online to operate them (Deep 1 hour)
- Submitted first items list for purchase (Both 1 hour)
- Uploaded Gantt chart
Week 6: 10/08/17 - 10/15/17
- Ordered IR receiver-transmitter kit and other parts (Curtis)
- Acquired signatures for Prof. Zhang's lab (Curtis)
Week 7: 10/15/17 - 10/22/17
- IR receiver-transmitter kit arrived
- Assembling the kit (Both 2 hours)
- Research Required Specs and Operational Recommendations (Curtis)
Week 8: 10/22/17 - 10/29/17
- Work on killswitch for Pi Car
- Test how Pi Car speed controller communicates data
- Began working on using the Arduino as an intermediary between the remote and the car. Essentially, the Arduino takes in the remote control data from the receiver, transforms it into data that can be accepted by the speed controller, and outputs that new signal. (Both 5 hours)
- Made plans for multiple "kill switches": 1. Stop the car when someone throttles the remote outside a range. 2. An additional IR sensor on board that stops the car when it is about 3 inches away from any obstacles in front (the car will be set to move very slowly and allow the car to back up). 3. Turning off the remote (The only true kill switch that shuts down the car). (Both 1 hour)
Week 9: 10/29/17 - 11/05/17
- Worked on the two tasks described above. Circuit for the interface is complete. Wrapping up the code for both direction and the motor signals. (Both 2 hour)
- Need to set up a mount for the Arduino and the breadboard and get batteries for the Arduino battery pack.
- Once that is done, set up the second "kill switch" with the IR sensor.
- After all the preliminaries are set, we can connect our IR sensor/transmitter on board and test it with a stationary IR led.
Week 10: 11/05/17 - 11/12/17
- Break Week
Week 11: 11/12/17 - 11/19/17
- Finished testing IR sensor/transmitter (Both 3 hours)
- Wrote code to send data from IR sensor to car (Curtis 3 hours)
- Began working on writing algorithm to automate car to find the right angle to return on the stationary base (Deep 2 hours)
- Will set up time to have TA 3d print mount for car by end of this week
- Will fully set up and begin testing car with everything mounted by the end of this week
Week 11: 11/19/17 - 11/26/17
- Wrote code to send signal from remote control to car via Arduino. To achieve this, needed to map the signal from remote control (using the Arduino's PWM) from values between roughly 1000 - 2000 to 70 - 100 for throttle and 1000 - 2000 to 0 (Absolute left signal) to 180 (Absolute right signal). (Curtis 2 hours)
- Wrote code for receiving and moving according to IR beacon signal. IR beacon has 4 directional pins (North [Forward], South, East, West) that is connected to 4 IR sensors. The direction that receives the largest IR signal returns 0 while all other pins return 1. So in the code, when toggled to 'homing mode', the Arduino instructs the car to move based on the pin returning 0. That is, if North is returning 0 the car moves forward, if South is returning 0 the car moves back, if East is returning 0 the car turns, etc. (Curtis 3 hours)
- Wrote finite state machine code for easier toggling between RC mode and Homing mode. (Curtis 3 hours)
- Worked on writing an S-curve algorithm for the car to properly steer to the stationary base. The expected problem was that each of the 4 directional sensors have a relatively wide angle to sense incoming IR signals (roughly 60 degrees). Thus, we worried the car, if approaching the base from a bad angle, might endlessly steering around the base without reaching it. To solve this issue, we thought of an algorithm for the car to find the direct angle of approach to the base. If we stored the time required for the car to go from, for example, East to North to West and then back from West to North to East at a constant angular speed, we could find the correct middle angle and get the car to the base after the car calibrates itself. (Deep 6 hours)
- Tested the base RC and Homing code on a fully mounted car. The car approached the base relatively consistently, therefore the S-curve algorithm approach was dropped. (Curtis 1 hour)
- Next week, we plan on doing all necessary soldering, finalizing the mount and doing final testing before the demonstration.
Week 11: 11/26/17 - 12/03/17
- Curtis had the idea of using IR obstacle sensors to use as line sensors and having an additional Tracking mode on the car. We put two IR obstacle sensors on the two sides or shoulders of the car and wrote code to enable this additional feature (Both 12 hours).
- Added a simple killswitch for the Homing mode. We will tape the floor around the stationary base with black tape and use the IR line sensors to kill power to the motor when the car has reached its destination. The car can be toggled back to RC mode to further driving. (Curtis 1 hour).
- Completed all necessary soldering, including soldering a protoboard to the Arduino, soldering the stationary base IR beacon, soldering wires to the car IR beacon, etc. (Deep 2 hours).
- Completed final mounting (Both 2 hours).
- Completed the final demonstration poster and had it printed (Both 4 hours).
- Did final testing of the car. The car successfully toggled from the three modes: RC, Homing and Tracking, and functioned accordingly (Both 3 hours).