Alphabot2-user-manual-en
Alphabot2-user-manual-en
AlphaBot 2
User Manual
August 2017
V1.3
To the Reader
Selection Guide
Note: Accessories may be different in different product package. This manual describes all the
compatible accessories but perhaps the product you bought doesn’t contain some of them.
Note:
AlphaBot2-Ar Acc Pack requires an Arduino compatible controller, if you don't have one in hand,
please consider the all-in-one kits: AlphaBot2-Ar.
AlphaBot2-Pi Acc Pack requires the controller Raspberry Pi, if you don't have one in hand, please
consider the all-in-one kit: AlphaBot2-Pi.
AlphaBot2-PiZero Acc Pack requires the controller Raspberry Pi Zero/Zero W, which should be
purchased separately.
Due to the structure design, ultrasonic sensor module can NOT be used with the AlphaBot2-Pi kit.
Recommendation
Reading this document can be a challenge for a freshman. We advise that the reader
explored here. If you want to have a thorough understand of them, please check
the source code. Here, we will describe more about the practical experience of smart
robot development.
Raspberry Pi tutorial:
http://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series
Due to the electrical characteristic limitation, user should be more careful to use this
product in a safe and correct matter, to prevent the Raspberry Pi board or Arduino
board from irreversible damage by the smart robot chassis. For your first time in
using this product, please follow the steps described in the document.
Get details
schematic diagram, Demos, data sheet and the likes. Users can apply the product
Contents
AlphaBot 2 User Manual 1
To the Reader 2
Selection Guide 2
Recommendation 3
Get details 3
Contents 4
What’s on board? 5
Introduction 5
AlphaBot2-Base 6
AlphaBot2-Ar 7
AlphaBot2-Pi 8
AlphaBot2-PiZero 9
Quick start 10
Arduino examples 10
Raspberry Pi examples 24
FAQ 45
Safety Precautions 48
What’s on board?
Introduction
It features rich common robot functions including line tracking, obstacle avoiding,
you're almost there, our open source demo codes is ready to help you get started
fast.
all the compatible accessories but perhaps the product you bought doesn’t
AlphaBot2-Base
AlphaBot2-Ar
AlphaBot2-Pi
AlphaBot2-PiZero
Quick start
We have provided the control programs for Arduino and Raspberry Pi, which can
You can get the example programs described in the following sections from the
website of Waveshare Wiki. To apply these examples to your application, you need
to copy the file libraries under the directory of Arduino into the folder libraries
under the installation directory of Arduino IDE. Then, restart the Ariduino IDE, and
click File-> Example to see if there is an option TRSensors. If yes, it means the
libraries are imported successfully. When using the Raspberry Pi, you should extract
the example programs and place them in the directory of /home/pi under the
Arduino examples
Motor testing
Compile and download the program Run-Test. Normally, the smart robot moves
forward when the program runs and drives the motor to rotate. In case that the
direction of motion is wrong, you may need to modify the motor wring or change
the pin settings in your program. We recommend the latter one. If left wheels of the
robot run in a wrong direction, you should exchange the settings of AIN1 and AIN2.
In the event that all the wheels run in a wrong direction, you should modify the
5-way Joystick
Compile and download the program Joystick. This Joystick has 5 control directions:
Up, Down, Left, Right and Center (Enter). Open the serial monitor, and set the baud
rate to 115200. Then, the monitor displays the current key press. When there is a
key pressed down, the buzzer sounds and the motor rotates in the direction
according to the key. If the wheel(s) runs in the wrong direction, you should modify
Compile and download the program IR. You can control the smart robot by pressing
down the numeric keys on the infrared remote controller, in which, “2”is for go
forwards, “8” for go backwards, “4” for turn left, “6” for turn right, and “5”
for stop. Keys “-“ and “+” can adjust the speed of the robot, and “EQ” can
The key encoding may change with different Infrared remote controller. You can
no obstacle ahead of the robot, the green LEDs on the robot are off. When the
obstacle is detected, the green LEDs will light up. In case that the LEDs are always
off or always on, you can try to adjusted the potentiometers on the bottom of the
In this example, the robot goes straight when there is no obstacle, and turns right
Compile and download the program Ultrasonic_Ranging. Open the serial monitor,
and set the baud rate to 115200. Then, the monitor displays the current measured
distance.
example, the robot goes straight when there is no obstacle, and turns right when
obstacle is detected. Since the ultrasonic can be reflected, if the obstacle is not in
the front of the robot, but is at an angle with the robot, the distance measured
this example, the robot goes straight when there is no obstacle, and turns right
Import the library TRSensors to the file libraries under the installation directory of
Arduino IDE. Then, click File -> Example -> TRSensors ->TRSensorExample to open
the project. Compile and download the program to the development board Arduino.
The tracker sensor can detect the black line in the background color of white. You
can choose a black adhesive tape with 15cm width, and paste it to a white KT board
to create the smart robot tracking line scenario. The dark background color will
Open the serial monitor, and set the baud rate to 115200. When the monitor
displays the characters “TRSensor example”, you should hold the robot in the
middle of the black line and close to the ground, then swing the robot from side to
side. Then, the smart robot goes into the calibration mode, identifying the Max. and
the Min. threshed of each sensor. Calibration can have a direct influence to the
After the calibration, the monitor shows the Max. and the Min. threshed of each
sensor. And then, the measured values of sensors are displayed as well. The larger
value means the deeper color. The last column of values indicate the position of the
black line, in which “2000” means the black line is in the middle of the robot, “0”
means the black line is on the leftmost side of the robot, and “4000” means the
When this program runs well, the line tracking sensor works properly. Or else, the
adapter, and hold the robot in the middle of the black line and close to the ground,
then swing the robot from side to side. The smart robot goes into the calibration
mode, identifying the Max. and the Min. threshed of each sensor. Calibration can
have a direct influence to the tracking line capability of the robot. When the wheels
of the robot begin to move, you can release the robot and it will run along with the
black line.
RGB LEDs
Compile and download the program W2812. There are 4 RGBn LEDs (red, green,
To run this program, you should import the corresponding library to Arduino IDE.
OLED
Compile and download the program OLED. The example program demonstrates the
basic functions of character display and drawing operation, including drawing line,
cycle, rectangle box and the likes. To run this program, you should import the
Comprehensive program
Compile and download the program Line-Tracking. Turned on the power adapter,
you can see the OLED display the characters “AlphaBot2”. Then, place the robot
on the black line and press down the key. Now, the smart robot goes into the
calibration mode, moving to left and then right. And the RGB LED is in green. When
the calibration finished, the RGB LED is in blue. OLED shows the information as the
figure below on the right, in which “**”indicates the current position of the black
line. When the smart robot moves to left or right, this symbol will be moved along.
Pressing down the key again, the smart robot runs along with the black line, and
the RGB LED shows different colors. When there is an obstacle detected, the smart
robot stops and the buzzer sounds. When the obstacle disappears, the smart robot
continue to run. If you take up the robot, it will stop as well. Then, place it on the
Compile and download the program MazeSolver. Turned on the power adapter, you
can see the OLED display the characters “AlphaBot2”. Then, place the robot on
the black line and press down the key. Now, the smart robot goes into the
calibration mode, moving to left and then right. And the RGB LED is in green. When
the calibration finished, the RGB LED is in blue. OLED shows the information as the
figure below on the right, in which “**”indicates the current position of the black
line. When the smart robot moves to left or right, this symbol will be moved along.
If the smart robot comes across the right angle, it will take a turn and look for the
end automatically. The smart robot stops when it arrives the end. Now, put the
smart robot to the start again, and press down the key, you will find that the smart
Here are some requirements in making the maze: the corner should be a right angle,
About the program: when the smart robot detects any corner, it will slow down and
detects if there is a corner once again. As the difference at motor and operation
voltage in used, the smart robot may be unable to identify the corner. In this case,
you can modify the speed setting and delay time in the program. Further, when the
smart robot has to turn a corner, it need to increase delay time to judge the degree
of the angle. Therefore, if there is any problem in turning a corner, you can modify
Compile and download the program Bluetooth. You should remove the Bluetooth
module from the smart robot before downloading, or else the program cannot be
loaded. When finished, you should insert the Bluetooth module to the smart robot
again.
Then, scan the QR code below with your mobile phone, and download the relative
APP according to your mobile phone OS. For iOS, Bluetooth BLE is applied to
communicate with the module, and iphone4S or above is required. For Android,
Startup the APP, and click the option “Scan” (Note: Turn on the Bluetooth on
your mobile phone). Then, insert the Bluetooth module to the smart robot. After a
few second, you can find the corresponding Bluetooth device in the list. For iOS,
device. Then, enter the next page, and choose “remote control mode”.
Note: If your Android mobile phone support Bluetooth BLE as well, it will scan two
devices. At this moment, please select the device with the MAC address of
00:0E:0E.
Select “Remote control mode”, and click the option Settings to configure the
commands according to the program. When there is key pressed down, it will
trigger corresponding command. And when the key is released and bound up, it
When the color of the speed button changes from gray to black, it means the
program has been linked. Now, pressing down the key, you can control the smart
For more information about Dual-mode Bluetooth, please refer to the corresponding
user manual
Remove the Bluetooth module, then, compile and download the program
Bluetooth-json. Next, startup the APP, and insert the Bluetooth module to the robot.
Then, select the option “Remote control mode” to control the robot, and choose
the option “Peripheral control” to control the buzzer to sound and RGD LED to
display different colors. (RGD LED may be unavailable in other robot. So you may
Raspberry Pi examples
Extract the package AlphaBot2.tar.gz and place it to the directory of /home/pi under
raspbian system.
Before using this extension board, you should install the library python to your
Raspberry Pi.
In case that the example is unable to be performed after installing the library, you
can try to apply the command chmod +x filename to grant the program the
executable permission.
Explanation: For the freshmen of Raspberry Pi, please refer to the Raspberry Pi
Motor testing
cd ~/AlphaBot2/python
sudo python AlphaBot2.py
Expectation result: The smart robot moves forward when the program runs and
In case that the direction of motion is wrong, you may need to modify the motor
wring or change the pin settings in your program. We recommend the latter one. If
left wheels of the robot run in a wrong direction, you should exchange the settings
of ain1 and ain2. For right wheels, exchange the settings of bin1 and bin2.
5-way joystick
cd ~/AlphaBot2/python
sudo python Joystick.py
Expectation result: This Joystick has 5 control directions: Up, Down, Left, Right and
Center (Enter). Open the serial monitor, and set the baud rate to 115200. Then, the
monitor displays the current key press. When there is a key pressed down, the
buzzer sounds and the motor rotates in the direction according to the key. If the
wheel(s) runs in the wrong direction, you should modify the settings of the
corresponding pins.
cd ~/AlphaBot2/python
sudo python IRremote.py
Expectation result: You can control the smart robot by pressing down the numeric
keys on the infrared remote controller, in which, “2”is for go forwards, “8” for
go backwards, “4” for turn left, “6” for turn right, and “5” for stop. Keys “-
“ and “+” can adjust the speed of the robot, and “EQ” can restore the default
(Note: The key encoding may change with different Infrared remote controller. You
cd ~/AlphaBot2/python
sudo python Infrared_Obstacle_Avoidance.py
When there is no obstacle ahead of the robot, the green LED on the robot is off.
When the obstacle is detected, the green LED will light up. In case that the LED is
always off or always on, you can try to adjusted the potentiometers on the bottom
Expectation result: The robot goes straight when there is no obstacle detected by
the sensor on the left, and turns right when obstacle is detected.
cd ~/AlphaBot2/python
sudo python Ultrasonic_Rangeing.py
Expectation result: The terminal will display the current measured distance.
cd ~/AlphaBot2/python
sudo python Infrared_Obstacle_Avoidance.py
Expectation result: The robot goes straight when there is no obstacle detected by
the sensor on the left, and turns right when obstacle is detected.
RGB LED
Install libraries:
Expectation result:
The four RGB LEDs on the bottom of the smart robot will be in red, green, blue and
yellow, respectively.
If they display the wrong color, you can find out the file /boot/config.txt and add
the lines below into it. Restart the module to make the lines take effect. The RGB
LED use DMA control, which can occupy the audio output DMA channels on the
Raspberry Pi. So, adding these lines may cause the earphone interface to be
unavailable.
hdmi_force_hotplug=1
hdmi_force_edid_audio=1
cd ~/AlphaBot2/python
sudo python TRSensors.py
Expectation result: You can see five set of data printed on the terminal, they are
corresponding to five sensors. When the smart robot is placed on the white KT
board, the data value will be in the range of 800~900. When it is held in the air, the
value can be in the range of 0~100. And, when it on the black line, the value can be
cd ~/AlphaBot2/python
sudo python LineFollow.py
Expectation result: While the program is running, the smart robot goes into the
calibration mode, moving to left and then right. When the calibration finished, you
can swing the smart robot side to side, and the terminal will display the current
position of the black line and the values of five sensors. Place the smart robot on
the black line, and press down the center key on the joystick. Now, you can see the
smart robot run along with the black line, and the RGB LEDs on the bottom of the
Servo
sudo raspi-config
cd ~/AlphaBot2/python
sudo python PCA9685.py
Expectation result::The servo will move to left and right, and its rotational range
"MJPG-streamer" takes JPGE from the web camera, and streams them over an IP-
a) Run the command raspi-config to start up the camera before using it:
sudo raspi-config
b) For the camera with CSI interface, the system may be unable to find out the
device under the directory of /dev/video0. In this case, you should add a line,
c) After reboot, the system will load the module name stored in this file, and find
Note: After performing the steps a), b) and c), if you still cannot find out the device
video0 under the directory of /dev, and all the operations and commands are
Then, open the browser (recommend Chrome), and enter the IP address of RPi and
the port number: 8080 into the address bar. The website will show the information
about the M-JPEG streamer. Click the option Stream, it will real-time display the
For more information about mjpg-steamer, you can refer to this link:
https://github.com/jacksonliam/mjpg-streamer
Under the terminal, pressing the keys Ctrl + C can end the program. However, we
recommend you to keep the program running, since we still need it in the following
operations.
Bottle is a simple and effective micro python Web framework complying with WSGI. By
Bottle, you can fast and easily implement Web control.
cd ~/AlphaBot2/Web-RGB
sudo python main.py
3) Then, enter the IP address of your Pi and the port number 8002 into the address bar
of the browser. Clicking different position of the pallet, you can see RGB LED displays
different colors. There are 3 display modes selectable, static, breath and flash.
(Note: This web-RGB program only support the mobile phone browser. It is unavailable for
PC browser.)
To implement web video control the smart robot by Bottle, you should modify the
cd ~/AlphaBot2/Web-Control
sudo python main.py
Then, open the browser, and enter the IP address of RPi and the port number: 8000
into the address bar. (Notices: the port number here is 8000, other than 8080.) Then,
you can see the following webpage. Clicking the direction icon on the website can
You can set the program to be started up on boot. Open the file /etc/rc.local with
sudo vi /etc/rc.local
Add the commands following the comments. Please make sure the line exit 0 is the
cd /home/pi/AlphaBot2/Web-Contrl
sudo python main.py &
Since the Raspberry Pi uses dynamic IP which may change each time the device
restart, you can add the following lines under the directory of /etc/dhcpcd.comf to
interface wlan0
static ip_address = 192.168.1.114/24
static routers = 192.168.1.1
To implement video control the smart robot via the software on your mobile phone
cd ~/AlphaBot2/App-Control
vi main.py
Find out the line below, and change the IP address to the actual RPI address and set
Host = '192.168.10.235'
cd /home/pi/AlphaBot2/mjpg-streamer/ mjpg-streamer-experimental
sudo ./start.sh
Run the program AlphaBot.exe on your PC, and enter the IP address, the port
Click the button Viedeo Connet to connect to the video. When the connection is
built up, the button will turn to green. Then, click the button Cmd Connect to
connect to the smart robot sever. You will see the button turn to green, if the
connection is successful. Now, you can control the action of the smart robot by
pressing down the keys on the left, and control the camera and steer by the keys
on the right.
Then, scan the QR code below with your mobile phone, and download the relative
APP.
Enter the actual IP address of RPi, and click the button Connect. Then, you can see
the images captured by the camera. Next, click the button Connect under the image.
When the control port has been connected to the program, this button will change
from green to blue. Now, you can control the actions of the smart robot and the
steer by pressing down the corresponding keys. By dragging the slider, you can
Open the file /etc/rc.local with your editor to add the following commands:
sudo vi /etc/rc.local
Add the commands following the comments. Please make sure the line exit 0 is the
cd /home/pi/AlphaBot/App-Contrl
sudo python main.py &
You should connect the Raspberry Pi to the router at every restart. Of course, you
can enable the AP function of the RPi wireless network adapter, taking the RPi as
sever. For more information about the operation, please refer to the Raspberry Pi
tutorial.
1) Upgrade the relative packages of the Bluetooth, and install the depended-upon
software.
sudo reboot
sudo vi /etc/systemd/system/dbus-org.bluez.service
After restarted the RPi, enter the command hciconfig (similar to the command
If the Bluetooth has been working, you will see the device hci0 displayed on the
screen. When the Bluetooth does not work, no Bluetooth device can be identified.
Input the following command to enter the Bluetooth control interface (you can
input the command help to check the command list after entered the interface).
sudo bluetoothctl
agent on
After entered the interface, input the following lines (you can input the command
agent on
default-agent
Following the scan on, you can see the physical address of the scanned Bluetooth
For Bluetooth pairing, use the following command (In here, XX:XX:XX:XX:XX:XX can
be replaced to your device address. For Android mobile phone, you can check the
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
connect XX:XX:XX:XX:XX:XX
At last, enter the command quit to exit the interface. After the settings above, as
the Bluetooth device is turned on, the Raspberry Pi will automatically connect to it.
Note: If you are unable to build up the connection with the command line, you can
Select the corresponding Bluetooth device. Please make sure the Bluetooth on the
On the RPi, select the option OK for pairing. And at the same time, on the mobile
Then, you may see the prompt saying that “Paired successfully, but this device has
cd /AlphaBot2/Bluetooth-Control
Then, scan the QR code below with your mobile phone, and download the relative
APP. (This is the software for controlling the Dual-mode Bluetooth module. If you
has installed this software in your Arduino mobile phone, you can skip this step)
Start the APP, and click the option Scan. (Note: please make sure the Bluetooth on
your mobile phone is turned on) Normally, you can see the relative Bluetooth
devices in the list. Then, select the option “raspberrypi”. Go to the next page, and
If the Bluetooth of the Raspberry PI cannot be searched, you can run the following
FAQ
Question 1: Comparing with AlphaBot, is there any improvement on AlphaBot2?
Answer:
⚫ AlphaBot2 has a smarter dimensions and more stable structure. Sensors are
⚫ TB6612FNG motor driver chip with high efficiency, smarter dimensions, and no
⚫ Increase more peripherals for debugging, such as keys, buzzer, RBG LED, USB
⚫ PCA9685 steer control chip, able to avoid jittering when using Raspberry Pi
⚫ Provide much more programs. For Raspberry Pi, it has Andiron App video
control and on-board Bluetooth remote control. For PC, it provide Qt software
control.
Answer: It uses 14500 type battery which is in the diameter of 14mm and length of
50mm. For a single battery, its rate voltage is 3.7V, full voltage is 4.2V, and its
lowest voltage should not be lower than 2.75V, or else the battery may be
permanently damaged. This battery has a same dimensions with AA battery. But
you should not use the AA battery to replace it, since the AA battery cannot provide
enough voltage.
Question 3: Why the smart robot cannot perform infrared obstacle avoidance?
Answer: Firstly, you should check the whether the infrared detection module on the
smart robot works properly. When there is no obstacle ahead of the robot, the green
LEDs on the robot are off. When the obstacle is detected, the green LEDs will light
up. In case that the LEDs are always off or always on, you can try to adjusted the
potentiometers on the bottom of the robot to make the LEDs work properly.
Question 4: What can I do, if the motion of the smart robot is wrong?
Answer: In case that the direction of motion is wrong, you may need to change the
Answer: The rotational range of the steer can reach 180 degree. In normal condition,
the steer can turn to left at 90 degree, and turn to right at 90 degree as well. If there
is a big difference between the both sides, you should reassemble the steer and
make adjustment.
Answer: If there is low battery, the smart robot will move slowly. Normally, when the
Raspberry Pi shuts down or become unable to connect, you should charge the
battery. When the battery voltage is low, you should stop using the battery, or else
Question 7: Can other MCUs control the base board of the smart robot?
Answer: Of course, they can. We have provided the schematic diagram and the
dimension diagram of the smart robot for users to perform secondary development.
Safety Precautions
Notice
Please reserve the following information for
future use.
Caution
⚫ The product employs two series 14500 batteries for power supply with input
voltage of 7.4V. When working with Arduino and Raspberry Pi at a same time,
the external power supply should be applied. Any external power supply has to
obey to the regulations and standards of power supply for your area.
⚫ The disassembly chassis should be placed on the stable, flat and non-
⚫ Installing the incompatible device to the chassis may cause damage and void
the warranty.
⚫ The product should not expose to water and moisture, or not be placed on
⚫ AlphaBot2 should not touch any heat source, to make sure reliability service
⚫ Protect the printed circuit board and the components on it from mechanical or
⚫ Avoid touching the energized printed circuit board in the course of any
operations. Touching the edge of the board is allowed, which can reduce the