Software apps and online services
The goal of the project is to use the ultrasonic sensor and a joystick provided by the Blynk phone application to guide Quade through a simple obstacle course using only the feedback from the ultrasonic sensor and the IMU. Wifi will be used to transmit data from the msp432 to a computer where it can be parsed and displayed back to the operator.
To get this project built and working, we will be using the MSP432 as the main logic to relay and manipulate the inputs and outputs. We will be attaching multiple modules, an ultrasonic sensor to track obstacles in front of our quadruped, with an additional servo for a full 360 degree view, one Wifi module connected through an Arduino Uno, and a joystick within the Blynk application. With all the modules working together Quade will provide the user a “view” of its surroundings and the Blynk app will be used to navigate Quade through an obstacle course. These modules are in addition to the base Quade build which includes multiple servos to control its movements. Interrupts are used to detect if an object is in a collision path with the robot, which leads to alternate action of the servos controlling the legs of Quade.
The PCA9685 will be used to control the individual servos, which itself is configured by the MSP. An additional servo has been added, in addition to the eight leg servos, which allows the ultrasonic sensor to rotate. This combination enables sensor mobility increasing the sensor’s utility to view more of its surroundings and transmit additional information about the environment to the controller.
Since we want to control the robot wirelessly, we will have one wifi module (an ESP8266). Additionally, a joystick provided by the Blynk phone app communicates wirelessly over the Wifi module back to the MSP. The ultrasonic sensor data is communicated wirelessly sending data from the MSP to the controller’s computer allowing effective data parsing and display. Using the Blynk libraries simplified the necessary work as it already included an application interface. The Wifi module is programmed using the UART communication protocol to transmit data.
The IMU collects all the live data from Quade and then the MSP relays it to the controller’s computer. The I2C protocol is used to communicate between the different peripherals. The joystick sends out a relative to Quade’s current position, communicated wirelessly from the Blynk app to the wifi module.Peripheral DiscussionSG92R Servo Motor
The SG92 is an economical motor that is able to deliver a large amount of torque for its size. At 9 grams and only around four dollars, it is a motor that can be bought in bulk for multiple needs. It works on low voltage requirements and provides enough of the torque needed to lift up our quadruped robot.Turnigy nano-tech Lipoly Battery
This Lipoly battery is a cheap but performative source. It has a capacity of 370 mAh and consists of 2 cells that can provide up to 7.4 volts. It has minimal weight at 27g. It has a high power density at 7.5 kW/kg and has good thermal control.Ultrasonic HC-SR04 sensor
The Ultrasonic HC-SR04 sensor will help our quadruped robot navigate itself to avoid any obstacles. This sensor was a good choice for us because it has a maximum range of 4 meters. It has a working voltage of 5 volts which fits the amount we can provide from our battery. See the table below for a comparison of sensors included in the ECEN2440 class kit.Wifi Module ESP8266 (ESP-01)
This wifi moule is small and easy to attach to other devices and runs using UART. One of the main upsides is that this module has a library called Blynk that has its own app functionality so it makes processing and collecting the wireless information easier for us. We only have to focus on coding what information the module is going to be sending.Trade Study
The goal of the project is to control Quade remotely without having to physically view its surroundings. Limiting ourselves to the sensors included in the class kit, we are left with the ultrasonic distance sensor (HC-SR04), the magnetometer and accelerometer (LSM6DSOX + LIS3MDL 9 DOF IMU), the Thermistor 10K (SEN-00250), and the reflectance sensor array (QTR-8RC).
The Thermister 10K is the cheapest of the 4 sensors but can only sense temperature. The reflectance sensor array may be able to work for our purposes but the maximum sensing distance is 6mm (0.25”) so Quade would bump nearly into objects before seeing them. The magnetometer and accelerometer would be good for tracking Quade’s location and could even work as an upgrade but is not a feasible choice since it cannot see other than Quade’s location, orientation and current movement. The ultrasonic distance sensor is the best choice for our project as it is not very expensive ($3.95), has low input power requirements (75 mW) and can sense objects up to 4m away.Testing and debugging video
See the link below for an overview of the peripheral design process.Software Diagram
AdaFruit. “PCA9685 16-Channel Servo Driver” adafruit.com
CircuitDigest “Interfacing Servo Motor with MSP430G2” circuitdigest.com
Pololu “Comparing Products in 1 Category” pololu.com
Sparkfun Electronics “ESP8266ModuleV1-1095236.pdf” mouser.com
HC-SR04 ultrasonic sensor data sheet