Ballistic Acquisition Telemetry and Trajectory System using an Arduino to report telemetry from a self-contained device such as a drone to a fixed ground station.
Questions:
- How should each axis of data be mapped?
- What communication protocol is each component of the project using?
- How will the data be collected from the Arduino?
- How does the Beitan GPS work? How do we print data from it to the serial monitor repeatedly?
- How does the Serial*.available() function work?
- How many devices can the Mega handle?
- At what baud rate is the data optimally received at from each device?
- What have we learned so far?
- If we were to receive data from the computer, how would it be graphed?
Planning:
- What sensors are being used with the Teensy?
- MPU9250 Board
- ADXL345 Board. Datasheet for the IC. Listing for the board we used.
- BN-88 GPS/Compass Module
Priority I: -Transmission of data from the Teensy 3.2 to an Arduino using the 3DR radio transmitter/receiver.
Priority II: -Read data from Accelerometer board to Teensy, document and implement a simple data transmission protocol. Eg. A = Accelerometer Data, G = Gyroscope Data, M = MPU Magnetometer Data, and AD = ADXL345 Board Data
Data is output to the serial monitor according to the same scheme it’s sent to the radio transmitter. Eg.
< A.x, A.y, A.z , G.x, G.y, G.z , M.x, M.y, Mz , AD.x, AD.y, AD.z, Temperature >
The characters ‘<‘ and ‘>’ have ASCII values 60 and 62, which can be detected when parsing the data. If there is a loss of some of the data.
The way I wrote the above example assumes that the data from the MPU and the magnetometer board would transmit data in sync. There is no reason to believe this would be the case. What are the implications of this?
Priority III: -Create a case to house the electronics. Power the circuit with a 5V LiPo battery and a basic Adafruit battery charger board.
- Wireless communication between two Arduinos using clone 3DR radios
- CP2014 USB-UART Bridge Datasheet: this chip is used on the USB-UART board we were given. If we were to design a PCB to connect the 3DR USB radio receiver to the Arduino, we would make through-hole connections to pins 20 and 21 (RXD and TXD).
- Arduino Library Wire.h
- Teensyduino Installation
- MPU9250 Library (uses FIFO scheme) MPU-9250 Datasheet
- Another MPU9250 Library
- Serial inputs on Arduino
- Serial.available()
- USB Device send/read data
- TinyGPSPlus: we used this library for the bn-
- Adding External Memory to Arduino: according to a commenter on this post, using a shield or breakout board (the latter uses SPI) one should be able to use a micro SD card with up to 16gb storage. We would be transmitting at least 12 float values for each transmission. The Atmega we used has ~248k of onboard memory.
- BN-88 GPS Module Pinout
- Using the ADXL345 Accelerometer Board with an Arduino
- https://forum.arduino.cc/index.php?topic=275468.0
- Problem with using SoftwareSerial.h to write data from the BN-88 to the serial monitor
- ADXL345 SPI
- Arduino Mega with 3DR Radio
- Read String from external device
- Passing data from a GPS module to a bluetooth module via UART on a Teensy
9 Axes of data are transmitted from the Teensy wirelessly using BATTS/Mobile_Station/Mobile_Station_V2/Mobile_Station_V2.ino. These are all being read via I2C from the MPU-9250 accelerometer/gyro/compass board. The format looks like < A.x, A.y, A.z, G.x, G.y, G.z, M.x, M.y, Mz >
.
We are having trouble reading any data from the ground station. We were using code from this guy's project.
We discovered that the reason the arduino didn't appear to be receiving any data may have been because we were using two USB slave devices and USB slave devices cannot transmit or receive data. There is a protocol variant called USB OTG that would solve this problem. Or we could connect the ground station antenna to a raspberry pi and read data from the D+ D- line that way.
Alternatively, this or this variant of the 3DR Radio Telemetry set would work as it supports USB OTG. The designer could also use the supplied Tx and Rx lines supplied on both parts of the radio Telemetry pair.