describe how to prepare battery leads
[challenge-bot] / guide / challenge-bot.scm
1 ;; tldr; AGPLv3+
2 ;; copyright info at bottom
3
4 (document
5 :title [challenge-bot]
6 (chapter
7 :title [mechanical]
8 (p [let's build your robot!])
9 (section
10 :title [arduino to deck]
11 (p [let's attach the arduino to the deck.])
12 (subsection
13 :title [required materials]
14 (p [you will need the things in this picture.])
15 (figure
16 :legend "arduino to deck / required materials"
17 (image :file
18 "0-arduino-to-deck/0-required-materials.png"))
19 (itemize
20 (item [medical kit with bandages])
21 (item [safety goggles])
22 (item [drill bit \(we will determine size in a moment\)])
23 (item [drill])
24 (item [alan wrench])
25 (item [wood block])
26 (item [arduino])
27 (item [#6-32x3/8\", four of them])
28 (item [robot deck, the white thing with a grid of holes])))
29 (subsection
30 :title [first hole]
31 (subsubsection
32 :title [choosing drill bit]
33 (p [the arduino comes with holes in it already, so we will make
34 some choices around those holes.
35 choosing the right drill bit depends on what job you are
36 doing.
37 right now, we are making holes for screws to hold the
38 arduino to the deck.
39 there are two constraints between the hole and screw.
40 each hole needs to be big enough for the screw body to fit
41 through it.
42 the holes also need to be smaller than the screw's thread.
43 since there are holes on the arduino already, the screw was
44 chosen to match it.
45 the screw was chosen so that the hole on the arduino was
46 bigger than the screw body and smaller than its thread.
47 we will choose the biggest drill bit that fits through the
48 hole on the arduino, then use that to drill holes in the
49 deck.])
50 (p [here's a cross section of a screw in the deck])
51 (figure :legend "screw cross section"
52 (image :file
53 "0-arduino-to-deck/screw-cross-section.png"))
54 (p [check])
55 (itemize
56 (item
57 [what would happen if the drill bit were larger than the
58 screw thread?])
59 (item
60 [what would happen if the drill bit were smaller than the
61 screw body?])))
62 (subsubsection
63 :title [inserting drill bit]
64 (figure :legend "arduino to deck / insert bit"
65 (image :file "0-arduino-to-deck/1-insert-bit.png"))
66 (p [insert the drill bit into the teeth of the drill.
67 insert it far enough that the teeth will clamp on the
68 smooth part of the bit when they are tightened.])
69 (figure
70 :legend "arduino to deck / twist tighten drill teeth"
71 (image
72 :file "0-arduino-to-deck/2-twist-tighten-drill-teeth.png"))
73 (p [while holding the drill bit, twist end of the drill to tighten
74 the teeth.
75 make sure that the teeth end up gripping the flat part of
76 the drill bit.])
77 (p [check])
78 (itemize
79 (item
80 [where should the teeth clamp down on the drill bit?])
81 (item
82 [what would happen if the teeth tightened on the recessed
83 part of the drill bit?])))
84 (subsubsection
85 :title [holding drill]
86 (p [hold the drill with one hand on the handle and trigger.
87 put the other hand on the orange nozzle, before the
88 black spinning part.]))
89 (subsubsection
90 :title [arduino placement]
91 (p [the arduino should be placed as shown in this picture.])
92 (figure :legend "arduino to deck / place arduino"
93 (image :file "0-arduino-to-deck/3-place-arduino.png"))
94 (p [here's a closeup])
95 (figure :legend "arduino to deck / place arduino closeup"
96 (image :file
97 "0-arduino-to-deck/4-place-arduino-closeup.png"))
98 (p [the picture above shows where to place the arduino on the deck.
99 the arduino should line up with the holes on the deck.
100 this alignment line is highlighted in pink.
101 on the arduino, there's a hole on the top left, between the
102 orange reset button and black headers.
103 the green circle shows where the hole is.
104 the blue box encloses the arduino hole and two deck holes.
105 place the arduino hole mid-way between the two
106 deck holes.])
107 (p [check])
108 (itemize
109 (item
110 [should the arduino be upside-down?])
111 (item
112 [what should the upper side of the arduino align with?])
113 (item
114 [why not place the arduino up along the left side of the
115 robot?])))
116 (subsubsection
117 :title [drilling practice]
118 (p [strength check])
119 (itemize
120 (item [put on safety goggles])
121 (item [unplug drill])
122 (item [hold drill in one hand])
123 (item [point drill at the ground])
124 (item [point drill at the wall]))
125 (p [steps for drilling into wood block])
126 (itemize
127 (item [plug in the drill])
128 (item [place the drill bit in position])
129 (item [bring the drill up to full speed, and keep it at full
130 speed while lowering and raising the drill])
131 (item [push down until the drill bit has passed through an inch
132 of the wood block])
133 (item [keep the drill at full speed])
134 (item [stop before the drill smashes into the wood block])
135 (item [keep the drill at full speed by holding the trigger])
136 (item [bring the drill straight back up])
137 (item [hold the trigger down to keep the drill at full speed])
138 (item [once the drill is back out of the hole, let go of the
139 trigger]))
140 (p [check])
141 (itemize
142 (item
143 [should the drill be at full speed while the drill bit is
144 going down into the wood and coming back up?])
145 (item
146 [how do you keep the drill at full speed?])
147 (item
148 [what would happen if the drill bit were not at full
149 speed?])
150 (item
151 [what would happen if the drill were twisted sideways while
152 the drill bit were in the wood?])))
153 (subsubsection
154 :title [drilling the first screw hole]
155 (itemize
156 (item [place the drill bit in position])
157 (item [bring the drill up to full speed, and keep it full speed])
158 (item [push down until the drill bit has passed through the
159 deck])
160 (item [keep the drill at full speed])
161 (item [stop before the drill smashes into the arduino])
162 (item [keep the drill at full speed by holding the trigger])
163 (item [bring the drill straight back up])
164 (item [hold the trigger down to keep the drill at full speed])
165 (item [once the drill is back out of the hole, let go of the
166 trigger]))
167 (p [check])
168 (itemize
169 (item
170 [should the drill be at full speed while the drill bit is
171 going down into the wood and coming back up?])
172 (item
173 [what would happen if the drill bit were not at full speed?])
174 (item [how do you keep the drill at full speed?]))))
175 (subsection
176 :title [first screw]
177 (subsubsection
178 :title [fastening arduino to deck using #6-32x3/8\" screw]
179 (p [the "#6" part of "#6-32x3/8\"" is how big around the bolt is.
180 it is related to wire gauge.
181 bigger numbers mean larger screws.
182 smaller numbers means smaller screws.])
183 (figure :legend "arduino to deck / #6-32 screw"
184 (image :file "0-arduino-to-deck/6-32-screw.png"))
185 (p [check])
186 (itemize
187 (item
188 [in the motor assembly, there are #4-40x1.25\" screws.
189 are those fatter, thinner, or the same thickness as the
190 #6-32x3/8\" screws?]))
191 (p [the "32" part of "#6-32x3/8\"" is a measurement of how close
192 the threads are to each other.
193 this is related to the angle of the thread, which is also
194 called pitch.
195 it is a count of how many times the thread wraps around one
196 inch of the screw body.])
197 (p [the head is the flat part where some tool, like the alan
198 wrench, can exert force to spin the screw.])
199 (p [check])
200 (itemize
201 (item [how many times will the thread wrap around one inch of
202 the screw body?])
203 (item [what about 2 inches?
204 how many times will the thread wrap around two
205 inches of the screw body?])
206 (item [where can a tool exert turning force on the screw?])))
207 (subsubsection
208 :title [fasten the arduino board to the deck]
209 (p [first we'll put the screw into the deck just enough so the deck
210 holds it in place.
211 then we will hold the arduino up to the screw and finish
212 tightening the screw down.
213 with the screw partially in, we do not have hold it as
214 rigidly while we are also holding the arduino and
215 the deck.])
216 (p [push the #6-32 screw into the deck from the underside.
217 the underside is the brown side.
218 at the same time, spin the 6-32 screw so it rotates
219 clockwise while looking down on its head.
220 twist until the tip of the screw is about to stick out on
221 the top side of the deck.])
222 (p [hold the arduino board flat to the deck and line up the arduino
223 hole so the screw can come up through it.
224 continue tightening the screw into the deck, spinning the
225 same direction as before.
226 tighten until the screw head touches the deck.
227 do not continue tightening after that.])
228 (p [the arduino should still be flat against the deck still, just
229 as it was before tightening the screw.])
230 (p [check])
231 (itemize
232 (item [why do we insert the first screw partially before
233 holding up the arduino?])
234 (item [which side of the deck is the top side?])))
235 (subsubsection
236 :title [assessment of the first screw]
237 (itemize
238 (item [,(bold [warning]), if you rotate the arduino board too
239 much,you will unscrew it from the deck and you'll have to
240 screw it back in.
241 rotating a few degrees should be ok.])
242 (item [does the arduino stay with the deck when the deck moves?])
243 (item [can the arduino board still rotate a few degrees?]))))
244 (subsection
245 :title [second hole and screw]
246 (subsubsection
247 :title [arduino board move relative to deck]
248 (p [without any screws, the arduino board can move independently of
249 the deck.
250 it can translate and rotate freely.
251 with the first screw, the arduino can rotate around one
252 point on the deck and can no longer translate much.])
253 (p [the second screw limits rotation a lot.
254 it also makes translation even more difficult.
255 it might even be too small to be detectable by directly
256 looking at it.])
257 (p [to choose where the second hole and screw should go, we should
258 keep in mind that the goal is to attach the deck to the
259 arduino.
260 this means minimizing rotation and translation.
261 the picture below shows that the second hole should be as
262 far as possible from the first hole, since that minimizes
263 rotation.])
264 (figure
265 :legend "arduino to deck / keep holes far apart"
266 (image
267 :file "0-arduino-to-deck/keep-holes-far-apart.png")))
268 (subsubsection
269 :title [drilling and attaching second screw]
270 (p [to drill the second hole, follow the same steps as drilling the
271 first hole.
272 hold the arduino down as before, and drill through the hole
273 furthest away from the first hole.
274 then insert and tighten the screw as before.])))
275 (subsection
276 :title [third and fourth hole and screw]
277 (p [even though the arduino is pretty well attached with just 2
278 screws, we will add a third and fourth.
279 this gives practice drilling and tightening screws.
280 it also keeps the arduino fixed even more rigidly.]))
281 (subsection
282 :title [assessment of arduino deck attachment]
283 (itemize
284 (item [you should now be able to grab the deck and shake it.
285 the arduino should stay firmly in place while you do.])
286 (item [the arduino should be close to but not touching an edge.])
287 (item [there should be no warping on the arduino.
288 this could happen if the screws are too tight.]))))
289 (section
290 :title [breadboard]
291 (p [next, let's attach other parts to the deck.
292 we'll start with the breadboard.
293 there are many ways to do this, but one handy approach is
294 glue dots.
295 glue dots can be placed easily, are good at attaching flat
296 surfaces that directly touch and do not get much stress.])
297 (figure :legend "breadboard to deck / required materials"
298 (image
299 :file "1-breadboard-to-deck/0-required-materials.png"))
300 (p [for this section, we will need the deck with arduino attached,
301 breadboard, and glue dots.])
302 (figure :legend "breadboard to deck / video"
303 (video
304 :file "1-breadboard-to-deck/0-breadboard-to-deck.ogv"))
305 (enumerate
306 (item [take your breadboard out of its bag.])
307 (item [peel the backing.])
308 (item [put the shiny medal plate on the back.])
309 (item [break 4 glue dots away from the rest. put the rest back
310 into the bag.])
311 (item [break off a glue dot from the group of 4, and peel away the
312 backing, exposing a sticky side.])
313 (item [put the glue dot on one corner of the shiny side of the
314 breadboard.
315 make sure to push it down firmly.])
316 (item [repeat for the other corners.])
317 (item [put the breadboard on the center of the deck.
318 position it so the black chip is on the right, and the
319 blue line is up against the arduino.])
320 (item [press firmly in each of the corners.]))
321 (p [check])
322 (itemize
323 (item [should the black chip be on the right or the left?])
324 (item [how many glue dots should be on the breadboard?])))
325 (section
326 :title [battery packs]
327 (subsection
328 :title [leads]
329 (p ["leads" are the wires coming out of the battery pack.
330 prepare the leads of the batteries by stripping them and placing
331 heat shrink on them.
332 your battery packs are not attached to your deck yet,
333 but that will be the next step.])
334 (figure :legend "batteries / prepare leads / video"
335 (video
336 :file "2-batteries/0-prepare-leads/0-prepare-leads.ogv"))
337 (enumerate
338 (item [strip the leads a tiny bit at a time.
339 keep stripping until a total of an inch is stripped.])
340 (item [strip both leads of both batteries.])
341 (item [then place heat shrink on every lead.
342 make sure the heat shrink is either clear or matches
343 the color of the lead.])))
344 (subsection
345 :title [deck attachment]))
346 (section
347 :title [motors]
348 (subsection
349 :title [leads])
350 (subsection
351 :title [mount])
352 (subsection
353 :title [deck attachment]))
354 (section
355 :title [wheels]
356 (subsection
357 :title [tread])
358 (subsection
359 :title [motor]))
360 (section
361 :title [caster]
362 (subsection
363 :title [deck placement]))
364 (section
365 :title [sonars]
366 (subsection
367 :title [deck placement])))
368 (chapter
369 :title [wiring and software]
370 (section
371 :title [serial]
372 (subsection
373 :title [software on computer]
374 (subsubsection
375 :title [arduino])
376 (subsubsection
377 :title [fritzing]))
378 (subsection
379 :title [attach arduino and computer via cable])
380 (subsection
381 :title [debugging common connection problems])
382 (subsection
383 :title [arduino reset button]))
384 (section
385 :title [left sonar]
386 (subsection
387 :title [breadboard connectivity])
388 (subsection
389 :title [cable])
390 (subsection
391 :title [arduino headers])
392 (subsection
393 :title [sound cm per microsecond at sea level]))
394 (section
395 :title [both sonars]
396 (subsection
397 :title [breadboard power rail]
398 (p [power rail can provide power to more than one device.])))
399 (section
400 :title [left motor]
401 (subsection
402 :title [arduino digital output])
403 (subsection
404 :title [quad half h bridge, aka motor controller])
405 (subsection
406 :title [motor battery]))
407 (section
408 :title [both motors]
409 (subsection
410 :title [analogWrite]))
411 (section
412 :title [untethered]
413 (subsection
414 :title [arduino battery])
415 (subsection
416 :title [off and on functions]))
417 (section
418 :title [follow]
419 (subsection
420 :title [same wiring as untethered])
421 (subsection
422 :title [set motor])
423 (subsection
424 :title [go])
425 (subsection
426 :title [determining speed]))
427 (section
428 :title [stay on table]
429 (subsection
430 :title [stop])
431 (subsection
432 :title [backup])
433 (subsection
434 :title [turn around]))))
435
436 ;; Copyright 2016 daniel watson
437
438 ;; This file is part of challenge-bot.
439
440 ;; challenge-bot is free software: you can redistribute it and/or modify
441 ;; it under the terms of the GNU Affero General Public License as
442 ;; published by the Free Software Foundation, either version 3 of the
443 ;; License, or (at your option) any later version.
444
445 ;; challenge-bot is distributed in the hope that it will be useful,
446 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
447 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
448 ;; GNU Affero General Public License for more details.
449
450 ;; You should have received a copy of the GNU Affero General Public
451 ;; License along with challenge-bot. If not, see
452 ;; <http://www.gnu.org/licenses/>.