Developing programmable robot for K12 STEAM education

STEAM is the acronym that is a group of academic disciplines, Science, Technology, Engineering, Art and Mathematics. In recent years, the STEAM has been considered as the core parts of K12 education system in many countries. Regarding this need, this paper attempts to develop a cheap, interactive and programmable robot to assist K12 students to learn STEAM effectively and friendly. The robot was developed based the open source – Ottobot. Its primary external structure was made by 3D printers, so its shape can be customized by users. In addition, its electrical and electronic devices are compatible to Arduino. The development kits of Arduino are friendly and free, so it is very suitable to new users like K12 and the students with non-engineering background. The control board applied in this study is a low-cost Arduino Nano, which includes 14 digital I/O and 8 analog I/O. Associated with ESP8266 or HC-06, the robot can be controlled remotely via Wifi or Bluetooth. In this paper, we demonstrated the graphical programming tool, called mBlock, to code the firmware of the robot. Its friendly programming interface is similar to the Scratch, which provides K12 students a friendly and useful tool to explore programming world. This paper does not only present the detail information of building a programmable robot, but also demonstrate a friendly tool to assist K12 students to learn the programming ability for developing a smart robot or AI related products.


Introduction
STEAM stands for science, technology, engineering, art, and math. It can be seen as the term integrating "Art" into the STEM. There are many papers illustrating the importance of the STEM education. The STEM has been developed more than three decades. There are many success stories occurred in the world. In early of 1990s, the Center for the Advancement of Hispanics in Science and Engineering Education (CAHSEE) opened a summer program for the talented students at the STEM institute. Their success programs have really captured people's attention as well as encouraged educators and researchers to further explore the STEM activities in various level schools. In 2001, the acronym STEM was first adopted by the National Science Foundation (NSF), and many related NSF projects were proposed in various aspects, e.g. strengthening teachers' teaching skills for STEM, developing STEM courses, creating good STEM learning circumstance for kids, and so on. The goal of the STEM education is to train talented students to become eligible people for future high-tech society. In the traditional education system, science, math, and engineering were taught separately. Students may understand a specific discipline, but they may difficult to connect the disciplines they had learned together to furtherly solve specific high-tech problems or projects. In recent years, the "Maker Movement" brought a novel thought about educating people to a "maker". "Makers" is a IOP Publishing doi:10.1088/1757-899X/1113/1/012008 2 group of talented people who owns abundant knowledge and skills in various fields. Under traditional education system, students seem hard to be educated to become a "Maker". It is the reason that many countries like to introduce the STEM into their education system. STEM puts all of needed disciplines together, and then to create better learning environment to offer students a completed education package. According to this fact, many countries like USA, Australia, Canada, and Taiwan have started to adopt the STEM in their K12 education system. In 2019, the Taiwan education administrator concentrated on two disciplines, programming and multiply languages. The "language" is the tool to assist students to link high-tech sources for exploring their desired knowledge and technologies. As for "programming", it can be seen as the important tool to let people communicate with computers. In current age, computer had deeply involved human's life. If students can learn programming in their early learning stage, it is helpful to let them to get familiar with the current digital world. In order to enhance Taiwan students' competitiveness, those two disciplines have been required in K12 school system. Regarding the "programming" discipline, many papers claim that robots are a good tool to assist young students to learn programming skills easily and happily. Therefore, this paper attempts to develop a useful tool, programmable robot for students, to assist young students, especially K12 students.

Related works
The importance of STEM education has been discussed in many papers [1][2]. Unlike the traditional education system, it focuses on not only science and mathematics, but also engineering and technology. Under traditional education system settings, students seem not able to obtain a completed knowledge to solve their practical high-tech projects which involve the knowledge and technologies in various disciplines. In 2011, US President Obama had recognized the importance of STEM for their K12 education, and he announced to increase amount of teachers in STEM. In recent years, some of educators think STEM education seems not contain enough disciplines for children. Therefore, STEM was extended to STEAM [3]. The contents of STEM are usually hard to let children understand. In 1988, Patrick McShane used robotics as learning tools to teach children efficiently. As we know, robotics plays an important role in current and future industry. Its contents are perfect to match the contents of STEAM. There are many wonderful stories about applying robotics in STEAM [4][5][6][7]. They really prove that STEAM does support children to learn the "T", "E", and "A" happily and efficiently. In addition, friendly technologies like Arduino and Visual Programming Language(VPL) are also the key to make STEAM success [8]. By this education, a completed knowledge and skills can transform students to a high-tech person to satisfy the needs of future industry. This study referred to the "Ottobot" to develop a low-cost robot and used the developed robot to assist K12 students to learn programming courses effectively. There are two types of Ottobot, wheel Ottobot and bipedal Ottobot as shown in Figure 1(a) and 1(b). In 2019, author opened a course for the IOP Publishing doi:10.1088/1757-899X/1113/1/012008 3 university students with design background. Most of deign students don't have any experience about programming. The course was used to train students to design and build Ottobot-like robot. Figure 1(c) and (d) are students' works and they all are functional. The students utilized their creative talents to design robots' shapes as well as applied their programming skills to make robots work functionally and meaningfully. Currently, 3D printer like FDM are the most common machine used by students, because its filaments are cheap and its fast print rate can support them to get their desired parts within a short time. It is their perfect tool to make their designs. The original components of Ottobot consists of 3D printed parts, Arduino, Arduino extension board, servo motors, ultrasound, and buzzer. Figure 2(a) and 2(b) show the 3D printed parts of the wheel Ottobot and bipedal Ottobot. The wheel Ottobot requires two 360 o servo motors, but bipedal Ottobot requires four 180 o servo motors. For considering to build a cheaper robot, this paper adopted Arduino Nano, as shown in the left side of Figure 2(c), associated with an extension as the core control board as shown in the right side of Figure 2(c). The extension has 14 I/O pins, 8 analog pins, 6 PWM pins, and 12C extension pins. It can control up to 14 servo motors or sensors. Many sensors can be installed in the extension to enhance the capability of the robot. For example, the ultrasound can make the robot to know obstacles. buzzers, the robot is capable of singing or making a sound. Students are able to design multi-functional robots based on the sensors they have. It can also be seen as smart robots.  As previous description, bipedal Ottobot utilizes four 180 o servo motors to simulate human walking and the wheel Ottobot depends on two 360 o servo motors to move like car moving. The motion of each leg of Biped Ottobot has two degrees of freedom(DOF). Comparing to real human, it has less DOF, so it cannot perform complicated motions. However, if the four motors are controlled appropriately, the robot can move forward, backward and perform simple dancing. As for the motion of wheel Ottobot, it is much simpler than that of the bipedal Ottobot. It can only move forward/backward and turn right/left. A Ottobot usually consists of Arduino Nano, ultrasound sensor, buzzer and servo motors.  Figure 3 shows their wiring diagrams. Each of servo motors is installed on specific pin, and then firmware is capable of communicating and controlling motors via the pins.

Hardware of the developed robot
If users like to control the robot via cell phone or the internet, the devices like HC06 and ESP8266 can support us to develop the remotely controllable robots. The HC06 as shown in Figure 4(a) is a Bluetooth transceiver module, and it can support the device to transit or receive data via the Bluetooth wireless communication. About the ESP8266 as shown in Figure 4(b), it is a Wi-Fi transceiver module, and it can support the device to send and receive data via Wi-Fi. Those two modules are compatible to Arduino Nano. With their assistances, a remotely controllable robot can be developed. Figure 4(c) is the example wiring diagram of ESP8266 associated with Arduino Nano. The total cost of the bipedal robot is less than 500 NTD.

Coding software of developed robot
This part is the key to make the developed robot to move with specific tasks. Coding courses are always difficult to K12 students. This paper attempts to offer a better learning module to allow K12 students to accomplish their coding projects easily. By this module, students are able to learn coding skills as well as to test the code by the robots simultaneously. The core control board of the robot is Arduino Nano. The Arduino IDE is the most common application used to code Arduino firmware. However, its programming interface is text-based. It seems not suitable for K12 students. According to this event, VPL was applied in this study. It allows users to code a program by simply dragging graphical code elements, e.g. Scratch. The Scratch is a famous VPL for children. Most of elementary schools promotes Scratch courses for the students whom are interested in coding. There are several available VPL for coding Arduino firmware, such as Scratch for Adruino(S4A), Ardublock, and mBlock. The above VPL are quite similar. This paper introduced mBlock to assist design students to program their robot motions as shown in Figure 5. The mBlock was developed by makeblock, but it is free to anyone. The makeblock is a commercial robotics company. The company focuses on developing and selling programmable robots for kids, its goal is to help kids to learn coding via its robots. In order to let children easy to handle coding events, they developed a block-based coding platform called mBlock. Its platform features are similar to Scratch as shown in Figure 4(a). Users can switch the coding platform to either the Scratch mode or the Arduino mode. The Arduino mode allows users to generate the Arduino code from the original block-based code. In addition, it supports many compatible Arduino boards. Its operation is convenient and friendly to instructors and new learners.
The mBlock provides a useful extension manager that allows users to create their own command blocks for their specific usages. For example, the extension with the name "Robot" collects several command blocks for handling robot motions. In this project, author had developed a group of command blocks to handle the developed Ottobot. The educators who are interested in developing STEAM courses are able to create their own blocks for their specific courses. The mBlock does provide necessary and useful functions to create better code learning environment. Figure 6 shows the IOP Publishing doi:10.1088/1757-899X/1113/1/012008 5 example codes demonstrating specific robot motions. Every robot motion can be generated based on specific robot hardware features. The code as shown in Figure 6(a) demonstrates that a bipedal robot preforms a specific gesture like "confused" when it meets an obstacle. The "gesture" block contains several "organized" robot gestures to offer students easy to develop a specific robot motion task. With the assistance of the blocks, students are able to easily program robot codes as well as to debug whether their codes and program logic are correct or not via real robot gestures. Figure 6(b) shows a series of blocks to enable a wheel robot to move forward/backward by controlling two 360 o servo motors. Unlike 180 o servo motor, 360 o servo motor always rotates continuously. It is not capable of rotating with specific angle. Two servo motors with wheels were installed on both sides of robot, so they must be rotated in opposite direction to obtain one direction movement. In this project, students can learn not only coding skills but also robot mechanism.
(a) mBlock with Scratch mode (b) mBlock with Arduino mode

Conclusion
That people are educated to own a completed trainings and disciplines is a requirement for satisfying the needs of Industry 4.0 age. Fortunately, STEAM education is the best solution to fit the need. For printable. In STEAM course, students follow instructors' guideline and their own creativities to design robots' outlooks as well as utilize 3D printer to build the robot parts cheaply. The control unit of the robot is compatible to Arduino. Thus, this robot can also be used to learn about Arduino controlling and its related electronics. Fortunately, the mBlock is compatible with the robot. The mBlock is VPLbased platform, so it is very easy-to-use. Of course, it is definitely suitable for K12 students. With the assistance of the mBlock, instructors can also develop their own command blocks to teach students more efficiently. This paper had demonstrated the motion codes for two different types of robots, bipedal robot and wheel robot. Under STEAM programs, students follow instructors' teaching to build up a robot step by step. They can learn the knowledge of related engineering and technology. After the robot is completed, students can apply their knowledge of computer language to make robots move meaningfully. Robotics is important to current industry. If students can get familiar with it early, it will good the development of high-tech country.