X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=curriculum%2Fchallenge-bot.scm;h=1c8d841fa66a24d25e11deae9e8074cbe4caa3b6;hb=7bca727f4c460a9143f1856d29e4d9534e94dfcf;hp=47f6133c4f6cab4407380e6f530820c3329474db;hpb=37d286e70e8909e9cdb30d11eb638a5ceb82f202;p=challenge-bot diff --git a/curriculum/challenge-bot.scm b/curriculum/challenge-bot.scm index 47f6133..1c8d841 100644 --- a/curriculum/challenge-bot.scm +++ b/curriculum/challenge-bot.scm @@ -4,7 +4,351 @@ (document :title [challenge-bot] (chapter - :title [mechanical])) + :title [mechanical] + (p [let's build your robot!]) + (section + :title [arduino to deck] + (p [let's attach the arduino to the deck.]) + (subsection + :title [required materials] + (p [you will need the things in this picture. + ,(figure :legend "arduino to deck / required materials" + (image :file "arduino-to-deck/0-required-materials.png")) + ,(itemize + (item [medical kit with bandages]) + (item [safety goggles]) + (item [drill bit \(we will determine size in a moment\)]) + (item [drill]) + (item [alan wrench]) + (item [wood block]) + (item [arduino]) + (item [#6-32x3/8\", four of them]) + (item [robot deck, the white thing with a grid of holes1]))])) + (subsection + :title [first hole] + (subsubsection + :title [choosing drill bit] + (p [the arduino comes with holes in it already, so we will make + some choices around those holes. + choosing the right drill bit depends on what job you are + doing. + right now, we are making holes for screws to hold the + arduino to the deck. + there are two constraints between the hole and screw. + each hole needs to be big enough for the screw body to fit + through it. + the holes also need to be smaller than the screw's thread. + since there are holes on the arduino already, the screw was + chosen to match it. + the screw was chosen so that the hole on the arduino was + bigger than the screw body and smaller than its thread. + we will choose the biggest drill bit that fits through the + hole on the arduino, then use that to drill holes in the + deck.]) + (p [here's a cross section of a screw in the deck] + (figure :legend "screw cross section" + (image :file + "arduino-to-deck/screw-cross-section.png"))) + (p [check + ,(itemize + (item + [what would happen if the drill bit were larger than the + screw thread?]) + (item + [what would happen if the drill bit were smaller than the + screw body?]))])) + (subsubsection + :title [inserting drill bit] + (p (figure :legend "arduino to deck / insert bit" + (image :file "arduino-to-deck/1-insert-bit.png")) + [insert the drill bit into the teeth of the drill. + insert it far enough that the teeth will clamp on the + smooth part of the bit when they are tightened.]) + (p (figure + :legend "arduino to deck / twist tighten drill teeth" + (image :file "arduino-to-deck/2-twist-tighten-drill-teeth.png")) + [while holding the drill bit, twist end of the drill to tighten + the teeth. + make sure that the teeth end up gripping the flat part of + the drill bit.]) + (p [check + ,(itemize + (item + [where should the teeth clamp down on the drill bit?]) + (item + [what would happen if the teeth tightened on the recessed + part of the drill bit?]))])) + (subsubsection + :title [holding drill] + (p [hold the drill with one hand on the handle and trigger. + put the other hand on the orange nozzle, before the + black spinning part.])) + (subsubsection + :title [arduino placement] + (p [the arduino should be placed as shown in this picture.] + (figure :legend "arduino to deck / place arduino" + (image :file "arduino-to-deck/3-place-arduino.png"))) + (p [here's a closeup] + (figure :legend "arduino to deck / place arduino closeup" + (image :file + "arduino-to-deck/4-place-arduino-closeup.png")) + [the picture above shows where to place the arduino on the deck. + the arduino should line up with the holes on the deck. + this alignment line is highlighted in pink. + on the arduino, there's a hole on the top left, between the + orange reset button and black headers. + the green circle shows where the hole is. + the blue box encloses the arduino hole and two deck holes. + place the arduino hole mid-way between the two + deck holes.]) + (p [check + ,(itemize + (item + [should the arduino be upside-down?]) + (item + [what should the upper side of the arduino align with?]) + (item + [why not place the arduino up along the left side of the + robot?]))])) + (subsubsection + :title [drilling practice] + (p [strength check] + (itemize + (item [put on safety goggles]) + (item [unplug drill]) + (item [hold drill in one hand]) + (item [point drill at the ground]) + (item [point drill at the wall]))) + (p [steps for drilling into wood block] + (itemize + (item [plug in the drill]) + (item [place the drill bit in position]) + (item [bring the drill up to full speed, and keep it at full + speed while lowering and raising the drill]) + (item [push down until the drill bit has passed through an inch + of the wood block]) + (item [keep the drill at full speed]) + (item [stop before the drill smashes into the wood block]) + (item [keep the drill at full speed by holding the trigger]) + (item [bring the drill straight back up]) + (item [hold the trigger down to keep the drill at full speed]) + (item [once the drill is back out of the hole, let go of the + trigger]))) + (p [check + ,(itemize + (item + [should the drill be at full speed while the drill bit is + going down into the wood and coming back up?]) + (item + [how do you keep the drill at full speed?]) + (item + [what would happen if the drill bit were not at full + speed?]) + (item + [what would happen if the drill were twisted sideways while + the drill bit were in the wood?]))])) + (subsubsection + :title [drilling the first screw hole] + (itemize + (item [place the drill bit in position]) + (item [bring the drill up to full speed, and keep it full speed]) + (item [push down until the drill bit has passed through the + deck]) + (item [keep the drill at full speed]) + (item [stop before the drill smashes into the arduino]) + (item [keep the drill at full speed by holding the trigger]) + (item [bring the drill straight back up]) + (item [hold the trigger down to keep the drill at full speed]) + (item [once the drill is back out of the hole, let go of the + trigger])) + (p [check + ,(itemize + (item + [should the drill be at full speed while the drill bit is + going down into the wood and coming back up?]) + (item + [what would happen if the drill bit were not at full + speed?]) + (item + [how do you keep the drill at full speed?]))]))) + (subsection + :title [first screw] + (subsubsection + :title [fastening arduino to deck using #6-32x3/8\" screw] + (p [the "#6" part of "#6-32x3/8\"" is how big around the bolt is. + it is related to wire gauge. + bigger numbers mean larger screws. + smaller numbers means smaller screws.] + (figure :legend "arduino to deck / #6-32 screw" + (image :file + "arduino-to-deck/6-32-screw.png"))) + (p [check + ,(itemize + (item + [in the motor assembly, there are #4-40x1.25\" screws. + are those fatter, thinner, or the same thickness as the + #6-32x3/8\" screws?]))]) + (p [the "32" part of "#6-32x3/8\"" is a measurement of how close + the threads are to each other. + this is related to the angle of the thread, which is also + called pitch. + it is a count of how many times the thread wraps around one + inch of the screw body.]) + (p [the head is the flat part where some tool, like the alan + wrench, can exert force to spin the screw.]) + (p [check + ,(itemize + (item [how many times will the thread wrap around one inch of + the screw body?]) + (item [what about 2 inches? + how many times will the thread wrap around two + inches of the screw body?]) + (item [where can a tool exert turning force on + the screw?]))])) + (subsubsection + :title [fasten the arduino board to the deck] + (p [first we'll put the screw into the deck just enough so the deck + holds it in place. + then we will hold the arduino up to the screw and finish + tightening the screw down. + with the screw partially in, we do not have hold it as + rigidly while we are also holding the arduino and + the deck.]) + (p [push the #6-32 screw into the deck from the underside. + the underside is the brown side. + at the same time, spin the 6-32 screw so it rotates + clockwise while looking down on its head. + twist until the tip of the screw is about to stick out on + the top side of the deck.]) + (p [hold the arduino board flat to the deck and line up the arduino + hole so the screw can come up through it. + continue tightening the screw into the deck, spinning the same + direction as before. + tighten until the screw head touches the deck. + do not continue tightening after that.]) + (p [the arduino should still be flat against the deck still, just + as it was before tightening the screw.]) + (p [check + ,(itemize + (item [why do we insert the first screw partially before + holding up the arduino?]) + (item [which side of the deck is the top side?]))])) + (subsubsection + :title [assessment of the first screw] + (itemize + (item [,(bold [warning]), if you rotate the arduino board too + much,you will unscrew it from the deck and you'll have to + screw it back in. + rotating a few degrees should be ok.]) + (item [does the arduino stay with the deck when the deck moves?]) + (item [can the arduino board still rotate a few degrees?])))) + (subsection + :title [second hole and screw] + (subsubsection + :title [arduino board move relative to deck] + (p [without any screws, the arduino board can move independently of + the deck. + with the first screw, the arduino can rotate around one + point on the deck.]))) + (subsection + :title [third and fourth hole and screw])) + (section + :title [breadboard]) + (section + :title [battery packs] + (subsection + :title [leads]) + (subsection + :title [deck attachment])) + (section + :title [motors] + (subsection + :title [leads]) + (subsection + :title [mount]) + (subsection + :title [deck attachment])) + (section + :title [wheels] + (subsection + :title [tread]) + (subsection + :title [motor])) + (section + :title [caster] + (subsection + :title [deck placement])) + (section + :title [sonars] + (subsection + :title [deck placement]))) + (chapter + :title [wiring and software] + (section + :title [serial] + (subsection + :title [software on computer] + (subsubsection + :title [arduino]) + (subsubsection + :title [fritzing])) + (subsection + :title [attach arduino and computer via cable]) + (subsection + :title [debugging common connection problems]) + (subsection + :title [arduino reset button])) + (section + :title [left sonar] + (subsection + :title [breadboard connectivity]) + (subsection + :title [cable]) + (subsection + :title [arduino headers]) + (subsection + :title [sound cm per microsecond at sea level])) + (section + :title [both sonars] + (subsection + :title [breadboard power rail] + (p [power rail can provide power to more than one device.]))) + (section + :title [left motor] + (subsection + :title [arduino digital output]) + (subsection + :title [quad half h bridge, aka motor controller]) + (subsection + :title [motor battery])) + (section + :title [both motors] + (subsection + :title [analogWrite])) + (section + :title [untethered] + (subsection + :title [arduino battery]) + (subsection + :title [off and on functions])) + (section + :title [follow] + (subsection + :title [same wiring as untethered]) + (subsection + :title [set motor]) + (subsection + :title [go]) + (subsection + :title [determining speed])) + (section + :title [stay on table] + (subsection + :title [stop]) + (subsection + :title [backup]) + (subsection + :title [turn around])))) ;; Copyright 2016 daniel watson