Software User's Manual Mission Science irobots Team 07 Jiashuo Li Project Manager, Life Cycle Planner, Developer Chen Li Requirements Engineer, Software Architect, Developer Farica Mascarenhas Operational Concept Engineer, IV&V, Quality Analyst Hanadi Mardah Tester Sergey Mukhin Prototyper, Developer Yun Shao Feasibility Analyst, Developer
Version History Date Autho r Version Changes made Rationale 03/25/15 CL 1.0 Add Introduction and Operational For CCD Procedures 04/08/15 CL 1.1 Add Installation Procedures and Examples According to TRR feedback 04/12/15 CL 1.2 Add more function description According to changes in the system 04/19/15 CL 1.3 Update functions and pictures According to changes in the system 04/29/15 CL 1.4 Add functions According to updates in the system 05/03/15 CL 2.0 Final Version UM_ASBUILT_S15b_T07_V2.0.docx ii Version Date: 06/27/12
Table of Contents VERSION HISTORY... II TABLE OF CONTENTS... III TABLE OF FIGURES... IV 1. Introduction... v 1.1 System Overview... v 1.2 System Requirements... v 2. Installation Procedures... 1 2.1 First-time installation... 1 2.2 Re-installation... 2 2.3 De-installation... 2 3. Operational Procedures... 3 3.1 System Menu... 3 3.2 Instructions... 7 3.3 File... 14 3.4 Build... 15 4. Examples... 19 4.1 Example 1: LED & Song... 19 4.2 Example 2: Drive forward until bump... 20 UM_ASBUILT_S15b_T07_V2.0.docx iii Version Date: 06/27/12
Table of Figures Figure 1 Installation - Extract File... 1 Figure 2 System Menu... 3 Figure 3 Showing Description... 4 Figure 4 Reorder... 5 Figure 5 Source Code... 6 Figure 6 Selected Instruction and Clipboard... 7 Figure 7 Move... 8 Figure 8 Rotate... 9 Figure 9 Drive... 10 Figure 10 LED... 11 Figure 11 Song... 12 Figure 12 If Example... 13 Figure 13 Loop Example... 14 Figure 14 File... 15 Figure 15 Build... 15 Figure 16 [Debug] WinAVR... 16 Figure 17 [Debug] Emulator... 17 Figure 18 WinAVR Configuration... 17 Figure 19 Preferences and Emulator... 18 Figure 20 Example: LED & Song... 19 Figure 21 Example: Drive forward until bump... 20 Figure 22 Example: Loop... 21 UM_ASBUILT_S15b_T07_V2.0.docx iv Version Date: 06/27/12
1. Introduction 1.1 System Overview Mission Science irobots is a drag-and-drop graphical user interface, which allows users to control the behavior of an irobot. The system aims to inspire elementary school kids to learn the logic and control systems and generate higher funds for Mission Science. 1.2 System Requirements 1.2.1 Hardware Requirements None 1.2.2 Software Requirements Windows 7 or above 1.2.3 Other Requirements None UM_ASBUILT_S15b_T07_V2.0.docx v Version Date: 06/27/12
2. Installation Procedures 2.1 First-time installation 2.1.1 Download the.zip file Download the.zip file from https://github.com/zijinzheng/irobotgui/releases. 2.1.2 Extract the.zip file Right click on the.zip file and select Extract ALL Figure 1 Installation - Extract File 2.1.3 Install WinAVR Download WinAVR from http://sourceforge.net/projects/winavr/files/ and install as instructed. UM_ASBUILT_S15b_T07_V2.0.docx 1 Version Date: 06/27/12
2.1.4 Run irobotgui.exe 2.2 Re-installation Download the.zip file again and follow the first-time installation 2.3 De-installation Delete the whole folder UM_ASBUILT_S15b_T07_V2.0.docx 2 Version Date: 06/27/12
3. Operational Procedures 3.1 System Menu The system contains 3 main sections: Instruction Panel, Program List and Debugging Info. An instruction can be dragged from Instruction Panel to Program List. Instruction can also be added to Program List by clicking Load Example Code on the right-hand side. Debugging info also includes information including source code, selected instruction and clipboard. Figure 2 System Menu UM_ASBUILT_S15b_T07_V2.0.docx 3 Version Date: 06/27/12
3.1.1 Instruction Panel In the Instruction Panel, there are 9 different instructions grouped in 4 sections. The Navigation section contains Move, Rotate, and Drive. The LED and Sound section contains Turn on/off the LED and Define a song. The Logic section contains If and Loop. The Other section contains Play a demo and Delay. Each icon represents a specific instruction. If a user cannot tell which instruction the icon stands for, then he/she can pause the mouse pointer over an icon and a description will pop up with the name of the corresponding instruction. Figure 3 Showing Description 3.1.2 Program List A Program List shows the current instruction list that the program contains. Each instruction is shown using an icon together with a text description. Below are the functions a user can do inside Program List: Add Instruction An instruction can be added to Program List from Instruction Panel by dragging and dropping. Another way to add an instruction is to double click an icon in Instruction Panel. Change Parameters UM_ASBUILT_S15b_T07_V2.0.docx 4 Version Date: 06/27/12
When an instruction in the Program List is double clicked, then a new window will pop up so that parameters can be adjusted or new instructions can be added. By default, the parameter window pops up automatically when an instruction is added to instruction panel. This function can be turned off in Build->Preferences and Emulator. Reorder Instructions can also be dragged and dropped inside Program List, as Figure 4 shows. Remove Pressing Delete key on the keyboard will remove the selected instruction. In another way, a use can select an instruction and choose File->Delete. Copy/Cut Select an instruction and choose Edit->Copy or Edit->Cut. An alternative way is to press Ctrl + C or Ctrl + X. Paste Copy/Cut an instruction (A) first, then choose Edit->Paste or press Ctrl + V. If an instruction (B) is selected, A will be pasted just before B. Otherwise, instruction A will be pasted to the end of the program. Figure 4 Reorder UM_ASBUILT_S15b_T07_V2.0.docx 5 Version Date: 06/27/12
3.1.3 Debugging Info Source code When an instruction is added to or updated in the Program List, the corresponding source code will be updated automatically. Source code can also be updated by clicking Refresh Source. Source code can be modified inside the textbox. By loading into graph, Program List will be updated according to the changes. However, this is not a recommended operation since it might be dangerous if the code is not written properly. Figure 5 Source Code Selected Instruction In the lower left corner, there shows the code of the selected instruction. Clipboard If an instruction is copied or cut, then its code will show in the lower right corner. UM_ASBUILT_S15b_T07_V2.0.docx 6 Version Date: 06/27/12
Figure 6 Selected Instruction and Clipboard 3.2 Instructions 3.2.1 Move For the Move instruction, distance and duration can be changed in the popped up window. A user can drag the icon up and down to reset the value. The exact value is shown under the scroll bar. If distance is positive, then the robot will move forward; otherwise, it will move backward. o Range: -500 ~ 500cm o Default value: 150cm (forward) Duration means how long the robot will move. o Range: 0 ~ 5s o Default value: 3s UM_ASBUILT_S15b_T07_V2.0.docx 7 Version Date: 06/27/12
By setting both distance and duration, the velocity will be updated accordingly, since velocity = distance / duration. Figure 7 Move 3.2.2 Rotate For the rotation instruction, there is a virtual irobot in the newly opened window. By rotating the virtual robot, a user can specify in which direction and how much the real irobot will rotate. The robot can rotate up to 90 degrees in both left and right directions. UM_ASBUILT_S15b_T07_V2.0.docx 8 Version Date: 06/27/12
Figure 8 Rotate 3.2.3 Drive The drive instruction controls irobot s drive wheels. Velocity is the average velocity of the drive wheels in millimeters per second (cm/s). o Range: -50cm/s ~ 50cm/s o Default: 10cm/s Radius can also be specified, in millimeters, at which Roomba should turn. The longer radii make Roomba drive straighter; shorter radii make it turn more. o Default: 32767cm (equivalent to moving forward straightly) UM_ASBUILT_S15b_T07_V2.0.docx 9 Version Date: 06/27/12
Figure 9 Drive 3.2.4 Turn on/off the LED The LED instruction, by its name, controls the LEDs. There are 3 LEDs on the robot: Power LED, Play LED and Advance LED. A user can choose whether to turn on the last two LEDs by checking the box. Color is to control the color of Power LED. Color of Play and Advance LEDs cannot be changed. The color is changed as the color scroll bar is being dragged. Intensity is to change the intensity of Power LED. Intensity of Play and Advance LEDs cannot be changed. Intensity can be set to 0 to turn off the Power LED. UM_ASBUILT_S15b_T07_V2.0.docx 10 Version Date: 06/27/12
Figure 10 LED 3.2.5 Define a song In the Song window, a user can create a song within 16 notes. The song will play automatically on the robot. New: clear the current contents and create a new song Up: swap the current note with the upper one Down: swap the current note with the lower one Cross: remove the selected note Scroll bar: change the duration of each note UM_ASBUILT_S15b_T07_V2.0.docx 11 Version Date: 06/27/12
Figure 11 Song 3.2.6 If The if window contains 3 sections: condition, true and false. If only checks the sensor only once. If the condition is true at the moment, the instructions in the True panel are executed. Otherwise, the execution continues in the following branch either in the False panel, or if there is no else branch, then it will do nothing. UM_ASBUILT_S15b_T07_V2.0.docx 12 Version Date: 06/27/12
Figure 12 If Example In this example, there is a moment when the robot reads from data. If irobot meets the bump at this specific moment (which is a really small chance since nobody knows the exact time when irobot checks the sensor), then it will move forward 30cm in 3s. Otherwise, the robot will start to play the song. 3.2.7 Loop Loop is repeating some instructions under certain condition. The irobot will repeat the loop until the condition changes. The loop windows looks a little similar to the if window, both of which has the condition panel. What s different from the if window is that the loop window only has 1 Program List. A more important difference is that loop checks the sensor repeatedly while if only checks once. UM_ASBUILT_S15b_T07_V2.0.docx 13 Version Date: 06/27/12
Figure 13 Loop Example In this example, if the robot meets a bump, then it will delay for 100ms, which is equivalent to the situation where irobot checks the bump every 100ms. 3.3 File New: a new program will be created without saving current work UM_ASBUILT_S15b_T07_V2.0.docx 14 Version Date: 06/27/12
Save: save the file in igp format for future use or study Open: open an existing file 3.4 Build Figure 14 File Figure 15 Build Load to Microcontroller: all-in-one function, translates the source code, builds the program and loads to Microcontroller UM_ASBUILT_S15b_T07_V2.0.docx 15 Version Date: 06/27/12
Run in Emulator: all-in-one function, translates the source code, builds the program and loads to irobot directly without use of Microcontroller. This function skips the step of loading program to Microcontroller, so it is very easy to use and learn and suitable for debugging. [Debug] WinAVR o Translate to Microcontroller C File: translate from high-level program to C code o Show C Code: show the translated file o Build: Build: build the program o Load: load the program to Microcontroller o Clean: clean the program inside Microcontroller which was previously loaded Figure 16 [Debug] WinAVR [Debug] Emulator: this function is similar to the previous one, which just skip the use of Microcontroller o Translate to Emulator C File: translate from high-level program to C code o Build Emulator: Build: build the program o Run Emulator: run the program UM_ASBUILT_S15b_T07_V2.0.docx 16 Version Date: 06/27/12
Figure 17 [Debug] Emulator WinAVR Configuration: COM Port needs configuration before program is loaded. The system can detect COM port automatically. However, if multiple devices is connected to the computer, manual configuration is needed. To configure the COM Port, first click the button Device Manager, and then find the item Ports (COM & LPT). Figure 18 WinAVR Configuration Preferences and Emulator o Pop up parameter window for new instruction: if turned on, every time an instruction is dropped in the program list, the parameter window will pop up automatically. o Show C file after translation: if turned on, every time when translation is done, the C file will be shown automatically. This function is mainly for future developers or administrators. o Emulator path: specify the emulator path UM_ASBUILT_S15b_T07_V2.0.docx 17 Version Date: 06/27/12
o Emulator COM Port: set the COM port for emulator Figure 19 Preferences and Emulator UM_ASBUILT_S15b_T07_V2.0.docx 18 Version Date: 06/27/12
4. Examples 4.1 Example 1: LED & Song Figure 20 Example: LED & Song In this example, there are 4 instructions in total. First, both Play LED and Advance LED are turned on. Second, a specified song is played. Then, after 5000ms, both Play LED and Advance LED are turned off automatically. UM_ASBUILT_S15b_T07_V2.0.docx 19 Version Date: 06/27/12
4.2 Example 2: Drive forward until bump Figure 21 Example: Drive forward until bump First, we drive the irobot forward at the speed 300mm/s with a really large radius 32768mm. Then, we go into the bump. The instruction inside the loop is shown below in Figure 21. The loop says the irobot will keep delaying for 100ms when a bump is not met. This means that the irobot will check whether it hits a bump every 100ms. After the bump is met, the robot will move backward 10cm and turn left by 180 degrees. UM_ASBUILT_S15b_T07_V2.0.docx 20 Version Date: 06/27/12
Figure 22 Example: Loop UM_ASBUILT_S15b_T07_V2.0.docx 21 Version Date: 06/27/12