Difference between revisions of "RC08Firmware"
Jump to navigation
Jump to search
(→Links) |
(→Tasks) |
||
Line 8: | Line 8: | ||
**[ ] Investigate actual preemptive schedulers | **[ ] Investigate actual preemptive schedulers | ||
*[ ] Add transmit channel from robot to base station | *[ ] Add transmit channel from robot to base station | ||
− | *[ ] Support base station development | + | *[X] Support base station development (Note: Jake has Phillips Butterfly) |
− | *[ ] Re-map printf to ARM and write RX buffer code as an interrupt | + | *[X] Re-map printf to ARM and write RX buffer code as an interrupt (Note: Not enough memory to use printf wrote my own) |
− | *[ ] Code and test AD function | + | *[X] Code and test AD function |
*[ ] Model motors in Simulink, build a PID controller and find good gains | *[ ] Model motors in Simulink, build a PID controller and find good gains | ||
**[ ] Add wheel slip to model and see if it can be controlled | **[ ] Add wheel slip to model and see if it can be controlled | ||
Line 20: | Line 20: | ||
**[ ] Extend that code to use accelerometer and Kalman filter | **[ ] Extend that code to use accelerometer and Kalman filter | ||
*[ ] Write PID controller for robot and test | *[ ] Write PID controller for robot and test | ||
+ | *[ ] Integrate the entire system and test | ||
==Code Documentation== | ==Code Documentation== |
Revision as of 11:59, 6 March 2008
The firmware resides on the microcontroller and includes software to implement the protocol, control the motors, and perform closed loop control on the motors and the robot itself.
Contents
- 1 Tasks
- 2 Code Documentation
- 2.1 Protocol
- 2.2 Files (In alphabetical order)
- 2.2.1 AD.c
- 2.2.2 Buzzer.c
- 2.2.3 crt0.s
- 2.2.4 delay.c
- 2.2.5 entry.s
- 2.2.6 FPGA_bus.c
- 2.2.7 interrupt.h
- 2.2.8 lpc2103.h
- 2.2.9 lpc2138-ROM.ld
- 2.2.10 lpc213x.h
- 2.2.11 Makefile
- 2.2.12 motor.c
- 2.2.13 number.c
- 2.2.14 openocd.cfg
- 2.2.15 openocd_go_flash
- 2.2.16 packet.c
- 2.2.17 packet_handler.c
- 2.2.18 PID.c
- 2.2.19 radio.c
- 2.2.20 robot.c
- 2.2.21 scan.c
- 2.2.22 Threadz.c
- 2.2.23 uart.c
- 2.2.24 VIClowlevel.c
- 3 Links
Tasks
- [X] Generate an I/O spec
- [X] Evaluate the the current protocol - Currently no changes will be made until after the robot hardware is finished
- [X] Update if necessary
- [X] Add code to interface with FPGA using SPI or serial
- [X] Implement timer based psuedo-preemptive scheduler
- [ ] Investigate actual preemptive schedulers
- [ ] Add transmit channel from robot to base station
- [X] Support base station development (Note: Jake has Phillips Butterfly)
- [X] Re-map printf to ARM and write RX buffer code as an interrupt (Note: Not enough memory to use printf wrote my own)
- [X] Code and test AD function
- [ ] Model motors in Simulink, build a PID controller and find good gains
- [ ] Add wheel slip to model and see if it can be controlled
- [ ] Investigate if a state-estimator can be used in place of PID
- [ ] Investigate if ARM can handle the load and maintain appropriate sample rate
- [ ] See if coding a better scheduler will help
- [ ] See if encoder resolution is enough to even make this work (may not)
- [ ] Write code to determine velocity using counter
- [ ] Extend that code to use accelerometer and Kalman filter
- [ ] Write PID controller for robot and test
- [ ] Integrate the entire system and test
Code Documentation
Protocol
Files (In alphabetical order)
AD.c
Buzzer.c
crt0.s
delay.c
entry.s
Replaced by crt0.s. Does not contain code to set-up stack for interrupts
FPGA_bus.c
interrupt.h
lpc2103.h
lpc2138-ROM.ld
lpc213x.h
Makefile
motor.c
number.c
openocd.cfg
openocd_go_flash
packet.c
packet_handler.c
PID.c
radio.c
robot.c
scan.c
Threadz.c
uart.c
VIClowlevel.c
Links