Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Programet
  • Robot luftarak bëjeni vetë në shtëpi. Bëni vetë një robot në shtëpi? Lehtësisht

Robot luftarak bëjeni vetë në shtëpi. Bëni vetë një robot në shtëpi? Lehtësisht

Si të krijoni një robot?



Kur bëhet fjalë për robotët, imagjinojmë një makinë gjigante me inteligjencë artificiale, si në filmat RoboCop, etj. Megjithatë, një robot nuk duhet të jetë një pajisje e madhe dhe teknikisht komplekse. Në këtë artikull, ne do t'ju tregojmë se si të krijoni një robot në shtëpi. Pasi të keni krijuar mini-robotin tuaj, do të shihni se nuk kërkohen njohuri dhe mjete të veçanta për këtë.

Materialet e punës

Pra, ne krijojmë një robot me duart tona, pasi kemi përgatitur materialet e mëposhtme për ndërtim:

  • 2 copa të vogla teli.
  • 1 motor i vogël lodër 3 volt.
  • 1 bateri AA.
  • 2 rruaza.
  • 2 copa të vogla katrore stiropor të madhësive të ndryshme.
  • Armë ngjitëse.
  • Materiali i këmbëve (kapa letre, koka e furçës së dhëmbëve, etj.).

Udhëzime për krijimin e një roboti

Tani le të kalojmë në një përshkrim hap pas hapi se si të krijoni një robot:

  1. Ngjiteni pjesën më të madhe të stiroporit në motorin e lodrës anash me kontaktet metalike sipër. Kjo është e nevojshme për të mbrojtur kontaktet nga lagështia.
  2. Ngjiteni baterinë sipër pjesës së polisterolit.
  3. Ngjitni pjesën e dytë të stiroporit në pjesën e pasme të motorit për të krijuar një çekuilibër të lehtë të peshës. Është falë këtij çekuilibri që roboti do të jetë në gjendje të lëvizë. Lëreni ngjitësin të thahet.
  4. Ngjitni këmbët në motor. Për t'i mbajtur këmbët sa më të forta, fillimisht do t'ju duhet të ngjitni copa të vogla shkume polistireni në motor dhe më pas t'i ngjitni këmbët me to.
  5. Teli në motor ose mund të mbështillet me shirit elektrik ose të bashkohet. Opsioni i dytë është më i preferueshëm - në këtë mënyrë roboti do të zgjasë shumë më gjatë. Të dyja pjesët e telit duhet të ngjiten në kontaktet metalike në motor sa më fort që të jetë e mundur.
  6. Më pas, do t'ju duhet të lidhni ndonjë nga copat e telit në njërën nga anët e baterisë, në "plus" ose "minus". Mund të ngjitet në bateri ose me shirit elektrik ose me një pistoletë ngjitëse. Ngjitja me ngjitës është më e sigurtë, por duhet pasur shumë kujdes gjatë aplikimit, sepse nëse përdorni shumë ngjitës, kontakti mes telit dhe baterisë do të humbasë.
  7. Ngjitni rruazat në bateri për të simuluar sytë.
  8. Lidhni një copë teli të dytë në skajin tjetër të baterisë për ta bërë robotin të lëvizë. Në këtë rast, është më mirë të mos përdorni zam, por kasetë elektrike. Kështu që ju mund ta hapni lehtësisht kontaktin dhe ta ndaloni robotin kur të lodheni prej tij.

Një robot i tillë do të zgjasë saktësisht për aq kohë sa zgjat ngarkimi i baterisë. Siç mund ta shihni, krijimi i robotëve në shtëpi është një proces mjaft emocionues në të cilin nuk ka asgjë të komplikuar. Sigurisht, më vonë mund të përpiqeni të krijoni modele më komplekse dhe të programueshme. Sidoqoftë, për t'i krijuar ato, do t'ju nevojiten njohuri të caktuara dhe materiale shtesë që shiten në një dyqan elektrik. I njëjti mini robot lodër mund të bëhet lehtësisht me një fëmijë në pak minuta.

Sot do t'ju tregojmë se si të bëni një robot nga mjete të improvizuara. "Androidi i teknologjisë së lartë" që rezulton, megjithëse do të jetë i vogël në madhësi dhe nuk ka gjasa të jetë në gjendje t'ju ndihmojë me punët e shtëpisë, sigurisht që do të argëtojë si fëmijët ashtu edhe të rriturit.

Materialet e nevojshme

Për të bërë një robot me duart tuaja, nuk keni nevojë për njohuri të fizikës bërthamore. Kjo mund të bëhet në shtëpi nga materiale të zakonshme që janë vazhdimisht në dispozicion. Pra, ajo që na nevojitet:
  • 2 copa teli
  • 1 motor
  • 1 bateri AA
  • 3 shtylla
  • 2 copë dërrasë shkumë ose material të ngjashëm
  • 2-3 koka furça dhëmbësh të vjetër ose disa kapëse letre

1. Lidheni baterinë me motorin

Duke përdorur një pistoletë ngjitëse, lidhni një copë dërrase shkumë në kutinë e motorit. Pastaj ngjitni baterinë në të.

Ky hap mund të duket konfuz. Megjithatë, për të bërë një robot, ju duhet ta bëni atë të lëvizë. Vendosim një copë të vogël të zgjatur të dërrasës së shkumës në boshtin e motorit dhe e rregullojmë me një pistoletë ngjitëse. Ky dizajn do t'i japë motorit një çekuilibër, i cili do të vërë në lëvizje të gjithë robotin.

Në fund të destabilizuesit, hidhni disa pika zam ose bashkëngjitni ndonjë element dekorativ - kjo do të shtojë individualitetin në krijimin tonë dhe do të rrisë amplituda e lëvizjeve të tij.

3. Këmbët

Tani ju duhet ta pajisni robotin me gjymtyrët e poshtme. Nëse përdorni kokat e furçës së dhëmbëve për këtë, ngjitini ato në fund të motorit. Si shtresë, mund të përdorni të njëjtën pllakë shkumë.

Hapi tjetër është të lidhim dy pjesët tona të telit në kontaktet e motorit. Ju thjesht mund t'i vidhni ato, por bashkimi i tyre është edhe më i mirë, kjo do ta bëjë robotin më të qëndrueshëm.

5. Lidhja e baterisë

Duke përdorur një armë nxehtësie, ngjitni telin në njërën skaj të baterisë. Ju mund të zgjidhni cilindo nga dy telat dhe secilën anë të baterisë - polariteti nuk ka rëndësi në këtë rast. Nëse jeni të mirë në saldimin, mund të përdorni edhe saldim në vend të ngjitësit për këtë hap.

6. Sytë

Si sytë e robotit, janë mjaft të përshtatshme një palë rruaza, të cilat i ngjitim me ngjitës të nxehtë në një nga skajet e baterisë. Në këtë hap, ju mund të tregoni imagjinatën tuaj dhe të dilni me pamjen e syve sipas gjykimit tuaj.

7. Nisja

Tani le të jetësojmë zanatin tonë. Merrni skajin e lirë të telit dhe lidhni atë në terminalin e baterisë së pabanuar me shirit ngjitës. Mos përdorni ngjitës të shkrirë të nxehtë për këtë hap, sepse nuk do t'ju lejojë të fikni motorin nëse është e nevojshme.

Bëni një robot shume e thjeshte Le të shohim se çfarë duhet krijoni një robot në shtëpi, për të kuptuar bazat e robotikës.

Me siguri, pasi keni parë filma për robotët, shpesh keni dashur të ndërtoni shokun tuaj të armëve, por nuk dinit nga të fillonit. Sigurisht, ju nuk do të jeni në gjendje të ndërtoni një terminator dykëmbësh, por ne nuk synojmë këtë. Kushdo që di të mbajë siç duhet një hekur saldimi në duar, mund të mbledhë një robot të thjeshtë dhe kjo nuk kërkon njohuri të thella, megjithëse ata nuk do të ndërhyjnë. Robotika amatore nuk është shumë e ndryshme nga inxhinieria e qarkut, vetëm shumë më interesante, sepse fusha të tilla si mekanika dhe programimi preken gjithashtu këtu. Të gjithë komponentët janë të disponueshëm dhe nuk janë aq të shtrenjtë. Pra, progresi nuk qëndron ende dhe ne do ta përdorim atë në avantazhin tonë.

Prezantimi

Kështu që. Çfarë është një robot? Në shumicën e rasteve, kjo është një pajisje automatike që i përgjigjet çdo veprimi mjedisor. Robotët mund të kontrollohen nga një njeri ose të kryejnë veprime të para-programuara. Në mënyrë tipike, roboti ka një shumëllojshmëri sensorësh (distanca, këndi i rrotullimit, nxitimi), kamera video, manipulatorë. Pjesa elektronike e robotit përbëhet nga një mikrokontrollues (MC) - një mikroqark që përmban një procesor, një gjenerator të orës, pajisje të ndryshme periferike, RAM dhe memorie të përhershme. Ekziston një numër i madh i mikrokontrolluesve të ndryshëm në botë për aplikacione të ndryshme, dhe robotë të fuqishëm mund të montohen në bazë të tyre. Për ndërtesat amatore, mikrokontrolluesit AVR përdoren gjerësisht. Ato janë deri tani më të arritshmet dhe në internet mund të gjeni shumë shembuj të bazuar në këto MK. Për të punuar me mikrokontrollues duhet të jeni në gjendje të programoni në asembler ose C dhe të keni njohuri bazë të elektronikës dixhitale dhe analoge. Në projektin tonë, ne do të përdorim C. Programimi për MK nuk është shumë i ndryshëm nga programimi në kompjuter, sintaksa e gjuhës është e njëjtë, shumica e funksioneve janë praktikisht të njëjta, dhe të rejat janë mjaft të lehta për t'u mësuar dhe të përshtatshme për t'u përdorur.

Çfarë na duhet

Si fillim, roboti ynë do të jetë në gjendje të kalojë thjesht pengesat, domethënë të përsërisë sjelljen normale të shumicës së kafshëve në natyrë. Gjithçka që na nevojitet për të ndërtuar një robot të tillë mund të gjendet në dyqanet e inxhinierisë radio. Le të vendosim se si do të lëvizë roboti ynë. Më të suksesshmet, mendoj, janë pistat që përdoren në tanke, kjo është zgjidhja më e përshtatshme, sepse gjurmët kanë një aftësi më të madhe të kryqëzimit sesa rrotat e makinës dhe është më e përshtatshme t'i kontrollosh ato (për t'u kthyer , mjafton të rrotullohen gjurmët në drejtime të ndryshme). Prandaj, do t'ju duhet çdo rezervuar lodrash që ka gjurmë që rrotullohen në mënyrë të pavarur nga njëra-tjetra, mund ta blini një në çdo dyqan lodrash për një çmim të arsyeshëm. Nga ky rezervuar ju nevojitet vetëm një platformë me gjurmë dhe motorë me kuti ingranazhesh, mund ta hiqni me siguri pjesën tjetër dhe ta hidhni. Ne gjithashtu kemi nevojë për një mikrokontrollues, zgjedhja ime ra në ATmega16 - ai ka porte të mjaftueshme për lidhjen e sensorëve dhe pajisjeve periferike, dhe në përgjithësi është mjaft i përshtatshëm. Do t'ju duhet gjithashtu të blini disa komponentë radio, një saldim, një multimetër.

Bërja e një bord me MK

Në rastin tonë, mikrokontrolluesi do të kryejë funksionet e trurit, por ne nuk do të fillojmë me të, por me furnizimin me energji të trurit të robotit. Ushqimi i duhur është çelësi i shëndetit, kështu që ne do të fillojmë me mënyrën se si ta ushqejmë siç duhet robotin tonë, sepse ndërtuesit fillestarë të robotëve zakonisht bëjnë gabime në këtë. Dhe në mënyrë që roboti ynë të funksionojë normalisht, duhet të përdorni një stabilizues të tensionit. Unë preferoj çipin L7805 - ai është krijuar për të nxjerrë një tension të qëndrueshëm prej 5 V, gjë që i nevojitet mikrokontrolluesit tonë. Por për shkak të faktit se rënia e tensionit në këtë çip është rreth 2.5 V, duhet të furnizohet një minimum prej 7.5 V. Së bashku me këtë stabilizues, kondensatorët elektrolitikë përdoren për të zbutur valëzimet e tensionit dhe një diodë duhet të përfshihet në qark për të mbrojtur kundër ndryshimit të polaritetit.

Tani mund të punojmë në mikrokontrolluesin tonë. Rasti i MK është DIP (është më i përshtatshëm për t'u bashkuar) dhe ka dyzet kunja. Në bord ka një ADC, PWM, USART dhe shumë gjëra të tjera që ne nuk do t'i përdorim tani për tani. Le të shohim disa nyje të rëndësishme. Dalja RESET (këmba e 9-të e MK) tërhiqet nga rezistenca R1 në "plus" të burimit të energjisë - kjo duhet bërë! Përndryshe, MK juaj mund të rivendoset pa dashje ose, me fjalë të tjera, të dështojë. Është gjithashtu e dëshirueshme, por jo e detyrueshme, të lidhni RESET përmes kondensatorit qeramik C1 në tokë. Në diagram, mund të shihni edhe një elektrolit 1000 uF, ai ju kursen nga rënia e tensionit kur motorët janë në punë, gjë që gjithashtu do të ketë një efekt pozitiv në funksionimin e mikrokontrolluesit. Rezonatori kristal X1 dhe kondensatorët C2, C3 duhet të vendosen sa më afër kunjave XTAL1 dhe XTAL2.

Unë nuk do të flas se si të flash MK, pasi mund të lexoni në lidhje me të në internet. Ne do ta shkruajmë programin në C, unë zgjodha CodeVisionAVR si mjedis programimi. Është një mjedis mjaft i dobishëm dhe i dobishëm për fillestarët, sepse ka një magjistar të integruar për gjenerimin e kodit.

Kontrolli i motorit

Një komponent po aq i rëndësishëm në robotin tonë është drejtuesi i motorit, i cili e bën më të lehtë për ne ta kontrollojmë atë. Asnjëherë dhe në asnjë rrethanë motorët nuk duhet të lidhen drejtpërdrejt me MK! Në përgjithësi, ngarkesat e fuqishme nuk mund të kontrollohen drejtpërdrejt nga mikrokontrolluesi, përndryshe do të digjet. Përdorni tranzistorë kyç. Për rastin tonë, ekziston një çip i veçantë - L293D. Në projekte të tilla të thjeshta, gjithmonë përpiquni të përdorni këtë çip të veçantë me indeksin "D", pasi ka dioda të integruara për mbrojtjen nga mbingarkesa. Ky çip është shumë i lehtë për t'u menaxhuar dhe i lehtë për t'u marrë në dyqanet e inxhinierisë radio. Është në dispozicion në dy paketa DIP dhe SOIC. Ne do të përdorim në një paketë DIP për shkak të lehtësisë së montimit në tabelë. L293D ka furnizim të veçantë motorik dhe logjik. Prandaj, ne do ta fuqizojmë vetë mikroqarkun nga stabilizuesi (hyrja VSS), dhe motorët direkt nga bateritë (hyrja VS). L293D mund të përballojë një ngarkesë prej 600 mA për kanal, dhe ka dy nga këto kanale, domethënë dy motorë mund të lidhen me një mikroqark. Por për të qenë në anën e sigurt, ne do të kombinojmë kanalet dhe më pas na duhet një mikrofon për secilin motor. Nga kjo rrjedh se L293D do të jetë në gjendje të përballojë 1.2 A. Për ta arritur këtë, ju duhet të kombinoni këmbët e mikro, siç tregohet në diagram. Mikroqarku funksionon si më poshtë: kur aplikohet një "0" logjik në IN1 dhe IN2, dhe një njësi logjike aplikohet në IN3 dhe IN4, motori rrotullohet në një drejtim dhe nëse sinjalet janë të përmbysur, zbatohet një zero logjike. atëherë motori do të fillojë të rrotullohet në drejtim të kundërt. Pincat EN1 dhe EN2 janë përgjegjëse për ndezjen e secilit kanal. Ne i lidhim ato dhe i lidhim me furnizimin me energji "plus" nga stabilizuesi. Meqenëse mikroqarku nxehet gjatë funksionimit dhe instalimi i radiatorëve është problematik në këtë lloj rasti, heqja e nxehtësisë sigurohet nga këmbët GND - është më mirë t'i bashkoni ato në një zonë të gjerë kontakti. Kjo është gjithçka që duhet të dini për drejtuesit e motorëve për herë të parë.

Sensorët e pengesave

Në mënyrë që roboti ynë të mund të lundrojë dhe të mos përplaset në gjithçka, ne do të instalojmë dy sensorë infra të kuqe në të. Sensori më i thjeshtë përbëhet nga një diodë IR që lëshon në spektrin infra të kuqe dhe një fototransistor që do të marrë një sinjal nga dioda IR. Parimi është ky: kur nuk ka asnjë pengesë para sensorit, rrezet IR nuk bien mbi fototransistor dhe ai nuk hapet. Nëse ka një pengesë përpara sensorit, atëherë rrezet prej tij reflektohen dhe bien mbi transistor - ai hapet dhe rryma fillon të rrjedhë. Disavantazhi i sensorëve të tillë është se ata mund të reagojnë ndryshe në sipërfaqe të ndryshme dhe nuk mbrohen nga ndërhyrja - sensori mund të funksionojë aksidentalisht nga sinjalet e jashtme nga pajisje të tjera. Modulimi i sinjalit mund të mbrojë kundër ndërhyrjeve, por tani për tani ne nuk do të shqetësohemi me këtë. Për fillim, mjafton.


Firmware robotik

Për të ringjallur robotin, duhet të shkruani firmware për të, domethënë një program që do të merrte lexime nga sensorët dhe motorët e kontrollit. Programi im është më i thjeshti, nuk përmban struktura komplekse dhe do të jetë i kuptueshëm për të gjithë. Dy rreshtat e ardhshëm përfshijnë skedarët e kokës për mikrokontrolluesin tonë dhe komandat për gjenerimin e vonesave:

#përfshi
#përfshi

Linjat e mëposhtme janë të kushtëzuara sepse vlerat PORTC varen nga mënyra se si e keni lidhur drejtuesin e motorit me mikrokontrolluesin tuaj:

PORTC.0 = 1; PORTC.1 = 0; PORTC.2 = 1; PORTC.3 = 0; Një vlerë prej 0xFF do të thotë që dalja do të jetë një regjistër. "1", dhe 0x00 është një regjistër. "0". Me konstruksionin e mëposhtëm, kontrollojmë nëse ka ndonjë pengesë përpara robotit dhe në cilën anë është: nëse (!(PINB & (1<

Nëse drita nga një diodë IR godet fototransistorin, atëherë një regjistër vendoset në këmbën e mikrokontrolluesit. "0" dhe roboti fillon të lëvizë prapa për t'u larguar nga pengesa, pastaj kthehet për të mos u përplasur me pengesën përsëri dhe më pas shkon përsëri përpara. Meqenëse kemi dy sensorë, ne kontrollojmë praninë e një pengese dy herë - në të djathtë dhe në të majtë, dhe për këtë arsye mund të zbulojmë se në cilën anë është pengesa. Komanda "delay_ms(1000)" tregon se do të kalojë një sekondë përpara se komanda tjetër të fillojë të ekzekutohet.

konkluzioni

Unë kam mbuluar shumicën e aspekteve që do t'ju ndihmojnë të ndërtoni robotin tuaj të parë. Por robotika nuk mbaron me kaq. Nëse e montoni këtë robot, atëherë do të keni shumë mundësi për ta zgjeruar atë. Mund të përmirësoni algoritmin e robotit, si p.sh. çfarë të bëni nëse pengesa nuk është në njërën anë, por pikërisht përballë robotit. Gjithashtu nuk dëmton instalimi i një koduesi - një pajisje e thjeshtë që do t'ju ndihmojë të poziciononi me saktësi dhe të dini vendndodhjen e robotit tuaj në hapësirë. Për qartësi, është e mundur të instaloni një ekran me ngjyra ose pikturë njëngjyrëshe që mund të tregojë informacione të dobishme - nivelin e ngarkimit të baterisë, distancën nga një pengesë, informacione të ndryshme korrigjimi. Përmirësimi i sensorëve nuk do të ndërhyjë - instalimi i TSOP (këto janë marrës IR që perceptojnë një sinjal të vetëm një frekuence të caktuar) në vend të fototransistorëve konvencionalë. Përveç sensorëve infra të kuqe, ka edhe tejzanor, të cilët janë më të shtrenjtë, dhe gjithashtu jo pa të meta, por kohët e fundit po fitojnë popullaritet në mesin e ndërtuesve të robotëve. Në mënyrë që roboti t'i përgjigjet tingullit, do të ishte mirë të instaloni mikrofona me një përforcues. Por gjëja vërtet interesante, mendoj, është instalimi i kamerës dhe programimi i vizionit të makinës bazuar në të. Ekziston një grup bibliotekash speciale OpenCV me të cilat mund të programoni njohjen e fytyrës, lëvizjet në beacons me ngjyra dhe shumë gjëra të tjera interesante. E gjitha varet nga imagjinata dhe aftësitë tuaja.

Lista e komponentëve:

    ATmega16 në paketën DIP-40>

    L7805 në paketimin TO-220

    L293D në paketim DIP-16 x2 copë.

    rezistorë me fuqi 0,25 W me emërtime: 10 kOhm x1 copë, 220 Ohm x4 copë.

    kondensatorët qeramikë: 0,1 uF, 1 uF, 22 pF

    kondensatorë elektrolitikë: 1000 uF x 16 V, 220 uF x 16V x2 copë.

    dioda 1N4001 ose 1N4004

    Rezonator kuarci 16 MHz

    Diodat IR: çdo në sasi prej dy pjesësh do të bëjë.

    fototransistorë, gjithashtu çdo, por që reagojnë vetëm ndaj gjatësisë valore të rrezeve IR

Kodi i firmuerit:

/**************************************************** **** **** Firmware për llojin robot MK: ATmega16 Frekuenca e orës: 16.000000 MHz Nëse keni një frekuencë të ndryshme kuarci, atëherë duhet ta specifikoni këtë në cilësimet e mjedisit: Projekt -> Konfiguro -> "Përpiluesi C" skeda ************************************************** *********/ #përfshi #përfshi void main(void) ( //Vendos portat për hyrje //Përmes këtyre porteve marrim sinjale nga sensorët DDRB=0x00; //Ndizni rezistorët tërheqës PORTB=0xFF; //Vendosni portat për dalje //Përmes këtyre porteve ne kontrolloni motorët DDRC =0xFF; //Cakulli kryesor i programit. Këtu lexojmë vlerat nga sensorët //dhe kontrollojmë motorët ndërsa (1) ( //Lëvizni përpara PORTC.0 = 1; PORTC.1 = 0 ; PORTC.2 = 1; PORTC.3 = 0; nëse (!(PINB & (1<Rreth robotit tim

Për momentin roboti im është pothuajse i përfunduar.


Ka një kamerë me valë, një sensor distancë (si kamera ashtu edhe ky sensor janë instaluar në një kullë rrotulluese), një sensor pengesash, një kodues, një marrës sinjali nga telekomanda dhe një ndërfaqe RS-232 për t'u lidhur me një kompjuter. Punon në dy mënyra: autonome dhe manuale (merr sinjale kontrolli nga telekomanda), kamera gjithashtu mund të ndizet/fiket nga distanca ose nga vetë roboti për të kursyer energjinë e baterisë. Po shkruaj firmware per mbrojtjen e baneses (transferim imazhi ne kompjuter, detektim levizjesh, devijimi i ambientit).

Me siguri, pasi keni parë filma për robotët, shpesh keni dashur të ndërtoni shokun tuaj të armëve, por nuk dinit nga të fillonit. Sigurisht, ju nuk do të jeni në gjendje të ndërtoni një terminator dykëmbësh, por ne nuk synojmë këtë. Kushdo që di të mbajë siç duhet një hekur saldimi në duar, mund të mbledhë një robot të thjeshtë dhe kjo nuk kërkon njohuri të thella, megjithëse ata nuk do të ndërhyjnë. Robotika amatore nuk është shumë e ndryshme nga inxhinieria e qarkut, vetëm shumë më interesante, sepse fusha të tilla si mekanika dhe programimi preken gjithashtu këtu. Të gjithë komponentët janë të disponueshëm dhe nuk janë aq të shtrenjtë. Pra, progresi nuk qëndron ende dhe ne do ta përdorim atë në avantazhin tonë.

Prezantimi

Kështu që. Çfarë është një robot? Në shumicën e rasteve, kjo është një pajisje automatike që i përgjigjet çdo veprimi mjedisor. Robotët mund të kontrollohen nga një njeri ose të kryejnë veprime të para-programuara. Në mënyrë tipike, roboti ka një shumëllojshmëri sensorësh (distanca, këndi i rrotullimit, nxitimi), kamera video, manipulatorë. Pjesa elektronike e robotit përbëhet nga një mikrokontrollues (MC) - një mikroqark që përmban një procesor, një gjenerator të orës, pajisje të ndryshme periferike, RAM dhe memorie të përhershme. Ekziston një numër i madh i mikrokontrolluesve të ndryshëm në botë për aplikacione të ndryshme, dhe robotë të fuqishëm mund të montohen në bazë të tyre. Për ndërtesat amatore, mikrokontrolluesit AVR përdoren gjerësisht. Ato janë deri tani më të arritshmet dhe në internet mund të gjeni shumë shembuj të bazuar në këto MK. Për të punuar me mikrokontrollues duhet të jeni në gjendje të programoni në asembler ose C dhe të keni njohuri bazë të elektronikës dixhitale dhe analoge. Në projektin tonë, ne do të përdorim C. Programimi për MK nuk është shumë i ndryshëm nga programimi në kompjuter, sintaksa e gjuhës është e njëjtë, shumica e funksioneve janë praktikisht të njëjta, dhe të rejat janë mjaft të lehta për t'u mësuar dhe të përshtatshme për t'u përdorur.

Çfarë na duhet

Si fillim, roboti ynë do të jetë në gjendje të kalojë thjesht pengesat, domethënë të përsërisë sjelljen normale të shumicës së kafshëve në natyrë. Gjithçka që na nevojitet për të ndërtuar një robot të tillë mund të gjendet në dyqanet e inxhinierisë radio. Le të vendosim se si do të lëvizë roboti ynë. Më të suksesshmet, mendoj, janë pistat që përdoren në tanke, kjo është zgjidhja më e përshtatshme, sepse gjurmët kanë një aftësi më të madhe të kryqëzimit sesa rrotat e makinës dhe është më e përshtatshme t'i kontrollosh ato (për t'u kthyer , mjafton të rrotullohen gjurmët në drejtime të ndryshme). Prandaj, do t'ju duhet çdo rezervuar lodrash që ka gjurmë që rrotullohen në mënyrë të pavarur nga njëra-tjetra, mund ta blini një në çdo dyqan lodrash për një çmim të arsyeshëm. Nga ky rezervuar ju nevojitet vetëm një platformë me gjurmë dhe motorë me kuti ingranazhesh, mund ta hiqni me siguri pjesën tjetër dhe ta hidhni. Ne gjithashtu kemi nevojë për një mikrokontrollues, zgjedhja ime ra në ATmega16 - ai ka porte të mjaftueshme për lidhjen e sensorëve dhe pajisjeve periferike, dhe në përgjithësi është mjaft i përshtatshëm. Do t'ju duhet gjithashtu të blini disa komponentë radio, një saldim, një multimetër.

Bërja e një bord me MK



Skema e robotëve

Në rastin tonë, mikrokontrolluesi do të kryejë funksionet e trurit, por ne nuk do të fillojmë me të, por me furnizimin me energji të trurit të robotit. Ushqimi i duhur është çelësi i shëndetit, kështu që ne do të fillojmë me mënyrën se si ta ushqejmë siç duhet robotin tonë, sepse ndërtuesit fillestarë të robotëve zakonisht bëjnë gabime në këtë. Dhe në mënyrë që roboti ynë të funksionojë normalisht, duhet të përdorni një stabilizues të tensionit. Unë preferoj çipin L7805 - ai është krijuar për të nxjerrë një tension të qëndrueshëm prej 5 V, gjë që i nevojitet mikrokontrolluesit tonë. Por për shkak të faktit se rënia e tensionit në këtë çip është rreth 2.5 V, duhet të furnizohet një minimum prej 7.5 V. Së bashku me këtë stabilizues, kondensatorët elektrolitikë përdoren për të zbutur valëzimet e tensionit dhe një diodë duhet të përfshihet në qark për të mbrojtur kundër ndryshimit të polaritetit.
Tani mund të punojmë në mikrokontrolluesin tonë. Trupi i MK është DIP (është më i përshtatshëm për t'u bashkuar) dhe ka dyzet kunja. Në bord ka një ADC, PWM, USART dhe shumë gjëra të tjera që ne nuk do t'i përdorim tani për tani. Le të shohim disa nyje të rëndësishme. Dalja e RESET (këmba e 9-të e MK) tërhiqet nga rezistenca R1 në "plus" të burimit të energjisë - kjo duhet bërë! Përndryshe, MK juaj mund të rivendoset pa dashje ose, me fjalë të tjera, të dështojë. Është gjithashtu e dëshirueshme, por jo e detyrueshme, të lidhni RESET përmes kondensatorit qeramik C1 në tokë. Në diagram, mund të shihni edhe një elektrolit 1000 uF, ai ju kursen nga rënia e tensionit kur motorët janë në punë, gjë që gjithashtu do të ketë një efekt pozitiv në funksionimin e mikrokontrolluesit. Rezonatori kristal X1 dhe kondensatorët C2, C3 duhet të vendosen sa më afër kunjave XTAL1 dhe XTAL2.
Unë nuk do të flas se si të flash MK, pasi mund të lexoni në lidhje me të në internet. Ne do ta shkruajmë programin në C, unë zgjodha CodeVisionAVR si mjedis programimi. Është një mjedis mjaft i dobishëm dhe i dobishëm për fillestarët, sepse ka një magjistar të integruar për gjenerimin e kodit.


Tarifa për robotin tim

Kontrolli i motorit

Një komponent po aq i rëndësishëm në robotin tonë është drejtuesi i motorit, i cili e bën më të lehtë për ne ta kontrollojmë atë. Asnjëherë dhe në asnjë rrethanë motorët nuk duhet të lidhen drejtpërdrejt me MK! Në përgjithësi, ngarkesat e fuqishme nuk mund të kontrollohen drejtpërdrejt nga mikrokontrolluesi, përndryshe do të digjet. Përdorni tranzistorë kyç. Për rastin tonë, ekziston një çip i veçantë - L293D. Në projekte të tilla të thjeshta, gjithmonë përpiquni të përdorni këtë çip të veçantë me indeksin "D", pasi ka dioda të integruara për mbrojtjen nga mbingarkesa. Ky çip është shumë i lehtë për t'u menaxhuar dhe i lehtë për t'u marrë në dyqanet e inxhinierisë radio. Është në dispozicion në dy paketa DIP dhe SOIC. Ne do të përdorim në një paketë DIP për shkak të lehtësisë së montimit në tabelë. L293D ka furnizim të veçantë motorik dhe logjik. Prandaj, ne do ta fuqizojmë vetë mikroqarkun nga stabilizuesi (hyrja VSS), dhe motorët direkt nga bateritë (hyrja VS). L293D mund të përballojë një ngarkesë prej 600 mA për kanal, dhe ka dy nga këto kanale, domethënë dy motorë mund të lidhen me një mikroqark. Por për të qenë në anën e sigurt, ne do të kombinojmë kanalet dhe më pas na duhet një mikrofon për secilin motor. Nga kjo rrjedh se L293D do të jetë në gjendje të përballojë 1.2 A. Për ta arritur këtë, ju duhet të kombinoni këmbët e mikro, siç tregohet në diagram. Mikroqarku funksionon si më poshtë: kur aplikohet një "0" logjik në IN1 dhe IN2, dhe një njësi logjike aplikohet në IN3 dhe IN4, motori rrotullohet në një drejtim dhe nëse sinjalet janë të përmbysur, zbatohet një zero logjike. atëherë motori do të fillojë të rrotullohet në drejtimin tjetër. Pincat EN1 dhe EN2 janë përgjegjëse për ndezjen e secilit kanal. Ne i lidhim ato dhe i lidhim me furnizimin me energji "plus" nga stabilizuesi. Meqenëse mikroqarku nxehet gjatë funksionimit dhe instalimi i radiatorëve është problematik në këtë lloj rasti, heqja e nxehtësisë sigurohet nga këmbët GND - është më mirë t'i bashkoni ato në një zonë të gjerë kontakti. Kjo është gjithçka që duhet të dini për drejtuesit e motorëve për herë të parë.

Sensorët e pengesave

Në mënyrë që roboti ynë të mund të lundrojë dhe të mos përplaset në gjithçka, ne do të instalojmë dy sensorë infra të kuqe në të. Sensori më i thjeshtë përbëhet nga një diodë IR që lëshon në spektrin infra të kuqe dhe një fototransistor që do të marrë një sinjal nga dioda IR. Parimi është ky: kur nuk ka asnjë pengesë para sensorit, rrezet IR nuk bien mbi fototransistor dhe ai nuk hapet. Nëse ka një pengesë përpara sensorit, atëherë rrezet prej tij reflektohen dhe bien mbi transistor - ai hapet dhe rryma fillon të rrjedhë. Disavantazhi i sensorëve të tillë është se ata mund të reagojnë ndryshe në sipërfaqe të ndryshme dhe nuk mbrohen nga ndërhyrja - sensori mund të funksionojë aksidentalisht nga sinjalet e jashtme nga pajisje të tjera. Modulimi i sinjalit mund të mbrojë kundër ndërhyrjeve, por tani për tani ne nuk do të shqetësohemi me këtë. Për fillim, mjafton.


Versioni i parë i sensorëve të robotit tim

Firmware robotik

Për të ringjallur robotin, duhet të shkruani firmware për të, domethënë një program që do të merrte lexime nga sensorët dhe motorët e kontrollit. Programi im është më i thjeshti, nuk përmban struktura komplekse dhe do të jetë i kuptueshëm për të gjithë. Dy rreshtat e ardhshëm përfshijnë skedarët e kokës për mikrokontrolluesin tonë dhe komandat për gjenerimin e vonesave:

#përfshi
#përfshi

Linjat e mëposhtme janë të kushtëzuara sepse vlerat PORTC varen nga mënyra se si e keni lidhur drejtuesin e motorit me mikrokontrolluesin tuaj:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Një vlerë prej 0xFF do të thotë që dalja do të jetë një regjistër. "1", dhe 0x00 është një regjistër. "0".

Me konstruksionin e mëposhtëm, kontrollojmë nëse ka ndonjë pengesë përpara robotit dhe në cilën anë është:

Nëse (!(PINB & (1< {
...
}

Nëse drita nga një diodë IR godet fototransistorin, atëherë një regjistër vendoset në këmbën e mikrokontrolluesit. "0" dhe roboti fillon të lëvizë prapa për t'u larguar nga pengesa, pastaj kthehet për të mos u përplasur me pengesën përsëri dhe më pas shkon përsëri përpara. Meqenëse kemi dy sensorë, ne kontrollojmë praninë e një pengese dy herë - në të djathtë dhe në të majtë, dhe për këtë arsye mund të zbulojmë se në cilën anë është pengesa. Komanda "delay_ms(1000)" tregon se do të kalojë një sekondë përpara se komanda tjetër të fillojë të ekzekutohet.

konkluzioni

Unë kam mbuluar shumicën e aspekteve që do t'ju ndihmojnë të ndërtoni robotin tuaj të parë. Por robotika nuk mbaron me kaq. Nëse e montoni këtë robot, atëherë do të keni shumë mundësi për ta zgjeruar atë. Mund të përmirësoni algoritmin e robotit, si p.sh. çfarë të bëni nëse pengesa nuk është në njërën anë, por pikërisht përballë robotit. Gjithashtu nuk dëmton instalimi i një koduesi - një pajisje e thjeshtë që do t'ju ndihmojë të poziciononi me saktësi dhe të dini vendndodhjen e robotit tuaj në hapësirë. Për qartësi, është e mundur të instaloni një ekran me ngjyra ose pikturë njëngjyrëshe që mund të tregojë informacione të dobishme - nivelin e ngarkimit të baterisë, distancën nga një pengesë, informacione të ndryshme korrigjimi. Përmirësimi i sensorëve nuk do të dëmtojë as - instalimi i TSOP (këta janë marrës IR që perceptojnë një sinjal të vetëm një frekuence të caktuar) në vend të fototransistorëve konvencionalë. Përveç sensorëve infra të kuqe, ka edhe tejzanor, të cilët janë më të shtrenjtë, dhe gjithashtu jo pa të meta, por kohët e fundit po fitojnë popullaritet në mesin e ndërtuesve të robotëve. Në mënyrë që roboti t'i përgjigjet tingullit, do të ishte mirë të instaloni mikrofona me një përforcues. Por gjëja vërtet interesante, mendoj, është instalimi i kamerës dhe programimi i vizionit të makinës bazuar në të. Ekziston një grup bibliotekash speciale OpenCV me të cilat mund të programoni njohjen e fytyrës, lëvizjet në beacons me ngjyra dhe shumë gjëra të tjera interesante. E gjitha varet nga imagjinata dhe aftësitë tuaja.
Lista e komponentëve:
  • ATmega16 në paketën DIP-40>
  • L7805 në paketimin TO-220
  • L293D në paketim DIP-16 x2 copë.
  • rezistorë me fuqi 0,25 W me emërtime: 10 kOhm x1 copë, 220 Ohm x4 copë.
  • kondensatorët qeramikë: 0,1 uF, 1 uF, 22 pF
  • kondensatorë elektrolitikë: 1000 uF x 16 V, 220 uF x 16V x2 copë.
  • dioda 1N4001 ose 1N4004
  • Rezonator kuarci 16 MHz
  • Diodat IR: çdo në sasi prej dy pjesësh do të bëjë.
  • fototransistorë, gjithashtu çdo, por që reagojnë vetëm ndaj gjatësisë valore të rrezeve IR
Kodi i firmuerit:
/*****************************************************
Firmware për robotin

Lloji MK: ATmega16
Frekuenca e orës: 16.000000 MHz
Nëse frekuenca juaj e kuarcit është e ndryshme, atëherë kjo duhet të specifikohet në cilësimet e mjedisit:
Projekti -> Konfiguro -> Skeda "C Compiler".
*****************************************************/

#përfshi
#përfshi

Kryesor i zbrazët (i zbrazët)
{
//Konfiguro portat e hyrjes
// Nëpërmjet këtyre portave marrim sinjale nga sensorët
DDRB=0x00;
// Aktivizoni rezistorët tërheqës
PORTB=0xFF;

//Konfiguro portat për dalje
//Përmes këtyre portave ne kontrollojmë motorët
DDRC=0xFF;

//Kyshi kryesor i programit. Këtu lexojmë vlerat nga sensorët
//dhe kontrolloni motorët
ndërsa (1)
{
//Le të shkojmë përpara
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
nëse (!(PINB & (1< {
//Kthehu 1 sekondë
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
vonesa_ms (1000);
// Mbështjell
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
vonesa_ms (1000);
}
nëse (!(PINB & (1< {
//Kthehu 1 sekondë
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
vonesa_ms (1000);
// Mbështjell
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
vonesa_ms (1000);
}
};
}

Rreth robotit tim

Për momentin roboti im është pothuajse i përfunduar.


Ka një kamerë me valë, një sensor distancë (si kamera ashtu edhe ky sensor janë instaluar në një kullë rrotulluese), një sensor pengesash, një kodues, një marrës sinjali nga telekomanda dhe një ndërfaqe RS-232 për t'u lidhur me një kompjuter. Punon në dy mënyra: autonome dhe manuale (merr sinjale kontrolli nga telekomanda), kamera gjithashtu mund të ndizet/fiket nga distanca ose nga vetë roboti për të kursyer energjinë e baterisë. Po shkruaj firmware per mbrojtjen e baneses (transferim imazhi ne kompjuter, detektim levizjesh, devijimi i ambientit).

Unë po postoj një video sipas kërkesës.

UPD. I ngarkova sërish fotot dhe bëra korrigjime të vogla në tekst.

Tani ka shumë mundësi të shumta që ju lejojnë të filloni të krijoni robotë pa pasur ndonjë njohuri të tillë super-duper të veçantë. Dhe është e mrekullueshme! Sepse lëshon një ortek njohurish.

Dhe ju duhet të filloni jo me njohuri. Jo dija duhet të jetë një lokomotivë. Dija është bagazhi që udhëton në këtë tren. Çfarë është atëherë një lokomotivë me avull? Dhe një lokomotivë me avull është thjesht injorancë se si ta bëjmë atë në mënyrë që diçka të bëhet vetë. Ndërtimi i një roboti është vetëm përvetësimi i njohurive të tilla.

Për të mos u zhytur në shembuj, le të marrim vetëm një shembull. Shembulli më i parëndësishëm. Lëreni robotin të lëvizë nëpër dhomë pa goditur muret. Çfarë duhet të dini:

1. Cila do të jetë mekanika e lëvizjes. (Shumica e robotëve kanë mekanikë, por ka edhe robotë pa trup, si robotë të bursës.) Nëse nuk keni njohuri në këtë fushë, atëherë filloni menjëherë t'i blini ato. Cilat janë mekanizmat për të lëvizur, në një sipërfaqe të sheshtë, në të pabarabartë, në ecje, në rrota ... Nëse mund të bëni një mekanizëm të tillë, gjeni një të gatshëm. Çmontoni dhe rimontoni nëse është e mundur.

2. Si do të ndërveprojë roboti me botën e jashtme. Këtu do të ishte mirë të kishim njohuri në radio elektronikën dhe / ose teknologjinë e informacionit, në mënyrë që të kuptoni se si të lexoni sinjale tingulli, optike, mekanike, si të merrni informacion nga rrjeti (kjo e fundit është veçanërisht e rëndësishme për robotët pa trup). Njohuritë minimale tashmë do të përshtaten, ato që mungojnë duhet të fillojnë menjëherë të plotësohen. Për fat të mirë, ju mund të përdorni një numër të madh elementësh dhe sensorësh modularë që ndërlidhen me kontrollues të gatshëm që i kthejnë sinjalet e këtyre sensorëve në numra. (nëse jeni të interesuar, mund të diskutoni / shkëmbeni lidhje / adresa në komentet ku blihet e gjithë kjo)

3. (më e rëndësishmja) Si do të mendojë roboti. Është e nevojshme të përcaktohet se cili është aktiviteti i tij "mendor". Për shembullin e zgjedhur, kjo është vetëm aftësia për të ndezur dhe fikur N motorët elektrikë në kohën e duhur, në varësi të distancës së matur deri në murin përpara (të paktën). Për aktivitetin mendor, robotit i duhet një njësi e programueshme me një mikroprocesor. Ka shumë platforma të gatshme për ndërtimin e robotëve (Arduino, Matryoshka, Strawberry Pi, Iskra, Troyka, etj. Përsëri, ju ftoj të komentoni: shpërndani lidhjet, pyesni)

Menjëherë lind pyetja: a do të thotë se ju duhet të dini programim? Në mënyrë të rreptë po. Por midis platformave të listuara ka nga ato në të cilat programimi kryhet në një mjedis vizual pa përdorur ndonjë gjuhë programimi të veçantë. (d.m.th. vëmendje! Nuk është e nevojshme të dish programim për të filluar. Por sigurisht që duhet të dish për të vazhduar)

Këtu janë tre kockat kryesore mbi të cilat duhet të keni tendinat e njohurive dhe aftësive fillestare, të arritshme edhe për një fëmijë, dhe mbi të cilat të ndërtoni mishin e njohurive më të larta inxhinierike:

  • për të ndërtuar mekanizma nga një projektues - në të ardhmen, ky është i gjithë spektri i "shkencave mekanike": fizika (mekanika), pjesët e makinave dhe mekanizmave, forca e materialeve, hidraulika, etj.
  • di se si sigurohet ndërveprimi me botën e jashtme (edhe projektuesit e fëmijëve sot janë të pajisur me module sensori) - në të ardhmen, ky është programimi, protokollet e rrjetit, fizika (energjia elektrike, optika, akustika, radari, etj.)
  • të ketë një kuptim fillestar të programimit: variabla, algoritme - në të ardhmen, programim (gjuhë dhe paradigma të ndryshme programimi), algoritme dhe struktura të dhënash, baza të të dhënave. Zgjedhja e gjuhës së programimit nuk është thelbësore, zgjedhja është shumë e gjerë, nga mjediset vizuale për fëmijët, por asambleri i një mikroprocesori të veçantë. Ju mund të zgjidhni sipas njohurive tuaja

Dhe së fundi, për frymëzim, shikoni (dhe kjo nuk është reklamë, nuk kam lidhje me këtë prodhues (ndani shembuj të tjerë)) cilat janë mjetet e fëmijëve për krijimin e robotëve

Artikujt kryesorë të lidhur