I have cooperated with Xiao Qianfeng earlier to give her my assistance to finish the part of the MechaGodzilla Armor involved with electronics. We have settled some bugs together and I was really amazed at such a girl’s strong hands-on skills, so fantastic! Here I am gonna present you with the details about the electronics used in her Armor.
The video below demonstrates how to use the Bluetooth communication device in the MechaGodzilla Armor to control the rotation of serval servos.
In the MechaGodzilla Armor project, we have two controllers with Bluetooth 4.0 – Bluno, one of which is used to send control signals named Bluno_control, and the other is for receiving signal and controlling the servo rotation named Bluno_servo. For the former, we need to use an encoder switch to control the gear switching and display the current gear in the display module. When the Bluno_servo receives the signal, it will control the 6 servos connected to it to rotate. One thing to note here is that the servo needs to be connected to the pin with PWM output function on the controller, also, the pin with the "~" symbol. These 6 servos are divided into 3 groups of equal size, which will respectively control the opening and closing of Godzilla's mouth, the rotation of the arm barrel, and the 360-degree rotation of the weapons. The battery in the project is used to provide sufficient power by connecting it to the “SERVO PWR” green terminal on the controller extension board, ensuring that the controller is working well owing to the higher power requirement during the working time of the steering gear.
1. Connect the two Blunos boards via Bluetooth
As the two Blunos have been set to slave mode by default in the factory, we need to enter AT command mode and set one of them to master mode.
About how to enter AT command mode and how to set one controller to master mode, please refer to the information of Bluno controller for details.
Now if you have set one Bluno to master mode, the following phenomena should be observed after powering the two on: The yellow-green LEDs named "LNK" on them light up almost at the same time. In this case, the two Blunos are connected via Bluetooth.
2. Plug in the expansion shield
3. I have uploaded two programs corresponding to Bluno_control and Bluno_servo at the end of the article. First, let’s burn them into the respective controllers. Before burning, remember to download the library file of the digital LED display according to the corresponding method and paste it into the corresponding folder. Note that you need to power off the other controller first because it is not possible to burn programs when connected to Bluetooth.
4. At this time, for the Bluno_control, we need to use the digital LED module to connect to the IIC wiring pins of the controller expansion board. Then connect the 8421encoder to the board as shown in the figure. After powering it on, you can see the following experimental phenomenon:
While we are turning the encoder switch, the numbers on the digital LED display will increase or decrease sequentially.
5. Connect the six servos onto another Bluno board.
360° motor → D3
360° motor → D5
180° clutch servo → D6
180° clutch servo → D9
180° metal-geared servo → D10
180° metal-geared servo → D11
Note: For the 360° motor, it will stop if we give it a signal of 90 degrees. If we give it 0 degrees, it will reach its fastest rotation rate clockwise, and 180 degrees the fastest rotation counterclockwise. If be in the value between 0 to 90 and 90 to 180, it will rotate at a slower rate in this direction, which is proportional to the value. So this is quite different from the 180-degree servo and 270-degree servo. If you give 90 degrees and the 360° servo is rotating, you need to use a screwdriver to turn this small hole to reset it.
Then power on the two controllers (connect the USB cable).
Now we have completed the electronic part of the MechaGodzilla Armor.