Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Little Rover

Componenten en benodigdheden

Arduino Nano R3
× 1
Broodplank (algemeen)
× 1
Jumperdraden (algemeen)
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 1
Adafruit-wiel voor micro-continue rotatie FS90R-servo
× 2
Adafruit continue rotatie microservo - FS90R
× 2
LED (generiek)
Elke kleur. Het is gewoon om het ding leuk te maken en te knipperen terwijl het rondzwerft
× 2
4xAA-batterijhouder
Ik heb een vatbatterijhouder gebruikt... Dit is alleen ter referentie.
× 1
SparkFun Ball Caster Metal - 3/8"
× 1
Plastic container
Zoals een goedkope tupperware of een magarinedoos van 500 g.
× 1
stickers
Dit is slechts een voorbeeld om te laten zien wat voor soort stickers ik bedoel...
× 1

Benodigde gereedschappen en machines

Hot lijmpistool (algemeen)
tapijtmes

Apps en online services

Arduino IDE

Over dit project

Achtergrond

Mijn neef (9 jaar) en mijn nichtje (7 jaar) werden helemaal gek toen ze een video zagen van een robot die obstakels ontwijkt die ik een tijdje geleden heb gebouwd.

Er zal helaas nooit een handleiding komen omdat deze dateert van vóór het overlijden van mijn harde schijf en ik de voordelen van back-ups en DropBox, GitHub enz. ontdekte. :)

Dus besloot ik te kijken of ik iets kon bedenken dat zowel (een beetje) educatief als leuk zou zijn. Ik vereenvoudigde mijn speeltje zo veel als ik kon en kwam met deze kleine rover.

Het chassis is een doos die oorspronkelijk krabstokken bevatte. Het bleek dat de maat gewoon perfect was. (Bedankt pap voor het opeten ervan bij de krat vol :D ) Een margarinecontainer zou waarschijnlijk ook de juiste maat zijn.

Als disclaimer zal ik hier beschrijven hoe we die robots hebben gebouwd en we hebben de kinderen bijna al het werk zelf laten doen. Ik raad het in ieder geval niet aan om dit te doen. Het is aan jou als verantwoordelijke ouders/verzorgers/tante/oom/oppas... om te bepalen of elk kind in kwestie kan worden toevertrouwd met de verschillende taken. Hoewel het niet echt nodig was, moesten de kinderen een veiligheidsbril dragen als ze aan de robots werkten. De dozen die we gebruikten waren gemaakt van heel zacht plastic, dus ik liet mijn neef en nicht er zelf in snijden na een briefing over de gevaren van het richten van het tapijtmes op zichzelf of op hun eigen ledematen. Om de gaten voor de LED's te boren, gebruikten we een kleine draadloze elektrische schroevendraaier om mogelijke verwondingen te beperken.

Ik ben blij te kunnen melden dat de medische kit die ik op stand-by had, nog steeds ongebruikt is. :)

Maar nogmaals, JIJ bent de volwassene!

Circuit

Ik heb het circuit een beetje ingewikkelder gemaakt dan ik zou kunnen hebben door beide servo's aan te sluiten zoals ik deed.

Voor de kinderen... Ik blijf dat zeggen, maar de 'kinderen' waren onder meer mijn zus (35 jaar) en mijn moeder (65 jaar), die allebei net zoveel genoten van de middag van Robots-and-Crafts als de echte kinderen. :)

Dus voor mijn publiek heb ik de afbeelding op een A4-pagina afgedrukt om de schaal van het breadboard 1:1 te houden met de echte wereld en ze alle jumperdraden van de juiste kleur en lengte gegeven.

Zodra het circuit is samengesteld, laadt u het programma eenvoudig op de Arduino. Ik heb opmerkingen in de code opgenomen om je te helpen de code een beetje aan te passen, mocht dat nodig zijn. Als alles goed is aangesloten, moeten de servo's gaan draaien en gaan de LED's knipperen. En als je je hand voor de sensor houdt, stopt de ene servoservo en de andere draait even de andere kant op.

Helemaal klaar!

Montage

Het is tijd om je 'chassis' te pakken en er gaten in te maken.

Markeer aan de voorkant de positie van je sensor en knip de 'oog'-gaatjes uit.

Meet aan de zijkant netjes waar je de wielen wilt hebben en snijd een gat in de zijkant, aan de rand van de bodem van de doos, groot genoeg voor de servo om erin te passen, maar klein genoeg zodat de montagebeugels niet gaan er doorheen.

Boor met een kleine boor 2 gaatjes voor de leds.

Op de bodem van de doos, naar achteren gericht, schroeft u het zwenkwiel vast (of lijmt u het warm).

Nu ben je klaar om alles in de doos te doen en de spullen op hun plaats te lijmen.

Monteer de wielen op de servo's zodra de lijm is ingesteld.

Versier de doos! (En post er foto's op! Dat zou geweldig zijn!)

Plaats de batterijen en kijk hoe de kleine rover willekeurig door de kamer beweegt totdat de batterijen leeg zijn. Of je wordt moe van het lawaai. Of de hond krijgt hem te pakken! :D

Code

  • LittleRover
LittleRoverArduino
Dit is de versie van de code voor de 4-pins ultrasone sensor
#include /*Als je een sensor hebt met slechts 3 pinnen, verwijder dan regel 6 en becommentarieer regel 7*///int distanceR =A0; //Trigger pinint afstand =6; //Trigger pinint pingDelay =10; // lengte van de puls van de ultrasone sensorint distanceR =A0; // Echo pinint led1 =8, led2 =9; //LEDsServo leftPower;Servo rightPower;unsigned lange flashTime; unsigned long nextSensorTime;float obstakelDist =0.0f;void setup() { //Serial.begin(115200); leftPower.attach (3); rightPower.attach(5); leftPower.write(90); rightPower.write(90); pinMode (led1, UITGANG); pinMode (led2, UITGANG); delay(1000);}void loop() { LED's(); /* Dit voorkomt dat de sensor de batterij te snel leegraakt door de controles te beperken tot 5 keer per seconde. U kunt dit aantal verhogen om minder vaak te controleren, maar dan kan het tegen de muur lopen... */ if(millis() - nextSensorTime> 200){ nextSensorTime =millis(); /* Ik doe hier 2 metingen omdat de sensor soms in de war raakt en niets teruggeeft... */ float reading1 =TakeReading(); vertraging (100); float lezen2 =TakeReading(); Serial.println(lezing1); Serial.println(reading2); //Vervolgens nemen we de grootste afstand voor obstakelDist obstakelDist =reading1>=reading2 ? lezen1:lezen2; //Als de afstand minder dan 10 cm is, draai dan, anders rijdt u rechtdoor. if (obstacleDist <10.0f) { //Serial.println ("turn"); draai(); }else{ //Serial.println("forward"); vooruit(); } }}void LEDs(){ if(millis() - flashTime> 1000) flashTime =millis(); if(millis() - flashTime <500){ digitalWrite(led1, LOW); digitalWrite (led2, HOOG); }else if(millis() - flashTime> 500){ digitalWrite(led1, HIGH); digitalWrite (led2, LAAG); }}void forward(){ /* Als je merkt dat je robot achteruit gaat, wissel dan de 135 en de 45 om. */ leftPower.write (135); rightPower.write(45);}void turn(){ /* Als je wilt dat je robot de andere kant op draait, verwijder dan de commentaarregels 92-93 hieronder en becommentarieer 95-96 */ //leftPower.write(90); //rightPower.write (135); leftPower.write(45); rightPower.write(90); delay(350);}float TakeReading(){ unsigned long echo =0; float resultaat =0.0f; pinMode (afstand, UITGANG); digitalWrite (afstand, LAAG); vertragingMicroseconden(2); digitalWrite(afstand, HOOG); vertraging Microseconden (pingDelay); digitalWrite (afstand, LAAG); pinMode(distanceR, INPUT); digitalWrite(distanceR, HIGH); echo =pulseIn(distanceR,HIGH,38000); resultaat =echo/58.138; resultaat retourneren;}

Schema's

littlerover_87IypZOgwm.fzz

Productieproces

  1. Rover
  2. UFO-aanval!
  3. Arduino digitale dobbelstenen
  4. Vuur uit water
  5. 3D RGB Arduclock
  6. MyRiver
  7. Iron Man
  8. Joystick-spel
  9. Vind mij
  10. Arduino 3D-geprinte robotarm
  11. Draagbare afstandsdetector