Welcome to World of Module Sensor Kit repository
8.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.py) 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. About code
# -*- coding: utf-8-*-# Encoding cookie added by Mu Editor
from microbit import *
import WOM_Sensor_Kit
import random
boring = Image("00000:99099:00000:00000:09990")
angry = Image("90009:09090:00000:09990:90009")
while True:
display.show(boring)
WOM_Sensor_Kit.WOM_servo360(pin1,170)
if WOM_Sensor_Kit.WOM_pir(pin2) == 0:
display.show(angry)
num = random.randint(0,4)
if num == 3:
for num in range(0, 2):
WOM_Sensor_Kit.WOM_servo360(pin1,290)
sleep(300)
WOM_Sensor_Kit.WOM_servo360(pin1,170)
sleep(200)
WOM_Sensor_Kit.WOM_servo360(pin1,290)
sleep(300)
WOM_Sensor_Kit.WOM_servo360(pin1,170)
sleep(200)6.Writing and download code
6.1 You should open the Mu software, and enter the code in the edit window, , as shown below.
Note! All English and symbols should be entered in English, use the Tab key (tab key) to indent and the last line must be a space.
6.2 You can click the “Check” button to check if our code has an error.
If a cursor or underline appears on a line, it indicates a syntax error, please check and modify. If there is no error in the program, the bottom left of the interface will prompt that there is no problem in detection.
6.3 Click the ‘REPL’ button to check whether the WOM_Sensor_Kit Python library has been downloaded.
If not, please refer to [Preparation before class] --> [Python Programming Guide] .
6.4 After the program is written, use a micro USB cable to connect the computer and the micro:bit board. Please click the ‘Flash’ button to download the program to the micro:bit motherboard (You need to click the ‘REPL’ button again to close the function of importing library files before you download the program).
6.5 If the download failed, please confirm whether the micro:bit is connected to the computer through the micro USB data cable, and confirm whether the WOM_Sensor_Kit Python library has been imported.
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.
If you need to restart, press the reset button on the back of the micro:bit board.