Word2wiki bal gsq

From Terasic Wiki

(Difference between revisions)
Jump to: navigation, search
Line 50: Line 50:
:[[#RefHeadingToc512004914|7.2 NIOS Version Restoring]][[#RefHeadingToc512004914|25]]
:[[#RefHeadingToc512004914|7.2 NIOS Version Restoring]][[#RefHeadingToc512004914|25]]
-
[[#RefHeadingToc512004915|Additional Information]][[#RefHeadingToc512004915|28]]= {{anchor|RefHeadingToc512004885}} <span style="color:#000080;">Introduction</span> =
+
[[#RefHeadingToc512004915|Additional Information]][[#RefHeadingToc512004915|28]]= <span style="color:#000080;">Introduction</span> =
-
Based on the Terasic DE10-Nano SoC board platform, designed and manufactured independently by Terasic, the Self-Balancing Robot is a Multi-functional kit. It can implement advanced features like object following, obstacle avoidance and so on. It can also be remote controlled by an Android Smartphone’s APP and IR remote control. This guide describes in detail how users can make the robot work.== {{anchor|RefHeadingToc512004886}} Package Contents ==
+
Based on the Terasic DE10-Nano SoC board platform, designed and manufactured independently by Terasic, the Self-Balancing Robot is a Multi-functional kit. It can implement advanced features like object following, obstacle avoidance and so on. It can also be remote controlled by an Android Smartphone’s APP and IR remote control. This guide describes in detail how users can make the robot work.== Package Contents ==
<span style="color:#666699;">'''Figure  1 -1'''</span>shows the package contents of the Self-Balancing Robot kit
<span style="color:#666699;">'''Figure  1 -1'''</span>shows the package contents of the Self-Balancing Robot kit
Line 60: Line 60:
<div style="text-align:center;color:#000000;">[[Image:图片 2.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 2.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508869407}} '''Figure 1‑1 Self-Balancing Robot package'''</div>
+
<div style="text-align:center;"> '''Figure 1‑1 Self-Balancing Robot package'''</div>
The Self-Balancing Robot kit package contents:
The Self-Balancing Robot kit package contents:
Line 76: Line 76:
⑥ Micro USB Cable
⑥ Micro USB Cable
-
⑦ Quick Start Guide= {{anchor|RefHeadingToc512004887}} <span style="color:#000080;">Components and Functions</span> =
+
⑦ Quick Start Guide= <span style="color:#000080;">Components and Functions</span> =
-
== {{anchor|RefHeadingToc512004888}} Parts and Functions ==
+
== Parts and Functions ==
This chapter will describe the robot’s components and the functions of the components, such as the ultrasonic module, motors, wheels and driving board power interface. Figure  2 -2, Figure  2 -3, Figure  2 -4and Figure  2 -5show all the components and specify their function.  
This chapter will describe the robot’s components and the functions of the components, such as the ultrasonic module, motors, wheels and driving board power interface. Figure  2 -2, Figure  2 -3, Figure  2 -4and Figure  2 -5show all the components and specify their function.  
Line 84: Line 84:
<div style="text-align:center;color:#000000;">[[Image:图片 1.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 1.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984540}} '''Figure 2‑2 Self-Balancing Robot components'''</div>
+
<div style="text-align:center;"> '''Figure 2‑2 Self-Balancing Robot components'''</div>
⑴ Ultrasonic module:implements obstacle avoidance.
⑴ Ultrasonic module:implements obstacle avoidance.
Line 96: Line 96:
<div style="text-align:center;color:#000000;">[[Image:图片 3.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 3.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984545}} '''Figure 2‑3 Self-Balancing Robot components'''</div>
+
<div style="text-align:center;"> '''Figure 2‑3 Self-Balancing Robot components'''</div>
⑸ Ethernet port:implements connecting to the ethernet when users develop their own designs on the Self-Balancing robot.
⑸ Ethernet port:implements connecting to the ethernet when users develop their own designs on the Self-Balancing robot.
Line 106: Line 106:
<div style="text-align:center;color:#000000;">[[Image:图片 4.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 4.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984552}} '''Figure 2‑4 Self-Balancing Robot components'''</div>
+
<div style="text-align:center;"> '''Figure 2‑4 Self-Balancing Robot components'''</div>
⑻ DE10-Nano Development Board power supply jack:5V power supply port.
⑻ DE10-Nano Development Board power supply jack:5V power supply port.
Line 120: Line 120:
⒀ Battery power output plug:connect to motor driver board power port.
⒀ Battery power output plug:connect to motor driver board power port.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK7}} {{anchor|OLELINK24}} {{anchor|OLELINK23}} [[Image:图片 5.png|top]]</div>
+
<div style="text-align:center;color:#000000;">   [[Image:图片 5.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984557}} '''Figure 2‑5 Self-Balancing robot components'''</div>
+
<div style="text-align:center;"> '''Figure 2‑5 Self-Balancing robot components'''</div>
⒁ Battery charging jack:connects the charger to charge the battery.
⒁ Battery charging jack:connects the charger to charge the battery.
Line 131: Line 131:
-
== {{anchor|RefHeadingToc512004889}} DE10-Nano Kit and Motor Driver Board ==
+
== DE10-Nano Kit and Motor Driver Board ==
The Self-Balancing Robot control system consist two boards, Terasic DE10-Nano FPGA board and Motor Driver board (BAL board) as shown in Figure  2 -6. The FPGA on the DE10-Nano is responsible for all the functions of the balance and control system. The motor driver board receives the control signal from the de10-nano to control the motor rotation. There are also some sensors and communication devices on the motor driver board. These devices can provide the status data of the robot and external communication interface to FPGA. For detailed hardware information, please refer to 03_Hardware_Manual.pdf which can be found in the CD package.  
The Self-Balancing Robot control system consist two boards, Terasic DE10-Nano FPGA board and Motor Driver board (BAL board) as shown in Figure  2 -6. The FPGA on the DE10-Nano is responsible for all the functions of the balance and control system. The motor driver board receives the control signal from the de10-nano to control the motor rotation. There are also some sensors and communication devices on the motor driver board. These devices can provide the status data of the robot and external communication interface to FPGA. For detailed hardware information, please refer to 03_Hardware_Manual.pdf which can be found in the CD package.  
Line 137: Line 137:
<div style="text-align:center;color:#ff0000;">[[Image:SNAGHTML299ca13.png|top]]</div>
<div style="text-align:center;color:#ff0000;">[[Image:SNAGHTML299ca13.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509046024}} '''Figure 2‑6 DE10-Nano and Motor Driver Board'''</div>= {{anchor|RefHeadingToc512004890}} <span style="color:#000080;">Setup Elements</span> =
+
<div style="text-align:center;"> '''Figure 2‑6 DE10-Nano and Motor Driver Board'''</div>= <span style="color:#000080;">Setup Elements</span> =
-
This chapter will introduce the switches and buttons that can be set on the Self-Balancing Robot. It explains the meaning and function of the setting. {{anchor|OLELINK29}} == {{anchor|RefHeadingToc512004891}} Configuration Mode Switches ==
+
This chapter will introduce the switches and buttons that can be set on the Self-Balancing Robot. It explains the meaning and function of the setting. == Configuration Mode Switches ==
The Self-Balancing Robot equips a Cyclone SoC FPGA, which means that the ARM processor is embedded in the FPGA. Therefore, there are two processor options available to control the Robot. One is to use the ARM processor and the other is implement a NIOS II processor in the FPGA. The kit provides the factory code for both processor. To switch between these two processor modes, user need to select via the mode select switch(MSEL[4:0]).  
The Self-Balancing Robot equips a Cyclone SoC FPGA, which means that the ARM processor is embedded in the FPGA. Therefore, there are two processor options available to control the Robot. One is to use the ARM processor and the other is implement a NIOS II processor in the FPGA. The kit provides the factory code for both processor. To switch between these two processor modes, user need to select via the mode select switch(MSEL[4:0]).  
-
If user want to select ARM to control the robot, the MSEL[4:0] needs to switch to "01010"{{anchor|OLELINK26}} , as shown in Figure  3 -7. Thus, when the robot is power on, the FPGA will boot from the Micro SD card and run the Linux by ARM processor to control the robot.  
+
If user want to select ARM to control the robot, the MSEL[4:0] needs to switch to "01010" , as shown in Figure  3 -7. Thus, when the robot is power on, the FPGA will boot from the Micro SD card and run the Linux by ARM processor to control the robot.  
-
<div style="text-align:center;">{{anchor|OLELINK27}} [[Image:图片 33.png|top]]</div>
+
<div style="text-align:center;"> [[Image:图片 33.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983297}} '''Figure 3‑7 Set MSEL[4:0] to 01010'''</div>
+
<div style="text-align:center;"> '''Figure 3‑7 Set MSEL[4:0] to 01010'''</div>
When MSEL[4:0] is set to "10010", as shown in Figure  3 -8.The FPGA will boot from the configuration device(EPCS). Then, after FPGA is configured, the NIOS II processor will control the robot. For users who is beginners to learn FPGA, using NIOS II processor will be easier than deal with the ARM processor.  
When MSEL[4:0] is set to "10010", as shown in Figure  3 -8.The FPGA will boot from the configuration device(EPCS). Then, after FPGA is configured, the NIOS II processor will control the robot. For users who is beginners to learn FPGA, using NIOS II processor will be easier than deal with the ARM processor.  
-
<div style="text-align:center;">{{anchor|OLELINK93}} {{anchor|OLELINK36}} [[Image:图片 32.png|top]]</div>
+
<div style="text-align:center;"> [[Image:图片 32.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983400}} '''Figure 3‑8 Set MSEL[4:0] to 10010'''{{anchor|OLELINK33}} </div>== {{anchor|RefHeadingToc512004892}} Operation Mode Switches ==
+
<div style="text-align:center;"> '''Figure 3‑8 Set MSEL[4:0] to 10010''' </div>== Operation Mode Switches ==
Figure  3 -9shows the SW0 and SW1 on the DE10-Nano board, Table  3 -1describes the corresponding modes and functions when SW0 and SW1 are set to different positions.  
Figure  3 -9shows the SW0 and SW1 on the DE10-Nano board, Table  3 -1describes the corresponding modes and functions when SW0 and SW1 are set to different positions.  
Line 162: Line 162:
<div style="text-align:center;color:#ff0000;">[[Image:图片 6.png|top]]</div>
<div style="text-align:center;color:#ff0000;">[[Image:图片 6.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983605}} '''Figure 3‑9 SW0 and SW1 on DE10-Nano board'''</div>
+
<div style="text-align:center;"> '''Figure 3‑9 SW0 and SW1 on DE10-Nano board'''</div>
-
<div style="color:#000000;margin-left:0cm;margin-right:0cm;">{{anchor|OLELINK99}} {{anchor|OLELINK98}} {{anchor|OLELINK97}} {{anchor|OLELINK96}} {{anchor|Ref508983775}} '''Table 3‑1 SW0 and SW1 purpose'''</div>
+
<div style="color:#000000;margin-left:0cm;margin-right:0cm;">     '''Table 3‑1 SW0 and SW1 purpose'''</div>
Line 191: Line 191:
|-
|-
|}
|}
-
== {{anchor|RefHeadingToc512004893}} LEDs on the Motor Driver Board{{anchor|OLELINK38}} {{anchor|OLELINK39}}  ==
+
== LEDs on the Motor Driver Board   ==
Figure  3 -10shows the LED1 and LED2 on the motor driver board, Table  3 -2describes the functions of LED1 and LED2.  
Figure  3 -10shows the LED1 and LED2 on the motor driver board, Table  3 -2describes the functions of LED1 and LED2.  
Line 197: Line 197:
<div style="text-align:center;color:#ff0000;"><span style="color:#000000;">[[Image:图片 7.png|top]]</span><span style="color:#000000;">­</span></div>
<div style="text-align:center;color:#ff0000;"><span style="color:#000000;">[[Image:图片 7.png|top]]</span><span style="color:#000000;">­</span></div>
-
<div style="text-align:center;">{{anchor|Ref508983412}} '''Figure 3‑10 LED1 and LED2 on the motor driver board'''</div>
+
<div style="text-align:center;"> '''Figure 3‑10 LED1 and LED2 on the motor driver board'''</div>
-
<div style="margin-left:0cm;margin-right:0cm;">{{anchor|Ref508984772}} <span style="color:#000000;">'''Table </span><span style="color:#000000;">3</span><span style="color:#000000;">‑</span><span style="color:#000000;">2</span><span style="color:#000000;"> '''</span>Motor driver board LEDs functions</div>
+
<div style="margin-left:0cm;margin-right:0cm;"> <span style="color:#000000;">'''Table </span><span style="color:#000000;">3</span><span style="color:#000000;">‑</span><span style="color:#000000;">2</span><span style="color:#000000;"> '''</span>Motor driver board LEDs functions</div>
Line 214: Line 214:
|-
|-
|}
|}
-
== {{anchor|RefHeadingToc512004894}} LEDs on DE10-Nano Board ==
+
== LEDs on DE10-Nano Board ==
Figure  3 -11shows the 3.3V power LED, CONF_D LED and other LEDS on the DE10-Nano board, Table  3 -3describes the LEDs functions.  
Figure  3 -11shows the 3.3V power LED, CONF_D LED and other LEDS on the DE10-Nano board, Table  3 -3describes the LEDs functions.  
-
<div style="text-align:center;">{{anchor|OLELINK48}} [[Image:图像2.png|top]]</div>
+
<div style="text-align:center;"> [[Image:图像2.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983803}} '''Figure 3‑11 Indicator LEDs on DE10-Nano board'''</div>
+
<div style="text-align:center;"> '''Figure 3‑11 Indicator LEDs on DE10-Nano board'''</div>
-
<div style="margin-left:0cm;margin-right:0cm;">{{anchor|Ref508984781}} <span style="color:#000000;">'''Table </span><span style="color:#000000;">3</span><span style="color:#000000;">‑</span><span style="color:#000000;">3</span><span style="color:#000000;"> '''</span>Indicator LEDs on the DE10-Nano board</div>
+
<div style="margin-left:0cm;margin-right:0cm;"> <span style="color:#000000;">'''Table </span><span style="color:#000000;">3</span><span style="color:#000000;">‑</span><span style="color:#000000;">3</span><span style="color:#000000;"> '''</span>Indicator LEDs on the DE10-Nano board</div>
Line 274: Line 274:
|-
|-
|}
|}
-
<span style="color:#ff0000;">Note: When LED3~0 are all lit indicates the robot is in DEMO mode.</span>= {{anchor|RefHeadingToc512004895}} <span style="color:#000080;">Basic Operations</span> =
+
<span style="color:#ff0000;">Note: When LED3~0 are all lit indicates the robot is in DEMO mode.</span>= <span style="color:#000080;">Basic Operations</span> =
-
This chapter illustrates the basic operations on how to start the robot when users receive it. {{anchor|OLELINK45}} == {{anchor|RefHeadingToc512004896}} Connect Power Port ==
+
This chapter illustrates the basic operations on how to start the robot when users receive it. == Connect Power Port ==
Remove the red protective cap from the output plug of the battery power, as shown in Figure  4 -12.
Remove the red protective cap from the output plug of the battery power, as shown in Figure  4 -12.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK49}} [[Image:图片 16.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 16.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983812}} '''Figure 4‑12 Remove the protective cap'''</div>
+
<div style="text-align:center;"> '''Figure 4‑12 Remove the protective cap'''</div>
Insert the output plug of battery power into the input port of the motor driver board, as shown in Figure  4 -13.
Insert the output plug of battery power into the input port of the motor driver board, as shown in Figure  4 -13.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK55}} [[Image:图片 17.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 17.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983819}} '''Figure 4‑13 {{anchor|OLELINK51}} Connect the battery power connector to the power input port'''</div>== {{anchor|RefHeadingToc512004897}} Power on the Robot ==
+
<div style="text-align:center;"> '''Figure 4‑13 Connect the battery power connector to the power input port'''</div>== Power on the Robot ==
Place the robot on the plane, keep it in a horizontal state, then set the power switch of the motor driver board to ON position, as shown in Figure  4 -14<span style="color:#666699;"><span style="color:#000000;">.</span></span>
Place the robot on the plane, keep it in a horizontal state, then set the power switch of the motor driver board to ON position, as shown in Figure  4 -14<span style="color:#666699;"><span style="color:#000000;">.</span></span>
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK57}} {{anchor|OLELINK56}} [[Image:图片 14.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 14.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983829}} '''Figure 4‑14 Set SW1 to ON position'''</div>
+
<div style="text-align:center;"> '''Figure 4‑14 Set SW1 to ON position'''</div>
-
== {{anchor|RefHeadingToc512004898}} Keep a Balanced State ==
+
== Keep a Balanced State ==
-
When the LED7 on the DE10-Nano board is lit, please release the robot, it will keep {{anchor|OLELINK60}} {{anchor|OLELINK61}} balance automatically, as shown in Figure  4 -15.
+
When the LED7 on the DE10-Nano board is lit, please release the robot, it will keep   balance automatically, as shown in Figure  4 -15.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK59}} [[Image:图片 15.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 15.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983835}} '''Figure 4‑15 LED7 lights on shows the robot is in balance state'''</div>== {{anchor|RefHeadingToc512004899}} Attitude Control ==
+
<div style="text-align:center;"> '''Figure 4‑15 LED7 lights on shows the robot is in balance state'''</div>== Attitude Control ==
-
The robot can perform posture recognition in real time through the acceleration sensor and the gyroscope and achieve balance by controlling the motors and adjusting the posture. For example, pick up the robot, it will detect that its current state is not in a horizontal state, when the robot is placed on a horizontal plane, the robot will access its current balance status and adjust accordingly and keeping it in balanced state without any external help. If an external force causes the robot to tilt forward, the motors will quickly produce the forward motion torque to compensate for the angle of the tilt and maintain the balance of the robot. If an irregular object is placed on the robot, the robot body will maintain balance.= {{anchor|RefHeadingToc512004900}} <span style="color:#000080;">Advanced Features Demonstration</span> =
+
The robot can perform posture recognition in real time through the acceleration sensor and the gyroscope and achieve balance by controlling the motors and adjusting the posture. For example, pick up the robot, it will detect that its current state is not in a horizontal state, when the robot is placed on a horizontal plane, the robot will access its current balance status and adjust accordingly and keeping it in balanced state without any external help. If an external force causes the robot to tilt forward, the motors will quickly produce the forward motion torque to compensate for the angle of the tilt and maintain the balance of the robot. If an irregular object is placed on the robot, the robot body will maintain balance.= <span style="color:#000080;">Advanced Features Demonstration</span> =
-
Based on the DE10-Nano SoC FPGA platform, Terasic’s Self-Balancing Robot can implement attitude algorithm, perform motion control, and execute movements autonomously, such as moving forward, turning right & left, power monitoring, object following and obstacle avoidance. Line following and obstacle avoidance are described below. {{anchor|OLELINK65}} == {{anchor|RefHeadingToc512004901}} Obstacle avoidance demonstrate ==
+
Based on the DE10-Nano SoC FPGA platform, Terasic’s Self-Balancing Robot can implement attitude algorithm, perform motion control, and execute movements autonomously, such as moving forward, turning right & left, power monitoring, object following and obstacle avoidance. Line following and obstacle avoidance are described below. == Obstacle avoidance demonstrate ==
Once the ultrasonic module is assembled on the robot, object following and obstacle avoidance can be implemented with the module.  
Once the ultrasonic module is assembled on the robot, object following and obstacle avoidance can be implemented with the module.  
Line 317: Line 317:
When the robot is in default mode and obstacle avoidance is on (SW[1:0] is on “10” position, as shown in Table  3 -1), if the ultrasonic sensor detects the obstacle is in front of the robot and the distance is within 10 cm, the robot will stop automatically, which will implement the obstacle avoidance function, as shown in Figure  5 -16.
When the robot is in default mode and obstacle avoidance is on (SW[1:0] is on “10” position, as shown in Table  3 -1), if the ultrasonic sensor detects the obstacle is in front of the robot and the distance is within 10 cm, the robot will stop automatically, which will implement the obstacle avoidance function, as shown in Figure  5 -16.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK66}} [[Image:图片 30.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 30.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983855}} '''Figure 5‑16 Obstacle avoidance demonstrate'''</div>
+
<div style="text-align:center;"> '''Figure 5‑16 Obstacle avoidance demonstrate'''</div>
When the robot is in object following and obstacle avoidance mode (SW[10] is on “01” position, as shown in Table  3 -1), and if the ultrasonic sensor detects the object is in front of the robot and the distance is within 10 cm, the robot will automatically move backward to avoiding object. When an object is in front of the ultrasonic module and moves slowly and the distance is within 10 cm~20 cm, the robot will continue to move along with the object, which will implement the object following function, as shown in Figure  5 -17.
When the robot is in object following and obstacle avoidance mode (SW[10] is on “01” position, as shown in Table  3 -1), and if the ultrasonic sensor detects the object is in front of the robot and the distance is within 10 cm, the robot will automatically move backward to avoiding object. When an object is in front of the ultrasonic module and moves slowly and the distance is within 10 cm~20 cm, the robot will continue to move along with the object, which will implement the object following function, as shown in Figure  5 -17.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK81}} [[Image:图片 31.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 31.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983864}} '''Figure 5‑17 Object following demonstrate'''{{anchor|OLELINK73}} {{anchor|OLELINK87}} </div>== {{anchor|OLELINK32}} {{anchor|OLELINK31}} {{anchor|RefHeadingToc512004902}} {{anchor|OLELINK68}} Smartphone APP Control ==
+
<div style="text-align:center;"> '''Figure 5‑17 Object following demonstrate''' </div>==     Smartphone APP Control ==
-
{{anchor|OLELINK72}} {{anchor|OLELINK71}} {{anchor|OLELINK70}} {{anchor|OLELINK69}} The robot can be remote controlled by a Smartphone APP, this section describes how to control the robot by APP{{anchor|OLELINK80}} .=== Android APP Control ===
+
    The robot can be remote controlled by a Smartphone APP, this section describes how to control the robot by APP .=== Android APP Control ===
-
* <div style="margin-left:0.85cm;margin-right:0cm;">{{anchor|OLELINK75}} '''Download APP '''</div>
+
* <div style="margin-left:0.85cm;margin-right:0cm;"> '''Download APP '''</div>
Line 339: Line 339:
After the installation is completed, the APP icon is shown as Figure  5 -19,
After the installation is completed, the APP icon is shown as Figure  5 -19,
-
<div style="text-align:center;">{{anchor|OLELINK82}} [[Image:图像3.png|top]]</div>
+
<div style="text-align:center;"> [[Image:图像3.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983877}} '''Figure 5‑18 Download QR code of the APP'''</div>
+
<div style="text-align:center;"> '''Figure 5‑18 Download QR code of the APP'''</div>
<div style="text-align:center;color:#000000;">[[Image:图片 10.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 10.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983889}} '''Figure 5‑19 Android APP icon'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Connect APP and Robot '''</div>
+
<div style="text-align:center;"> '''Figure 5‑19 Android APP icon'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Connect APP and Robot '''</div>
-
{{anchor|OLELINK83}} Power on the robot, set SW0~3 of the DE10-Nano to Down position, as shown in Figure  5 -20.
+
Power on the robot, set SW0~3 of the DE10-Nano to Down position, as shown in Figure  5 -20.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK84}} [[Image:图片 11.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 11.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983896}} '''Figure 5‑20 Set SW0~3 to Down position'''</div>
+
<div style="text-align:center;"> '''Figure 5‑20 Set SW0~3 to Down position'''</div>
Turn on phone Bluetooth switch, scan for available devices, normally the robot Bluetooth device name begins with “30”, as shown in Figure  5 -21.
Turn on phone Bluetooth switch, scan for available devices, normally the robot Bluetooth device name begins with “30”, as shown in Figure  5 -21.
Line 359: Line 359:
<div style="text-align:center;">[[Image:图像4.png|top]]</div>
<div style="text-align:center;">[[Image:图像4.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983901}} '''Figure 5‑21 Scan for robot Bluetooth device'''</div>
+
<div style="text-align:center;"> '''Figure 5‑21 Scan for robot Bluetooth device'''</div>
Click the “'''30:...'''”available device to pair the robot, after they are paired successfully, the phone will show the actual name of the Bluetooth device, such as “Terasic Bal-Car 0XX”, as shown in Figure  5 -22.
Click the “'''30:...'''”available device to pair the robot, after they are paired successfully, the phone will show the actual name of the Bluetooth device, such as “Terasic Bal-Car 0XX”, as shown in Figure  5 -22.
Line 365: Line 365:
<div style="text-align:center;">[[Image:图像5.png|top]]</div>
<div style="text-align:center;">[[Image:图像5.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983909}} '''Figure 5‑22 Bluetooth device paired'''</div>
+
<div style="text-align:center;"> '''Figure 5‑22 Bluetooth device paired'''</div>
Run the robot APP, click the search icon on the upper right corner of the APP GUI, as shown in Figure  5 -23.
Run the robot APP, click the search icon on the upper right corner of the APP GUI, as shown in Figure  5 -23.
Line 371: Line 371:
<div style="text-align:center;">[[Image:图像6.png|top]]</div>
<div style="text-align:center;">[[Image:图像6.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983915}} '''Figure 5‑23 Click the search icon on the APP GUI'''</div>
+
<div style="text-align:center;"> '''Figure 5‑23 Click the search icon on the APP GUI'''</div>
When the actual robot device name appears, select it as the device to connect, as shown in Figure  5 -24.
When the actual robot device name appears, select it as the device to connect, as shown in Figure  5 -24.
-
<div style="text-align:center;">{{anchor|OLELINK85}} [[Image:图像7.png|top]]</div>
+
<div style="text-align:center;"> [[Image:图像7.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983924}} '''Figure 5‑24 Connect to robot Bluetooth device'''</div>
+
<div style="text-align:center;"> '''Figure 5‑24 Connect to robot Bluetooth device'''</div>
After connecting to the robot successfully, it will display connection status "connected to Terasic Bal-Car 0XX" at the top left corner of the APP, as shown in Figure  5 -25.
After connecting to the robot successfully, it will display connection status "connected to Terasic Bal-Car 0XX" at the top left corner of the APP, as shown in Figure  5 -25.
Line 383: Line 383:
<div style="text-align:center;">[[Image:图像8.png|top]]</div>
<div style="text-align:center;">[[Image:图像8.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983933}} '''Figure 5‑25 Connected to the robot successfully'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Control the Robot '''</div>
+
<div style="text-align:center;"> '''Figure 5‑25 Connected to the robot successfully'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Control the Robot '''</div>
Line 391: Line 391:
<div style="text-align:center;">[[Image:图像9.png|top]]</div>
<div style="text-align:center;">[[Image:图像9.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508983983}} '''Figure 5‑26 APP GUI'''</div>* Forward:robot moves forward (Ensure the ultrasonic module is installed)  
+
<div style="text-align:center;"> '''Figure 5‑26 APP GUI'''</div>* Forward:robot moves forward (Ensure the ultrasonic module is installed)  
* Backward:robot moves backward
* Backward:robot moves backward
* Turn left:robot turns left
* Turn left:robot turns left
Line 405: Line 405:
-
{{anchor|OLELINK28}} {{anchor|OLELINK30}} Open the App Store on your iPhone and search for “bal_car” as shown in Figure  5 -27, then install the app:
+
  Open the App Store on your iPhone and search for “bal_car” as shown in Figure  5 -27, then install the app:
<div style="text-align:center;">[[Image:图像10.png|top]]</div>
<div style="text-align:center;">[[Image:图像10.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref511221766}} '''Figure 5‑27 iOS APP icon'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Connect APP and Robot '''</div>
+
<div style="text-align:center;"> '''Figure 5‑27 iOS APP icon'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Connect APP and Robot '''</div>
Line 417: Line 417:
<div style="text-align:center;margin-left:0.85cm;margin-right:0cm;">[[Image:图像11.png|top]]</div>
<div style="text-align:center;margin-left:0.85cm;margin-right:0cm;">[[Image:图像11.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref511289170}} '''Figure 5‑28 Initial iOS APP GUI '''</div>
+
<div style="text-align:center;"> '''Figure 5‑28 Initial iOS APP GUI '''</div>
Power on the robot, set SW0~3 of the DE10-Nano to Down position, as shown in Figure  5 -20<span style="color:#666699;">'''.'''</span>
Power on the robot, set SW0~3 of the DE10-Nano to Down position, as shown in Figure  5 -20<span style="color:#666699;">'''.'''</span>
Line 425: Line 425:
<div style="text-align:center;">[[Image:图像12.png|top]]</div>
<div style="text-align:center;">[[Image:图像12.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref511290623}} '''Figure 5‑29 The robot is shown in the APP GUI'''</div>
+
<div style="text-align:center;"> '''Figure 5‑29 The robot is shown in the APP GUI'''</div>
Click the Bluetooth device (BAL_CAR_XX), the APP will connect to the robot and shows the interactive interface for robot control, as shown in Figure  5 -30'''.'''
Click the Bluetooth device (BAL_CAR_XX), the APP will connect to the robot and shows the interactive interface for robot control, as shown in Figure  5 -30'''.'''
Line 431: Line 431:
<div style="text-align:center;">[[Image:图像13.png|top]]</div>
<div style="text-align:center;">[[Image:图像13.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref511292741}} '''Figure 5‑30 APP is connected to robot'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Control the Robot '''</div>
+
<div style="text-align:center;"> '''Figure 5‑30 APP is connected to robot'''</div>* <div style="margin-left:0.85cm;margin-right:0cm;">'''Control the Robot '''</div>
Line 439: Line 439:
<div style="text-align:center;">[[Image:图像14.png|top]]</div>
<div style="text-align:center;">[[Image:图像14.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref511293341}} '''Figure 5‑31 iOS APP Control GUI'''</div>* Forward:robot moves forward (Ensure the ultrasonic module is installed)  
+
<div style="text-align:center;"> '''Figure 5‑31 iOS APP Control GUI'''</div>* Forward:robot moves forward (Ensure the ultrasonic module is installed)  
* Backward:robot moves backward
* Backward:robot moves backward
* Turn left:robot turns left
* Turn left:robot turns left
Line 446: Line 446:
* Ultrasonic On/Off: Enable/Disable ultrasonic module for '''obstacle avoidance''' function
* Ultrasonic On/Off: Enable/Disable ultrasonic module for '''obstacle avoidance''' function
-
== {{anchor|RefHeadingToc512004910}} IR Remote Control ==
+
== IR Remote Control ==
<span style="color:#666699;">'''Figure  5 -32'''</span>shows the remote control for the robot, point IR remote control to the robot, the robot will move forward when users press key 2, the robot will stop moving when user press key 5. The key 8 is used to move the robot backward, key 4 is used to turn the robot to the left, and key 6 is used to turn the robot to the right. Table  5 -4shows the functions of each key number on the controls.
<span style="color:#666699;">'''Figure  5 -32'''</span>shows the remote control for the robot, point IR remote control to the robot, the robot will move forward when users press key 2, the robot will stop moving when user press key 5. The key 8 is used to move the robot backward, key 4 is used to turn the robot to the left, and key 6 is used to turn the robot to the right. Table  5 -4shows the functions of each key number on the controls.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK90}} [[Image:图片 23.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 23.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984000}} '''Figure 5‑32 Robot remote control'''</div>
+
<div style="text-align:center;"> '''Figure 5‑32 Robot remote control'''</div>
-
<div style="text-align:center;margin-left:0.423cm;margin-right:0cm;">{{anchor|Ref508984985}} <span style="color:#000000;">'''Table </span><span style="color:#000000;">5</span><span style="color:#000000;">‑</span><span style="color:#000000;">4</span><span style="color:#000000;"> '''</span>Remote control function keys</div>
+
<div style="text-align:center;margin-left:0.423cm;margin-right:0cm;"> <span style="color:#000000;">'''Table </span><span style="color:#000000;">5</span><span style="color:#000000;">‑</span><span style="color:#000000;">4</span><span style="color:#000000;"> '''</span>Remote control function keys</div>
Line 478: Line 478:
|-
|-
|}
|}
-
= {{anchor|RefHeadingToc512004911}} <span style="color:#000080;">Charging the battery</span> =
+
= <span style="color:#000080;">Charging the battery</span> =
The robot is powered by a three-section of lithium battery (the specific parameters of the battery can be seen outside the battery package). When the power is less than 10V, the LED4 on DE10-Nano board will light up, indicating that the battery needs to be charged in time; and the APP will also show the battery power level. If the lithium battery starts charging after it is completely drained and is completely unable to supply power to the robot, it will take up to 2 hours the battery to be fully charged. The battery charging steps are as follows:
The robot is powered by a three-section of lithium battery (the specific parameters of the battery can be seen outside the battery package). When the power is less than 10V, the LED4 on DE10-Nano board will light up, indicating that the battery needs to be charged in time; and the APP will also show the battery power level. If the lithium battery starts charging after it is completely drained and is completely unable to supply power to the robot, it will take up to 2 hours the battery to be fully charged. The battery charging steps are as follows:
Line 486: Line 486:
<div style="text-align:center;color:#000000;">[[Image:图片 24.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 24.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984022}} '''Figure 6‑33 Robot battery'''</div>
+
<div style="text-align:center;"> '''Figure 6‑33 Robot battery'''</div>
As shown in Figure  6 -34, connect the charger to battery connector.
As shown in Figure  6 -34, connect the charger to battery connector.
-
<div style="text-align:center;color:#000000;">{{anchor|OLELINK91}} [[Image:图片 25.png|top]]</div>
+
<div style="text-align:center;color:#000000;"> [[Image:图片 25.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984027}} '''Figure 6‑34 Connect charger to battery connector'''</div>
+
<div style="text-align:center;"> '''Figure 6‑34 Connect charger to battery connector'''</div>
As shown in Figure  6 -35, plug the charger into the AC 220V or 110V power outlets, after the power is fully charged, the LED on the charger will light up green, then unplug the charger.
As shown in Figure  6 -35, plug the charger into the AC 220V or 110V power outlets, after the power is fully charged, the LED on the charger will light up green, then unplug the charger.
Line 498: Line 498:
<div style="text-align:center;color:#000000;">[[Image:图片 26.png|top]]</div>
<div style="text-align:center;color:#000000;">[[Image:图片 26.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref508984033}} '''Figure 6‑35 Charge the battery'''</div>
+
<div style="text-align:center;"> '''Figure 6‑35 Charge the battery'''</div>
<div style="text-align:center;"></div>
<div style="text-align:center;"></div>
-
<div style="text-align:center;">{{anchor|OLELINK12}} </div>
+
<div style="text-align:center;"> </div>
-
= {{anchor|RefHeadingToc512004912}} <span style="color:#000080;">Restore Factory Setting</span> =
+
= <span style="color:#000080;">Restore Factory Setting</span> =
-
This chapter will introduce the switches and buttons that can be set on the Self-Balancing Robot. It explains the meaning and function of the setting. There are two versions of factory code: ARM and NIOS CPU-controlled version. So that, the following will describe the two methods of restoring.== {{anchor|OLELINK54}} {{anchor|RefHeadingToc512004913}} ARM Version Restoring ==
+
This chapter will introduce the switches and buttons that can be set on the Self-Balancing Robot. It explains the meaning and function of the setting. There are two versions of factory code: ARM and NIOS CPU-controlled version. So that, the following will describe the two methods of restoring.==   ARM Version Restoring ==
-
The factory code of AMR version is stored in the Micro SD Card. The following will describe how to restore factory code in the Micro SD Card.* <div style="margin-left:0.847cm;margin-right:0cm;">{{anchor|OLELINK46}} {{anchor|OLELINK50}} '''Required Equipment: '''</div>
+
The factory code of AMR version is stored in the Micro SD Card. The following will describe how to restore factory code in the Micro SD Card.* <div style="margin-left:0.847cm;margin-right:0cm;"> '''Required Equipment: '''</div>
-
** {{anchor|OLELINK52}} PC: Write Linux image file into SD card
+
** PC: Write Linux image file into SD card
** Micro SD Card: 8GB minimum
** Micro SD Card: 8GB minimum
** Micro SD Card reader: Write the SD Micro SD card
** Micro SD Card reader: Write the SD Micro SD card
Line 518: Line 518:
-
<div style="margin-left:1.693cm;margin-right:0cm;"></div>* <div style="margin-left:0.847cm;margin-right:0cm;">{{anchor|OLELINK53}} '''Software and file requirements:'''</div>
+
<div style="margin-left:1.693cm;margin-right:0cm;"></div>* <div style="margin-left:0.847cm;margin-right:0cm;"> '''Software and file requirements:'''</div>
** Win32DiskImager.zip: the tool which is used to write image file to Micro SD Card, it’s located at CD\Tool\
** Win32DiskImager.zip: the tool which is used to write image file to Micro SD Card, it’s located at CD\Tool\
** ''de10_nano_balance_car.zip'': the compressed demo image file for ARM version robot, it’s located at [http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1096&PartNo=4 http://www.terasic.com.tw/cgi-bin/page/archive.pl?][http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1096&PartNo=4 Language=English&No=1096&PartNo=4]
** ''de10_nano_balance_car.zip'': the compressed demo image file for ARM version robot, it’s located at [http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1096&PartNo=4 http://www.terasic.com.tw/cgi-bin/page/archive.pl?][http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1096&PartNo=4 Language=English&No=1096&PartNo=4]
Line 532: Line 532:
-
<div style="text-align:center;">{{anchor|OLELINK16}} [[Image:图像15.png|top]]</div>
+
<div style="text-align:center;"> [[Image:图像15.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509403340}} '''Figure 7‑36 Win32DiskImager window'''</div>*  
+
<div style="text-align:center;"> '''Figure 7‑36 Win32DiskImager window'''</div>*  
** Choose the drive disk of Micro SD card for Device.
** Choose the drive disk of Micro SD card for Device.
** Click “write” to start writing the image file to the microSD card. Wait until the image is written successfully.
** Click “write” to start writing the image file to the microSD card. Wait until the image is written successfully.
Line 543: Line 543:
<div style="text-align:center;color:#4a4a4a;">[[Image:图像16.png|top]]</div>
<div style="text-align:center;color:#4a4a4a;">[[Image:图像16.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509403348}} '''Figure 7‑37 Insert the Micro SD card into the robot'''</div>*  
+
<div style="text-align:center;"> '''Figure 7‑37 Insert the Micro SD card into the robot'''</div>*  
** Power on the robot then start using it.
** Power on the robot then start using it.
-
<div style="text-align:center;color:#4a4a4a;">{{anchor|OLELINK58}} [[Image:图像17.png|top]]</div>
+
<div style="text-align:center;color:#4a4a4a;"> [[Image:图像17.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509403354}} '''Figure 7‑38 Set MSEL[4:0] to "01010" for ARM Version Mode'''</div>== {{anchor|RefHeadingToc512004914}} NIOS Version Restoring ==
+
<div style="text-align:center;"> '''Figure 7‑38 Set MSEL[4:0] to "01010" for ARM Version Mode'''</div>== NIOS Version Restoring ==
The factory code of NIOS version is stored in the ECPS device. The following will describe how to restore factory code in the EPCS.* <div style="margin-left:0.847cm;margin-right:0cm;">'''Required Equipment: '''</div>
The factory code of NIOS version is stored in the ECPS device. The following will describe how to restore factory code in the EPCS.* <div style="margin-left:0.847cm;margin-right:0cm;">'''Required Equipment: '''</div>
Line 571: Line 571:
<div style="text-align:center;color:#4a4a4a;">[[Image:图像18.png|top]]</div>
<div style="text-align:center;color:#4a4a4a;">[[Image:图像18.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509403372}} '''Figure 7‑39 Connect the robot to PC via USB Mini Cable'''</div>*  
+
<div style="text-align:center;"> '''Figure 7‑39 Connect the robot to PC via USB Mini Cable'''</div>*  
** As shown in Figure  7 -40, set the mode switch (SW10) MSEL[4:0] to "10010".
** As shown in Figure  7 -40, set the mode switch (SW10) MSEL[4:0] to "10010".
Line 578: Line 578:
<div style="text-align:center;color:#4a4a4a;">[[Image:图像19.png|top]]</div>
<div style="text-align:center;color:#4a4a4a;">[[Image:图像19.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509403379}} '''Figure 7‑40 Set MSEL[4:0] to "10010" for NIOS Version Mode'''</div>*  
+
<div style="text-align:center;"> '''Figure 7‑40 Set MSEL[4:0] to "10010" for NIOS Version Mode'''</div>*  
** Copy demo_batch_jic.zip to PC and unzip it to get demo_batch_jic folder.
** Copy demo_batch_jic.zip to PC and unzip it to get demo_batch_jic folder.
** As shown in Figure  7 -41, input number 3 in the pop-up command window and click Enter key, it will start to configure the .jic file to EPCS device.
** As shown in Figure  7 -41, input number 3 in the pop-up command window and click Enter key, it will start to configure the .jic file to EPCS device.
Line 589: Line 589:
<div style="text-align:center;color:#4a4a4a;">[[Image:图像20.png|top]]</div>
<div style="text-align:center;color:#4a4a4a;">[[Image:图像20.png|top]]</div>
-
<div style="text-align:center;">{{anchor|Ref509403388}} '''Figure 7‑41 Command shell for write .jic file into EPCS device'''</div>
+
<div style="text-align:center;"> '''Figure 7‑41 Command shell for write .jic file into EPCS device'''</div>
-
= {{anchor|RefHeadingToc512004915}} <span style="color:#000080;">Additional Information</span> =
+
= <span style="color:#000080;">Additional Information</span> =
Line 658: Line 658:
-
<div style="text-align:center;">{{anchor|PictureBullets}} </div>
+
<div style="text-align:center;"> </div>

Revision as of 09:29, 5 June 2018

File:图像1.pngy94

CONTENTS


Chapter 1[[#RefHeadingToc512004885|]] Introduction1

1.1 Package Contents1

Chapter 2[[#RefHeadingToc512004887|]] Components and Functions3

2.1 Parts and Functions3
2.2 DE10-Nano Kit and Motor Driver Board6

Chapter 3[[#RefHeadingToc512004890|]] Setup Elements1

3.1 Configuration Mode Switches1
3.2 Operation Mode Switches2
3.3 LEDs on the Motor Driver Board3
3.4 LEDs on DE10-Nano Board4

Chapter 4[[#RefHeadingToc512004895|]] Basic Operations6

4.1 Connect Power Port6
4.2 Power on the Robot7
4.3 Keep a Balanced State8
4.4 Attitude Control8

Chapter 5[[#RefHeadingToc512004900|]] Advanced Features Demonstration9

5.1 Obstacle avoidance demonstrate9
5.2 Smartphone APP Control10
5.3 IR Remote Control19

Chapter 6[[#RefHeadingToc512004911|]] Charging the battery21

Chapter 7[[#RefHeadingToc512004912|]] Restore Factory Setting23

7.1 ARM Version Restoring23
7.2 NIOS Version Restoring25

Additional Information28= Introduction =


Based on the Terasic DE10-Nano SoC board platform, designed and manufactured independently by Terasic, the Self-Balancing Robot is a Multi-functional kit. It can implement advanced features like object following, obstacle avoidance and so on. It can also be remote controlled by an Android Smartphone’s APP and IR remote control. This guide describes in detail how users can make the robot work.== Package Contents ==

Figure 1 -1shows the package contents of the Self-Balancing Robot kit

File:图片 2.png
Figure 1‑1 Self-Balancing Robot package

The Self-Balancing Robot kit package contents:

① Self-Balancing Robot

② Lithium Battery

③ Lithium Battery Charger

④ IR Remote Control

⑤ Mini USB Cable

⑥ Micro USB Cable

⑦ Quick Start Guide= Components and Functions =

Contents

Parts and Functions

This chapter will describe the robot’s components and the functions of the components, such as the ultrasonic module, motors, wheels and driving board power interface. Figure 2 -2, Figure 2 -3, Figure 2 -4and Figure 2 -5show all the components and specify their function.

File:图片 1.png
Figure 2‑2 Self-Balancing Robot components

⑴ Ultrasonic module:implements obstacle avoidance.

⑵ Battery package:helps to protect the batteries and avoid bumping and damaging the battery.

⑶ Motors:drive the Self-Balancing robot wheels.

⑷ Wheels:implements the Self-Balancing robot’s movement.

File:图片 3.png
Figure 2‑3 Self-Balancing Robot components

⑸ Ethernet port:implements connecting to the ethernet when users develop their own designs on the Self-Balancing robot.

⑹ OTG port:implements Host or Device mode when users develop their own design on the Self-Balancing robot.

⑺ UART serial port:implement the communication between the board and PC when users develop their own design on the Self-Balancing robot.

File:图片 4.png
Figure 2‑4 Self-Balancing Robot components

⑻ DE10-Nano Development Board power supply jack:5V power supply port.

⑼ HDMI TX port:users can connect the Displayer to HDMI interface when they make image processing designs.

⑽ USB Blaster II port:users can download their own programs to the board through the connector.

⑾ Motor driver board power jack:connects to the battery power supply port and provides power for the Self-Balancing robot.

⑿ Main power Switch:power on or power off the Self-Balancing robot.

⒀ Battery power output plug:connect to motor driver board power port.

File:图片 5.png
Figure 2‑5 Self-Balancing robot components

⒁ Battery charging jack:connects the charger to charge the battery.

⒂ Battery:the Self-Balancing robot’s power source.



DE10-Nano Kit and Motor Driver Board

The Self-Balancing Robot control system consist two boards, Terasic DE10-Nano FPGA board and Motor Driver board (BAL board) as shown in Figure 2 -6. The FPGA on the DE10-Nano is responsible for all the functions of the balance and control system. The motor driver board receives the control signal from the de10-nano to control the motor rotation. There are also some sensors and communication devices on the motor driver board. These devices can provide the status data of the robot and external communication interface to FPGA. For detailed hardware information, please refer to 03_Hardware_Manual.pdf which can be found in the CD package.

File:SNAGHTML299ca13.png
Figure 2‑6 DE10-Nano and Motor Driver Board
= Setup Elements =


This chapter will introduce the switches and buttons that can be set on the Self-Balancing Robot. It explains the meaning and function of the setting. == Configuration Mode Switches ==

The Self-Balancing Robot equips a Cyclone SoC FPGA, which means that the ARM processor is embedded in the FPGA. Therefore, there are two processor options available to control the Robot. One is to use the ARM processor and the other is implement a NIOS II processor in the FPGA. The kit provides the factory code for both processor. To switch between these two processor modes, user need to select via the mode select switch(MSEL[4:0]).

If user want to select ARM to control the robot, the MSEL[4:0] needs to switch to "01010" , as shown in Figure 3 -7. Thus, when the robot is power on, the FPGA will boot from the Micro SD card and run the Linux by ARM processor to control the robot.

File:图片 33.png
Figure 3‑7 Set MSEL[4:0] to 01010


When MSEL[4:0] is set to "10010", as shown in Figure 3 -8.The FPGA will boot from the configuration device(EPCS). Then, after FPGA is configured, the NIOS II processor will control the robot. For users who is beginners to learn FPGA, using NIOS II processor will be easier than deal with the ARM processor.

File:图片 32.png
Figure 3‑8 Set MSEL[4:0] to 10010
== Operation Mode Switches ==

Figure 3 -9shows the SW0 and SW1 on the DE10-Nano board, Table 3 -1describes the corresponding modes and functions when SW0 and SW1 are set to different positions.

File:图片 6.png
Figure 3‑9 SW0 and SW1 on DE10-Nano board


Table 3‑1 SW0 and SW1 purpose


SW[1:0] Setting Robot mode and function Description
00 Default mode (Bluetooth and IR mode) The robot can be controlled by smartphone APP and IR remote control
10 Default mode and Obstacle Avoidance The robot can be controlled by a smartphone’s APP and IR remote control, it implements the obstacle avoidance function
01 Object following and obstacle avoidance The robot implements the object following and obstacle avoidance (In this mode, the robot will not be controlled by smartphone APP and IR remote control)
11 Debug mode Only supports ARM version robot, the control program will stop running, users need to reboot the robot or run the program again to control the robot. Normally it is used to debug the robot.

LEDs on the Motor Driver Board

Figure 3 -10shows the LED1 and LED2 on the motor driver board, Table 3 -2describes the functions of LED1 and LED2.

File:图片 7.png­
Figure 3‑10 LED1 and LED2 on the motor driver board
Table 32 Motor driver board LEDs functions


LED name Description
LED1 Indicates the power supply status to motor driver board
LED2 Indicates the motor driver board provides 5V power to the DE10-Nano board

LEDs on DE10-Nano Board

Figure 3 -11shows the 3.3V power LED, CONF_D LED and other LEDS on the DE10-Nano board, Table 3 -3describes the LEDs functions.

File:图像2.png
Figure 3‑11 Indicator LEDs on DE10-Nano board
Table 33 Indicator LEDs on the DE10-Nano board


LED name LED status Description
3.3V power LED Light On Power the DE10-Nano board with 3.3V from the GPIO interface
CONF_D Light On DE10-Nano board Configuration done
LED7 Light On Robot is keeping balanced status
LED6~5
0--Light On
1--Light off
00--robot is in default mode (Bluetooth & IR control)
01--robot is in default mode and implements obstacle avoidance function
10--robot implements object following function
LED4 Light On Battery power supply voltage is lower than 10V
LED3 Light On Robot is turning right
LED2 Light On Robot is turning left
LED1 Light On Robot is moving backward
LED0 Light On Robot is moving forward

Note: When LED3~0 are all lit indicates the robot is in DEMO mode.= Basic Operations =


This chapter illustrates the basic operations on how to start the robot when users receive it. == Connect Power Port ==

Remove the red protective cap from the output plug of the battery power, as shown in Figure 4 -12.

File:图片 16.png
Figure 4‑12 Remove the protective cap

Insert the output plug of battery power into the input port of the motor driver board, as shown in Figure 4 -13.

File:图片 17.png
Figure 4‑13 Connect the battery power connector to the power input port
== Power on the Robot ==

Place the robot on the plane, keep it in a horizontal state, then set the power switch of the motor driver board to ON position, as shown in Figure 4 -14.

File:图片 14.png
Figure 4‑14 Set SW1 to ON position


Keep a Balanced State

When the LED7 on the DE10-Nano board is lit, please release the robot, it will keep balance automatically, as shown in Figure 4 -15.

File:图片 15.png
Figure 4‑15 LED7 lights on shows the robot is in balance state
== Attitude Control ==

The robot can perform posture recognition in real time through the acceleration sensor and the gyroscope and achieve balance by controlling the motors and adjusting the posture. For example, pick up the robot, it will detect that its current state is not in a horizontal state, when the robot is placed on a horizontal plane, the robot will access its current balance status and adjust accordingly and keeping it in balanced state without any external help. If an external force causes the robot to tilt forward, the motors will quickly produce the forward motion torque to compensate for the angle of the tilt and maintain the balance of the robot. If an irregular object is placed on the robot, the robot body will maintain balance.= Advanced Features Demonstration =


Based on the DE10-Nano SoC FPGA platform, Terasic’s Self-Balancing Robot can implement attitude algorithm, perform motion control, and execute movements autonomously, such as moving forward, turning right & left, power monitoring, object following and obstacle avoidance. Line following and obstacle avoidance are described below. == Obstacle avoidance demonstrate ==

Once the ultrasonic module is assembled on the robot, object following and obstacle avoidance can be implemented with the module.

When the robot is in default mode and obstacle avoidance is on (SW[1:0] is on “10” position, as shown in Table 3 -1), if the ultrasonic sensor detects the obstacle is in front of the robot and the distance is within 10 cm, the robot will stop automatically, which will implement the obstacle avoidance function, as shown in Figure 5 -16.

File:图片 30.png
Figure 5‑16 Obstacle avoidance demonstrate

When the robot is in object following and obstacle avoidance mode (SW[10] is on “01” position, as shown in Table 3 -1), and if the ultrasonic sensor detects the object is in front of the robot and the distance is within 10 cm, the robot will automatically move backward to avoiding object. When an object is in front of the ultrasonic module and moves slowly and the distance is within 10 cm~20 cm, the robot will continue to move along with the object, which will implement the object following function, as shown in Figure 5 -17.

File:图片 31.png
Figure 5‑17 Object following demonstrate
== Smartphone APP Control ==
   The robot can be remote controlled by a Smartphone APP, this section describes how to control the robot by APP .=== Android APP Control ===
  • Download APP


Users can download and install the Android Smartphone APP by scanning the QR code below (See Figure 5 -18) or download the APP file from the link:

http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=238&No=1096&PartNo=4

After the installation is completed, the APP icon is shown as Figure 5 -19,

File:图像3.png
Figure 5‑18 Download QR code of the APP
File:图片 10.png
Figure 5‑19 Android APP icon
*
Connect APP and Robot


Power on the robot, set SW0~3 of the DE10-Nano to Down position, as shown in Figure  5 -20.
File:图片 11.png
Figure 5‑20 Set SW0~3 to Down position

Turn on phone Bluetooth switch, scan for available devices, normally the robot Bluetooth device name begins with “30”, as shown in Figure 5 -21.

File:图像4.png
Figure 5‑21 Scan for robot Bluetooth device

Click the “30:...”available device to pair the robot, after they are paired successfully, the phone will show the actual name of the Bluetooth device, such as “Terasic Bal-Car 0XX”, as shown in Figure 5 -22.

File:图像5.png
Figure 5‑22 Bluetooth device paired

Run the robot APP, click the search icon on the upper right corner of the APP GUI, as shown in Figure 5 -23.

File:图像6.png
Figure 5‑23 Click the search icon on the APP GUI

When the actual robot device name appears, select it as the device to connect, as shown in Figure 5 -24.

File:图像7.png
Figure 5‑24 Connect to robot Bluetooth device

After connecting to the robot successfully, it will display connection status "connected to Terasic Bal-Car 0XX" at the top left corner of the APP, as shown in Figure 5 -25.

File:图像8.png
Figure 5‑25 Connected to the robot successfully
*
Control the Robot


Now users can click the yellow direction keys, STOP key and DEMO key to control the robot, Figure 5 -26shows the direction keys functions.

File:图像9.png
Figure 5‑26 APP GUI
* Forward:robot moves forward (Ensure the ultrasonic module is installed)
  • Backward:robot moves backward
  • Turn left:robot turns left
  • Turn right:robot turns right
  • STOP:robot stops moving
  • Ultrasonic On/Off: Enable/Disable ultrasonic module for obstacle avoidance function
  • DEMO mode:when clicking the DEMO button, the robot will perform the scheduled action. After finishing the action, it will exit the DEMO mode automatically; if you click DEMO button again or click Stop button during DEMO mode, the robot will exit the DEMO mode automatically and keep balance where it is; if you click Forward/Backward/Left/Right button during the DEMO mode, the robot will exit the DEMO mode immediately, and perform the action according to the button

iOS APP Control

  • Install the APP


 Open the App Store on your iPhone and search for “bal_car” as shown in Figure  5 -27, then install the app:
File:图像10.png
Figure 5‑27 iOS APP icon
*
Connect APP and Robot


Turn on phone Bluetooth switch then run the APP, the initial APP GUI is shown as Figure 5 -28.

File:图像11.png
Figure 5‑28 Initial iOS APP GUI

Power on the robot, set SW0~3 of the DE10-Nano to Down position, as shown in Figure 5 -20.

As shown in Figure 5 -28, click the refresh icon on the top right corner of the APP GUI, the APP can detect the robot Bluetooth device, it is shown as Figure 5 -29.

File:图像12.png
Figure 5‑29 The robot is shown in the APP GUI

Click the Bluetooth device (BAL_CAR_XX), the APP will connect to the robot and shows the interactive interface for robot control, as shown in Figure 5 -30.

File:图像13.png
Figure 5‑30 APP is connected to robot
*
Control the Robot


Now users can click the yellow direction keys, STOP key to control the robot (The latest iOS version APP hasn’t DEMO key temporary), Figure 5 -31shows all the keys functions.

File:图像14.png
Figure 5‑31 iOS APP Control GUI
* Forward:robot moves forward (Ensure the ultrasonic module is installed)
  • Backward:robot moves backward
  • Turn left:robot turns left
  • Turn right:robot turns right
  • STOP:robot stops moving
  • Ultrasonic On/Off: Enable/Disable ultrasonic module for obstacle avoidance function

IR Remote Control

Figure 5 -32shows the remote control for the robot, point IR remote control to the robot, the robot will move forward when users press key 2, the robot will stop moving when user press key 5. The key 8 is used to move the robot backward, key 4 is used to turn the robot to the left, and key 6 is used to turn the robot to the right. Table 5 -4shows the functions of each key number on the controls.

File:图片 23.png
Figure 5‑32 Robot remote control
Table 54 Remote control function keys


Key numbers Function
2 Forward
5 Stop
8 Backward
4 Turn left
6 Turn right

Charging the battery

The robot is powered by a three-section of lithium battery (the specific parameters of the battery can be seen outside the battery package). When the power is less than 10V, the LED4 on DE10-Nano board will light up, indicating that the battery needs to be charged in time; and the APP will also show the battery power level. If the lithium battery starts charging after it is completely drained and is completely unable to supply power to the robot, it will take up to 2 hours the battery to be fully charged. The battery charging steps are as follows:

Power off the robot, pull out the power cable, and take the battery out of the robot’s onboard battery storage space, as shown in Figure 6 -33.

File:图片 24.png
Figure 6‑33 Robot battery

As shown in Figure 6 -34, connect the charger to battery connector.

File:图片 25.png
Figure 6‑34 Connect charger to battery connector

As shown in Figure 6 -35, plug the charger into the AC 220V or 110V power outlets, after the power is fully charged, the LED on the charger will light up green, then unplug the charger.

File:图片 26.png
Figure 6‑35 Charge the battery


Restore Factory Setting

This chapter will introduce the switches and buttons that can be set on the Self-Balancing Robot. It explains the meaning and function of the setting. There are two versions of factory code: ARM and NIOS CPU-controlled version. So that, the following will describe the two methods of restoring.== ARM Version Restoring ==

The factory code of AMR version is stored in the Micro SD Card. The following will describe how to restore factory code in the Micro SD Card.*
Required Equipment:
    • PC: Write Linux image file into SD card
    • Micro SD Card: 8GB minimum
    • Micro SD Card reader: Write the SD Micro SD card


*
Software and file requirements:


*
Steps:
    • Copy the de10_nano_balance_car.zip to PC and unzip it to get balance_car.img file.
    • Insert the Micro SD card into SD card reader and connect the card reader to PC USB port.
    • Copy Win32DiskImager.zip to PC and unzip it, execute Win32DiskImager.exe in the unzipped Win32DiskImager folder.
    • As shown in Figure 7 -36, choose de10_nano_balance_car.img for Image File.


File:图像15.png
Figure 7‑36 Win32DiskImager window
*
    • Choose the drive disk of Micro SD card for Device.
    • Click “write” to start writing the image file to the microSD card. Wait until the image is written successfully.
    • As shown in Figure 7 -37, insert the Micro SD card into the robot. And set the mode switch(SW10) MSEL[4:0] to "01010", as shown in Figure 7 -38.


File:图像16.png
Figure 7‑37 Insert the Micro SD card into the robot
*
    • Power on the robot then start using it.


File:图像17.png
Figure 7‑38 Set MSEL[4:0] to "01010" for ARM Version Mode
== NIOS Version Restoring == The factory code of NIOS version is stored in the ECPS device. The following will describe how to restore factory code in the EPCS.*
Required Equipment:
    • PC: configuring the jic file to EPCS device on the robot
    • Mini USB Cable x 1: Connect robot to PC for configuring the file


*
Software and file requirements:
    • Ensure the Intel Quartus tools is installed properly.
    • The compressed .jic file for Nios version robot, it’s located at CD\Demonstration\factory\nios\


*
Steps:
    • As shown in Figure 7 -39, Connect a USB cable to the USB Blaster II connector on the robot and the PC.


File:图像18.png
Figure 7‑39 Connect the robot to PC via USB Mini Cable
*
    • As shown in Figure 7 -40, set the mode switch (SW10) MSEL[4:0] to "10010".


File:图像19.png
Figure 7‑40 Set MSEL[4:0] to "10010" for NIOS Version Mode
*
    • Copy demo_batch_jic.zip to PC and unzip it to get demo_batch_jic folder.
    • As shown in Figure 7 -41, input number 3 in the pop-up command window and click Enter key, it will start to configure the .jic file to EPCS device.
    • After the configuration is completed, remove the USB cable. Power on the robot and verify if the code is written right.



File:图像20.png
Figure 7‑41 Command shell for write .jic file into EPCS device

Additional Information

Getting Help

Here is the contact information where you can get help if you encounter problems:*



Revision History


Date Version Changes
2018.03.16 First publication