Sensitive Crab
Eindresultaat van het Project If This Then That - Waar ik mijn proces laat zien bij het maken van de "Sensitive Crab".
Supplies
Arduino Uno
Led
Resistors
Micro Servo
HC-SR04 Ultrasonic distance sensor
Jumper wires
L298N motor driver module H-Bridge
42x24mm Micro Motor (280) 3~12V DC
9V Duracell Procel
KNEX
MDF 4 mm - Lasersnijder
Lijm
3d Printer
Vacuform apparatuur
Dun roodplastic
Verf
Spuitbus
Electrotape
Ductape
Concept
Dit project is een reflectie van hoe ik mij vroeger opstelden tegenover andere, omdat er ervaringen waren geweest die mij veel pijn hadden gedaan. En zodra er iemand in de buurt probeerde te komen, wilde ik vluchten. Ik liet mij inspireren door "softshell" krabben met op het eerste gezicht een hard pantser maar als je het eens goed bekijkt en aanvoelt is het zacht. Zacht betekent in dit geval kwetsbaar.
Hoe kon ik tijdens dit project de kwetsbaarheid van mij en de krab omzetten in een project. Ik maakte een lijst met daarop kernmerken van kwetsbaarheid en combineerde het met de acties van een krab en bedacht daar ook bij hoe ik dit zou kunnen nabouwen. Wat voor tools heb ik nodig? Hoe ziet een krab eruit? Hoe zou ik dat kunnen namaken?
Experimenteren
Nu ik een lijst had met handelingen die ik kan gebruiken voor het maken van een krab, ging ik aan de slag met arduino om zo stapsgewijs elke handeling te testen. Zodat het later samengevoegd kan worden.
- Een test met led lampjes om zo aan te kunnen geven in wat voor staat de krab is.
- Een test met de servo waar de krab zijn arm omhoog doet ter bescherming van zichzelf
- Een test waarbij de afstandsmeter is gecombineerd met de led lampjes
Bij het testen was er probleem, hoe kan ik de krab laten lopen? Ik bestelde een motortje met een H-bridge en dat in combinatie met KNEX, zou het eventueel lukken.
Een tijd later was het binnen gekomen en ging het testen verder.
Krab Onderdelen
Nu er testen waren, was er een basis. Waardoor ik een lijst kon maken met de onderdelen die ik zou kunnen maken om het op een krab te laten lijken. Op school zijn er veel mogelijkheden om deze onderdelen te maken en daar wilde ik tijdens dit project zeker gebruik van maken.
- een klauw, 3D print
- Ogen, 3D print
- Pantser, Vacuform
- Buik (als basis), 3D print (is later gemaakt met de lasersnijder vanwege het rijmechanisme)
- Poten, lasersnijder
Ik maakte de onderdelen digitaal in Maya, Zbrush en illustrator. Bij het 3D printen moest goed gekeken worden naar de grote van de objecten en dat het wel samenhangend bleef.
3D Printen
Eerst heb ik de onderdelen gemaakt in 3D om ze vervolgens op school te printen. Het koste veel tijd om de buik goed te krijgen en omdat ik nog geen idee had hoe de constructie van de wielen eruit kwam te zien heb ik besloten om het te lasersnijden hierdoor bleef het oppervlakte plat en afpassingen maken kosten minder tijd.
Tijdens wachten tot alle onderdelen klaar waren heb ik met hulp van een werkplaatsdocent de Vacuform apparatuur gebruikt, om het pantser te maken van de krab.
Lasersnijden
Ik had nog nooit gebruik gemaakt van een lasersnijder dus om er gebruik van te maken volgde ik de instructie op school en leerde hoe het moest. Ik maakte een ontwerp in illustrator en volgde het stappenplan van de lasersnijder. Al snel was het snijden klaar.
Nog geen half uur later kwam ik er achter dat ik de potjes niet gespiegeld had en moest het opnieuw doen. Ook bij het snijden van de buik maakte ik de fout dat de wielen niet paste. Dus die moest ook opnieuw. Het lasersnijden was een heel leerproces maar echt een hele fijne manier dingen mee te maken.
Verven
Om de gemaakte onderdelen beter bij elkaar te laten passen en te laten lijken op een krab heb ik besloten om ze te verven.
Code
Beschrijving van wat code doet in de comments
#include <Servo.h> Servo servo; #define echoPin 2 // Attach pin 2 to pin Echo of HC-SR04 #define trigPin 3 // Attach pin 3 to pin Trig of HC-SR04 #define enB 10 // Attach pwm pin 5 to enB of H-Bridge #define in3 7 // Attach pin 7 to in3 of H-Bridge #define in4 8 // Attach pin 8 to in4 of H-Bridge #define GLed 13 // Attach pin D11 to positive of Green Led int ser = 9; // Attach pin 9 to the servo // define variables long dur; // variable for the duration of sound wave travel int dist; // variable for the distance measurement int claw_angle = 0; // variable to determine the claw angle void setup() { // Servo servo.attach(ser); // Attach pin 9 to the servo // LEDs pinMode(GLed, OUTPUT); // Sets the GLed as an OUTPUT // Distance Sensor pinMode(trigPin, OUTPUT); // Sets the trigPin as an OUTPUT pinMode(echoPin, INPUT); // Sets the echoPin as an INPUT // DC Motor pinMode(enB, OUTPUT); // Sets the enB as an OUTPUT pinMode(in3, OUTPUT); // Sets the in3 as an OUTPUT pinMode(in4, OUTPUT); // Sets the in4 as an OUTPUT // Setup the display (Ctrl+Shift+M) Serial.begin(9600); // // Serial Communication is starting with 9600 of baudrate speed } // loopie void loop() { // Send a few pulses with ultrasonic distance sensor digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Catch the return pulse //int max_dist = 100 * 2 / 0.034; // limiting the range to 1 meter dur = pulseIn(echoPin, HIGH); // Calculating the distance dist = dur * 0.034 / 2; // \ Speed of sound wave divided by 2 (go and back) // Displays the distance on the Serial Monitor Serial.print("Distance: "); Serial.print(dist); Serial.println(" cm"); if (dist > 0 && dist < 20) { // Turn on red led when object is close digitalWrite(GLed, HIGH); // Raise claw to max while (claw_angle < 180) { claw_angle++; servo.write(claw_angle); } delay(1000); // Drive backwards analogWrite(enB, 255); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); } if (dist >= 20 && dist < 40) { // Slow down analogWrite(enB, 255); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // Turn on orange led when object is in mid range digitalWrite(GLed, HIGH); // Raise/lower claw to middle position if (claw_angle < 140) { claw_angle++; servo.write(claw_angle); } else if (claw_angle > 140) { claw_angle--; servo.write(claw_angle); } } if (dist >= 40) { // Drive forward analogWrite(enB, 0); digitalWrite(in3, HIGH); digitalWrite(in4, HIGH); // Turn on green led when no object is near digitalWrite(GLed, LOW); // Lower claw to minimum if (claw_angle > 110) { claw_angle--; servo.write(claw_angle); } } }
Er zijn 3 states van de krab, groen, oranje en rood:
- Wanneer de afstandssensor niks oppakt (groter dan 40 cm) is het groen en blijft de klauw omlaag.
- Wanneer de afstandssensor iets tussen de 20 en 40 cm opvangt, gaat de klauw een beetje omhoog en brand het oranje ledje.
- Wanneer de afstandssensor iets tussen 0 en 20 cm opvangt, gaat de klauw helemaal omhoog, brand er een rood ledje en rijd de krab naar achter tot dat die weer "veilig"is.
Solderen
Nu alle onderdelen gekoppeld zijn aan elkaar, was de volgende stap om ze te solderen.
In Elkaar Zetten Deel 1
Door KNEX was het mogelijk om een constructie te bouwen waarbij wielen kunnen draaien en aangestuurd kunnen worden door de micro Motor. Ook zijn de klauw, poten en het motortje vast gelijmd.
In Elkaar Zetten Deel 2
Met een stukje karton en houtjes liet ik de arduino zweven boven de wielen. Met ductape zat het vast, Toen de pantser er opging zag ik het meteen, Dit gaat niet passen. De draadjes waren te stug om te ver naar beneden te drukken.
De servo paste niet goed op het mdf dus ik heb van een overige poot een stuk eraf geknipt en op de buik geplakt waardoor de servo goed pasten. Toen de ogen aan het drogen waren, kon ik echt zien dat het project op een krab begon te lijken.
Uitbreiding Van Het Pantser
Omdat het pantser niet groot genoeg was ben ik aan de slag gegaan met wat papierenbekertjes om zo de zijkant te bedekken. Na een paar bekertjes was het gelukt en zag het er een stuk verzorgder uit. Alleen pasten het niet zo goed bij elkaar en besloot daarom om met spuitbussen aan de slag te gaan. Ook heb ik de schaal een beetje geverfd om zo de overgang beter op elkaar te laten aansluiten.
Soldeerwerk Laat Los
Toen ik probeerde om alles onder de schaal te krijgen, liet het soldeer werk los en had ik veel moeite om het weer aan elkaar te krijgen en wilde het ook niet meer hechten aan elkaar. Dus het is op een andere manier opgelost.
Conclusie
Ik ben heel erg blij met het resultaat en heb heel veel verschillende dingen geleerd. Het duurde lang voordat ik de code doorhad maar met behulp van het opensource aspect, is het gelukt.
Het leukste vond ik het bouwen van de krab, waarbij ik de onderdelen zelf had gemaakt en die vervolgens te realiseren met behulp van de 3d printer, lasersnijder en vacuform.