yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Building:bit Superkit📖
0.First Trial Video
1.Assembly Course
  • 1.1Mobile shooter
  • 1.2Pretty car
  • 1.3Clip robot
  • 1.4Proficient carrier
  • 1.5Skip car
  • 1.6Freestyle
  • 1.7Spider
  • 1.8Lifting platform
  • 1.9Biped robot
  • 1.10Changing Face
  • 1.11Carousel
  • 1.12Oscillating fan
  • 1.13Airplane
  • 1.14Unicycle
  • 1.15Auto-door
  • 1.16Dragon knight
  • 1.17Ultrasonic handheld rangefinder
  • 1.18Small flying car obstacle avoidance
  • 1.19Changing face
  • 1.20Adjustable RGB light
  • 1.21Adjustable fan
  • 1.22Photosensitive emergency light
  • 1.23Smart alarm clock
  • 1.24Light-controlled bipedal robot
  • 1.25Swimming robot avoid objects
  • 1.26Fleeing spider
  • 1.27Temperature humidity reminder
  • 1.28Temperature-controlled fan
  • 1.29Color recognition machine
  • 1.30Color-recognizing automatic door
  • 1.31Rokcer color changing light
  • 1.32Rokcer transporter
2.Preparation before class
  • 2.1 About BBC microbit
  • 2.2 Super:bit expansion board
  • 2.3 MakeCode Graphical Programming Guide
  • 2.4 MakeCode graphical API
  • 2.5 Python Programming Guide
  • 2.6 Superbit MicroPython API
  • 2.7 Notes on charging and battery use
3.Basic modeling MakeCode course
0.Basic course
  • 1.Buzzer play music
  • 2.Control RGB color
  • 3.Control all RGB lights
  • 4.Drive 270°building block servo
  • 5.Drive 180° servo
  • 6.Drive motor
A.Mobile shooter
  • 1.Cannonball shooting
  • 2.Music fortress
  • 3.APP control
  • 4.Micro:bit handle control
  • 5.WiFi camera control
B.Pretty car
  • 1.Dancer
  • 2.APP control
  • 3.Micro:bit handle control
  • 4.WiFi camera control
C.Clip robot
  • 1.Dancing and singing
  • 2.Button control clip
  • 3.APP control
  • 4.Micro:bit handle control
  • 5.WiFi camera control
D.Proficient carrier
  • 1.Dancing
  • 2.Button control shovel
  • 3.Transportation
  • 4.APP control
  • 5.Micro:bit handle control
  • 6.WiFi camera control
E.Skip car
  • 1.Dance battle
  • 2.Button control skip car
  • 3.Powerful carrier
  • 4.APP control
  • 5.Micro:bit handle control
  • 6.WiFi camera control
F.Freestyle
  • 1.Dancing and singing
  • 2.Freestyle advance
  • 3.APP control
  • 4.Micro:bit handle control
G.Spider
  • 1.Spider advance
  • 2.The dancing spider
  • 3.APP control
  • 4.Micro:bit handle control
  • 5.WiFi camera control
H.Lifting platform
  • 1.Automatic Lift
  • 2.Button control platform
  • 3.APP control
  • 4.Micro:bit handle control
I.Biped robot
  • 1.Walking
  • 2.Dancing and singing
  • 3.APP control
  • 4.Micro:bit handle control
J.Changing Face
  • 1.Changing face
  • 2.Bite the hand crocodile
  • 3.APP control
  • 4.Micro:bit handle control
K.Carousel
  • 1.Music carousel
  • 2.APP control
  • 3.Micro:bit handle control
L.Oscillating fan
  • 1.Colorful windmill
  • 2.Summer cooling artifact
  • 3.APP control
  • 4.Micro:bit handle control
M.Airplane
  • 1.Sailing Prelude
  • 2.APP control
  • 3.Micro:bit handle control
N.Unicycle
  • 1.Clumsy reptile
  • 2.APP control
  • 3.Micro:bit handle control
O.Auto-door
  • 1.Soldiers on duty
  • 2.Music door
  • 3.APP control
  • 4.Micro:bit handle control
P.Dragon knight
  • 1.Waving wings
  • 2.APP control
  • 3.Microbit handle control
4.Basic modeling Python course
0.Basic course
  • 1.Buzzer play music
  • 2.Control RGB color
  • 3.Control all RGB lights
  • 4.Drive 270° building block servo
  • 5.Drive 180° servo
  • 6.Drive motor
  • 7.Drive stepper motor
A.Mobile shooter
  • 1.Cannonball shooting
  • 2.Music fortress
  • 3.Micro:bit handle control
B.Pretty car
  • 1.Dancer
  • 2.Micro:bit handle control
C.Clip robot
  • 1.Dancing and singing
  • 2.Button control clip
  • 3.Micro:bit handle control
D.Proficient carrier
  • 1.Dancing
  • 2.Button control shovel
  • 3.Transportation
  • 4.Micro:bit handle control
E.Skip car
  • 1.Dance battle
  • 2.Button control skip car
  • 3.Powerful carrier
  • 4.Microbit handle control
F.Freestyle
  • 1.Dancing and singing
  • 2.Freestyle advance
  • 3.Micro:bit handle control
G.Spider
  • 1.Spider advance
  • 2.The dancing spider
  • 3.Micro:bit handle control
H.Lifting platform
  • 1.Automatic Lift
  • 2.Button control platform
  • 3.Micro:bit handle control
I.Biped robot
  • 1.Walking
  • 2.Dancing and singing
  • 3.Micro:bit handle control
J.Changing Face
  • 1.Changing face
  • 2.Bite the hand crocodile
  • 3.Micro:bit handle control
K.Carousel
  • 1.Music carousel
  • 2.Micro:bit handle control
L.Oscillating fan
  • 1.Colorful windmill
  • 2.Summer cooling artifact
  • 3.Micro:bit handle control
M.Airplane
  • 1.Sailing Prelude
  • 2.Micro:bit handle control
N.Unicycle
  • 1.Clumsy reptile
  • 2.Micro:bit handle control
O.Auto-door
  • 1.Soldiers on duty
  • 2.Music door
  • 3.Microbit handle control
P.Dragon knight
  • 1.Waving wings
  • 2.Micro:bit handle control
5.Sensor Advanced MakeCode coursenew
3.Sensor expansion course
  • 3.1 Avoiding car
  • 3.2 Changing Face
  • 3.3 Adjustable fan
  • 3.4 Photosensitive robot
  • 3.5 Swimming robot
  • 3.6 Spiders sense human body
  • 3.7 Temperature control fan
  • 3.8 Automatic safety door
  • 3.9 Rocker carrier car
2.Sensor basic course
  • 2.1 Hand-held range finder
  • 2.2 Adjustable RGB light
  • 2.3 Emergency light
  • 2.4 Vibrating alarm clock
  • 2.5 Infrared detection broadcast
  • 2.6Human body infrared detection broadcast
  • 2.7 Temperature and humidity broadcaster
  • 2.8 Color recognition machine
  • 2.9 Rocker control light
1.Sensor principle
  • 1.1 About ultrasonic sensors
  • 1.2 Ultrasonic ranging
  • 1.3 About potentiometers
  • 1.4 Adjust potentiometer
  • 1.5 About photosensitive sensors
  • 1.6 Read the light intensity
  • 1.7 About infrared modules
  • 1.8 Obstacle detection
  • 1.9 Introduction of module
  • 1.10 Human body detection
  • 1.11 About temperature-humidity modules
  • 1.12 Read temperature humidity
  • 1.13 About color recognition sensors
  • 1.14 Color recognition
  • 1.15 About rocker module
  • 1.16 Control rocker
6.Sensor Advanced Python coursenew
1.Sensor principle
  • 1.1 About ultrasonic sensorsnew
  • 1.2 Ultrasonic rangingnew
  • 1.3 About potentiometersnew
  • 1.4 Adjust potentiometernew
  • 1.5 About photosensitive sensorsnew
  • 1.6 Read the light intensitynew
  • 1.7 About infrared modulesnew
  • 1.8 Obstacle detectionnew
  • 1.9 About human infrared sensing modulesnew
  • 1.10 Human body detectionnew
  • 1.11 About temperature-humidity modulesnew
  • 1.12 Read temperature humiditynew
  • 1.13 About color recognition sensorsnew
  • 1.14 Color recognitionnew
  • 1.15 About rocker modulenew
  • 1.16 Control rockernew
2.Sensor basic course
  • 2.1 Hand-held range findernew
  • 2.2 Adjustable RGB lightnew
  • 2.3 Emergency lightnew
  • 2.4 Vibrating alarm clocknew
  • 2.5 Infrared detection broadcastnew
  • 2.6 Human body infrared detection broadcastnew
  • 2.7 Temperature and humidity broadcasternew
  • 2.8 Color recognition machinenew
  • 2.9 Rocker control lightnew
3.Sensor expansion course
  • 3.1 Avoiding carnew
  • 3.2 Changing Facenew
  • 3.3 Adjustable fannew
  • 3.4 Photosensitive robotnew
  • 3.5 Swimming robotnew
  • 3.6 Spiders sense human bodynew
  • 3.7 Temperature control fannew
  • 3.8 Automatic safety doornew
  • 3.9 Rocker carriernew
Download
  • APP(iOS_Android)
  • Code_PythonLibrary
  • Hardware manual
  • Bluetooth communication protocol
  • Assembly Instructions Manual
  • Makecode offline software
Download ZIP

Welcome to Building:bit Superkit repository

3.Micro:bit handle control

Microbit handle control

Microbit handle control1. Learning objectives2. Building blocks3. Motor wiring4. Code analysis4.1 Oscillating fan4.2 Handle5. Write and download the program6. Experimental phenomenon

1. Learning objectives

In this course, we mainly learn how to use Python programming to control the oscillating fan with the microbit handle

2. Building blocks

For the building blocks steps, please refer to the installation drawings of [Assembly course]-[Oscillating fan] in the materials or the building blocks installation brochure.

3. Motor wiring

Insert the building blocks motor wiring into the M1 interface of the Super:bit expansion board, and the black wiring into the side close to the battery.

Insert the building blocks servo wiring into the S1 interface of the Super:bit expansion board, and the orange servo wiring into the yellow pin of S1.

As shown in the figure below:

image-20250607163959305

4. Code analysis

4.1 Oscillating fan

For the program, please refer to the Oscillating fan code.py file.

from microbit import *
import superbit
import radio
import neopixel

First, import the libraries needed for this lesson from microbit: the superbit library is dedicated to the superbit expansion board; neopixel is used to control RGB lights; radio is used for the wireless communication function of micro:bit.

​x
Red = (255, 0, 0)
Orange = (255, 165, 0)
Yellow = (255, 255, 0)
Green = (0, 255, 0)
Blue = (0, 0, 255)
Violet = (148, 0, 211)
White = (255, 255, 255)
color_lib = { 
'Red': Red, 'Orange': Orange, 'Yellow': Yellow, 'Green': Green, 
'Blue': Blue, 'Violet': Violet, 'White': White}
def RGBLight_more_show(first, num, color): 
global np 
​
np.clear() 
for i in range(first, first + num): 
np[i] = color_lib[color] np.show()

This section of the program is used to define different colors of RGB lights, and define the function RGBLight_more_show to control the color of the RGB light. This function will be called in the following main loop.

xxxxxxxxxx
np = neopixel.NeoPixel(pin12, 4)
display.show(Image.HEART)
superbit.servo270(superbit.S1, 135)
radio.on()
radio.config(group=1)

display.show(Image.HEART): Display a heart pattern on the microbit dot matrix;

np = neopixel.NeoPixel(pin12, 4): Initialize the RGB light settings. There are 4 RGB lights in total, connected to the P12 pin of the microbit motherboard (check the hardware interface manual for details);

radio.on(): Turn on the wireless function. Because the wireless function consumes more power and occupies more memory, it is turned off by default. You can also use radio.off() to turn off the wireless function;

radio.config(group=1): Configure wireless group=1, so that other microbit devices with wireless group=1 can communicate with each other. The default is 0, and the selectable group is 0~255. The set group value needs to be consistent with the handle setting, otherwise it will not communicate normally;

xxxxxxxxxx
while True:
incoming = radio.receive()
if incoming == 'up':
superbit.motor_control(superbit.M1, 255, 0)
...

In the main loop, determine the command sent by the handle to control the movement state of the shaking fan and the color of the RGB light.

incoming = radio.receive(): Receive wireless data and save it to the incoming variable; if incoming is ‘up’, the oscillating fan starts to rotate counterclockwise, if incoming is ‘up’, the oscillating fan starts to rotate clockwise, and ‘stop’ stops the oscillating fan;

If incoming is ‘R’, the body RGB lights up red and the servo rotates to 0 degrees, ‘G’ makes the body RGB light up green and the servo rotates to 135 degrees, ‘B’ makes the body RGB light up blue, and ‘Y’ makes the body RGB light up yellow and the servo rotates to 270 degrees.

! Note:

The value of incoming needs to correspond to the value sent by the handle. Only the same value can receive and execute commands.

4.2 Handle

For the program, please refer to the Handle code.py file.

xxxxxxxxxx
from microbit import display, Image
import ghandle
import radio

First, import the libraries needed for this lesson from microbit: the ghandle library is dedicated to the micro:bit hand; radio is used for the wireless communication function of micro:bit.

xxxxxxxxxx
display.show(Image.HEART)
radio.on()
radio.config(group=1)

display.show(Image.HEART): Display a heart pattern on the microbit dot matrix;

radio.on(): Turn on the wireless function. Because the wireless function consumes more power and occupies more memory, it is turned off by default. You can also use radio.off() to turn off the wireless function;

radio.config(group=1): Configure wireless group=1, so that other microbit devices with wireless group=1 can communicate with each other. The default is 0, and the selectable group is 0~255. The set group value needs to be consistent with the handle setting, otherwise it will not communicate normally;

xxxxxxxxxx
while True:
​
if ghandle.rocker(ghandle.up):
radio.send('up')
display.show(Image.ARROW_N)
elif ghandle.rocker(ghandle.down):
radio.send('down') 
display.show(Image.ARROW_S) 
elif ghandle.rocker(ghandle.left): 
radio.send('left') 
display.show(Image.ARROW_W) 
elif ghandle.rocker(ghandle.right): 
radio.send('right') 
display.show(Image.ARROW_E) 
elif ghandle.rocker(ghandle.pressed): 
radio.send('turn_off') 
display.show(Image.NO) 
else: 
radio.send('stop') display.clear()

If ghandle.rocker(ghandle.up) is True, it means that the joystick of the handle is pushed up, so that the wireless sends the 'up' command and displays an upward icon;

If ghandle.rocker(ghandle.down) is True, it means that the joystick of the handle is pushed down, so that the wireless sends the 'down' command and displays a downward icon;

If ghandle.rocker(ghandle.left) is True, it means that the joystick of the handle is pushed to the left, so that the wireless sends the 'left' command and displays a left icon;

If ghandle.rocker(ghandle.right) is True, it means that the joystick of the handle is pushed to the right, so that the wireless sends the 'right' command and displays a right icon;

If ghandle.rocker(ghandle. pressed) is True, it means that the joystick of the handle is pressed, so the wireless sends the 'pressed' command and displays the 'X' icon;

If the remote control has no operation, it sends 'stop' and clears the display;

xxxxxxxxxx
if ghandle.B1_is_pressed():
radio.send('R')
display.show("R")
if ghandle.B2_is_pressed():
radio.send('G')
display.show("G")
if ghandle.B3_is_pressed():
radio.send('B')
display.show("B")
if ghandle.B4_is_pressed():
radio.send('Y')
display.show("Y")

Next, detect the button and send R', 'G', 'B', 'Y' commands corresponding to B1 (red), B2 (green), B3 (blue), and B4 (yellow).

5. Write and download the program

  1. Open the Mu software and enter the code in the editing window. Note! All English and symbols should be entered in English, use the Tab key for indentation, and the last line ends with a blank program.
  2. Click the thumb 'Check' button to check if there are any errors in our code. If a cursor or underline appears in a line, it means a syntax error. Please check and modify it. If there is no error, the lower left corner will prompt that there is no problem with the detection.

image-20250616213555929

  1. Click the 'REPL' button to check whether the Superbit library has been downloaded. If not, please refer to [Preparation before class] --> [2.4 Python Programming Guide].

image-20250616213637497

  1. After the program is written, connect the computer and microbit mainboard with a microUSB data cable, please click the 'Flash' button to download the program to the micro:bit mainboard. (You need to click the 'REPL' button again to turn off the import library file function before you can download the program normally).

image-20250616213730022

  1. If the download fails, please confirm whether the microbit is connected to the computer normally via the microUSB data cable and the Superbit Python library has been imported.

6. Experimental phenomenon

We need to download the Oscillating fan code.py file to the micro:bit mainboard of the oscillating fan, turn on the power switch of the oscillating fan, and we can see a smiley face pattern displayed on the micro:bit dot matrix;

Download the Handle code.py file to the micro:bit mainboard of the controller, turn on the power switch of the controller, and we can see that the micro:bit dot matrix will be initialized to display a heart pattern, and then an "X" pattern will be displayed, indicating that the controller is in the default state and no data is sent.

The two will automatically complete the pairing, and then we can start to remotely control the oscillating fan.

The controller functions are as follows.

image.png

When the joystick is pressed, the control RGB light turns off.

Summer cooling artifact
Sailing Prelude

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文