finish motor assembly checklist and arduino to deck
[challenge-bot] / bill-of-materials.rkt
index 064ce849723933fdd7a7038f403296457ecd5fa2..cb1f2432936d64b0b77a074f0505182cc937b207 100755 (executable)
    ;; any special notes about the item
    note))
 
+;; estimate of the cost of pla in dollars per cubic centimeter
+(define pla-$/cm^3
+  ;; this cost is an estimate taken from this site
+  ;; http://www.toybuilderlabs.com/
+  ;;  blogs/news/13053117-filament-volume-and-length
+  (/ 25 800))
+
 ;; usually, the above code would be enough for describing a bunch of
 ;;  items.  unfortunately, the last argument, for the parameter 'note',
 ;;  must be supplied in the default item constructor created above.
          [note ""])
   (item description quantity unit-cost max-lead-days where-to-get note))
 
+;; TODO: add sonar sensor cable making supplies
 ;; TODO: add actual cost for screws, nuts, and other estimated parts
 ;; TODO: add male-female jump wires for connecting sonar sensors
-;; TODO: add 3d printer filament cost for wheel, sonar sensor holders,
-;;       caster standoff
 ;; TODO: add ball caster
-;; TODO: add 9v battery holder and 9v battery
 ;; TODO: checkout the following, if it's not a fraud, buy for next class
 ;;; (string-append
 ;;;  "http://www.ebay.com/itm/UNO-R3-Development-Board-MEGA328P-"
@@ -66,7 +71,7 @@
               ;; this is the argument for the parameter 'quantity'.
               ;; this is the number of millimeters of orange wire
               ;;  in a single robot kit.
-              ;; there are 2 orange wires, one for each wire.
+              ;; there are 2 orange wires, one for each motor.
               ;; the 120 mm wire reaches to the far side of the
               ;;  motor controller
               (+ 120 90)
               (string-append
                "http://www.jameco.com/webapp/wcs/stores/servlet/Product"
                "_10001_10001_36792_-1"))
-   (make-item "4xAA battery"
+   (make-item "9v battery"
+              1 1.29 1
+              (string-append
+               "https://www.jameco.com/webapp/wcs/stores/servlet/Product"
+               "_10001_10001_151095_-1")
+              "can get in store")
+   (make-item "9v battery holder"
+              1 (/ 1.25 10) 1
+              (string-append
+               "http://www.jameco.com/webapp/wcs/stores/servlet/Product"
+               "_10001_10001_2128067_-1")
+              "can get in store")
+   (make-item "AA battery"
               4 (/ 17.99 100) 1
               "http://www.frys.com/product/6292850"
               "can get in store")
               (string-append
                "can get in store.  unit cost goes down for large orders"
                ", see page for specifics."))
-   (make-item "Arduino(tm) board"
+   (make-item "Arduino(tm) Uno board"
               1 16.98 8
               (string-append
                "http://www.colorapples.com/2012-new-arduino-uno-r3-boar"
               (string-append
                "comes with USB A to B cable.  unit cost goes down for"
                " large orders, see page for specifics."))
-   (make-item "motor" 2 6 7 "https://solarbotics.com/product/gm3/")
+   (make-item "gm3 motor 224:1 90 degree shaft"
+              2 6 7
+               "https://solarbotics.com/product/gm3/")
    (make-item "transparent 400 point (half) BreadBoard"
               1 5.95 1
               (string-append
                "http://www.officedepot.com/a/products/495242/"
                "Scotch-Permanent-Double-Sided-Foam-Tape/"))
    ;; TODO: get actual cost of #4-40 phillips 1&1/4" screws
-   (make-item "#4-40 Phillips 1 1/4 inch screws"
-              3 .1 1
-              "olander" "price is an estimate. can pick up in person")
+   (make-item "#4-40 Phillips 1 pan stl zn cr3, magnetic"
+              4 0.1 1
+              "olander PN:4C100PPMZR"
+              "price is an estimate. can pick up in person")
    ;; TODO: get actual cost of #4-40 hex lock nuts
    (make-item "#4-40 hex lock nuts"
-              6 .1 1
+              6 0.1 1
               "olander" "price is an estimate. can pick up in person")
    ;; TODO: get actual cost of #6-32 3/8" screws
    (make-item "#6-32 button hex head socket 3/8 inch"
-              12 .1 1
+              12 0.1 1
               "olander" "price is an estimate. can pick up in person")
    (make-item "motor controller"
               1 (/ 5.2 5) 10
               "http://www.ebay.com/itm/like/180976411359?lpid=82")
    (make-item "sonar sensor hc-sr04"
               2 1.39 7
-              "http://www.ebay.com/itm/161156018270")))
+              "http://www.ebay.com/itm/161156018270")
+   (make-item "caster standoff"
+              1 (* 8.2 pla-$/cm^3) 1
+              "3d print at home")
+   (make-item "wheel"
+              2 (* 11.3 pla-$/cm^3) 1
+              "3d print at home")
+   (make-item "deck holder"
+              2 (* 4.0 pla-$/cm^3) 1
+              "3d print at home")
+   (make-item "sonar holder"
+              2 (* 2.4 pla-$/cm^3) 1
+              "3d print at home" "price of filament is an estimate")
+   (make-item "motor mount"
+              2 (* 3.1 pla-$/cm^3) 1
+              "3d print at home")))
 
 (define total-cost
   (apply + (for/list ([thing bill-of-materials])