z-logo
open-access-imgOpen Access
Results Of Using A Low Cost, Flexible Robot In A Microcontrollers And Robotics Course
Author(s) -
Abraham L. Howell,
Richard R. Eckert,
Roy McGrann
Publication year - 2020
Publication title -
papers on engineering education repository (american society for engineering education)
Language(s) - English
Resource type - Conference proceedings
DOI - 10.18260/1-2--3138
Subject(s) - robotics , microcontroller , artificial intelligence , robot , computer science , course (navigation) , embedded system , control engineering , human–computer interaction , engineering , aerospace engineering
This paper discusses the results of using a low cost, flexible robot in a computer science microcontrollers and robotics course. Such a course should introduce students to the fundamentals of microcontrollers and robotics. To achieve this goal, students must understand and interact with a microcontroller at both low and high levels. Additionally, a suitable robot platform must be available for the robotics section of the course, so that students can experiment with the concepts and theoretical material discussed in lecture. Historically, this course made use of a popular microcontroller development kit for the first half and then transitioned to a wellknown robotics kit for the second half of the course. A disconnect between the first and second half was created since students were required to learn two different systems. It would be more advantageous if the students worked with a single platform throughout the entire course. This would provide students with additional hands-on interaction and time to reinforce the concepts and theories through direct experimentation with real world hardware. A low cost, flexible mobile robot was integrated into the targeted course through the development of three laboratory modules. Through the lab experiments, students directly interacted with the robot’s microcontroller through the use of low-level assembly programming. At the end of the course, students created high-level programs in Visual C# using Microsoft Visual Studio® 2005. Their programs controlled the robot via a wireless Bluetooth® connection and provided high-level intelligence, such as obstacle avoidance and light tracking. The robot’s ability to read and write radio-frequency identification (RFID) tags is a unique feature and opens up the realm of possible experiments. The course, low cost robot, three developed laboratory modules, and results of the student evaluations are discussed in this paper. Overview of Microcontrollers and Robotics Course Several years ago the Computer Science Department in the Watson School of Engineering and Applied Science at Binghamton University we designed and began to offer an upper-division undergraduate course entitled Microcontrollers and Robotics 1 . This was done in response to the reality that an important application of computer science is that of using embedded microcomputers to control hardware systems. These are ubiquitous in electronic devices found almost everywhere in modern society, and, in particular, in embedded control systems and robots used in industry, science, and defense. Many modern devices -as common as microwave ovens or automobiles, to machines that automate and control the positioning of electronic components on printed circuit boards, to pilot-less airplanes used to spy on and/or deliver weapon systems to potential enemy targets, to robots that search for survivors in mining or other disasters, to something as exotic as the Mars Sojourner Rover robot -use embedded microcontrollers to control hardware. We felt that it was important that computer science students have the opportunity to learn about these devices, how they work, and how to design and program them. Our course emphasizes those aspects of microcontroller-based control systems and robotics that are most closely related to computer science. These aspects include the following: P ge 13046.2 • Architectures and instruction sets of microcontrollers • Interfacing a microcontroller with memory and I/O • I/O techniques (serial, parallel, interrupt-driven, digital to analog conversion, analog to digital conversion) • Microcontroller programming languages and techniques • The use of timers in responding to and controlling real-time situations The fundamentals learned are then applied in the context of designing, building, and programming autonomous, mobile robots whose motors and sensors are controlled by a microcontroller-based system. The robots are programmed to perform such “intelligent” tasks such as following a path, avoiding obstacles, seeking and retrieving objects, and communicating with other robots. Several ideas from the fields of behavior control architectures, computer vision, and robot navigation are presented and applied where appropriate. Robots designed, built, and programmed by students participate in a competition at the end of the course. The course is divided into two sections: one on microcontrollers and the other on robotics. In the first section students work with Microchip Technology, Inc.'s PIC18F452 microcontroller and an inexpensive trainer called the QwikFlash 2 that contains the microcontroller wired up to several switches, LEDs, a potentiometer, a liquid crystal display (LCD), and other devices. The QwikFlash board can be connected to a QwikProto breadboard where students can build prototype circuits that control many different kinds of hardware devices. In this first part of the course students perform experiments in which they design circuits controlled by programs they create on a PC and upload to the flash memory of the PIC18F452 using a serial link to the PIC. Program upload is facilitated by a QwikBug monitor program that is burned into the PIC and a terminal emulator such as the Tera Term Pro running on the PC. The experiments performed by the students explore the considerable capabilities of the PIC, receive digital input from switches, output to LEDs, display characters and numeric values on the LCD, control motors using pulse width modulation, convert analog input signals from sensors to digital values that can be processed by the microcontroller, and investigate the interrupt capabilities of the PIC. In this first part of the course essentially all of the programming is done at the assembly language level using Microchip's free MPLAB interactive development environment. Initially the second part of the course was centered on the LEGO Mindstorms Robotic Invention System (RIS), whose microcontoller and other control circuitry is embedded in a large LEGO brick called the RCX 3 . This approach had the advantage of permitting many creative designs of different kinds of robots possessing many different capabilities. The programming language used to create most of the robot control programs was a subset of C called NQC (Not Quite C), which contains instructions that make it relatively straightforward to control the RCX's sensor inputs, motor outputs, timers, IR communications, LCD display, and other systems. A tiny version of Java called LEJOS was also used for some of the RCX program development toward the end of the course. This free software consists mainly of a Virtual Machine for the execution of Java byte code on the RCX microcontroller, an API for RCX programming on top of this virtual machine, and additional software tools. These tools include a LEJOS vision system that can control a digital camera mounted on the RCX and that is connected to a PC, a communications package permitting IR communication between the RCX and the PC, a navigation control module, and a subsumption architecture behavior control module. P ge 13046.3 The transition between the two parts of the course was made by having the students perform an experiment in which they build a robot from LEGO bricks upon which are mounted the QwikFlash and QwikProto boards. We called this robot the "PIC-Brick". In this experiment two LEGO RIS motors controlled by an H-Bridge on the QwikProto board interfaced to the PIC microcontroller make the robot move, and two LEGO RIS touch sensors generate interrupts that can cause the robot to move away from obstructions. Figure 1 is a photograph of one of the student PIC-Bricks. In this experiment, once again the programming is done in PIC assembly language using the MPLAB development system. Figure 1. PIC-Brick robot. Although this two-section organization of the course seemed to work reasonably well, we noticed something of a disconnect between the first and second parts. Both the hardware and the programming language/platforms were different. Ideally we wanted to maintain the low-level nature of the first part of the course because of the insights provided on how microcontrollers really work in the control of hardware devices. But we thought it would be better if somehow the second part of the course would use the same microcontroller mounted on a versatile robot platform, but be programmed at a higher level. That way we could avoid making the students learn so many different hardware and software systems and facilitate the development of powerful control programs. This led to the design and use of BIObot. Low Cost Robot, BIObot BIObot is a low cost, fully programmable, autonomous robot that can be controlled wirelessly using Bluetooth® or ZigBeeTM or can be programmed locally at the microcontroller level using the appropriate C, Basic, or assembly level compiler and PIC programmer 4 . Figure 2 shows a BIObot with Bluetooth. However, a low-cost XBee ZigBee module can be used to establish large robot networks or control a swarm of robots from one central computer 5 . A Bluetooth or ZigBeeequipped computer can provide all high-level intelligence. By sending control commands across the wireless communication link, a computer is able to command BIObot to move, retrieve sensor readings and modify internal parameters. The brains of BIObot reside in the onboard controller, Autonomous roBot controllEr (A.B.E.) 6 . The A.B.E. board provides a serial based command library, so that built-in functions and parameters can be easily accessed. A PIC18F452 is at the heart of the A.B.E. and operates at 20MHz while executing a specially designed P ge 13046.4 firmware that serves up a serial based command library. All the PIC source code is available and can be modified as needed, however, a copy of the CCS C compiler and a PIC programmer is required 7 . A programming header on the A.B.E. board allows for the connection of an In-Circuit Programmer/Debugger (ICD). When using the C

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here
Accelerating Research

Address

John Eccles House
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom