add second hole subsubsection and picture
authordaniel watson <ozzloy@gmail.com>
Sun, 12 Jun 2016 04:01:26 +0000 (21:01 -0700)
committerdaniel watson <ozzloy@gmail.com>
Sun, 12 Jun 2016 04:01:26 +0000 (21:01 -0700)
picture illustrates how moving holes apart can minimize rotation

curriculum/arduino-to-deck/keep-holes-far-apart.svg [new file with mode: 0644]
curriculum/challenge-bot.scm
curriculum/makefile

diff --git a/curriculum/arduino-to-deck/keep-holes-far-apart.svg b/curriculum/arduino-to-deck/keep-holes-far-apart.svg
new file mode 100644 (file)
index 0000000..0d90c54
--- /dev/null
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="640"
+   height="480"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="keep-holes-far-apart.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path4353"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path4341"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;">
+      <path
+         id="path4356"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path4344"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sstart-6"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4353-6"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.2,0,0,0.2,1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-4"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4356-9"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="296.97507"
+     inkscape:cy="192.5387"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="729"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-572.36218)">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(146.47212,596.81085)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-0"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(146.47212,570.2806)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-6"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(225.62116,597.51454)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-0-8"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(225.62116,570.98429)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-8"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(-7.0710682,806.0857)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-0-4"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(-7.0710682,779.55545)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-6-3"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(383.71003,806.34034)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.66600001;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:5.30000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3265-6-4-0-8-1"
+       sodipodi:cx="130.30968"
+       sodipodi:cy="70.888222"
+       sodipodi:rx="34.345188"
+       sodipodi:ry="34.345188"
+       d="m 164.65487,70.888222 a 34.345188,34.345188 0 1 1 -68.690381,0 34.345188,34.345188 0 1 1 68.690381,0 z"
+       transform="translate(383.71004,779.81009)" />
+    <path
+       style="fill:#008000;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 275.89791,678.22693 79.02277,27.17323"
+       id="path3467"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 29.294424,32.502422 572.756496,0"
+       id="path3471"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <path
+       style="fill:#008000;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 276.91325,132.3304 80.40818,-25.90183"
+       id="path3498"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:#008000;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 123.21429,314.64286 515,342.14286"
+       id="path3500"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <path
+       style="fill:#008000;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 122.5,342.14286 514.64286,315"
+       id="path3502"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 28.621753,631.6479 572.756497,0"
+       id="path3471-2"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.982823,814.21594 572.756497,0"
+       id="path3471-9"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.310152,840.99924 572.756498,0"
+       id="path3471-2-2"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Linux Libertine Mono O;-inkscape-font-specification:Linux Libertine Mono O"
+       x="437.14288"
+       y="716.64789"
+       id="text3559"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3561"
+         x="437.14288"
+         y="716.64789">same vertical</tspan><tspan
+         sodipodi:role="line"
+         x="437.14288"
+         y="741.64789"
+         id="tspan3563">distance</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Send)"
+       d="M 552.14286,127.14286 546.42857,45 l -35,0.714285 L 510.71429,35"
+       id="path4783"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Send)"
+       d="m 511.38656,617.66428 -4.32248,8.35411"
+       id="path4785"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Send)"
+       d="M 465.71429,173.57143 461.42857,256.42857 430.71429,255 l -2.14286,10"
+       id="path5521"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Send)"
+       d="m 430.71429,254.82143 -2.67857,-10.53572"
+       id="path5707"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <text
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Linux Libertine Mono O;-inkscape-font-specification:Linux Libertine Mono O"
+       x="103.57143"
+       y="748.07648"
+       id="text5893"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5895"
+         x="103.57143"
+         y="748.07648">angle A is</tspan><tspan
+         sodipodi:role="line"
+         x="103.57143"
+         y="773.07648"
+         id="tspan5897">bigger than angle B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Linux Libertine Mono O;-inkscape-font-specification:Linux Libertine Mono O"
+       x="280"
+       y="698.07648"
+       id="text5899"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5901"
+         x="280"
+         y="698.07648">A</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Linux Libertine Mono O;-inkscape-font-specification:Linux Libertine Mono O"
+       x="156.42857"
+       y="908.07648"
+       id="text5903"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5905"
+         x="156.42857"
+         y="908.07648">B</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="m 192.14286,160.71429 72.14285,-36.42858"
+       id="path5907"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="M 275,205.71429 173.57143,326.42857"
+       id="path6093"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)" />
+    <text
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Linux Libertine Mono O;-inkscape-font-specification:Linux Libertine Mono O"
+       x="138.57143"
+       y="411.42856"
+       id="text6279"
+       sodipodi:linespacing="125%"
+       transform="translate(0,572.36218)"><tspan
+         sodipodi:role="line"
+         id="tspan6281"
+         x="138.57143"
+         y="411.42856">holes that are far apart</tspan><tspan
+         sodipodi:role="line"
+         x="138.57143"
+         y="436.42856"
+         id="tspan6283">minimize rotation</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Sstart);marker-end:url(#Arrow1Send)"
+       d="m 149.64286,319.28571 c -4.67655,7.24258 -4.36891,13.17353 0,18.03572"
+       id="path6308"
+       inkscape:connector-curvature="0"
+       transform="translate(0,572.36218)"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Sstart);marker-end:url(#Arrow1Send)"
+       d="m 278.94958,685.37118 c -4.67655,7.24258 -4.19034,8.53067 0.17857,13.39286"
+       id="path6308-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
index 32b3020dfa4121be5eff3acc975b8cd0b9df8396..29b24eb0d0e8d63caf8453943a3961aca9c24241 100644 (file)
                  the deck.
                  it can translate and rotate freely.
                  with the first screw, the arduino can rotate around one
-                 point on the deck and can no longer translate much.])))
+                 point on the deck and can no longer translate much.])
+     (p [the second screw limits rotation a lot.
+             it also makes translation even more difficult.
+             it might even be too small to be detectable by directly
+             looking at it.])
+     (p [to choose where the second hole and screw should go, we should
+            keep in mind that the goal is to attach the deck to the
+            arduino.
+            this means minimizing rotation and translation.
+            the picture below shows that the second hole should be as
+            far as possible from the first hole, since that minimizes
+            rotation.]
+        (figure :legend "arduino to deck / keep holes far apart"
+                (image :file "arduino-to-deck/keep-holes-far-apart.png")))))
    (subsection
     :title [third and fourth hole and screw]))
   (section
index 8ef3a0fb402aaf807efaf5cd6476e31c2ead6299..08764ae3b68bb84e7413f65f8356cbe113ab3297 100644 (file)
@@ -80,6 +80,7 @@ challenge-bot.html: challenge-bot.scm \
                arduino-to-deck/screw-cross-section.png \
                arduino-to-deck/6-32-screw.png \
                arduino-to-deck/4-place-arduino-closeup.png \
+               arduino-to-deck/keep-holes-far-apart.png \
                makefile
        @skribilo $< > $@