Lav en robotmyr: 9 trin (med billeder)

Lav en robotmyr: 9 trin (med billeder)

Indholdsfortegnelse:

Anonim

Byg en robotmyr, der kan fjernstyres eller fungere autonomt. Ved hjælp af en infrarød detektor kan den finde og hente objekter. Det styres af en Picaxe 20x-2 mikrocontroller.

Selv om dette er en forholdsvis indviklet robot, kan nogle af motorteknikkerne og kredsløbene bruges til andre enklere robotter.

Dette instruerbare viser, hvordan man:

1-Brug en Picaxe-controller til at modtage fjernbetjeningssignaler fra en standard universal fjernbetjening.

2-Brug en Picaxe-controller til at interfere med en infrarød afstandssensor.

3-send serielle kommandoer til en seriel motor controller eller seriel servo controller.

4-Gør en simpel en servo robot gripper.

Videoen viser robotten ved hjælp af infrarød til at lokalisere og hente en træblok. Det viser også, at robotmyren ligesom de fleste myrer har en vis foragt for sine dårlige menneskelige herrer.

18+

forsyninger:

Trin 1: Sådan fungerer det

En Picaxe 20x-2 mikrocontroller styrer en infrarød afstandssensor for at finde og hente objekter. Det bruger serielle kommandoer til at styre en motorstyring, der driver de to gearmotorer, der bevæger tankens slidbaner for at drive robotten.

Det bruger også serielle kommandoer til at styre en servostyring, som placerer de tre servoer, som styrer krops-, hoved- og griberbevægelserne.

Den kan styres af en standard fjernbetjening eller den kan fungere autonomt.

Robotternen anvender modulopbygning. Hvert kredsløb er et modul, der tilsluttes til "1" -hovedudgange. Det gør det nemt at teste hvert kredsløb på et brødbræt, før det installeres. Det gør modulerne tilgængelige for den næste robot eller et andet projekt.

For detaljer om at lave disse moduler se:

Robotmyren er omkring 12 tommer lang og blev gjort med vilje større end nødvendigt for at give plads til flere kredsløb. Jeg har til hensigt at bruge det som en testplatform til hudfølere og antennesensorer, som jeg arbejder på.

Trin 2: Dele og stykker

Dele fra Sparkfun:http://www.sparkfun.com/index

PICAXE 20X2 Microcontroller

www.sparkfun.com/products/9432

Polymer Lithium oplader

www.sparkfun.com/products/8293

2- 3.7v. Polymer Lithium Ion Batteri - 110mAh

www.sparkfun.com/products/731

2-3.7v. Polymer Lithium Ion Batteri - 1000mAh

www.sparkfun.com/products/339

Disse LiPo batterier er gode, fordi de er lette med lav profil og ikke mister deres opladning hurtigt, når de ikke er i brug, som almindelige lithiumbatterier gør. De har også et indbygget kredsløb, der beskytter mod shorts og overladning.

Dele fra Polulu:

Pololu Micro Dual Serial Motor Controller - Denne meget lille motor controller er ikke længere tilgængelig, men kan erstattes med denne: Pololu Qik 2s9v1 Dual Serial Motor Controller-http: //www.pololu.com/catalog/product/1110

Pololu Micro Serial Servo Controller (delvis sæt) -http: //www.pololu.com/catalog/product/208

Pololu Step Down Spændingsregulator D15V35F5S3

Sharp GP2Y0A21YK0F Analog Distance Sensor

www.pololu.com/catalog/product/136

Dele fra Tower Hobbies:

3- Futaba S3114 Micro High-Torque Servos

www3.towerhobbies.com/cgi-bin/wti0001p?&I=LXNCV6&P=ML

Disse er meget små og kraftfulde servoer til deres vægt.

Gearmotorer og tankbaner fra Solarbotics:

Gear Motor and Tread Package-http: //www.solarbotics.com/products/gmtpkg/

Panasonic PNA4602M IR Modtager Modul fra:

www.hobbyengineering.com/H1527.html

Dele fra Mouser.com:

Forskellige kondensatorer, modstande og LED'er

SOLDERABLE PERF BOARD, LINE PATTERN-Anvendes til moduler og robot bundkort:

www.allelectronics.com/make-a-store/item/ECS-4/SOLDERABLE-PERF-BOARD-LINE-PATTERN//1.html

Trin 2 pic viser de tre polycarbonat kupler, der beskytter maven, thoraxen og hovedet af robotmyren. De blev hack savet og derefter magt disk skåret til form. De var lavet af dele fra et snøklipsfremstillingskit, der ikke længere er tilgængeligt. Noget lignende kunne gøres ved hjælp af dele af plastvineglas. Eller en mere fleksibel uigennemsigtig skal kunne laves fra Oogoo:

Trin 3: Lav en Robot Gripper

Hvordan det virker

Myren er en meget enkel griber, der virker ved at blive lukket af en fjeder. En cam på undersiden roteres af en servo for at åbne den op. Så når den åbne griber er lukket, vil den tage fat i springkraften og holde tæt på genstande med forskellige diametre. Griperens to sider er ret glatte, og de trækker genstanden til at blive grebet mod en gummikøler, der forhindrer objektet i at glide ned, når det løftes.

Dette design gør det muligt for servo at svinge frit helt mod uret eller med uret, og der kræves ingen trykfølere eller stopkontakter for at forstå en genstand.

Myren gripper fingre og krop blev lavet ved hjælp af kobberklædte FRS printkort materiale. Drejelejerne er kun 4-40 bolte gennem borede huller i printkortet.

Trin 3 billeder viser top og bund af griberen.

Trin 4: Picaxe 20x-2 Microcontroller

Picaxe-mikrocontrollerne er efter min mening stærkt undervurderet. De har en meget lille formfaktor, der kræver et minimum af eksterne dele. De er billige og meget nemme at programmere i det intuitivt indlysende BASIC programmeringssprog. Kort sagt, de er de nemmeste mikrocontrollere at lære at tilslutte og programmere.

Picaxe 20x-2 er min yndlings mikrocontroller. Den har masser af indgange og udgange og mange ADC-indgange. Den kan fungere så højt som 64 MH. Det kræver heller ikke mere end 1 modstand (for at holde Serin fra flydende) for at skabe et stand-alone modul.

Styring af robotmyren

Picaxe sender serielle kommandoer til motorstyring og servostyring. De fortsætter med at opretholde den sidst modtagne kommando. Dette gør det muligt for Picaxe at bruge sin tid til at scanne dens sensorer for at bestemme det næste svar.

Rum til udvidelse

I denne ansøgning blev kun ca. 1/3 af programmeringsrummet brugt op. Mindre end 1/3 af indgangs- og udgangsstifterne blev brugt og efterlod masser af plads til flere sensorer eller aktuatorer.

For detaljer om at lave hurtige Picaxe-moduler ved hjælp af perron, se:

www.instructables.com/id/Picaxe-Projects-1-Making-Fast-Printed-Circuit-Mo/

For en meget lille mikrorobot styret af en Picaxe, se:

www.instructables.com/id/Building-Small-Robots-Making-One-Cubic-Inch-Micro/

For en endnu mindre robot styret af en Picaxe se:

www.instructables.com/id/Build-a-Very-Small-Robot-Make-The-Worlds-Smalles/

Trin 4 miniaturebilleder viser toppen og bunden af ​​Picaxe-modulet.

Trin 5: Serial Motor Controller

Polulu motorstyreren modtager serielle kommandoer fra Picaxe Controller til styring af de to gearmotorer, der bevæger tankens trin. Når en seriel kommando er sendt for at aktivere en motor, bevæger motoren som angivet indtil en ny kommando er sendt af Picaxe. Dette gør det muligt for Picaxe microcontroller at sende kommandoer og derefter gå tilbage til sensor detektion. Motorerne kan styres for hastighed og retning.

Tankens tråde kommer i et sæt og kan konfigureres som en almindelig tank eller i trehjulet version som jeg gjorde. For at gøre dette måtte jeg købe to ekstra tomgangshjul.Drivhjulet og tomgangshjulene blev monteret på standard kobberbeklædt FRS glasfiberplade, der var malet.

Trin 6: Infrarød afstandssensor

Jeg har eksperimenteret med flere ultralydssensorer, og mens de er gode til at detektere større genstande som vægge eller mennesker, sender de en relativt bred stråle, som ikke har den nødvendige præcision til at rette en griber til en lille genstand.

Den skarpe infrarøde afstandssensor sender en usynlig infrarød stråle og måler vinklen på det reflekterede lys for at detektere en objekts tilstedeværelse og dens afstand. Det er ret præcist og følsomt og kan opdage en lodret blyant en fod væk. Det kan registrere et objekt eller en væg fra 4 til 32 tommer.

Det måler afstanden til objektet og udsender derefter en spænding, der er proportional med afstanden. Dette tilføres en indgang til Picaxe-controlleren, og dens ADC (analog til digital konverter) bruges til at konvertere spændingen til et nummer, som programmet fortolker for at fortælle robotten, hvor langt objektet er væk.

Trin 6 pic viser den skarpe sensor, som er det sorte rektangel med to linser.

Trin 7: Robot Ant Skematisk

Her er robotmyret skematisk. Miniaturebillederne viser det forstørret.

Ting at overveje, når de forskellige moduler forbindes:

Det er normalt en god idé at holde separate strømforsyninger til styringskredsløb og motorer. Motorer og servoer kan være elektrisk støjende, og dette kan forstyrre en mikrocontroller. Det er også en god idé at holde mikrocontrollere en god afstand fra motorer og servoer, så de ikke udføres af magnetfelter.

Selvom det ikke er nødvendigt at have en spændingsregulator for motorerne, giver den mere ensartet bevægelse, hvis spændingen forbliver konstant

Hold en 270 ohm til 1kohm modstand mellem enhver sensor udgange og Picaxe indgange for at undgå utilsigtet kortslutning af enheden.

Den skarpe infrarøde afstandssensor viste sig at være ekstremt elektrisk støjende. Da jeg hakkede på et brødbræt til Picaxe, fungerede det fint. Så snart det blev installeret i roboten, ophørte Picaxe med at arbejde. Jeg løste problemet ved at sætte en 10uf kondensator over Sharp sensorens strømindgange. Dette reducerede spændingsudsvingene til strømforsyningen, som den skabte.

Trin 8: Programmering af robotmyr

Hvordan det virker

I autonom pickup mode roterer roboten til den rigtige leder efter en genstand. Hvis det ikke finder noget, stopper det efter at rotere 360 ​​grader. Når en genstand registreres, stopper og korrigerer den for overstyring og bruger den målte afstand for det detekterede objekt, bevæger man frem en bestemt afstand. Det lukker derefter griberen og elevatorer.

Fjernbetjening

I fjernbetjeningstilstand venter roboten et signal enten for en bevægelse som f.eks. Fremad eller til en kommando i autonom tilstand. En standard universal fjernbetjening kan konfigureres til at udsende Sony TV-kode, som Picaxe kan afkode. Infrarødt fjernbetjening modtages af Panasonic modtager modulet.

Her er programmeringskoden for robotmyren:

'robot myr, Picaxe 20x-2

lad dirsc =% 00000000

setfreq m8

pause 2000

'loop22:' test af infrarød afstandsføler

'readadc 7, b4

'fejlfinding b4

'goto loop22

startreset: 'nulstil for start

serout c.0, t2400, ($ 80, $ 01, $ 01,2,30) 'set4 for servo #, hastighed set5 fra 0 til127

serout c.0, t2400, ($ 80, $ 01, $ 04,2,26,30) 'krop ned 26

pause 200

serout c.0, t2400, ($ 80, $ 01, $ 01,1,30) 'hastighed indstillet sidste # fra 0 til 127

serout c.0, t2400, ($ 80, $ 01, $ 04,1,26,127) 'close gripper 26

pause 200

serout c.0, t2400, ($ 80, $ 01, $ 01,0,20) 'hastighed indstillet sidste # fra 0 til 127

serout c.0, t2400, ($ 80, $ 01, $ 04,0,26,127) 'hovedcenter

pause 1000

loopinfra: 'fjernbetjening af bevægelser eller aktivere autonome sekvenser

lavt c.1 'blåt øje

høj c.2 'blå øje

irin c.5, b6

hvis b6 = 0 så akt 1 'fjernbetjening1 = 0

hvis b6 = 1 derefter forw 'b2

hvis b6 = 2 så aktion2 'b3

hvis b6 = 3 derefter venstre 'b4

hvis b6 = 4 stop så1 'b5

hvis b6 = 5 så højre 'b6

hvis b6 = 6 så akt 3 'b7

hvis b6 = 7 så rev1 'b8

hvis b6 = 8 så biteme 'angreb

'hvis b6 = 59 så biteme' angreb

hvis b6 = 11 derefter sænket 'Indtast lægge ned

hvis b6 = 21 derefter startreset 'reset servos

'fejlfinding b6

goto loopinfra

act1: 'robot ant moons verden

gosub forw2

pause 2500

gosub bodyup2

gosub left2

gosub headleft2

pause 300

gosub forw2

pause 1200

gosub stop2

gosub forw2

pause 500

gosub stop2

gosub headright2

høj c.1 'røde øjne l

lav c.2 'røde øjne r

pause 1000

gosub right2

pause 2500

gosub headcenter2

gosub bodydwn2

gosub rev2

pause 2500

gosub stop2

gosub venstrefast

pause 500

gosub stop2

gosub retfærdig

pause 500

gosub venstrefast

pause 500

gosub stop2

gosub retfærdig

pause 500

gosub stop2

pause 2200

gosub forw2

gosub bodyup2

pause 3500

gosub opengrip2

pause 500

gosub stop2

goto loopinfra

bid mig:

gosub forw2

b8 = 1

for b8 = 1 til 175

'finde hindring

høj c.2 'røde øjne l

lav c.1 'røde øjne r

readadc 7, b4

hvis b4> 60 og b4 <135 derefter næste3

pause 30

næste b8

goto loopinfra

next3:

gosub stop2

gosub bodydwn2

gosub opengrip2

'pause 100

gosub bodyup2

gosub forw2

pause 300

gosub closegrip2

pause 900

gosub stop2

gosub rev2

gosub bodydwn2

pause 6000

gosub stop2

goto loopinfra

act2: 'Pickup, putdown

'frem

serout c.0, t2400, (128,0,1,100) 'fremad højre 20min til 127

serout c.0, t2400, (128,0,2,100) 'frem til venstre 20min

pause 4500

gosub stop2

pause 100

'find blok

b8 = 1

for b8 = 1 til 75

'Find blok og afhentning

høj c.2

lav c.1

gosub right2

readadc 7, b4

hvis b4> 61 og b4 <164 derefter detekterer0'34 -75

pause 50

næste b8

gosub stop2

goto loopinfra

detect0: 'stop og korrigere

gosub stop2

'Drej til venstre langsomt

serout c.0, t2400, (128,0,1,60) 'fremad højre 20min til 127

serout c.0, t2400, (128,0,3,60) 'rev venstre 20min

pause 240

gosub stop2

pause 100

lavt c.2 'røde øje

højt c.1 'røde øje

'fremad, afhentning

gosub opengrip2

pause 1000

gosub forw2

hvis b4 <50 derefter pa1

hvis b4 <60 derefter pa2

hvis b4 <70 derefter pa3

hvis b4 <80 derefter pa4

hvis b4 <90 derefter pa5

hvis b4 <104 derefter pa6

PA1:

pause 9000

goto stopat

PA2:

pause 5920

goto stopat

PA3:

pause 3800

goto stopat

PA4:

pause 2800

goto stopat

PA5:

pause 2100

goto stopat

PA6:

pause 980

goto stopat

stopat:

gosub stop2

pause 200

'closegrip

serout c.0, t2400, ($ 80, $ 01, $ 01,1,30) 'speed-set sidste # fra 0 til 127

serout c.0, t2400, ($ 80, $ 01, $ 04,1,26,127) 'close gripper 26

pause 2000

gosub bodyup2

'putdown

gosub venstrefast

pause 1400

gosub stop2

gosub forw2

pause 1800

gosub stop2

gosub bodydwn2

gosub opengrip2

pause 500

'godte

gosub rev2

pause 2000

gosub stop2

gosub bodyup2

gosub headleft2

gosub headright2

gosub headcenter2

lavt c.1 'blåt øje

høj c.2 'blå øje

goto loopinfra

act3: 'åben griber og fremad

'fremad, afhentning

gosub opengrip2

pause 400

gosub forw2

pause 280

gosub stop2

goto loopinfra

act4: 'tæt gripper og løft

gosub closegrip2

pause 600

gosub bodyup2

goto loopinfra

'' *** gosubs

leftslow:

'Drej til venstre langsomt

serout c.0, t2400, (128,0,1,60) 'fremad højre 20min til 127

serout c.0, t2400, (128,0,3,60) 'rev venstre 20min

pause 220

gosub stop2

Vend tilbage

STOP2:

serout c.0, t2400, (128,0,0,0) 'hard stop højre

serout c.0, t2400, (128,0,6,0) 'hard stop venstre

Vend tilbage

forw2:

serout c.0, t2400, (128,0,1,100) 'fremad højre 20min til 127

serout c.0, t2400, (128,0,2,100) 'frem til venstre 20min

Vend tilbage

left2:

serout c.0, t2400, (128,0,1,100) 'fremad højre 20min

serout c.0, t2400, (128,0,3,100) 'rev venstre 20min

Vend tilbage

RIGHT2:

serout c.0, t2400, (128,0,2,100) 'frem til venstre 20min

serout c.0, t2400, (128,0,0,100) 'ret højre 20min

Vend tilbage

rev2:

'hold op

serout c.0, t2400, (128,0,0,0) 'hard stop højre

serout c.0, t2400, (128,0,6,0) 'hard stop venstre

pause 50

'bagside

serout c.0, t2400, (128,0,0,100) 'ret højre 20min

serout c.0, t2400, (128,0,3,100) 'rev venstre 20min

Vend tilbage

opengrip2:

serout c.0, t2400, ($ 80, $ 01, $ 01,1,30) 'set4 for servo #, hastighed set5 fra 0 til127

serout c.0, t2400, ($ 80, $ 01, $ 04,1,13,127) 'åben griber, 13

pause 1000

Vend tilbage

closegrip2:

serout c.0, t2400, ($ 80, $ 01, $ 01,1,30) 'hastighed indstillet sidste # fra 0 til 127

serout c.0, t2400, ($ 80, $ 01, $ 04,1,26,127) 'close gripper 26

pause 2000

Vend tilbage

headleft2:

serout c.0, t2400, ($ 80, $ 01, $ 01,0,20) 'set4 for servo #, speed set5 fra 0to127

serout c.0, t2400, ($ 80, $ 01, $ 04,0,15,127) 'hoved venstre 15

pause 800

Vend tilbage

headright2:

'serout c.0, t2400, ($ 80, $ 01, $ 01,0,20)' hastighed indstillet sidste # fra 0 til 127

serout c.0, t2400, ($ 80, $ 01, $ 04,0,32,127) 'head right 30

pause 1600

Vend tilbage

headcenter2:

serout c.0, t2400, ($ 80, $ 01, $ 01,0,20) 'hastighed indstillet sidste # fra 0 til 127

serout c.0, t2400, ($ 80, $ 01, $ 04,0,26,127) 'hovedcenter

pause 500

Vend tilbage

bodyup2:

serout c.0, t2400, ($ 80, $ 01, $ 01,2,30) 'set4 for servo #, hastighed set5 fra 0 til127

serout c.0, t2400, ($ 80, $ 01, $ 04,2,13,30) 'krop op, 13

pause 220

Vend tilbage

bodydwn2:

serout c.0, t2400, ($ 80, $ 01, $ 01,2,30) 'set4 for servo #, hastighed set5 fra 0 til127

serout c.0, t2400, ($ 80, $ 01, $ 04,2,26,30) 'krop ned 26

pause 200

Vend tilbage

leftfast:

serout c.0, t2400, (128,0,1,127) 'fremad højre 20min

serout c.0, t2400, (128,0,3,127) 'rev venstre 20min

Vend tilbage

rightfast:

serout c.0, t2400, (128,0,2,127) 'fremad venstre 20min

serout c.0, t2400, (128,0,0,127) 'ret højre 20min

Vend tilbage

Trin 9: Andre muligheder

Mindre kredsløb

En overflademonteret version af Picaxe 20x-2 er tilgængelig for at gøre endnu mindre mikrocontroller moduler. For detaljer om let lodning af overflademonteringskomponenter se her:

www.instructables.com/id/Advanced-Soldering-Fast-and-Easy-Soldering-of-Sur/

Fjernbetjening Ring

Robotmyren kan styres af andre Picaxe-controllere, der er konfigureret til at udsende infrarøde Sony-signaler. For detaljer om hvordan man laver en fjernbetjeningsring, der kan styre roboten, kan du se her:

Robot Neuroner

En biologisk myr har mellem 200 og 3000 neuroner, der arbejder parallelt for at styre bevægelserne. Hvis vi betragter en mikrokontroller for at være en meget rå neuron, har robotmyren ækvivalenten af ​​4 neuroner. Picaxe, servostyring, motorstyring og infrarød sensor har hver en mikrocontroller som en del af modulet. Mange flere mikrocontrollere end dette vil være nødvendige for at opnå den utrolige parallelle behandling af lige simple biologiske systemer.

Ant Hairs

Biologiske myrer har hundredvis af fine hår og hver er en berøringsfølsom sensor. Det største problem med robotter i dag er ikke mangel på processorkraft, men manglen på følsomme sensorer i store mængder. Mange flere sensorer vil være nødvendige for at gøre denne robotmør tættere på de utrolige fine manipulationer af en ægte myr.

Laser Cutter og mindre robotter

En laserskærer kunne bruges til at lave nogle præcisionsdele til at lave en micro 3d printer. Printeren vil så blive brugt til at lave endnu mindre dele til en mikroskopisk robot. Den mikroskopiske robot kunne derefter bruges til at manipulere objekter på omfanget af molekyler.

Tredje pris i

Robotics Week Robot Contest