Progress and Process

2 Wheel Dancing Bot

Github Link: https://github.com/weiweikee/StepperMotor_DanceBot

This is the Dancing Robot which uses two stepper motor to move. I created the wheel by 3D Printing the same wheel from a project that I was inspired from (above). I took design inspiration from the bottom part of the robot because I did not want to make my robot heavy as I would not have a balancing algorithm. The Dance moves were timed to 50 first seconds of the Evolution Dance.

Github Link: https://github.com/weiweikee/StepperMotor_ControlBot

 

 

 

 

Bluetooth HC-05 Test

For the bluetooth control project, I was using HC05 bluetooth module that can act as both the transmitter and the receiver. I used this because I want the bluetooth to connect from one Arduino to another Arduino. It was also a cheaper option. Many bluetooth module connect only to phone or computer because they are preset with an established platform. For the two bluetooth module to connect to each other, I needed to program the bluetooth module to automatically connect to each other when it is on. 

Github Link: https://github.com/weiweikee/Bluetooth-HC-05-Test

DanceBot HC-05 have two parts: Accelerometer Control Gloves and 2 Wheel Dancing Bot. I used Arduino Nano for both of these as the HC05 bluetooth module requires 3.6V - 6V. Arduino Nano small size with it inclusion of 5V regulator make a great candidate for this project. Both of these Arduino are powered by a 9V battery.

Accelerometer Control Gloves

The accelerometer control gloves is also made with a Arduino Nano and LIS3DH 3 axis accelerometer. LIS3DH was connected through the I2C ports. I used the acceleration data for X, Y, Z to calculate the pitch and roll of the glove. First, I did a 50-50 low pass filter to even out the data. Then I used the calculation: 

roll = (atan2(fXg, fZg) * 180.0) / M_PI;

pitch = (atan2(-fYg, sqrt(fXg * fXg + fZg * fZg)) * 180.0) / M_PI;

The formula were derived from these post: 

https://theccontinuum.com/2012/09/24/arduino-imu-pitch-roll-from-accelerometer/

http://www.nxp.com/assets/documents/data/en/application-notes/AN3461.pdf

https://stackoverflow.com/questions/3755059/3d-accelerometer-calculate-the-orientation

These formula I believe estimate quite accurately for what I needed the gloves to do. I just needed the gloves to pass a threshold of certain angle to activate the control. I use the glove similar to a directional pad. Then the glove will send which state should the robot be in through the bluetooth. Hence there are only 4 states that will occur with this controller. 

download (3).jpeg

RESULTS & FINAL THOUGHTS

I believe the responsiveness of sending the different state was better than sending over the roll and pitch data which will create enormous delay with the bluetooth module. The 4 states react instantly with almost no delays. However, I believe I can make the project better if I have a 9-DOF Accel/Mag/Gyro+Temp sensors (https://www.adafruit.com/product/3387) which can be put on the Dancebot to create a self balancing algorithm. The Dancebot was heavier than the week 8 version because of the battery and a new base. In order to create a more stable movement, I must use the 9-DOF Accel/Mag/Gyro+Temp sensors to calculate the tilt to adjust speed when it is falling over. Furthermore, the constant speed sketch was not working so I could not make a purely directional Movebot. The constant speed sketch run the stepper motors one by one and not simultaneously so it would not move directionally. Furthermore, the Accel ConstantSpeed Sketch example does not work properly as the wheel spin at an extremely slow speed and it was stuttering. Even when the set speed was increased, it still run weird. 

Resources for Balancing Bot:

https://github.com/spin7ion/Wheelee

http://digituma.uma.pt/bitstream/10400.13/59/1/MestradoVictorAbreu.pdf

https://www.intorobotics.com/5-best-examples-build-diy-self-balancing-robot/