A robot operating system for a swarm-bot. Embedded C firmware for a mobile robot. 8-bit AVR microcontroller. Part of a graduation project.
Built using atmel studio but can be moved to makefile at will.
Documentation Please follow this url for a gh-pages with full documentation of the sources. You can find file maps and dependency graphs in each class description. Documentation Site
Each file in this graph has a certain harware utility to it. Files are separated into 4 main categories:
- Swarm world file
__swarm_world__.h
- Pin definitions
__pin_map__.h
- Odometry calculations:
__odometry__.h
- PID controller
__pid__.h
- Kinematics
__kinematics__.h
__kinematics__.c
- Control loop:
- USART
__usart__.h
__usart__.c
- Format
__format__.h
- ADC
__adc__.h
__adc__.c
- PWM
__pwm__.h
__pwm__.c
- Timers:
- Timer 0 (Program Flow):
__timer0__.h
__timer0__.c
- Timer 1 (Control Loop):
__timer1__.h
__timer1__.c
- Timer 2 (Communication):
__timer2__.h
__timer2__.c
- Timer 0 (Program Flow):
- USART
__usart__.h
- Interrupts 0 and 1
__INT_0_1__.h
__INT_0_1__.c
In addition to these files the project is compiled with stdio.h support for printf and scanf functions. This makes it more convinient to debug the code and to communicate with the robot using a terminal emulator. The stdio.h library is not included in the project files but is included in the atmel studio project. This is advantagious for unfamiliar AVR users to comminicate with the robot using a terminal emulator without having to learn the AVR USART structure.