From 5e2e135ea16d68d70f9592a457d00e3ee844ea18 Mon Sep 17 00:00:00 2001 From: daniel watson Date: Thu, 15 May 2014 11:15:11 -0700 Subject: [PATCH] update bill of materials * includes change in suppliers and prices for some parts * removes misleading out-of-date BOM --- bill-of-materials-rev-b.ods | Bin 6696 -> 0 bytes bill-of-materials.rkt | 90 +++++++++++++++++++++--------------- 2 files changed, 53 insertions(+), 37 deletions(-) delete mode 100644 bill-of-materials-rev-b.ods diff --git a/bill-of-materials-rev-b.ods b/bill-of-materials-rev-b.ods deleted file mode 100644 index 58877f8021131951e4c934755c7519c90926574a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6696 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 diff --git a/bill-of-materials.rkt b/bill-of-materials.rkt index 4f3b74a..55e6c5e 100755 --- a/bill-of-materials.rkt +++ b/bill-of-materials.rkt @@ -4,45 +4,61 @@ (module+ main (displayln total-cost)) -(struct item (description quantity unit-cost max-lead-days where-to-get)) - +;; TODO: describe in detail what each field is +(struct item + (description quantity unit-cost max-lead-days where-to-get note)) +(define (make-item + description quantity unit-cost max-lead-days where-to-get + [note ""]) + (item description quantity unit-cost max-lead-days where-to-get note)) (define bill-of-materials (list - (item "Arduino(tm) board" - 1 21 8 (string-append "http://store.mp3car.com/" - "Genuine_Arduino_Uno_R3_SMD_p/OPN-013B.htm" - "?gclid=CKizyYOKsrkCFap7Qgod9kgAOQ")) - (item "USB a to b" 1 4 7 "https://www.sparkfun.com/products/512") - (item "wheel" 2 3 7 "http://www.pololu.com/catalog/product/184") - (item "motor" 2 6 7 "http://www.pololu.com/catalog/product/181") - (item "half BreadBoard" 1 5 3 "http://www.adafruit.com/products/64") - (item "jumper wire male/male assorted lengths" - 1 6 3 "http://www.adafruit.com/products/153") - (item "jumper wire female/male" 1/5 6 2 - (string-append "http://www.nexuscyber.com/" - "7-premium-40-pin-male-to-female-jumper-wires")) - (item "small squares of double sided tape" - 1/30 12 1 - (string-append - "http://www.officedepot.com/" - "a/products/495242/Scotch-Permanent-Double-Sided-Foam-Tape/")) - (item "#4-40 Phillips 1 1/4 inch flat-head screws" - 3 .1 1 "home depot, lowes") - (item "#4-40 hex nuts" - 6 .1 1 "home depot, lowes") - (item "#4 lock washers" - 3 .1 1 "home depot, lowes") - (item "Red LEDs" - 2 .1 1 "evil mad science?") - (item "Yellow LEDs" - 2 .1 1 "evil mad science?") - (item "Green LEDs" - 2 .1 1 "evil mad science?") - (item "330 Ohm Resistors" - 6 .1 1 "evil mad science?") - (item "motor controller" - 1 (/ 5.2 5) 10 (string-append "http://www.ebay.com/" - "itm/like/180976411359?lpid=82")))) + ;; TODO: add solid core wires + ;; TODO: add male-female jump wires for connecting sonar sensors + ;; TODO: add 4x AA batteries + ;; TODO: add 4x AA battery holder + ;; TODO: add 3d printer filament cost for wheel, sonar sensor holders, + ;; caster standoff + ;; TODO: add ball caster + ;; TODO: add angle bracket from evil mad science + (make-item "Arduino(tm) board" + 1 16.98 8 + (string-append + "http://www.colorapples.com/2012-new-arduino-uno-r3-board" + "-atmega328-with-usb-cable-p-89818.html#.U3Lz5nJKyzA") + "comes with USB A to B cable") + (make-item "motor" 2 6 7 "https://solarbotics.com/product/gm3/") + (make-item "transparent 400 point (half) BreadBoard" + 1 5.95 1 + (string-append + "http://www.jameco.com/webapp/wcs/stores/servlet/" + "Product_10001_10001_2123830_-1")) + (make-item "jumper wire female/male" 1/5 6 2 + (string-append "http://www.nexuscyber.com/" + "7-premium-40-pin-male-to-female-jumper-wires")) + (make-item "small squares of double sided tape" + 1/30 12 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") + ;; TODO: get actual cost of #4-40 hex lock nuts + (make-item "#4-40 hex lock nuts" + 6 .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 + "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"))) (define total-cost (apply + (for/list ([thing bill-of-materials]) -- 2.30.2