1 | /* Hello User
|
---|
2 |
|
---|
3 | Hello User! This sketch is the first thing you see
|
---|
4 | when starting this robot. It gives you a warm welcome,
|
---|
5 | showing you some of the really amazing abilities of
|
---|
6 | the robot, and make itself really personal to you.
|
---|
7 |
|
---|
8 | Circuit:
|
---|
9 | * Arduino Robot
|
---|
10 |
|
---|
11 | created 1 May 2013
|
---|
12 | by X. Yang
|
---|
13 | modified 12 May 2013
|
---|
14 | by D. Cuartielles
|
---|
15 |
|
---|
16 | This example is in the public domain
|
---|
17 | */
|
---|
18 |
|
---|
19 | #include <ArduinoRobot.h> // include the robot library
|
---|
20 | #include <Wire.h>
|
---|
21 | #include <SPI.h>
|
---|
22 |
|
---|
23 | // include the utility function for ths sketch
|
---|
24 | // see the details below
|
---|
25 | #include <utility/RobotTextManager.h>
|
---|
26 |
|
---|
27 | char buffer[20];//for storing user name
|
---|
28 |
|
---|
29 | void setup() {
|
---|
30 | //necessary initialization sequence
|
---|
31 | Robot.begin();
|
---|
32 | Robot.beginTFT();
|
---|
33 | Robot.beginSD();
|
---|
34 |
|
---|
35 | // show the logos from the SD card
|
---|
36 | Robot.displayLogos();
|
---|
37 |
|
---|
38 | // clear the screen
|
---|
39 | Robot.clearScreen();
|
---|
40 |
|
---|
41 | // From now on, display different slides of
|
---|
42 | // text/pictures in sequence. The so-called
|
---|
43 | // scripts are strings of text stored in the
|
---|
44 | // robot's memory
|
---|
45 |
|
---|
46 | // these functions are explained below
|
---|
47 |
|
---|
48 | //Script 6
|
---|
49 | textManager.writeScript(5, 4, 0);
|
---|
50 | textManager.writeScript(9, 10, 0);
|
---|
51 | Robot.waitContinue();
|
---|
52 | delay(500);
|
---|
53 | Robot.clearScreen();
|
---|
54 |
|
---|
55 | //Script 7
|
---|
56 | textManager.writeScript(6, 4, 0);
|
---|
57 | textManager.writeScript(9, 10, 0);
|
---|
58 | Robot.waitContinue();
|
---|
59 | delay(500);
|
---|
60 | Robot.clearScreen();
|
---|
61 |
|
---|
62 | //Script 8
|
---|
63 | // this function enables sound and images at once
|
---|
64 | textManager.showPicture("init2.bmp", 0, 0);
|
---|
65 |
|
---|
66 | textManager.writeScript(7, 2, 0);
|
---|
67 | textManager.writeScript(9, 7, 0);
|
---|
68 | Robot.waitContinue();
|
---|
69 | delay(500);
|
---|
70 | Robot.clearScreen();
|
---|
71 |
|
---|
72 | //Script 9
|
---|
73 | textManager.showPicture("init3.bmp", 0, 0);
|
---|
74 | textManager.writeScript(8, 2, 0);
|
---|
75 | textManager.writeScript(9, 7, 0);
|
---|
76 | Robot.waitContinue();
|
---|
77 | delay(500);
|
---|
78 | Robot.clearScreen();
|
---|
79 |
|
---|
80 | //Script 11
|
---|
81 | textManager.writeScript(10, 4, 0);
|
---|
82 | textManager.writeScript(9, 10, 0);
|
---|
83 | Robot.waitContinue();
|
---|
84 | delay(500);
|
---|
85 | Robot.clearScreen();
|
---|
86 |
|
---|
87 | //Input screen
|
---|
88 | textManager.writeScript(0, 1, 1);
|
---|
89 | textManager.input(3, 1, USERNAME);
|
---|
90 |
|
---|
91 | textManager.writeScript(1, 5, 1);
|
---|
92 | textManager.input(7, 1, ROBOTNAME);
|
---|
93 |
|
---|
94 | delay(1000);
|
---|
95 | Robot.clearScreen();
|
---|
96 |
|
---|
97 | //last screen
|
---|
98 | textManager.showPicture("init4.bmp", 0, 0);
|
---|
99 | textManager.writeText(1, 2, "Hello");
|
---|
100 | Robot.userNameRead(buffer);
|
---|
101 | textManager.writeText(3, 2, buffer);
|
---|
102 |
|
---|
103 | textManager.writeScript(4, 10, 0);
|
---|
104 |
|
---|
105 | Robot.waitContinue(BUTTON_LEFT);
|
---|
106 | Robot.waitContinue(BUTTON_RIGHT);
|
---|
107 | textManager.showPicture("kt1.bmp", 0, 0);
|
---|
108 | }
|
---|
109 |
|
---|
110 | void loop() {
|
---|
111 | // do nothing here
|
---|
112 | }
|
---|
113 |
|
---|
114 |
|
---|
115 | /**
|
---|
116 | textManager mostly contains helper functions for
|
---|
117 | R06_Wheel_Calibration and R01_Hello_User.
|
---|
118 |
|
---|
119 | The ones used in this example:
|
---|
120 | textManager.setMargin(margin_left, margin_top):
|
---|
121 | Configure the left and top margin for text
|
---|
122 | display. The margins will be used for
|
---|
123 | textManager.writeText().
|
---|
124 | Parameters:
|
---|
125 | margin_left, margin_top: the margin values
|
---|
126 | from the top and left side of the screen.
|
---|
127 | Returns:
|
---|
128 | none
|
---|
129 |
|
---|
130 | textManager.writeScript(script_number,line,column):
|
---|
131 | Display a script of Hello User example.
|
---|
132 | Parameters:
|
---|
133 | script_number: an int value representing the
|
---|
134 | script to be displayed.
|
---|
135 | line, column: in which line,column is the script
|
---|
136 | displayed. Same as writeText().
|
---|
137 | Returns:
|
---|
138 | none
|
---|
139 |
|
---|
140 | textManager.input(line,column,codename):
|
---|
141 | Print an input indicator(">") in the line and column,
|
---|
142 | dispaly and receive input from a virtual keyboard,
|
---|
143 | and save the value into EEPROM represented by codename
|
---|
144 | Parameters:
|
---|
145 | line,column: int values represents where the input
|
---|
146 | starts. Same as wirteText().
|
---|
147 | codename: either USERNAME,ROBOTNAME,CITYNAME or
|
---|
148 | COUNTRYNAME. You can call Robot.userNameRead(),
|
---|
149 | robotNameRead(),cityNameRead() or countryNameRead()
|
---|
150 | to access the values later.
|
---|
151 | Returns:
|
---|
152 | none;
|
---|
153 |
|
---|
154 | textManager.writeText(line,column,text):
|
---|
155 | Display text on the specific line and column.
|
---|
156 | It's different from Robot.text() as the later
|
---|
157 | uses pixels for positioning the text.
|
---|
158 | Parameters:
|
---|
159 | line:in which line is the text displayed. Each line
|
---|
160 | is 10px high.
|
---|
161 | column:in which column is the text displayed. Each
|
---|
162 | column is 8px wide.
|
---|
163 | text:a char array(string) of the text to be displayed.
|
---|
164 | Returns:
|
---|
165 | none
|
---|
166 |
|
---|
167 | textManager.showPicture(filename, x, y):
|
---|
168 | It has the same functionality as Robot.drawPicture(),
|
---|
169 | while fixing the conflict between drawPicture() and
|
---|
170 | sound playing. Using Robot.drawPicture(), it'll have
|
---|
171 | glitches when playing sound at the same time. Using
|
---|
172 | showPicture(), it'll stop sound when displaying
|
---|
173 | picture, so preventing the problem.
|
---|
174 | Parameters:
|
---|
175 | filename:string, name of the bmp file in sd
|
---|
176 | x,y: int values, position of the picture
|
---|
177 | Returns:
|
---|
178 | none
|
---|
179 |
|
---|
180 | */
|
---|