This is an example program that actually allows the car to race using the FRDM-TFC library!
Fork of TFC-RACING-DEMO by
You are viewing an older revision! See the latest version
Homepage
Overview¶
This is an example program that uses the FRDM-TFC library to actually permit a car using the FDRM-TFC shield + FRDM-KL25Z to race around a center line track.
Exercises designed for Mentoring Matters Car Summer Camp for Summer 2014 at Freescale, Inc. in Austin, Texas
Car Hookup¶
Motors
- Code written assuming left motor hooked to B1(red)/B2(black) and right motor hooked to A1(red)/A2(black).
Battery
- Be sure to hook positive (red) to 'Vbat' and negative (black) to 'Gnd'
Steering Servo
- Servo must be hooked up with black wire innermost (away from LEDs).
- Also be sure to mount servo on chassis with wire coming out the right side of the car.
Camera
- Camera must be hooked up with black wire towards LEDs on the shield board.
- Be sure to mount camera on tower with connector down towards the bottom.
Potentiometers (Pots)
- Pots by default should have arrows pointing toward battery/motor hookup (for demo mods default).
Car MODES¶
5 MODES OR EXERCISES THAT WILL ALIGN WITH DIP SWITCH SETTINGS IN BINARY FASHION e.g. Mode 1 = 001 = switch 1 is on, switch 2 is off, switch 3 is off
Modes:
- 0 = 000 = Garage Mode, button light test to see if car alive!! PUSHBUTTON A - Light LEDs 0 and 1 PUSHBUTTON B - Light LEDs 2 and 3 -switch 4 does nothing-
- 1 = 001 = Garage Mode, forward/reverse adjust, no auto steer, terminal output -switch 4 does nothing-
- 2 = 010 = Garage Mode, steering adjust, no auto steer, terminal output POT 1 - Controls Servo: CCW = turn left CW = turn right -switch 4 does nothing-
- 3 = 011 = Garage Mode, Camera test, some auto steer, terminal output switch 4: OFF = normal dec data ON = o-scope mode
- 4 = 100 = Track Mode, Auto Steer, safe settings switch 4 = terminal output on/off
- 5 = 101 = Track Mode, Auto Steer, fast settings switch 4 = terminal output on/off
- 6 = 110 = future upgrades
- 7 = 111 = future upgrades
Car Calibration¶
Serial Terminal
- Download your favorite Terminal application (I use TeraTerm. Set it for 115200 baud, 8bit, none, 1bit.
- But first you have to be sure that Windows mbed serial driver has been installed: Windows serial config.
Camera
- Be sure to focus the camera properly. See demo video.
- Be sure to prevent light noise on camera: Avoid Light Noise
- More camera info
Servo/Steering
- You will need to put the car into demo mode 1 and connect up a terminal to the serial port in order to get feedback on the values for your particular servo as hooked up. Then change
MAX_STEER_LEFT
andMAX_STEER_RIGHT
inSpices.cpp
with these values to tell the program how your servo is hooked up.
Speed Control
- This program does not have proper speed control but does modify the speed slightly based on recent error results from the camera. It also modifies the differential speed to each wheel to have better control around curves.
- While debugging your car you may want to lower the speed. See the function
SpeedControl
inSpices.cpp
. There you can change which speed method you'd like to use. Currently is using value of 1, which gets maximum speed fromTUNE_SPEED
constant. Reduce to 0.4 or 0.5 when debugging car around the car (mainly to minimize crash forces!).
Strange Gotchas¶
Glitchy Motors
- Apparently there is contention between TPM0_CH0 and OpenSDA micro that causes strange issues with Motors (PWM interference). This will cause glitches in motor activty when hooked up to USB only: Found contention
More Info¶
- The Freescale Cup main info page
- redxeth youtube channel with useful related videos\