Welcome to World of Module Sensor Kit repository
5.4 Interactive box
Note: Please use the double-headed data cable provided by us to connect the Micro:bit board and expansion board to the computer, otherwise it will not be possible to drive the servo due to insufficient power.
1. Learning target
In this lesson, we will use micro:bit board, building blocks and sensor modules to build a interactive box.
When the stick in the front of the boring box is moved to make the stick stand upright, the other side of the block will block in front of the infrared sensor. When the infrared sensor recognizes the front block, the servo will turn that stick back.
2. Servo calibration
Before assembling the building blocks, we need to use code to calibrate the servo to a fixed angle.
If calibration is not calibrated before using, it is easy to jam the servo during use and cause the steering gear to stall and damage the servo.
Calibration method:
2.1 Connect the brown line of the servo to GND (black), the red line of the servo to VCC (red), and the yellow line of the servo to IO on expansion board.
The left servo is connected to P1. As shown below.
2.2 Then connect the computer to the Micro:bit board and expansion board through the double-head micro USB cable we provided.
2.3 Download the servo calibration code (Servo-calibration-Interactive-box.hex) to the micro:bit board.
2.4 When a "4" pattern is displayed on the dot matrix of the Micro:bit board, it means the servo be calibrated successfully.
3. Building blocks assembly
Please follow the steps we provide to assemble the building block models.
Pay attention to the installation direction of the servo when assembling, otherwise the servo will be damaged due to the wrong angle of the servo after running the program.
After the assembly is completed, please check the wiring of the servo as shown below.
4. About wiring
5.Programming method
Mode 1 online programming: First, we need to connect the micro:bit to the computer by USB cable. The computer will pop up a USB flash drive and click on the URL in the USB flash drive: http://microbit.org/ to enter the programming interface. Add the Yahboom package https://github.com/YahboomTechnology/Module-World to program.
Mode 2 offline programming: We need to open the offline programming software. After the installation is complete, enter the programming interface, click【New Project】, add Yahboom package: https://github.com/YahboomTechnology/Module-World , you can start programming.
6. Code
The summary program is shown below.
Code-① indicates the initialization of each module, and the initialization drives the servo to 170°(servo axis retracts into the box). And set the variable num to 0, and the dot matrix initialization will display a "boring" expression.
Code-② In the main loop function of this program, if the infrared sensor detects an obstacle, it will call our custom doHit function, and if it does not sense an obstacle, it will call our doWithdraw function.
Code-③ It is a custom function, dot matrix displays a "boring" expression and drives the servo to the angle of retracting into the box.
Code-④ It is a custom function, dot matrix displays an "angry" expression, and drives the servo to push the brick stick back, and then retract it into the box. When num is equal to 4 at random, the servo axis protrudes out of the box many times, indicating irritability.
7. Experimental phenomena
After the program is downloaded successfully. The servo will be initialized first, the brick axis will shrink in the box, and the dot matrix will display a boring expression.
When we move the building block stick by hand to make the building block stick stand upright, the infrared obstacle avoidance sensor detects the obstacle, and the servo rotates to push the building block stick back.
In the fifth time, the servo shaft will extend out of the box several times, indicating irritability.