Zelfrijdende auto
Workshop manual
Form groepjes!
- Form groepjes van 3-4
Haal de auto uit elkaar
- Verwijder alle schroeven en verwijder de buitenkant van de auto.
- Snijd alle kabels van de PCB af. Let op: Snijd zo dicht bij de PCB als mogelijk. Controleer of de power schakelaar nog werkt en uitgeschakeld staat.
Test de Arduino en de Arduino software
Installeer Arduino Software
Open je eerste Arduino sketch
Open de LED blink voorbeeld sketch: File > Examples >01.Basics > Blink.
Selecteer je board type en port
Selecteer de ingang die bij je Arduino board past.
Selecteer de "serial device" van he board via Tools | Serial Port menu. Om te weten welke port je moet gebruiken kun je de board ontkoppelen en het menu opnieuw openen; de ingang die zou moeten verschijnen is Arduino or Genuino board. Verbind je Arduino opnieuw en selecteer deze ingang.
Upload het programma
Nu click gewoon de "Upload" button. Wacht een aantal secondes. Je zou de RX en TX leds op het board zien blinken. Indien de upload successvol was zie he het bericht: "Done uploading." in de status bar.
Na een aantal secondes zou je de pin 13 (L) LED op het board moeten zien blinken (in oranje). Als dit het geval is: Gefeliciteerd! Je Arduino is klaar voor de volgende stappen!
Verbind de Motor Sriver
De Motor Driver of Arduino Motor Shield maakt het mogelijk om de motor richting en tempo met een Arduino te controleren.
- Belangrijk! verwijder de (groene) etikett gemarkeerd met PWR, naast de schroef terminal gemarkeerd met EXT_PWR
- Verbind het shield met de Arduino
- Verbind motor shield en Arduino met de auto: Let op dat motor, stuur en batterij kabels cables verbonden zijn met de juiste uitgangen van het shield.
Steering motor -> Shield M1 Driving motor -> Shield M4 Car battery wires -> Shield EXT_PWR
- Cover the bottom of the Arduino with a piece of tape to prevent a connection of arduino with the battery (short circuit)
- Put the AA batteries in the car
- Connect 9 v battery to arduino, then connect the battery to the motor shield
Motors test over serial connection
- Connect Arduino to your computer
- We've prepared the example code for this workshop that you can download from GitHub: sample code
- After downloading the zip file from Github open SDC_1_motor_test.ino
- In Arduino go to "Menu" > "Sketch" > "Include library" > "Manage libraries" > search for "Adafruit Motor shield V1 firmware" and add
- Test if the Motor Shield works correctly by opening the Serial Monitor (magnifying glass, right hand corner)
- Test if direction and steering works as expected
- Change the cables on the Motor Shield if necessary
Connect the line sensor
The line detection sensor module sends out short pulses of (invisible) infrared light and measures how much of that light comes back. It output the brightness/darkness as an analog voltage that the Arduino can use to steer the car.
- Take 3 cables, put it on the sensor, look carefully at the colours and connections (A0, GND, VCC). The motor shield has connections for the analog pins on the Arduino conveniently grouped with GND and 5V pins. We use these to connect our sensor to. A0 is the pin right next to the pin marked 9V.
- Connect to the Arduino/Motorshield to the sensor
Module -> Arduino - - - - - - - - - - - VCC -> 5V GND -> GND A0 -> A0
- Connect the line sensor analogue output to A0.
Module -> Arduino - - - - - - - - - - - GND -> GND VCC -> 5V
Sensor testing
- Test line sensor with: SDC_2_line_sensor_test.ino
- Follow instructions in the file to find out the lowest and the highest values to distinct the line from the floor.
Upload the car software
- Open and upload SDC_3_car_test.ino
- Adjust the values
- Upload the sofware to the Arduino
Enhance the software
- Test on the line and adjust values of speed or sensor if nessessary
Tips
- It can help to remove the V9 battery when you upload the program to the arduino
- Make sure your sensor is close to the ground
Ideas:
- Add ultrasonic sensor to avoid collisions
- Add sound
- The car now always steers either left or right. Can we add straight ahead?
- Try to make the steering proportional to the error in the line sensor
- Make the light sensor trainable. (Maybe add a button to switch between training / driving mode?)
Workshop
- Presentation
- Laptop + powersupply
- Presentation slides
- Electronics
- Arduinos + usb cables
- Motorshields (with pinheaders presoldered on the servo pins)
- 9V battery clips
- tcrt5000 module
- Ultrasonic sensors
- Protoyping cables
- Dupont cables F-F
- Consumables
- Toycars
- AA batteries
- 9V batteries
- Tools
- Soldering irons
- Tin
- Screwdrivers
- Wireclippers
- Other
- Rubber bands
- Colored tape
External links
- HC-SR04 ultrasonic sensor library. https://bitbucket.org/teckel12/arduino-new-ping/downloads
- L293D https://github.com/sudar/DCMotorBot
Used modules:
- https://www.hobbyelectronica.nl/product/l293d-motor-shield/
- https://opencircuit.nl/Product/10540/TCRT5000-Infrarood-lijn-detectie-module-met-instelbare-gevoeligheid
- https://opencircuit.nl/Product/10037/Ultrasonische-afstands-detectie-module
Stuff that might need explaining?
- Digital and analog / Inputs and outputs
- What is an h-bridge?