Hvordan lage en enkel robot

Hvordan lage en enkel robot

Å bygge en enkel robot er en morsom måte å lære om elektronikk, grunnleggende mekanikk og programmering. Mange tror at roboter må være dyre og kompliserte, men vi kan faktisk starte med små prosjekter som er enkle å montere hjemme. I denne artikkelen skal vi bygge en enkel robot som unngår hindringer ved hjelp av ultralydsensorer. Denne roboten kan gå fremover og automatisk snu seg når den oppdager et objekt foran seg. Dette prosjektet passer for nybegynnere , studenter eller alle som ønsker å begynne å lære robotikk.

1. Forstå konseptet med enkle roboter

Generelt har roboter tre hovedkomponenter: hjernen (kontrolleren), sansene (sensorer) og musklene (aktuatorer). I dette prosjektet:

– Kontroller: Arduino Uno (eller kompatibel)
– Sensor: HC-SR04 ultralydsensor for måling av avstand
– Aktuator: Likestrømsmotor som driver hjulene
– Motordriver: L298N (eller L293D) motordriver slik at motoren kan styres av Arduino

Når sensoren leser avstanden foran roboten og avstanden er for liten, vil Arduinoen beordre motordriveren til å endre bevegelsesretningen, for eksempel å svinge til høyre eller venstre.

2. Nødvendige verktøy og materialer

Her er en liste over vanlige komponenter som er enkle å finne i elektronikkbutikker eller markedsplasser:

1. Arduino Uno (1 stk.)
2. L298N motordriver (1 stk.)
3. HC-SR04 ultralydsensor (1 stk.)
4. DC-motor + girkasse og hjul (2 stk.) for 2-hjuls robot (differensialdrift)
5. Hjul (1 stk.) lite balanseringshjul foran eller bak
6. Batterier (f.eks. 2×18650 eller 7,4V-pakke) eller 6xAA, avhengig av motorens behov
7. Robotchassis (kan kjøpes ferdiglaget eller laget av akryl/kryssfiner)
8. Startkabler (hann-hunn og hann-hann)
9. Av/på-bryter (valgfritt, men veldig nyttig)
10. Lite brødbrett (valgfritt)
11. Bolter, muttere, skrutrekkere og varmt lim etter behov

Hvis du vil ha noe enda enklere (uten ultralydsensorer), kan du bygge en «linjefølger»-robot med linjesensorer, men versjoner som unngår hindringer føles ofte mer «levende» fordi de reagerer på objekter foran seg.

3. Design av robotchassiset

Chassiset er rammen som alle komponentene er montert på. Du kan bruke et ferdig chassissett eller bygge ditt eget av lette materialer som akryl, PVC eller tynt treverk. Prinsippet er:

– Monter to likestrømsmotorer på venstre og høyre side.
– Monter hjulene på motorsykkelen.
– Legg til et hjul som balanseelement for å gjøre roboten stabil.
– Plasser batteriet i en posisjon som ikke får roboten til å vippe.
– Arduinoen og motordriverne bør plasseres øverst for enkel tilgang.

Pass på at kabelen ikke henger ned, slik at den ikke setter seg fast i hjulene.

4. Grunnleggende koblingsskjema

Her er et generelt tilkoblingskonsept (pinner kan tilpasses):

a) Motor til driver L298N
– Venstre motor til utgang OUT1 og OUT2
– Høyre motor til utgang OUT3 og OUT4

b) L298N-driver til Arduino
– IN1, IN2 for venstre motor til noen digitale Arduino-pinner
– IN3, IN4 for høyre motor til noen digitale Arduino-pinner
– ENA og ENB (enable) kan kobles til Arduino PWM-pinnene for å kontrollere hastigheten (valgfritt). Hvis ikke, har noen L298N-moduler allerede en enable-jumper som lar motoren kjøre med full hastighet.

c) HC-SR04-sensor til Arduino
– VCC til 5V Arduino
– GND til GND Arduino
– TRIG til den digitale Arduino-pinnen
– ECHO til Arduino digital pin

d) Strøm
Motoren krever mer strøm enn Arduinoen kan levere. Derfor:
– Hovedbatteriet går til motordriveren (+12V- og GND-terminalene på L298N).
– Arduino kan også drives av batteri (via VIN) eller en separat powerbank/USB.
– Jord: Batteri-/driver-GND og Arduino-GND må være koblet til for at kontrollsignalet skal være stabilt.

Den vanligste feilen blant nybegynnere er å glemme å sette sammen GND-en, slik at roboten beveger seg uregelmessig.

5. Arbeidslogikken til roboten for å unngå hindringer

Roboten vil fungere med en enkel prosess:

1. Les av avstanden fra ultralydsensoren.
2. Hvis avstanden er større enn terskelen (f.eks. 20 cm), beveger roboten seg fremover.
3. Hvis avstanden er ≤ 20 cm, stopper roboten kort.
4. Roboten beveger seg litt tilbake og snur seg deretter (for eksempel til høyre) i noen hundre millisekunder.
5. Les avstanden på nytt og gjenta.

Med dette mønsteret vil roboten se ut til å «unngå» hindringer, selv om den ikke velger den mest optimale banen.

6. Enkelt Arduino-kodeeksempel

Nedenfor er et grunnleggende kodeeksempel. Du kan tilpasse pinnene slik at de passer til kretsen din:

«`cpp
definer TRIG 8
definer ECHO 9

// Venstre motor
definer IN1 2
definer IN2 3

// Høyre motor
definer IN3 4
definer IN4 5

lang varighet;
int avstand;

int leseAvstand() {
digitalWrite(TRIG, LAV);
delayMicroseconds(2);
digitalWrite(TRIG, HØY);
delayMicroseconds(10);
digitalWrite(TRIG, LAV);

varighet = pulseIn(ECHO, HIGH);
int cm = varighet 0.034 / 2;
retur cm;
}

void fremover() {
digitalWrite(IN1, HØY);
digitalWrite(IN2, LAV);
digitalWrite(IN3, HØY);
digitalWrite(IN4, LAV);
}

void revers() {
digitalWrite(IN1, LAV);
digitalWrite(IN2, HØY);
digitalWrite(IN3, LAV);
digitalWrite(IN4, HØY);
}

void svingHøyre() {
digitalWrite(IN1, HØY);
digitalWrite(IN2, LAV);
digitalWrite(IN3, LAV);
digitalWrite(IN4, HØY);
}

void stopp() {
digitalWrite(IN1, LAV);
digitalWrite(IN2, LAV);
digitalWrite(IN3, LAV);
digitalWrite(IN4, LAV);
}

ugyldig oppsett () {
pinMode(TRIG, UTGANG);
pinMode(ECHO, INPUT);

pinMode(IN1, UTGANG);
pinMode(IN2, UTGANG);
pinMode(IN3, UTGANG);
pinMode(IN4, UTGANG);

Serial.begin (9600);
}

ugyldig sløyfe () {
avstand = leseAvstand();
Seriell.println(avstand);

hvis (avstand > 20) {
fortsette();
} Else {
stoppe();
forsinkelse (200);
omvendt();
forsinkelse (300);
stoppe();
forsinkelse (200);
sving til høyre();
forsinkelse (400);
stoppe();
}

forsinkelse (50);
}
“

Denne koden er den mest grunnleggende versjonen. Hvis roboten krasjer for ofte, kan du øke terskelen til 25–30 cm eller øke snutiden.

7. Testing og finjustering

Når roboten er montert, utfør trinnvis testing:

1. Test motoren først: kjør forover/bakover-funksjonen for å sikre at hjulene dreier i riktig retning.
2. Test ultralydsensoren: se avstandsresultatene i Arduino IDE seriemonitoren.
3. Kombiner systemet: kjør hele programmet og observer robotens reaksjon.

Hvis roboten snur eller beveger seg bakover når den skal bevege seg fremover, må du kanskje bytte motorkablene eller reversere IN1-IN2 (og IN3-IN4)-logikken.

8. Vanlige problemer og løsninger

Noen hindringer som ofte oppstår:

– Roboten beveger seg ikke i det hele tatt: sjekk batteriet, sjekk motordriveren, sørg for at aktiveringsjumperen er aktiv.
– Arduinoen tilbakestilles mens motoren går: utilstrekkelig strømforsyning eller motorstøy. Prøv å bruke et separat batteri til Arduinoen, legg til en kondensator og fiks jordforbindelsen.
– Avstandssensorens avlesning er ustabil: sørg for at sensoren vender rett, hold den unna overdreven vibrasjon, og sørg for at kabelen ikke er løs.
– Roboten sitter «fast» i et hjørne: legg til tilfeldig svinglogikk eller bruk servoer til å bevege sensorene slik at de kan «se» til venstre og høyre.

9. Utviklingsideer etter suksess

Når den grunnleggende roboten er oppe og går, kan du oppgradere den til noe mer interessant:

– Legge til servoer for å bevege ultralydsensorene slik at roboten velger den beste banen.
– La til Bluetooth-kontroll (HC-05) slik at den kan styres fra en mobiltelefon.
– Bruk av linjesensorer til å lage en linjefølgerrobot.
– Juster PWM-hastigheten for jevnere bevegelse.
– Legg til en summer eller LED som indikator når en hindring oppdages.

Konklusjon

Det trenger ikke å være vanskelig å bygge en enkel robot. Med en Arduino, en likestrømsmotor, en motordriver og en ultralydsensor kan du lage en robot som kan bevege seg og unngå hindringer automatisk. Nøkkelen til suksess er ryddig kabling, tilstrekkelige ressurser og grundig testing. Når du har fått dette prosjektet til å fungere, vil du være bedre forberedt på å takle mer komplekse robotprosjekter, for eksempel en kamerabasert smartrobot eller en som kan følge objekter.

Hvis du vil, kan jeg hjelpe deg med å lage et mer detaljert koblingsskjema i henhold til pinnene du velger, eller justere koden slik at roboten kan svinge tilfeldig til venstre/høyre og være mer «intelligent».

Legg igjen en kommentar