/fbds

🛡️📡🚀 Embedded Software for the Internet of Things course group project

Primary LanguageC

Flying Bear Defense System (FBDS)

🛡️📡🚀 The Flying Bear Defense System (FBDS) consists of a fully controllable turret made of a TI MSP432P401R Launchpad, a TI Booster Pack MK II, 3 servos, a pan-and-tilt turret and a Nerf blaster. It also features an automatic mode via a webcam mounted on it, powered by OpenCV. Said program tracks an ArUco marker and tells an ESP32 which direction to move to, which in turn forwards said direction to the MSP432P401R.

This was a group project for the Embedded Software for the Internet of Things course at University of Trento by Simone De Carli, Mattia Maci, Davide José Paci, Marco Toniolo.

Untitled video - Made with Clipchamp

Removal-438

Table of Contents

Hardware Requirements

  • MSP432P401R (TI)
  • Booster Pack MK II (TI)
  • Nerf Elite 2.0 Ace SD-1 blaster
  • Servos: 1x DGSERVO S05NF STD, 2x SM-S4303R
  • Pan and Tilt Turret
  • Breadboard
  • ESP32
  • 3D-printed Nerf Jolt tilt-pan turret
  • Webcam for target detection

Software Involved

  • C program utilizing DriverLib and graphics library for MSP432
  • C++ program for communication between PC and MSP432 via ESP32
  • Python script with OpenCV for target detection through webcam

Getting Started

Connect the following pins in the breadboard:

  • Pin 2.5 -> Servo 1 (X axis)
  • Pin 2.4 -> Servo 2 (Y axis)
  • Pin 2.6 -> Servo 3 (Trigger)
  • Pin 3.2 (UART RX) -> ESP32 Pin 16 (TX)
  • Pin 3.3 (UART TX) -> ESP32 Pin 17 (RX)

Connect the webcam, the ESP32, and the MSP432 to the PC.

Load the Nerf gun with the dart and pull back the spring.

Run thing3.py (requires pyserial and opencv-python)

Then run the following commands:

> git clone https://github.com/free-embedded/fbds.git
> cd fbds
> make
> openocd -f board/ti_msp432_launchpad.cfg

In another terminal (preferably in the project folder, so the paths are shorter):

> arm-none-eabi-gdb
> (gdb) target remote :3333
> (gdb) load ./out/fbds.out
> (gdb) continue

How to Use

The system will start in automatic mode. Press the top button to switch to manual mode. In manual mode, use the joystick to control the turret on both axes and press the bottom button to shoot the dart.

Team Contributions

Task Contributors
Servo movement Simone De Carli, Davide José Paci
PWM Simone De Carli
Git Maintenance Simone De Carli, Marco Toniolo
Code Structure Simone De Carli
Hardware Setup Mattia Maci
Project Video Mattia Maci
Automatic Mode Davide José Paci
Project Outline Davide José Paci
Project Presentation Davide José Paci
Project README Davide José Paci
UART Davide José Paci
Buzzer Music Marco Toniolo
LCD Display Marco Toniolo
Makefile Marco Toniolo

Credits

  • University of Trento's FabLab for providing most hardware and materials required for the project
  • Contradius on Thingiverse for the Nerf turret model
  • Walter Newsome for image to .c file converter

Bear riding a rocket Chad bear Parachuting bear