add check on screw head
[challenge-bot] / curriculum / challenge-bot.scm
index 2e9f0cdef7d809c022ab16e33bc5acc9e9777605..beefcb478d56110690adea9ffa0535f50fc85f6a 100644 (file)
  :title [challenge-bot]
  (chapter
   :title [mechanical]
+  (p [let's build your robot!])
   (section
-   :title [arduino]
+   :title [arduino to deck]
+   (p [let's attach the arduino to the deck.])
    (subsection
-    :title [arduino placement])
+    :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 and screw])
+    :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 [push the 6-32 screw into the deck from the underside and at the
+              same time, spin the 6-32 screw clockwise while looking
+              down on its head.
+              twist until the bottom 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.]))
+    (subsubsection
+     :title [assessment]
+     (p [does the arduino stay with the deck when the deck moves?
+              can the arduino board still rotate a few degrees?
+              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.]))
+    (subsubsection
+     :title [arduino board move relative to deck]
+     (p [without any screws, the arduino board can move independently of
+                 the deck.])
+     (p [with the first screw, the arduino can rotate around one point
+              on the deck.])))
    (subsection
     :title [second hole and screw])
    (subsection
     :title [third and fourth hole and screw]))
+  (section
+   :title [breadboard])
   (section
    :title [battery packs]
    (subsection
   (section
    :title [serial]
    (subsection
-    :title [arduino software on computer])
+    :title [software on computer]
+    (subsubsection
+     :title [arduino])
+    (subsubsection
+     :title [fritzing]))
    (subsection
     :title [attach arduino and computer via cable])
    (subsection
    (subsection
     :title [arduino reset button]))
   (section
-   :title [left sonar])
+   :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])
+   :title [both sonars]
+   (subsection
+    :title [breadboard power rail]
+    (p [power rail can provide power to more than one device.])))
   (section
-   :title [left motor])
+   :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])
+   :title [both motors]
+   (subsection
+    :title [analogWrite]))
   (section
-   :title [untethered])
+   :title [untethered]
+   (subsection
+    :title [arduino battery])
+   (subsection
+    :title [off and on functions]))
   (section
-   :title [follow])
+   :title [follow]
+   (subsection
+    :title [same wiring as untethered])
+   (subsection
+    :title [set motor])
+   (subsection
+    :title [go])
+   (subsection
+    :title [determining speed]))
   (section
-   :title [stay on table])))
+   :title [stay on table]
+   (subsection
+    :title [stop])
+   (subsection
+    :title [backup])
+   (subsection
+    :title [turn around]))))
 
 ;; Copyright 2016 daniel watson