+++ /dev/null
-### Phase 1: Arduino + Blinky LED's:
-
-Goals:
-
-* Cut peg board to size using hack saw
-* Get Arduino IDE installed on laptop.
-* Drill Arduino mounting holes in peg board
-* Mount Arduino to peg board using screws
-* Mount Mini Breadboard to peg board
-* Install LED + resistor on breadboard
-* Hook up LED to Arduino
-* Download Blinky LED program
-
-Bill of Materials:
-
-* 1 Arduino(tm) board + USB Cable (SainSmart: 20-011-110: ~$14/10)
-* 1 Mini BreadBoard (Ebay: ~$3/10)
-* 1 Breadboard cables (Ebay: ~$4/10)
-* 1 4in x 5in peg board to mount arduino + miniboard
-* 4 small squares of double sided tape
-* 3 #4-40 Phillips 1/2" flat-head screws
-* 6 #4-40 hex nuts
-* 3 #4 lock washers
-* 2 Red LED's
-* 2 Yellow LED's
-* 2 Green LED's
-* 6 330 Ohm Resistors
-
-Required Tools:
-
-* 1 Safety glasses!!!
-* 1 Laptop Windows or MacOS or Linux
-* 1 Hack saw (to cut peg board)
-* 1 Phillips screw driver
-* 1 Drill + Drill Bits
-* 1 Pliers
+++ /dev/null
-/*
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of
- the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * traffic lights
- */
-
-int red0 = 12;
-int yellow0 = 11;
-int green0 = 10;
-
-int red1 = 7;
-int yellow1 = 6;
-int green1 = 5;
-
-void setup() {
- pinMode(red0, OUTPUT);
- pinMode(red1, OUTPUT);
- pinMode(yellow0, OUTPUT);
- pinMode(yellow1, OUTPUT);
- pinMode(green0, OUTPUT);
- pinMode(green1, OUTPUT);
-}
-
-/*
- on(pinNumber);
- turn on pin 'pinNumber'.
- digitalWrite(pinNumber, HIGH); turns the voltage on for that pin.
- */
-void on(int pinToTurnOn) {
- digitalWrite(pinToTurnOn, HIGH);
-}
-
-/*
- off(pinNumber);
- turn off pin 'pinNumber'.
- digitalWrite(pinNumber, LOW); turns the voltage off for that pin.
-*/
-void off(int pinToTurnOff) {
- digitalWrite(pinToTurnOff, LOW);
-}
-
-void onsOffs(int* pinsToTurnOn, int numberOfPinsToTurnOn,
- int* pinsToTurnOff, int numberOfPinsToTurnOff){
- // generic index used for arrays of pins to turn on or off
- int index;
- // turn off pins in pinsToTurnOff
- for(index = 0; index < numberOfPinsToTurnOff; index++) {
- off(pinsToTurnOff[index]);
- }
- // turn on pins in pinsToTurnOn
- for(index = 0; index < numberOfPinsToTurnOn; index++) {
- on(pinsToTurnOn[index]);
- }
-}
-
-void loop() {
- int redWait = 300;
- int yellowWait = 800;
- int greenWait = 1600;
-
- onsOffs((int[]){red0, green1}, 2,
- (int[]){yellow0, green0, red1, yellow1}, 4);
- delay(greenWait);
-
- onsOffs((int[]){red0, yellow1}, 2,
- (int[]){yellow0, green0, red1, green1}, 4);
- delay(yellowWait);
-
- onsOffs((int[]){red0, red1}, 2,
- (int[]){yellow0, green0, yellow1, green1}, 4);
- delay(redWait);
-
- onsOffs((int[]){green0, red1}, 2,
- (int[]){red0, yellow0, yellow1, green1}, 4);
- delay(greenWait);
-
- onsOffs((int[]){yellow0, red1}, 2,
- (int[]){red0, green0, yellow1, green1}, 4);
- delay(yellowWait);
-
- onsOffs((int[]){red0, red1}, 2,
- (int[]){yellow0, green0, yellow1, green1}, 4);
- delay(redWait);
-}
+++ /dev/null
-### Phase 1: Build Robot Platform
-
-Goals:
-
-* Solder 2 motor wires to each motor
-* Mount Motors to brackets
-* Mount brackets to base
-* Attach to caster to base
-* Attach Arduino+Breadboard to peg board base with screws
-* Install SN754410NE on breadboard
-* Connect motors to breadboard
-* Connect Arduino to breadboard
-* Download a program to make the base move forward and backward
-
-Bill of Materials:
-
-* 1 8in x 8in peg board for robot base
-* 2 GM3 gear motors (Solarbotics: $11.50/2)
-* 2 GMPW Wheels (Solarbotics: $6.50/2)
-* 2 Wheel brackets (custom: ~$3/2)
-* 1 4AA Battery Holder w/cover&switch (Jameco: 216187: ~$1.05)
-* 1 9V Battery Holder w/cover&switch (Jameco: 2128067: ~$1.40)
-* 4 AA Batteries (Brooklyn Batteries)
-* 1 9V Battery (Brooklyn Batteries)
-* 1 Ball Castor (Walgreens: Roll-on Deoderant: ~$3)
-* 1 SN754410NE Dual H-Bridge (Future: ~$1)
-* 14 #6-32 3/4in Phillips Pan-Head screws (Olander)
-* 21 #6 Washers (Olander)
-* 28 #6-32 Hex Nuts (Olander)
-* 14 #6 internal tooth lock washers (Olander)
-* 4 #4-40 1in Phillips Flat-Head screws (Olander)
-* 4 #4-40 Regular Pattern Hex Nut (Olander)
-* 2 #4-40 3/4in Phillips Flat-Head screws (Olander)
-* 2 #4-40 Small Pattern Hex Nut (Olander)
-* 2 Nylon ties (Frys)
-* 5 Rubber bands (Office Depot)
-
-Additional Required Tools:
-
-* 1 Soldering iron
-* 1 Roll of solder
-* 1 Solder tip cleaner
-* 1 Diagonal cutter
-* 1 Wire Stripper
+++ /dev/null
-/*
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// use pin 13's LED to indicate intended travel direction.
-// on == forward, off == backward
-int led = 13;
-
-int leftMotorEnable = 10;
-int leftMotorA = 9;
-int leftMotorB = 8;
-
-int rightMotorEnable = 3;
-int rightMotorA = 4;
-int rightMotorB = 5;
-
-void setupMotor(int motorEnable, int motorA, int motorB){
- pinMode(motorEnable, OUTPUT);
- pinMode(motorA, OUTPUT);
- pinMode(motorB, OUTPUT);
-
- digitalWrite(motorEnable, LOW);
- digitalWrite(motorA, LOW);
- digitalWrite(motorB, LOW);
-}
-
-// the setup routine runs once when you press reset:
-void setup() {
- // initialize the digital pin as an output.
- setupMotor(leftMotorEnable, leftMotorA, leftMotorB);
- setupMotor(rightMotorEnable, rightMotorA, rightMotorB);
-
- pinMode(led, OUTPUT);
-}
-
-void motorsRun(int left, int right, int msDelay) {
- // Set left motor direction:
- if (left > 0) {
- // Set left motor to go forward:
- digitalWrite(leftMotorA, HIGH);
- digitalWrite(leftMotorB, LOW);
- } else {
- // Set left motor to go backward:
- digitalWrite(leftMotorA, LOW);
- digitalWrite(leftMotorB, HIGH);
- left = -left; // Make left a positive value:
- }
-
- analogWrite(rightMotorEnable, left); // Start motor in right direction
- // Set left motor direction:
- if (right > 0) {
- // Set right motor to go forward:
- digitalWrite(rightMotorA, HIGH);
- digitalWrite(rightMotorB, LOW);
- } else {
- // Set right motor to go backward:
- digitalWrite(rightMotorA, LOW);
- digitalWrite(rightMotorB, HIGH);
- right = -right; // Make right a positive value:
- }
- analogWrite(leftMotorEnable, left); // Start motor in right direction
-
- delay(msDelay); // Wait the specified amount of time
-
- // Stop both motors:
- analogWrite(leftMotorEnable, 0);
- analogWrite(rightMotorEnable, 0);
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
- digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
- motorsRun(100, 100, 2000);// Run the robot forward
- digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
- motorsRun(-100, -100, 2000); // Run the robot backward
-}
+++ /dev/null
-### Phase 2: Build TableTop Challenge Phase 1
-
-Goals:
-
-* Cut out two pieces of Peg Board
-* Drill mounting holes for sonar module
-* Crimp connectors to cable
-* Mount Sonar modules to Robot base
-* Plug Sonar modules into breadboard + Arduino
-* Develop table top challenge code
-
-Bill of Materials:
-
-* 1 ?in x ?in peg board sonar holders
-* 2 Sonar sensors (EBay: HC-SR04 ~$4/2)
-* 4 2x8 .1in Female IDC connectors
-* 2 12in 8 conductor ribbon cable
-* 2 1x4 .1in Male-to-Male Headers
-* 4 #4-40 Phillips Pan Head Screws
-* 8 #4-40 Hex nuts
-* 4 #4 Washers
-* 4 #4 internal tooth lock washers
-* 2 #6-32 Phillips Pan Head Screws
-* 2 #6-32 Hex Nuts
-* 4 #6 Washers
-* 2 #6 internal tool lock washers
-* 1 18" of twine (for a Wyland leash)
-
-Additional Required Tools:
-
-* 1 Benchtop vice
-
-That provides the basic configuration.
-
-## Rechargable Battery Upgrade
-
-This gets rid of the hassle of buying and throwing
-away AA batteries.
-
-Bill of Materials:
-
-* 2 7.2V 1300mAh LiPo Battery Packs (Trossen: BAT-7V1300M: $26/2)
-* 1 LiPo Battery Charger (Trossen: KIT-CHG-LIPO: ($16+$11)/1)
-* 2 Female Deans Connector (TBD)
-* 1 DPDT Power Switch (TBD)
-
-## Raspberry Pi Upgrade
-
-The DC-DC convert is rated for 1.5A and can be
-plugged into the breadboard. The ribbon cable
-can be assembled with just a vise. The RasPi
-allows 5V to be injected over the cable. Obviously
-the RasPi allows people to start trying out ROS.
-
-Bill of Materials:
-
-* 1 Raspberry Pi Model B 512MB (Newark: $35)
-* 1 OKI-78SR-5/1.5-W36: 5V@1.5A DC/DC Switcher (Digikey: $4.30)
-* 1 2x13 Female Ribbon Cable Header
-* 1 16-conductor chunk of ribbon cable
-* 1 2x8 Female Ribbon Cable Header
-* 1 1x8 Male to Male pins header pins
-
-## Odometry Upgrade
-
-This upgrade requires some work.
-
-Bill of Materials:
-
-* 2 AS5055 ($10/2)
-* 2 AS5055 PCB's
-* 2 Appropriate magnet ($2/2)
-* 2 GM3 to magnet shaft adaptor
-
-An adaptor from the GM3 to Magnet is needed;
-this would be custom made out of some plastic.
-In addition a custom PCB is needed to hold
-the AS5055 which is a surface mount chip.
-
-## WiFi Upgrade
-
-Something like the GMYLE using the RTL8191SU should
-do the trick. With this it is possible to network
-into your robot. There it may be necessary to have
-separate power injection for the Wi-Fi.
-
-Bill of Materials:
-
-* 1 USB WiFi Dongle with decent antenna (Amazon: ~9)
-
-## Camera Upgrade
-
-This RasPi camera has not shipped yet, but it seems
-to be nearing the end of prototyping. A USB camera
-is another alternative.
-
-Bill of Materials:
-
-* 1 RasPi Camera (~$25)
-
-## Cheap Arm Upgrade
-
-Bill of Materials:
-* 4 Hobby servos (base twist, shoulder, elbow, gripper)
-* 1 Gripper (Jameco 358811: $20)
-* Appropriate struts
-
-This is a low payload arm that can lift 10-20 oz max.
+++ /dev/null
-/*
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-/*
- Motor.
- Runs both motors back and forth.
-n
- This example code is in the public domain.
- */
-
-int motor1_enable = 10;
-int motor1a = 9;
-int motor1b = 8;
-int motor2_enable = 3;
-int motor2a = 4;
-int motor2b = 5;
-
-// ping sensors
-int left_trigger = 12;
-int left_echo = 11;
-int right_trigger = 7;
-int right_echo = 6;
-
-// the setup routine runs once when you press reset:
-void setup() {
- Serial.begin(9600);
-
- // initialize the digital pin as an output.
- pinMode(motor1_enable, OUTPUT);
- pinMode(motor1a, OUTPUT);
- pinMode(motor1b, OUTPUT);
- pinMode(motor2_enable, OUTPUT);
- pinMode(motor2a, OUTPUT);
- pinMode(motor2b, OUTPUT);
-
- // ping sensors
- pinMode(left_trigger, OUTPUT);
- pinMode(left_echo, INPUT);
- pinMode(right_trigger, OUTPUT);
- pinMode(right_echo, INPUT);
-
- digitalWrite(motor1_enable, LOW);
- digitalWrite(motor1a, LOW);
- digitalWrite(motor1b, LOW);
- digitalWrite(motor2_enable, LOW);
- digitalWrite(motor2a, LOW);
- digitalWrite(motor2b, LOW);
-}
-
-void
-on(int pin)
-{
- digitalWrite (pin, HIGH);
-}
-
-void
-off(int pin)
-{
- digitalWrite (pin, LOW);
-}
-
-int
-ping(int trigger, int echo)
-{
- int ping_time;
- on(trigger);
- delayMicroseconds(12);
- off(trigger);
- ping_time = pulseIn (echo, HIGH);
- if (ping_time <= 0)
- ping_time = 3000;
- return ping_time;
-}
-
-void motorsRun(int left, int right, int ms_delay) {
- // Set left motor direction:
- if (left > 0) {
- // Set left motor to go forward:
- digitalWrite(motor1a, HIGH);
- digitalWrite(motor1b, LOW);
- } else {
- // Set left motor to go backward:
- digitalWrite(motor1a, LOW);
- digitalWrite(motor1b, HIGH);
- left = -left; // Make left a positive value:
- }
- analogWrite(motor1_enable, left); // Start motor in right direction
-
- // Set left motor direction:
- if (right > 0) {
- // Set right motor to go forward:
- digitalWrite(motor2a, HIGH);
- digitalWrite(motor2b, LOW);
- } else {
- // Set right motor to go backward:
- digitalWrite(motor2a, LOW);
- digitalWrite(motor2b, HIGH);
- right = -right; // Make right a positive value:
- }
- analogWrite(motor2_enable, right); // Start motor in right direction
-
- delay(ms_delay); // Wait the specified amount of time
-}
-
-// the loop routine runs over and over again forever:
-void
-loop()
-{
- int left_speed = 0;
- int right_speed = 0;
-
- int left_ping = ping (left_trigger, left_echo);
- int right_ping = ping (right_trigger, right_echo);
-
- /*
- Serial.print ("left ping = ");
- Serial.print (left_ping);
-
- Serial.print (" right ping = ");
- Serial.println (right_ping);
- */
-
- if (left_ping < 400)
- {
- left_speed = 250;
- }
-
- if (right_ping < 400)
- {
- right_speed = 250;
- }
-
- if (left_speed == 0 && right_speed == 0)
- {
- // backup
- motorsRun(-250, -250, 2000);
- // turn around
- motorsRun(-250, 250, 3200);
- }
- else
- {
- motorsRun(left_speed, right_speed, 0);
- }
-}
+++ /dev/null
-/*
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-// This program implements table top challenge level ###?### --
-// The robot follows a flat vertical surface at a distance of a couple inches.
-
-// Set *debug* to 1 to enable debugging statements:
-int debug = 1;
-
-// Set *stop_at_edge* to 1 to have robot stop at the edge;
-// otherwise, it will back away from edge:
-int stop_at_edge = 0;
-
-// Set *table_top_threshold* to a value that captures the
-// tabletop distance for *your* robot:
-int table_top_threshold = 600;
-
-// Set *sonar_timeout* to a value a 200-300 uSec longer
-// that your table top threshold:
-
-int sonar_timeout = 1600;
-
-// Set *sonar_set_point* to a value that specifies the approximate
-// follow distance:
-
-int sonar_follow_distance = 800;
-
-// Pin definitions:
-int led = 13;
-int left_motor_enable = 3;
-int left_motor_a = 4;
-int left_motor_b = 5;
-int right_motor_enable = 10;
-int right_motor_a = 9;
-int right_motor_b = 8;
-int right_sonar_trigger = 7;
-int right_sonar_echo = 6;
-int left_sonar_trigger = 12;
-int left_sonar_echo = 11;
-
-// the setup routine runs once when you press reset:
-void setup() {
- // If debugging is enabled,
- if (debug) {
- // 115200 is the fastest "standard" baud rate for debugging.
- // Be sure to set the baud Tools=>Serial Monitor to 115200:
- Serial.begin(9600);
- }
-
- // Set LED output pin:
- pinMode(led, OUTPUT);
-
- // Set H-bridge control pins:
- pinMode(left_motor_enable, OUTPUT);
- pinMode(left_motor_a, OUTPUT);
- pinMode(left_motor_b, OUTPUT);
- pinMode(right_motor_enable, OUTPUT);
- pinMode(right_motor_a, OUTPUT);
- pinMode(right_motor_b, OUTPUT);
-
- // Set control pins for both left and right sonars:
- pinMode(left_sonar_trigger, OUTPUT);
- pinMode(left_sonar_echo, INPUT);
- pinMode(right_sonar_trigger, OUTPUT);
- pinMode(right_sonar_echo, INPUT);
-
- // Set all the pin values to predefined values:
- digitalWrite(led, HIGH);
- digitalWrite(left_motor_enable, LOW);
- digitalWrite(left_motor_a, LOW);
- digitalWrite(left_motor_b, LOW);
- digitalWrite(right_motor_enable, LOW);
- digitalWrite(right_motor_a, LOW);
- digitalWrite(right_motor_b, LOW);
- digitalWrite(left_sonar_trigger, LOW);
- digitalWrite(right_sonar_trigger, LOW);
- digitalWrite(left_sonar_trigger, LOW);
- digitalWrite(right_sonar_trigger, LOW);
-}
-
-void motors_run(int left, int right, int ms_delay) {
- // Set left motor direction:
- if (left > 0) {
- // Set left motor to go forward:
- digitalWrite(left_motor_a, HIGH);
- digitalWrite(left_motor_b, LOW);
- } else {
- // Set left motor to go backward:
- digitalWrite(left_motor_a, LOW);
- digitalWrite(left_motor_b, HIGH);
- left = -left; // Make left a positive value:
- }
- // Make sure we cap the speed at 255:
- if (left > 255) {
- left = 255;
- }
- analogWrite(left_motor_enable, left); // Start motor in right direction
-
- // Set right motor direction:
- if (right > 0) {
- // Set right motor to go forward:
- digitalWrite(right_motor_a, HIGH);
- digitalWrite(right_motor_b, LOW);
- } else {
- // Set right motor to go backward:
- digitalWrite(right_motor_a, LOW);
- digitalWrite(right_motor_b, HIGH);
- right = -right; // Make right a positive value:
- }
- // Make sure we cap the speed at 255:
- if (right > 255) {
- right = 255;
- }
- analogWrite(right_motor_enable, right); // Start motor in right direction
-
- delay(ms_delay); // Wait the specified amount of time
-}
-
-// This routine will trigger a HC-SR04 sonar that has its
-// trigger pin attached to *sonar_trigger* and its echo
-// pin attached to *sonar_echo*. If the echo response
-// takes longer than *timeout* microseconds, *timeout* is
-// returned.
-int ping(int sonar_trigger, int sonar_echo, int timeout) {
- int result = timeout;
- if (!digitalRead(sonar_echo)) {
- // *sonar_echo* is LOW, so we can safely trigger a 12uS
- // trigger pulse:
- digitalWrite(sonar_trigger, HIGH);
- delayMicroseconds(12);
- digitalWrite(sonar_trigger, LOW);
-
- // Time the resulting echo pulse. If the resulting echo pulse
- // is longer than *timeout*, *pulseIn* returns 0.
- result = pulseIn(sonar_echo, HIGH, timeout);
-
- if (result == 0) {
- // We timed out, so return *timeout*:
- result = timeout;
- }
- }
- // else *sonar_echo* is still high from the previous trigger;
- // return *timeout* when this occurs.
- return result;
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
- // Get the left and right sonar values:
- int left_ping = ping(left_sonar_trigger, left_sonar_echo, sonar_timeout);
- int right_ping = ping(right_sonar_trigger, right_sonar_echo, sonar_timeout);
-
- // Set the left and right motor speed:
- int left_speed = left_ping - sonar_follow_distance;
- int right_speed = right_ping - sonar_follow_distance;
-
- // Debugging code:
- if (debug) {
- // Print some debugging information:
- Serial.print("lp=");
- Serial.print(left_ping);
- Serial.print(" rp=");
- Serial.print(right_ping);
- Serial.print(" ls=");
- Serial.print(left_speed);
- Serial.print(" rs=");
- Serial.println(right_speed);
-
- // Delay a little so that the serial port does not get
- // swamped with debugging information:
- delay(100);
- }
-
- // Set the motor speeds:
- motors_run(left_speed, right_speed, 0);
-}
+++ /dev/null
-(robot
- (angle-bracket
- (size (.5 inches by .5 inches))
- (thread 6-32)
- (from evil-mad-science
- (url http://shop.evilmadscientist.com/productsmenu/partsmenu/465-bracket?qh=YTo0OntpOjA7czo1OiJhbmdsZSI7aToxO3M6NjoiYW5nbGVzIjtpOjI7czo3OiJicmFja2V0IjtpOjM7czo4OiJicmFja2V0cyI7fQ%3D%3D)))
- (wheel-mount
- (size (1.5 inches by 2 inches by 3/16 inches))
- (large-hole
- (.938 inches from edge to center of hole)
- (.5 inches from the 2-inch side)
- (big hole for motor shaft lip = 0.362 inches))
- (nubbin-hole
- (size (11/64 inches)))
- (motor-long-screws-holes
- (screws (size (length 1.175 inches)
- (thread 4-40)))))
- (wheel (diameter 2.75 inches))
- (motor (https://solarbotics.com/download.php?file=92))
- (platform 8 inches by 8 inches by 3/16 inches)
- (4-aa-battery-pack (size (2.75 inches by 3 inches by 3/4 inches)))
- (9v-battery-pack (size (13/16 inches by 1 5/16 by 2.75 inches)))
- (castor
- (url http://www.pololu.com/catalog/category/45)))
+++ /dev/null
-<?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="744.09448819"
- height="1052.3622047"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.3.1 r9886"
- sodipodi:docname="New document 1">
- <defs
- id="defs4" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.57394689"
- inkscape:cx="372.04724"
- inkscape:cy="526.18109"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1366"
- inkscape:window-height="744"
- inkscape:window-x="0"
- inkscape:window-y="24"
- 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" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <rect
- style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="rect2985"
- width="180"
- height="135"
- x="130.67412"
- y="127.18947"
- ry="0" />
- <path
- sodipodi:type="arc"
- style="fill:#ff0000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2987"
- sodipodi:cx="194.26884"
- sodipodi:cy="206.4651"
- sodipodi:rx="23.521339"
- sodipodi:ry="21.779018"
- d="m 217.79018,206.4651 a 23.521339,21.779018 0 1 1 -47.04267,0 23.521339,21.779018 0 1 1 47.04267,0 z" />
- </g>
-</svg>