SWARM-Bot Firmware  v1.0
Mobile robot OS - Embedded C/C++
SWARM-Bot Firmware Documentation

Swarm Bot Firmware:

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.

The firmware for the swarm-bot, it is written in C++ and is compiled using the AVR-GCC compiler.

Swarm Bot

Introduction

A robot operating system for a swarm-bot. Embedded C firmware for a mobile robot. 8-bit AVR microcontroller. Part of a graduation project.

Build using atmel studio but can be moved to makefile at will.

Files Structure

Each file in this graph has a certain harware utility to it. Files are separated into 4 main categories:

File Structure:

  • General:
    • Swarm world file swarm_wold.h
    • Pin definitions __pin_map.h
  • Control:
    • Odometry calculations: odometry.h
    • PID controller pid.h
    • Kinematics kinematics.h kinematics.c
    • Control loop:
      • dc_control.h
      • dc_control.c
  • Communication:
    • USART usart.h usart.c
    • Format format.h
  • Internal AVR Hardware Interface:
    • 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 (Comminication): timer2.h timer2.c
    • 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.

Files Structure

Go to files in the tree view in the side bar to see the contents of each fole with dependency graphs and contents.