-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
196 lines (194 loc) · 12.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<!DOCTYPE HTML>
<html>
<head>
<title>MicroMouse Log</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="icon" type="image/png" href="pics/icon.png">
<link href='http://fonts.googleapis.com/css?family=Sue+Ellen+Francisco' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Duru+Sans' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Bubbler+One' rel='stylesheet' type='text/css'>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div id = "header_div">
<div id = "header">
<h1 id = "header_text">MicroMouse Log</h1>
<h4 id = "header_subtitle">A record of our robot building experience</h4>
</div>
</div>
<div id = "container">
<div class = "sect_div">
<h2 id = "about_header" class = "sect_header">About</h2>
</div>
<div id = "about_sect">
<h3 id = "description_header" class = "subsect_header">IEEE Micromouse Competition</h3>
<div id = "description_sect">
<p>Competition on April 19</p>
<p>Goal: Build and program a robot to navigate a 16x16 maze, starting from one corner and ending in the center.</p>
<img src = "pics/micromouse_demo.JPG" height = "250" width = "400">
<img src = "pics/micromouse_maze.jpg" height = "250" width = "400">
<p>Our robot is built around a Teensy board, which uses the Arduino IDE.</p>
<p>For our maze navigation, we are using a floodfill algorithm.</p>
</div>
</div>
<div class = "sect_div">
<h2 id = "hardware_header" class = "sect_header">Hardware</h2>
</div>
<div id = "hardware_sect">
<h3 id = "parts_header" class = "subsect_header">Parts List</h3>
<div id = "parts_sect">
<p class = parts_text>These are the components we obtained to build the robot:</p>
<table id = "parts_table">
<tr>
<th class = "parts_table">Item</th>
<th class = "parts_table">Description</th>
<th class = "parts_table">Price</th>
</tr>
<tr>
<td class = "parts_table"><a href = http://www.pololu.com/product/1490>Breadboards(2)</a></td>
<td class = "parts_table">for easy testing</td>
<td class = "parts_table">$6</td>
</tr>
<tr>
<td class = "parts_table"><a href = http://www.pjrc.com/store/teensy31_pins.html>Teensy 3.1</a></td>
<td class = "parts_table">microprocessor</td>
<td class = "parts_table">$23</td>
</tr>
<tr>
<td class = "parts_table"><a href = http://www.pjrc.com/store/cable_usb_micro_b.html>Micro-B Cable</a></td>
<td class = "parts_table">microprocessor usb cable</td>
<td class = "parts_table">$4</td>
</tr>
<tr>
<td class = "parts_table"><a href = https://www.sparkfun.com/products/8911>Motors(2)</a></td>
<td class = "parts_table">specs on product page</td>
<td class = "parts_table">$20</td>
</tr>
<tr>
<td class = "parts_table"><a href = https://www.sparkfun.com/products/9209>Wheel Set</a></td>
<td class = "parts_table">includes encoders and mounts</td>
<td class = "parts_table">$40</td>
</tr>
<tr>
<td class = "parts_table"><a href = https://www.sparkfun.com/products/339>Batteries(2)</a></td>
<td class = "parts_table">1000mAh, 3.7V</td>
<td class = "parts_table">$24</td>
</tr>
<tr>
<td class = "parts_table"><a href = https://www.sparkfun.com/products/315>H-bridge</a></td>
<td class = "parts_table">control motor direction</td>
<td class = "parts_table">$3</td>
</tr>
<tr>
<td class = "parts_table"><a href = http://www.pololu.com/product/791>Boost Regulator</a></td>
<td class = "parts_table">adjusts voltage</td>
<td class = "parts_table">$12</td>
</tr>
<tr>
<td class = "parts_table"><a href = http://www.mouser.com/ProductDetail/Vishay/BPW85C/?qs=%2fha2pyFadug5jlzw6fvlroUhHDkBdq2eS8gzqXfb9yE%3d>Vishay IR LED Emitter</a></td>
<td class = "parts_table">IR LED emitter</td>
<td class = "parts_table">$0.38</td>
</tr>
<tr>
<td class = "parts_table"><a href = http://www.mouser.com/ProductDetail/OSRAM-Opto-Semiconductors/SFH-4550/?qs=K5ta8V%252bWhtavCsf0k/Oizw==>Osram IR LED Receiver</a></td>
<td class = "parts_table">IR LED sensor</td>
<td class = "parts_table">$0.53</td>
</tr>
</table>
</div>
<h3 id = "building_header" class = "subsect_header">Construction</h3>
<div id = "building_sect">
<p class = "building_text">A model mouse that we are basing our project off of: </p>
<img src = "pics/model_mouse.jpg">
<p class = "building_text">Our robot (hardware complete)</p>
<img src = "pics/robot_top_side.jpg" width="300px" height="250px">
</div>
<h3 id = "wiring_header" class = "subsect_header">Wiring</h3>
<div id = "wiring_sect">
<p class = "wiring_text">Our completed wiring - messy but works</p>
<img src = "pics/robot_top.jpg" width="200px" height="250px">
<img src = "pics/robot_bottom.jpg" width="200px" height="250px">
<p class = "wiring_text">Here is a rough block diagram of wiring: </p>
<img src = "pics/block_diagram.png" width="400px" height="250px">
</div>
<h3 id = "challenges_header" class = "subsect_header">Challenges</h3>
<div id = "challenges_sect">
<p class = "challenges_text">> Our biggest challenge was voltage and the IR LED sensor. Many components required 4-5V
but our battery only outputted 3.7V and the microcontroller only gave 3.3V. To address this issue, we had to use an
adjustable boost regulator. While obtaining the component was easy enough, there were no wiring diagrams online so we
had to do extensive test to make sure we got the right voltage.<br>> The other problem was the sensor. At first we
considered using a pre-assembled sensor, but we ended up getting our hands on 2 separate LEDs (receiver and emitter)
It took a lot of measuring to find desired resistance to be able to sense walls at a fair distance. Even then, the
wiring proved to be troublesome, as we hooked it up to digital pins instead of analog for a while.<br>> Finally, one
other little issue was the encoders and h-bridge. These were the hardest components to use, since there was significant
logic involved in the basic code. However, after understanding the motor waveforms and finding a pin diagram for the
h-bridge, these problems were quickly addressed.</p>
</div>
</div>
<div class = "sect_div">
<h2 id = "software_header" class = "sect_header">Software</h2>
</div>
<div id = "software_sect">
<h3 id = "operations_header" class = "subsect_header">Basic Operations</h3>
<div id = "operations_sect">
<p class = "operations_text">Since our encoders had problems, we used timed delays for motion</p>
<div id = "operations_subsect_left">
<img src = "pics/code_snippet.png">
</div>
<div id = "operations_subsect_right">
<p><f class = "function">Moving</f> - moveForward(), turnRight(), turnLeft(), turn180()</p>
<p><f class = "function">initMove()</f> - set up motor pins</p>
<p><f class = "function">initWallDetection()</f> - set up LED sensor pins</p>
<p><f class = "function">checkWall()</f> - determine if there is a wall in front</p>
</div>
<div class = "div_buffer">
</div>
</div>
<h3 id = "setup_header" class = "subsect_header">Initial Setup</h3>
<div id = "setup_sect">
<p class = "setup_text">Create initial maze grid assuming no walls</p>
<div id = "setup_subsect_left">
<img src = "pics/code_snippet.png">
</div>
<div id = "setup_subsect_right">
<p><f class = "function">initWalls()</f> - establish bordering walls</p>
<p><f class = "function">initMaze()</f> - determine Manhattan distances with no walls</p>
</div>
<div class = "div_buffer">
</div>
</div>
<h3 id = "algorithms_header" class = "subsect_header">Algorithms</h3>
<div id = "algorithms_sect">
<p class = "algorithms_text">We are using an implementation of the floodfill algorithm.</p>
<div id = "algorithms_subsect_left">
<p class = "algorithms_text">Outline:</p>
<p class = "algorithms_text">1. Move to smalles space (forward if tie)</p>
<p class = "algorithms_text">2. If wall, then move to next smallest space</p>
<p class = "algorithms_text">3. Update current position and known walls</p>
<p class = "algorithms_text">4. Update all distances if move to larger space</p>
<p class = "algorithms_text">5. Repeat until robot reaches center</p>
</div>
<div id = "algorithms_subsect_right">
<p class = "algorithms_text">In perspective of the MicroMouse maze<br>(starting from bottom left): </p>
<img src = "pics/floodfill_example.gif" width="300px" height="300px">
</div>
<div class = "div_buffer">
</div>
</div>
</div>
<div class = "sect_div">
<h2 id = "misc_header" class = "sect_header">Miscellaneous</h2>
</div>
<div id = "misc_sect">
<p><a href = https://docs.google.com/document/d/1sHtVUwCgUZa9WiDHbRd4pOq6PYeuUYT_po44uCzuGXA/edit>Here</a> is a link to our proposal.</p>
<p><a href = https://github.com/jonathanwang017/MicroMouse>Link</a> to project GitHub page (currently private).</p>
</div>
</div>
<div id = "end_div">
<div id = "bottom_buffer">
<p id = "endnote">A site by <a href = "https://github.com/jonathanwang017" id = "git_link">Jonathan Wang</a> ©2014</p>
</div>
</div>
</body>
</html>