Hoe om 'n robot tuis te bou (met foto's)

INHOUDSOPGAWE:

Hoe om 'n robot tuis te bou (met foto's)
Hoe om 'n robot tuis te bou (met foto's)

Video: Hoe om 'n robot tuis te bou (met foto's)

Video: Hoe om 'n robot tuis te bou (met foto's)
Video: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, April
Anonim

Wil u leer hoe om u eie robot te bou? Daar is baie verskillende soorte robotte wat u self kan maak. Die meeste mense wil sien dat 'n robot die eenvoudige take verrig om van punt A na punt B. te beweeg. U kan 'n robot heeltemal van analoog komponente maak of 'n beginpakket van nuuts af koop! Om u eie robot te bou, is 'n uitstekende manier om uself te leer oor elektronika sowel as rekenaarprogrammering.

Stappe

Deel 1 van 6: Die samestelling van die robot

1123333 1
1123333 1

Stap 1. Versamel u komponente

Om 'n basiese robot te bou, benodig u 'n paar eenvoudige komponente. Die meeste, indien nie almal, van hierdie komponente kan u by u plaaslike elektroniese stokperdjiewinkel of by verskeie aanlynhandelaars kry. Sommige basiese kits kan ook al hierdie komponente insluit. Hierdie robot benodig geen soldeer nie:

  • Arduino Uno (of ander mikrobeheerder)
  • 2 deurlopende rotasieservo's
  • 2 wiele wat by die servo's pas
  • 1 rolrol
  • 1 klein soldeerlose broodbord (soek 'n broodbord met twee positiewe en negatiewe lyne aan elke kant)
  • 1 afstandsensor (met vierpen-aansluitkabel)
  • 1 mini-drukknopskakelaar
  • 1 10kΩ weerstand
  • 1 USB A tot B kabel
  • 1 stel wegbreekopskrifte
  • 1 6 x AA -batteryhouer met 9V DC -aansluiting
  • 1 pak springdrade of 22-gauge aansluitdraad
  • Sterk dubbelzijdige band of warm gom
1123333 2
1123333 2

Stap 2. Draai die battery om, sodat die plat agterkant na bo wys

U bou die liggaam van die robot met die battery as basis.

1123333 3
1123333 3

Stap 3. Rig die twee servo's aan die einde van die battery

Dit moet die einde wees waaruit die draad van die batterypak kom. Die servo's moet aan die onderkant raak, en die roterende meganismes van elkeen moet na die kante van die battery kyk. Die servo's moet behoorlik in lyn wees sodat die wiele reguit loop. Die drade vir die servo's moet van die agterkant van die battery kom.

1123333 4
1123333 4

Stap 4. Plak die servo's vas met jou band of gom

Maak seker dat hulle stewig aan die battery vas is. Die agterkant van die servo's moet in lyn wees met die agterkant van die battery.

Die servo's behoort nou die agterste helfte van die battery in beslag te neem

1123333 5
1123333 5

Stap 5. Plak die broodbord loodreg op die oop ruimte op die battery

Dit moet net 'n bietjie aan die voorkant van die battery hang, en strek oor elke kant. Maak seker dat dit stewig vasgemaak is voordat u verder gaan. Die "A" ry moet die naaste aan die servo's wees.

1123333 6
1123333 6

Stap 6. Bevestig die Arduino -mikrobeheerder aan die bokant van die servo's

As u die servo's behoorlik vasgemaak het, moet daar 'n plat ruimte wees wat aan mekaar raak. Plak die Arduino -bord op hierdie plat ruimte sodat die Arduino se USB- en kragverbindings na agter kyk (weg van die broodbord). Die voorkant van die Arduino moet die broodbord skaars oorvleuel.

1123333 7
1123333 7

Stap 7. Sit die wiele op die servo's

Druk die wiele stewig op die roterende meganisme van die servo. Dit kan 'n aansienlike hoeveelheid krag verg, aangesien die wiele so styf as moontlik is vir die beste trekkrag.

1123333 8
1123333 8

Stap 8. Bevestig die wiel aan die onderkant van die broodbord

As u die onderstel omdraai, moet u 'n stukkie broodbord langs die batterypak sien. Bevestig die wiel aan hierdie verlengde stuk, indien nodig, met behulp van opstaanders. Die caster dien as die voorwiel, sodat die robot maklik in enige rigting kan draai.

As u 'n kit gekoop het, het die wiel dalk 'n paar stutte gekry wat u kan gebruik om te verseker dat die wiel tot by die grond kom. ek

Deel 2 van 6: Bedrading van die robot

1123333 9
1123333 9

Stap 1. Breek twee 3-pen koppe af

U sal dit gebruik om die servo's aan die broodbord te koppel. Druk die penne deur die kop sodat die penne op dieselfde afstand aan beide kante uitkom.

1123333 10
1123333 10

Stap 2. Steek die twee kopstukke in penne 1-3 en 6-8 op ry E van die broodbord

Maak seker dat hulle stewig ingesit is.

1123333 11
1123333 11

Stap 3. Koppel die servokabels aan die kopstukke, met die swart kabel aan die linkerkant (penne 1 en 6)

Dit verbind die servo's met die broodbord. Maak seker dat die linker servo gekoppel is aan die linker kop en die regte servo aan die regter kop.

1123333 12
1123333 12

Stap 4. Koppel rooi springdrade van penne C2 en C7 aan rooi (positiewe) spoorpenne

Maak seker dat u die rooi spoor agter op die broodbord gebruik (nader aan die res van die onderstel).

1123333 13
1123333 13

Stap 5. Koppel swart springdrade van penne B1 en B6 aan die blou (grond) spoorpenne

Maak seker dat u die blou reling agter op die broodbord gebruik. Moet dit nie in die rooi speldpenne steek nie.

1123333 14
1123333 14

Stap 6. Koppel wit springdrade van penne 12 en 13 op die Arduino aan A3 en A8

Dit sal die Arduino in staat stel om die servo's te beheer en die wiele te draai.

1123333 15
1123333 15

Stap 7. Bevestig die sensor aan die voorkant van die broodbord

Dit word nie by die buitenste kragrails op die broodbord ingeprop nie, maar in die eerste ry met penne (J). Maak seker dat u dit in die presiese middel plaas, met 'n gelyke aantal penne aan elke kant.

1123333 16
1123333 16

Stap 8. Koppel 'n swart springdraad van pen I14 aan die eerste beskikbare blou speldpen aan die linkerkant van die sensor

Dit sal die sensor aard.

1123333 17
1123333 17

Stap 9. Koppel 'n rooi springdraad van pen I17 aan die eerste beskikbare rooi speldpen regs van die sensor

Dit sal die sensor voed.

1123333 18
1123333 18

Stap 10. Koppel wit springdrade van pen I15 tot pen 9 op die Arduino, en van I16 tot pen 8

Dit sal inligting van die sensor na die mikrobeheer stuur.

Deel 3 van 6: Bedrading van die krag

1123333 19
1123333 19

Stap 1. Draai die robot op sy sy sodat u die batterye in die verpakking kan sien

Rig dit sodat die batterykabel aan die onderkant na links uitkom.

1123333 20
1123333 20

Stap 2. Koppel 'n rooi draad aan die tweede veer van links onderaan

Maak seker dat die battery korrek gerig is.

1123333 21
1123333 21

Stap 3. Koppel 'n swart draad aan die laaste veer regs onder

Hierdie twee kabels sal help om die korrekte spanning van die Arduino te verskaf.

1123333 22
1123333 22

Stap 4. Koppel die rooi en swart drade aan die regterkantse rooi en blou penne aan die agterkant van die broodbord

Die swart kabel moet by pen 30 by die blou speldpen ingeprop word. Die rooi kabel moet by pen 30 by die rooi speldpen ingeprop word.

1123333 23
1123333 23

Stap 5. Koppel 'n swart draad van die GND -pen op die Arduino aan die agterste blou spoor

Verbind dit met pen 28 op die blou reling.

1123333 24
1123333 24

Stap 6. Verbind 'n swart draad van die agterste blou reling met die voorste blou reling by pen 29 vir elk

Moenie die rooi relings verbind nie, aangesien u die Arduino waarskynlik sal beskadig.

1123333 25
1123333 25

Stap 7. Verbind 'n rooi draad van die voorste rooi reling by pen 30 met die 5V -pen op die Arduino

Dit bied krag aan die Arduino.

1123333 26
1123333 26

Stap 8. Steek die drukknopskakelaar in die gaping tussen rye op penne 24-26

Met hierdie skakelaar kan u die robot afskakel sonder om die krag te ontkoppel.

1123333 27
1123333 27

Stap 9. Koppel 'n rooi draad van H24 aan die rooi spoor in die volgende beskikbare pen regs van die sensor

Dit sal die knoppie aanskakel.

1123333 28
1123333 28

Stap 10. Gebruik die weerstand om H26 aan die blou spoor te koppel

Koppel dit aan die pen direk langs die swart draad wat u 'n paar treë gelede verbind het.

1123333 29
1123333 29

Stap 11. Koppel 'n wit draad van G26 aan pen 2 op die Arduino

Hierdeur kan die Arduino die drukknoppie registreer.

Deel 4 van 6: Die installering van die Arduino -sagteware

1123333 30
1123333 30

Stap 1. Laai die Arduino IDE af en haal dit uit

Dit is die Arduino -ontwikkelingsomgewing en stel u in staat om instruksies te programmeer wat u dan na u Arduino -mikrobeheerder kan oplaai. U kan dit gratis aflaai van arduino.cc/en/main/software. Pak die afgelaaide lêer uit deur dit te dubbelklik en skuif die gids na 'n maklik toeganklike plek. U sal die program nie eintlik installeer nie. In plaas daarvan hardloop u dit slegs uit die onttrekte gids deur dubbel te klik op arduino.exe.

1123333 31
1123333 31

Stap 2. Koppel die battery aan die Arduino

Steek die agteraansluiting van die battery in die aansluiting op die Arduino om krag te gee.

1123333 32
1123333 32

Stap 3. Koppel die Arduino via u USB aan u rekenaar

Windows sal die toestel waarskynlik nie herken nie.

1123333 33
1123333 33

Stap 4. Druk

⊞ Win+R en tik devmgmt.msc.

Dit sal die toestelbestuurder begin.

1123333 34
1123333 34

Stap 5. Regskliek op die "Onbekende toestel" in die afdeling "Ander toestelle" en kies "Bestuurdersprogrammatuur opdateer

" As u hierdie opsie nie sien nie, klik dan op 'Eienskappe', kies die oortjie 'Bestuurder' en klik dan op 'Bestuurder opdateer'.

1123333 35
1123333 35

Stap 6. Kies "Blaai deur my rekenaar vir bestuurdersagteware

" Hiermee kan u die bestuurder kies wat by die Arduino IDE kom.

1123333 36
1123333 36

Stap 7. Klik op "Browse" en navigeer na die gids wat u vroeër onttrek het

U vind 'n gids 'bestuurders' binne.

1123333 37
1123333 37

Stap 8. Kies die gids "drivers" en klik op "OK"

" Bevestig dat u wil voortgaan as u gewaarsku word oor onbekende sagteware.

Deel 5 van 6: Programmering van die robot

1123333 38
1123333 38

Stap 1. Begin die Arduino IDE deur te dubbelklik op die arduino.exe-lêer in die IDE-lêergids

U word begroet met 'n leë projek.

1123333 39
1123333 39

Stap 2. Plak die volgende kode om u robot reguit te laat loop

Die onderstaande kode laat u Arduino voortdurend vorentoe beweeg.

#include // dit voeg die "Servo" -biblioteek by tot die program // die volgende skep twee servo -voorwerpe Servo leftMotor; Servo regsMotor; ongeldige opstelling () {leftMotor.attach (12); // as jy per ongeluk die PIN -nommers vir jou servo's verander het, kan jy die nommers hier regsMotor.attach (13) omruil; } leemte -lus () {leftMotor.write (180); // met deurlopende rotasie, sê 180 vir die servo om teen volle spoed "vorentoe" te beweeg. regs Motor. skryf (0); // as albei op 180 is, sal die robot in 'n sirkel draai omdat die servo's omgedraai word. '0' sê dat dit met volle spoed 'agteruit' moet beweeg. }

1123333 40
1123333 40

Stap 3. Bou en laai die program op

Klik op die pyltjie regs in die linker boonste hoek om die program te bou en op te laai na die gekoppelde Arduino.

U kan die robot van die oppervlak af lig, want dit sal net vorentoe beweeg sodra die program opgelaai is

1123333 41
1123333 41

Stap 4. Voeg die kill switch funksie by

Voeg die volgende kode by die "void loop ()" gedeelte van u kode om die doodskakelaar, bo die "skryf ()" funksies, moontlik te maak.

as (digitalRead (2) == HOOG) // dit registreer wanneer die knoppie op pen 2 van die Arduino ingedruk word {terwyl (1) {leftMotor.write (90); // "90" is 'n neutrale posisie vir die servo's, wat hulle vertel om op te hou om regs te draai Motor.write (90); }}

1123333 42
1123333 42

Stap 5. Laai u kode op en toets dit

Met die kill switch -kode bygevoeg, kan u die robot oplaai en toets. Dit moet voortgaan om vorentoe te ry totdat u op die skakelaar druk, en dan sal dit ophou beweeg. Die volledige kode moet so lyk:

#include // die volgende skep twee servo -voorwerpe Servo leftMotor; Servo regsMotor; ongeldige opstelling () {leftMotor.attach (12); rightMotor.attach (13); } leemte -lus () {if (digitalRead (2) == HOOG) {terwyl (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Deel 6 van 6: Voorbeeld

Stap 1. Volg 'n voorbeeld

Die volgende kode sal die sensor wat aan die robot gekoppel is, gebruik om dit na links te draai wanneer dit 'n hindernis teëkom. Sien die kommentaar in die kode vir meer inligting oor wat elke deel doen. Die onderstaande kode is die hele program.

#sluit Servo linksMotor in; Servo regsMotor; const int serialPeriod = 250; // dit beperk uitset na die konsole tot een keer elke 1/4 sekonde ongetekende lang tydSerialDelay = 0; const int loopPeriod = 20; // dit bepaal hoe gereeld die sensor 'n lesing van 20 ms neem, wat 'n frekwensie van 50Hz is, ongetekende lang tydLoopDelay = 0; // dit ken die TRIG- en ECHO -funksies toe aan die penne op die Arduino. Pas die getalle hier aan as u anders gekoppel het const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // dit definieer die twee moontlike toestande vir die robot: vorentoe ry of links draai #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = ry vorentoe (standaard), 1 = draai leë opstelling op () {Serial.begin (9600); // hierdie konfigurasies van die sensorpen pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // dit ken die motors toe aan die Arduino -penne leftMotor.attach (12); rightMotor.attach (13); } leemte -lus () {if (digitalRead (2) == HOOG) // dit ontdek die doodskakelaar {terwyl (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // dit druk ontfoutingsboodskappe na die seriële konsole as (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // dit gee die sensor die opdrag om die gemete afstande stateMachine () te lees en op te slaan; timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // as geen hindernisse opgespoor word nie {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // as daar niks voor die robot is nie. ultrasonicDistance sal vir sommige ultrasonics negatief wees as daar geen hindernis is nie {// ry vorentoe rightMotor.write (180); leftMotor.write (0); } anders // as daar 'n voorwerp voor ons is {state = TURN_LEFT; }} anders as (state == TURN_LEFT) // as 'n hindernis bespeur word, draai links {unsigned long timeToTurnLeft = 500; // dit neem ongeveer 0,5 sekondes om 90 grade te draai. Miskien moet u dit aanpas as u wiele 'n ander grootte het as die voorbeeld ongetekende lang draaiStartTime = millis (); // bespaar die tyd wat ons begin draai het terwyl ((millis ()-turnStartTime) <timeToTurnLeft) // in hierdie lus bly totdat timeToTurnLeft verloop het {// draai links, onthou dat as albei op "180" is, dit sal draai. rightMotor.write (180); leftMotor.write (180); } staat = DRIVE_FORWARD; }} void readUltrasonicSensors () {// dit is vir ultraklank 2. U moet hierdie opdragte dalk verander as u 'n ander sensor gebruik. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // hou die trigpen hoog vir ten minste 10 mikrosekondes digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulsIn (ultrasonic2EchoPin, HOOG); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // die volgende is vir ontfoutingsfoute in die konsole. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Aanbeveel: