Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • Uradi sam borbeni robot kod kuće. Napravite sami robota kod kuće? Lako

Uradi sam borbeni robot kod kuće. Napravite sami robota kod kuće? Lako

Kako stvoriti robota?



Kada je riječ o robotima, zamišljamo divovski stroj sa umjetna inteligencija, kao u filmovima o RoboCop-u itd. Međutim, robot ne mora biti velika i tehnički složena naprava. U ovom članku ćemo vam reći kako napraviti robota kod kuće. Nakon što ste izradili vlastitog mini-robota, uvjerit ćete se da za to nisu potrebna posebna znanja ili alati.

Materijali za rad

Dakle, stvaramo robota vlastitim rukama, pripremivši sljedeće materijale za izgradnju:

  • 2 mala komada žice.
  • 1 mala igračka motor 3 volta.
  • 1 AA baterija.
  • 2 kuglice.
  • 2 mala kvadratna komada polistirenske pjene različitih veličina.
  • Pištolj za ljepilo.
  • Materijal za noge (spajalice, glava četkice za zube itd.).

Upute za izradu robota

Sada prijeđimo na korak po korak opis kako stvoriti robota:

  1. Zalijepite veći komad stiropora na motor igračke sa strane s metalnim kontaktima na vrhu. To je neophodno za zaštitu kontakata od vlage.
  2. Zalijepite bateriju na komad polistirenske pjene.
  3. Zalijepite drugi komad polistirenske pjene na stražnji dio motora kako biste stvorili malu neravnotežu težine. Upravo zahvaljujući toj neravnoteži robot će se moći kretati. Neka se ljepilo osuši.
  4. Zalijepite noge na motor. Kako bi noge držale što čvršće, prvo ćete morati zalijepiti male komadiće polistirenske pjene na motor, a zatim na njih zalijepiti noge.
  5. Žica do motora može se zalijepiti ili zalemiti. Druga opcija je poželjnija - tako će robot trajati mnogo dulje. Oba komada žice moraju biti zalemljena na metalne kontakte na motoru što je čvršće moguće.
  6. Zatim ćete morati pričvrstiti bilo koji komad žice na jednu od strana baterije, na "plus" ili na "minus". Može se pričvrstiti na bateriju pomoću električne trake ili pištolja za ljepilo. Pričvršćivanje ljepilom je pouzdanije, ali morate biti što pažljiviji pri nanošenju, jer ako koristite previše ljepila, izgubit će se kontakt između žice i baterije.
  7. Zalijepite perle na bateriju kako biste simulirali oči.
  8. Spojite drugi komad žice na drugi kraj baterije za napajanje robota. U u ovom slučaju Bolje je koristiti električnu traku nego ljepilo. Na ovaj način možete jednostavno otvoriti kontakt i zaustaviti robota kada vam dosadi.

Takav će robot trajati točno onoliko koliko traje punjenje baterije. Kao što vidite, stvaranje robota kod kuće prilično je uzbudljiv proces u kojem nema ništa komplicirano. Naravno, kasnije možete pokušati stvoriti složenije, programabilne modele. Međutim, za njihovo stvaranje trebat će vam određeno znanje i Dodatni materijali, koji se prodaju u prodavaonici električne opreme. Istu igračku mini-robota možete jednostavno izraditi zajedno s djetetom u nekoliko minuta.

Danas ćemo vam reći kako napraviti robota od dostupnih materijala. Rezultirajući "high-tech android", iako će biti mala veličina i malo je vjerojatno da će vam moći pomoći u kućanskim poslovima, ali će sigurno zabaviti i djecu i odrasle.

Potrebni materijali

Da biste napravili robota vlastitim rukama, nije vam potrebno znanje nuklearne fizike. To se može učiniti kod kuće od običnih materijala koji su vam uvijek pri ruci. Dakle, što nam treba:
  • 2 komada žice
  • 1 motor
  • 1 AA baterija
  • 3 potisne igle
  • 2 komada pjenaste ploče ili sličnog materijala
  • 2-3 glave starih četkica za zube ili nekoliko spajalica

1. Pričvrstite bateriju na motor

Pomoću pištolja za ljepilo pričvrstite komad pjenastog kartona na kućište motora. Zatim na njega zalijepimo bateriju.

Ovaj se korak može činiti zbunjujućim. Međutim, da biste napravili robota, morate ga natjerati da se kreće. Na os motora stavimo mali duguljasti komad pjenastog kartona i pričvrstimo ga pištoljem za ljepilo. Ovaj dizajn će dovesti do neravnoteže motora, što će pokrenuti cijelog robota.

Na samom kraju destabilizatora kapnite nekoliko kapi ljepila ili pričvrstite neki ukrasni element - to će našoj kreaciji dodati individualnost i povećati amplitudu njegovih pokreta.

3. Noge

Sada trebate opremiti robota donjim udovima. Ako za to koristite glave četkica za zube, zalijepite ih na dno motora. Možete koristiti istu pjenastu ploču kao sloj.

Sljedeći korak je pričvrstiti naša dva komada žice na kontakte motora. Možete ih jednostavno pričvrstiti vijcima, ali bi bilo još bolje zalemiti ih, tako će robot biti izdržljiviji.

5. Spajanje baterije

Pomoću toplinskog pištolja zalijepite žicu na jedan kraj baterije. Možete odabrati bilo koju od dvije žice i bilo koju stranu baterije - polaritet u ovom slučaju nije bitan. Ako ste dobri u lemljenju, za ovaj korak možete koristiti i lemljenje umjesto ljepila.

6. Oči

Par kuglica, koje vrućim ljepilom pričvrstimo na jedan kraj baterije, sasvim su prikladne kao robotove oči. U ovom koraku možete pokazati svoju maštu i smisliti izgled oko po vlastitom nahođenju.

7. Pokreni

Sada oživimo naš domaći proizvod. Uzmite slobodni kraj žice i pričvrstite ga na slobodan terminal baterije pomoću ljepljive trake. Ne biste trebali koristiti vruće ljepilo za ovaj korak jer će vas spriječiti da isključite motor ako je potrebno.

Napravite robota jako jednostavno Hajde da shvatimo što je potrebno stvoriti robota kod kuće, kako bi razumjeli osnove robotike.

Sigurno ste nakon dovoljno filmova o robotima često poželjeli izgraditi vlastitog suborca ​​u borbi, ali niste znali odakle početi. Naravno, nećete moći izgraditi dvonožnog Terminatora, ali to nije ono što pokušavamo postići. Prikupiti jednostavan robot svatko tko zna kako pravilno držati lemilo u rukama može to učiniti i to ne zahtijeva duboko znanje, iako neće škoditi. Amaterska robotika nije puno drugačija od dizajna sklopova, samo je mnogo zanimljivija, jer također uključuje područja kao što su mehanika i programiranje. Sve komponente su lako dostupne i nisu toliko skupe. Dakle, napredak ne miruje i mi ćemo ga iskoristiti u svoju korist.

Uvod

Tako. Što je robot? U većini slučajeva ovo automatski uređaj, koji reagira na bilo kakve akcije okoliš. Roboti mogu biti kontrolirani od strane ljudi ili mogu izvoditi unaprijed programirane radnje. Obično je robot opremljen različitim senzorima (udaljenost, kut rotacije, ubrzanje), video kamerama i manipulatorima. Elektronički dio Robot se sastoji od mikrokontrolera (MC) - mikrosklopa koji sadrži procesor, generator takta, razne periferije, RAM i trajnu memoriju. Postoji svijet veliki iznos niz mikrokontrolera za različite primjene i na njihovoj osnovi možete sastaviti moćne robote. Naširoko se koriste za amaterske zgrade. AVR mikrokontroleri. Oni su daleko najpristupačniji i na Internetu možete pronaći mnogo primjera temeljenih na tim MK. Za rad s mikrokontrolerima morate znati programirati u asembleru ili C-u i imati osnovno znanje u digitalnoj i analognoj elektronici. U našem projektu koristit ćemo C. Programiranje za MK ne razlikuje se mnogo od programiranja na računalu, sintaksa jezika je ista, većina funkcija se praktički ne razlikuje, a nove su prilično jednostavne za naučiti i prikladne za korištenje.

Što trebamo

Za početak, naš će robot moći jednostavno izbjegavati prepreke, odnosno ponavljati uobičajeno ponašanje većine životinja u prirodi. Sve što nam je potrebno za izradu takvog robota može se naći u radio trgovinama. Odlučimo kako će se naš robot kretati. Najuspješnijim gusjenicama smatram one koje se koriste u tenkovima, ovih je najviše prikladno rješenje, jer gusjenice imaju veću upravljivost od kotača automobila i prikladnije ih je kontrolirati (za okretanje, dovoljno je rotirati gusjenice u različite strane). Stoga će vam trebati bilo koji tenk igračka čije se gusjenice okreću neovisno jedna o drugoj, može se kupiti u bilo kojoj trgovini igračaka za razumna cijena. Od ovog tenka vam treba samo platforma s gusjenicama i motori s mjenjačem, ostalo možete sigurno odvrnuti i baciti. Trebamo i mikrokontroler, moj izbor je pao na ATmega16 - ima dovoljno priključaka za povezivanje senzora i periferije i općenito je prilično zgodan. Također ćete morati kupiti neke radio komponente, lemilo i multimetar.

Izrada ploče s MK

U našem slučaju, mikrokontroler će obavljati funkcije mozga, ali nećemo početi s njim, već s napajanjem mozga robota. Pravilna prehrana- jamstvo zdravlja, pa ćemo započeti s time kako pravilno hraniti našeg robota, jer tu obično griješe roboti početnici. A kako bi naš robot normalno radio, moramo koristiti stabilizator napona. Više volim L7805 čip - dizajniran je za proizvodnju stabilnog izlaznog napona od 5 V, što je potrebno našem mikrokontroleru. Ali s obzirom na činjenicu da je pad napona na ovom mikrokrugu oko 2,5 V, mora mu se napajati najmanje 7,5 V. Koristi se zajedno s ovim stabilizatorom elektrolitski kondenzatori da bi se izgladili valovi napona, dioda mora biti uključena u krug za zaštitu od promjene polariteta.

Sada možemo prijeći na naš mikrokontroler. Kućište MK je DIP (prikladnije je za lemljenje) i ima četrdeset pinova. Na brodu se nalazi ADC, PWM, USART i još mnogo toga što za sada nećemo koristiti. Pogledajmo nekoliko važnih čvorova. Pin RESET (9. krak MK) povučen je otpornikom R1 na "plus" izvora napajanja - to se mora učiniti! U suprotnom, vaš MK može se nenamjerno resetirati ili, jednostavnije rečeno, kvar. Također poželjna mjera, ali ne i obvezna, je spajanje RESET-a preko keramički kondenzator C1 na masu. Na dijagramu možete vidjeti i elektrolit od 1000 uF; on vas spašava od padova napona kada motori rade, što će također imati blagotvoran učinak na rad mikrokontrolera. Kvarcni rezonator X1 i kondenzatori C2, C3 trebaju biti smješteni što je moguće bliže pinovima XTAL1 i XTAL2.

Neću govoriti o tome kako bljeskati MK, jer o tome možete pročitati na Internetu. Program ćemo napisati u C-u, za programsko okruženje odabrao sam CodeVisionAVR. Ovo je okruženje koje je prilično jednostavno i korisno je za početnike jer ima ugrađen čarobnjak za stvaranje koda.

Kontrola motora

Ne manje važna komponenta Naš robot ima pokretač motora koji nam olakšava upravljanje njime. Nikada i ni pod kojim uvjetima motori se ne smiju spajati izravno na MK! Uopće snažna opterećenja Ne možete njime upravljati izravno s mikrokontrolera, inače će pregorjeti. Koristite ključne tranzistore. Za naš slučaj postoji poseban čip - L293D. U takvim jednostavnim projektima uvijek pokušajte koristiti ovaj čip s indeksom "D", jer ima ugrađene diode za zaštitu od preopterećenja. Ovaj mikro krug je vrlo jednostavan za upravljanje i lako ga je nabaviti u radio trgovinama. Dostupan je u dva paketa: DIP i SOIC. U paketu ćemo koristiti DIP zbog jednostavnosti montaže na ploču. L293D ima zasebno napajanje za motore i logiku. Stoga ćemo sam mikro krug napajati iz stabilizatora (VSS ulaz), a motore izravno iz baterija (VS ulaz). L293D može izdržati opterećenje od 600 mA po kanalu, a ima dva takva kanala, odnosno na jedan čip se mogu spojiti dva motora. Ali da budemo sigurni, spojit ćemo kanale i tada će nam trebati po jedna micra za svaki motor. Iz toga slijedi da će L293D moći izdržati 1,2 A. Da biste to postigli, trebate kombinirati micra noge, kao što je prikazano na dijagramu. Mikrokrug radi na sljedeći način: kada se logička "0" primijeni na IN1 i IN2, a logička jedinica se primijeni na IN3 i IN4, motor se okreće u jednom smjeru, a ako su signali obrnuti - primjenjuje se logička nula, tada će se motor početi okretati u drugom smjeru. Pinovi EN1 i EN2 odgovorni su za uključivanje svakog kanala. Spojimo ih i spojimo na "plus" napajanja iz stabilizatora. Budući da se mikro krug zagrijava tijekom rada, a instaliranje radijatora na ovu vrstu kućišta je problematično, uklanjanje topline osiguravaju GND noge - bolje ih je lemiti na široku kontaktna pločica. To je sve što trebate znati o pokretačima motora za prvi put.

Senzori prepreka

Kako bi naš robot mogao navigirati i ne zaletiti se u sve, instalirat ćemo dva infracrveni senzor. Najviše najjednostavniji senzor sastoji se od IR diode koja emitira u infracrvenom spektru i fototranzistora koji će primiti signal od IR diode. Princip je sljedeći: kada nema prepreka ispred senzora, IR zrake ne pogađaju fototranzistor i on se ne otvara. Ako postoji prepreka ispred senzora, tada se zrake odbijaju od njega i udaraju u tranzistor - otvara se i struja počinje teći. Nedostatak takvih senzora je što mogu različito reagirati na različite površine i nisu zaštićeni od smetnji - senzor se može slučajno aktivirati vanjskim signalima s drugih uređaja. Modulacija signala može vas zaštititi od smetnji, ali time se za sada nećemo zamarati. Za početak, to je dovoljno.


Robot firmware

Da biste oživjeli robota, morate za njega napisati firmware, odnosno program koji bi očitavao senzore i upravljao motorima. Moj program je najjednostavniji, ne sadrži složene strukture i bit će razumljiv svima. Sljedeća dva retka spajaju datoteke zaglavlja za naš mikrokontroler i naredbu za generiranje kašnjenja:

#uključi
#uključi

Sljedeći redovi su uvjetni jer PORTC vrijednosti ovise o tome kako ste povezali upravljački program motora s mikrokontrolerom:

PORTC.0 = 1; PORTC.1 = 0; PORTC.2 = 1; PORTC.3 = 0; Vrijednost 0xFF znači da će izlaz biti log. "1", a 0x00 je dnevnik. "0". Sljedećom konstrukcijom provjeravamo postoji li prepreka ispred robota i s koje je strane: if (!(PINB & (1<

Ako svjetlost IR diode pogodi fototranzistor, tada se na nozi mikrokontrolera instalira log. "0" i robot se počinje kretati unatrag kako bi se udaljio od prepreke, zatim se okreće kako se ponovno ne bi sudario s preprekom i zatim se ponovno kreće naprijed. Budući da imamo dva senzora, prisutnost prepreke provjeravamo dvaput - s desne i s lijeve strane, te tako možemo saznati s koje se strane nalazi prepreka. Naredba "delay_ms(1000)" označava da će proći jedna sekunda prije nego što se sljedeća naredba počne izvršavati.

Zaključak

Pokrio sam većinu aspekata koji će vam pomoći da napravite svog prvog robota. Ali robotika tu ne završava. Ako sastavite ovog robota, imat ćete puno mogućnosti da ga proširite. Možete poboljšati algoritam robota, na primjer što učiniti ako prepreka nije s neke strane, već točno ispred robota. Također ne bi škodilo da instalirate enkoder - jednostavan uređaj koji će vam pomoći da točno pozicionirate i znate lokaciju vašeg robota u prostoru. Radi jasnoće, moguće je instalirati zaslon u boji ili jednobojni zaslon koji može prikazati korisne informacije - razinu napunjenosti baterije, udaljenost od prepreka, razne informacije o otklanjanju pogrešaka. Ne bi škodilo poboljšati senzore - instalirati TSOP (ovo su IR prijemnici koji percipiraju signal samo određene frekvencije) umjesto uobičajenih fototranzistora. Osim infracrvenih senzora, postoje ultrazvučni senzori, koji su skuplji i također imaju svoje nedostatke, ali u zadnje vrijeme postaju sve popularniji među graditeljima robota. Kako bi robot reagirao na zvuk, bilo bi dobro ugraditi mikrofone s pojačalom. Ali ono što mislim da je stvarno zanimljivo je instaliranje kamere i programiranje strojnog vida na temelju toga. Postoji skup posebnih OpenCV biblioteka s kojima možete programirati prepoznavanje lica, kretanje prema svjetionicima u boji i mnoge druge zanimljive stvari. Sve ovisi samo o vašoj mašti i vještinama.

Popis komponenti:

    ATmega16 u paketu DIP-40>

    L7805 u TO-220 pakiranju

    L293D u DIP-16 kućištu x2 kom.

    otpornici snage 0,25 W s nazivnim vrijednostima: 10 kOhm x 1 kom., 220 Ohm x 4 kom.

    keramički kondenzatori: 0,1 µF, 1 µF, 22 pF

    elektrolitski kondenzatori: 1000 µF x 16 V, 220 µF x 16 V x 2 kom.

    dioda 1N4001 ili 1N4004

    Kvarcni rezonator od 16 MHz

    IR diode: bilo koje dvije od njih su dovoljne.

    fototranzistori, također bilo koji, ali reagiraju samo na valnu duljinu infracrvenih zraka

Šifra firmvera:

/************************************************ * *** Firmware za tip robota MK: ATmega16 Frekvencija takta: 16.000000 MHz Ako je vaša frekvencija kvarca drugačija, to mora biti navedeno u postavkama okruženja: Projekt -> Konfiguracija -> Kartica "C kompajler" ****** ***********************************************/ #uključi #uključi void main(void) ( //Konfigurirajte ulazne portove //Kroz ove portove primamo signale sa senzora DDRB=0x00; //Uključite pull-up otpornike PORTB=0xFF; //Konfigurirajte izlazne portove //Kroz ove portove kontroliramo DDRC motore =0xFF; //Glavna petlja programa. Ovdje čitamo vrijednosti ​​​​iz senzora //i kontroliramo motore dok (1) ( //Pomakni se naprijed PORTC.0 = 1; PORTC. 1 = 0; PORTC.2 = 1; PORTC.3 = 0; if (!(PINB & (1<O mom robotu

Trenutačno je moj robot gotovo gotov.


Opremljen je bežičnom kamerom, senzorom udaljenosti (i kamera i ovaj senzor ugrađeni su na rotirajući toranj), senzorom prepreka, enkoderom, prijemnikom signala s daljinskog upravljača i RS-232 sučeljem za spajanje na Računalo. Radi u dva načina: autonomno i ručno (prima upravljačke signale s daljinskog upravljača), a kameru je moguće uključiti/isključiti i daljinski ili pomoću samog robota radi uštede baterije. Pišem firmware za sigurnost stana (prijenos slika na računalo, detekcija pokreta, hodanje po prostorima).

Sigurno ste nakon dovoljno filmova o robotima često poželjeli izgraditi vlastitog suborca ​​u borbi, ali niste znali odakle početi. Naravno, nećete moći izgraditi dvonožnog Terminatora, ali to nije ono što pokušavamo postići. Svatko tko zna kako pravilno držati lemilo u rukama može sastaviti jednostavnog robota i to ne zahtijeva duboko znanje, iako neće škoditi. Amaterska robotika nije puno drugačija od dizajna sklopova, samo je mnogo zanimljivija, jer također uključuje područja kao što su mehanika i programiranje. Sve komponente su lako dostupne i nisu toliko skupe. Dakle, napredak ne miruje i mi ćemo ga iskoristiti u svoju korist.

Uvod

Tako. Što je robot? U većini slučajeva, ovo je automatski uređaj koji reagira na bilo kakve radnje okoline. Roboti mogu biti kontrolirani od strane ljudi ili mogu izvoditi unaprijed programirane radnje. Obično je robot opremljen različitim senzorima (udaljenost, kut rotacije, ubrzanje), video kamerama i manipulatorima. Elektronički dio robota sastoji se od mikrokontrolera (MC) – mikrosklopa koji sadrži procesor, generator takta, razne periferije, RAM i trajnu memoriju. U svijetu postoji ogroman broj različitih mikrokontrolera za različite primjene, a na njihovoj osnovi možete sastaviti moćne robote. AVR mikrokontroleri naširoko se koriste za amaterske zgrade. Oni su daleko najpristupačniji i na Internetu možete pronaći mnogo primjera temeljenih na tim MK. Za rad s mikrokontrolerima morate znati programirati u asembleru ili C-u te imati osnovno znanje o digitalnoj i analognoj elektronici. U našem projektu koristit ćemo C. Programiranje za MK ne razlikuje se mnogo od programiranja na računalu, sintaksa jezika je ista, većina funkcija se praktički ne razlikuje, a nove su prilično jednostavne za naučiti i prikladne za korištenje.

Što trebamo

Za početak, naš će robot moći jednostavno izbjegavati prepreke, odnosno ponavljati uobičajeno ponašanje većine životinja u prirodi. Sve što nam je potrebno za izradu takvog robota može se naći u radio trgovinama. Odlučimo kako će se naš robot kretati. Mislim da su najuspješnije gusjenice koje se koriste u tenkovima; ovo je najprikladnije rješenje, jer gusjenice imaju veću manevarsku sposobnost od kotača vozila i praktičnije ih je kontrolirati (za okretanje dovoljno je rotirati gusjenice u različitim smjerovima). Stoga će vam trebati bilo koji tenk igračka čije se gusjenice okreću neovisno jedna o drugoj, možete je kupiti u bilo kojoj trgovini igračaka po razumnoj cijeni. Od ovog tenka vam treba samo platforma s gusjenicama i motori s mjenjačem, ostalo možete sigurno odvrnuti i baciti. Trebamo i mikrokontroler, moj izbor je pao na ATmega16 - ima dovoljno priključaka za povezivanje senzora i periferije i općenito je prilično zgodan. Također ćete morati kupiti neke radio komponente, lemilo i multimetar.

Izrada ploče s MK



Dijagram robota

U našem slučaju, mikrokontroler će obavljati funkcije mozga, ali nećemo početi s njim, već s napajanjem mozga robota. Pravilna prehrana je ključ zdravlja, pa ćemo krenuti od toga kako pravilno hraniti našeg robota, jer tu obično griješe robotograditelji početnici. A kako bi naš robot normalno radio, moramo koristiti stabilizator napona. Više volim L7805 čip - dizajniran je za proizvodnju stabilnog izlaznog napona od 5 V, što je potrebno našem mikrokontroleru. Ali s obzirom na činjenicu da je pad napona na ovom mikrokrugu oko 2,5 V, mora mu se napajati najmanje 7,5 V. Zajedno s ovim stabilizatorom, elektrolitski kondenzatori se koriste za izglađivanje valova napona, a dioda je nužno uključena u krug za zaštitu od preokreta polariteta.
Sada možemo prijeći na naš mikrokontroler. Kućište MK je DIP (prikladnije je za lemljenje) i ima četrdeset pinova. Na brodu se nalazi ADC, PWM, USART i još mnogo toga što za sada nećemo koristiti. Pogledajmo nekoliko važnih čvorova. Pin RESET (9. krak MK) povučen je otpornikom R1 na "plus" izvora napajanja - to se mora učiniti! U suprotnom, vaš MK može se nenamjerno resetirati ili, jednostavnije rečeno, kvar. Još jedna poželjna mjera, ali ne i obavezna, je spajanje RESET-a preko keramičkog kondenzatora C1 na masu. Na dijagramu možete vidjeti i elektrolit od 1000 uF; on vas spašava od padova napona kada motori rade, što će također imati blagotvoran učinak na rad mikrokontrolera. Kvarcni rezonator X1 i kondenzatori C2, C3 trebaju biti smješteni što je moguće bliže pinovima XTAL1 i XTAL2.
Neću govoriti o tome kako bljeskati MK, jer o tome možete pročitati na Internetu. Program ćemo napisati u C-u, za programsko okruženje odabrao sam CodeVisionAVR. Ovo je okruženje koje je prilično jednostavno i korisno je za početnike jer ima ugrađen čarobnjak za stvaranje koda.


Moja robotska ploča

Kontrola motora

Jednako važna komponenta našeg robota je pokretač motora koji nam olakšava upravljanje njime. Nikada i ni pod kojim uvjetima motori se ne smiju spajati izravno na MK! Općenito, snažna opterećenja ne mogu se kontrolirati izravno iz mikrokontrolera, inače će izgorjeti. Koristite ključne tranzistore. Za naš slučaj postoji poseban čip - L293D. U takvim jednostavnim projektima uvijek pokušajte koristiti ovaj čip s indeksom "D", jer ima ugrađene diode za zaštitu od preopterećenja. Ovaj mikro krug je vrlo jednostavan za upravljanje i lako ga je nabaviti u radio trgovinama. Dostupan je u dva paketa: DIP i SOIC. U paketu ćemo koristiti DIP zbog jednostavnosti montaže na ploču. L293D ima zasebno napajanje za motore i logiku. Stoga ćemo sam mikro krug napajati iz stabilizatora (VSS ulaz), a motore izravno iz baterija (VS ulaz). L293D može izdržati opterećenje od 600 mA po kanalu, a ima dva takva kanala, odnosno na jedan čip se mogu spojiti dva motora. Ali da budemo sigurni, spojit ćemo kanale i tada će nam trebati po jedna micra za svaki motor. Iz toga slijedi da će L293D moći izdržati 1,2 A. Da biste to postigli, trebate kombinirati micra noge, kao što je prikazano na dijagramu. Mikrokrug radi na sljedeći način: kada se logička "0" primijeni na IN1 i IN2, a logička jedinica na IN3 i IN4, motor se okreće u jednom smjeru, a ako se signali obrnu i primijeni logička nula, tada će se motor početi okretati u drugom smjeru. Pinovi EN1 i EN2 odgovorni su za uključivanje svakog kanala. Spojimo ih i spojimo na "plus" napajanja iz stabilizatora. Budući da se mikro krug zagrijava tijekom rada, a postavljanje radijatora na ovu vrstu kućišta je problematično, uklanjanje topline osiguravaju GND noge - bolje ih je lemiti na široku kontaktnu pločicu. To je sve što trebate znati o pokretačima motora za prvi put.

Senzori prepreka

Kako bi naš robot mogao navigirati i ne zabijati se u sve, ugradit ćemo mu dva infracrvena senzora. Najjednostavniji senzor sastoji se od IR diode koja emitira u infracrvenom spektru i fototranzistora koji će primiti signal od IC diode. Princip je sljedeći: kada nema prepreka ispred senzora, IR zrake ne pogađaju fototranzistor i on se ne otvara. Ako postoji prepreka ispred senzora, tada se zrake odbijaju od njega i udaraju u tranzistor - otvara se i struja počinje teći. Nedostatak takvih senzora je što mogu različito reagirati na različite površine i nisu zaštićeni od smetnji - senzor se može slučajno aktivirati vanjskim signalima s drugih uređaja. Modulacija signala može vas zaštititi od smetnji, ali time se za sada nećemo zamarati. Za početak, to je dovoljno.


Prva verzija senzora mog robota

Robot firmware

Da biste oživjeli robota, morate za njega napisati firmware, odnosno program koji bi očitavao senzore i upravljao motorima. Moj program je najjednostavniji, ne sadrži složene strukture i bit će razumljiv svima. Sljedeća dva retka uključuju datoteke zaglavlja za naš mikrokontroler i naredbe za generiranje kašnjenja:

#uključi
#uključi

Sljedeći redovi su uvjetni jer PORTC vrijednosti ovise o tome kako ste povezali upravljački program motora s mikrokontrolerom:

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

Vrijednost 0xFF znači da će izlaz biti log. “1”, a 0x00 je dnevnik. "0".

Sljedećom konstrukcijom provjeravamo postoji li prepreka ispred robota i s koje je strane:

Ako (!(PINB & (1< {
...
}

Ako svjetlost IR diode pogodi fototranzistor, tada se na nozi mikrokontrolera instalira log. "0" i robot se počinje kretati unatrag kako bi se udaljio od prepreke, zatim se okreće kako se ponovno ne bi sudario s preprekom i zatim se ponovno kreće naprijed. Budući da imamo dva senzora, prisutnost prepreke provjeravamo dva puta – s desne i s lijeve strane, te tako možemo saznati s koje je strane prepreka. Naredba "delay_ms(1000)" označava da će proći jedna sekunda prije nego što se sljedeća naredba počne izvršavati.

Zaključak

Pokrio sam većinu aspekata koji će vam pomoći da napravite svog prvog robota. Ali robotika tu ne završava. Ako sastavite ovog robota, imat ćete puno mogućnosti da ga proširite. Možete poboljšati algoritam robota, na primjer što učiniti ako prepreka nije s neke strane, već točno ispred robota. Također ne bi škodilo da instalirate enkoder - jednostavan uređaj koji će vam pomoći da točno pozicionirate i znate lokaciju vašeg robota u prostoru. Radi jasnoće, moguće je instalirati zaslon u boji ili jednobojni zaslon koji može prikazati korisne informacije - razinu napunjenosti baterije, udaljenost od prepreka, razne informacije o otklanjanju pogrešaka. Ne bi škodilo poboljšati senzore - instalirati TSOP (ovo su IR prijemnici koji percipiraju signal samo određene frekvencije) umjesto uobičajenih fototranzistora. Osim infracrvenih senzora, postoje ultrazvučni senzori, koji su skuplji i također imaju svoje nedostatke, ali u zadnje vrijeme postaju sve popularniji među graditeljima robota. Kako bi robot reagirao na zvuk, bilo bi dobro ugraditi mikrofone s pojačalom. Ali ono što mislim da je stvarno zanimljivo je instaliranje kamere i programiranje strojnog vida na temelju toga. Postoji skup posebnih OpenCV biblioteka s kojima možete programirati prepoznavanje lica, kretanje prema svjetionicima u boji i mnoge druge zanimljive stvari. Sve ovisi samo o vašoj mašti i vještinama.
Popis komponenti:
  • ATmega16 u paketu DIP-40>
  • L7805 u TO-220 pakiranju
  • L293D u DIP-16 kućištu x2 kom.
  • otpornici snage 0,25 W s nazivnim vrijednostima: 10 kOhm x 1 kom., 220 Ohm x 4 kom.
  • keramički kondenzatori: 0,1 µF, 1 µF, 22 pF
  • elektrolitski kondenzatori: 1000 µF x 16 V, 220 µF x 16 V x 2 kom.
  • dioda 1N4001 ili 1N4004
  • Kvarcni rezonator od 16 MHz
  • IR diode: bilo koje dvije od njih su dovoljne.
  • fototranzistori, također bilo koji, ali reagiraju samo na valnu duljinu infracrvenih zraka
Šifra firmvera:
/*****************************************************
Firmware za robota

Tip MK: ATmega16
Radni takt: 16.000000 MHz
Ako je vaša frekvencija kvarca drugačija, morate to navesti u postavkama okruženja:
Projekt -> Konfiguracija -> kartica "C kompajler".
*****************************************************/

#uključi
#uključi

Void main(void)
{
//Konfigurirajte ulazne portove
//Kroz ove priključke primamo signale od senzora
DDRB=0x00;
//Uključite pull-up otpornike
PORTB=0xFF;

//Konfigurirajte izlazne portove
//Kroz ove priključke upravljamo motorima
DDRC=0xFF;

//Glavna petlja programa. Ovdje čitamo vrijednosti sa senzora
//i kontrolirati motore
dok (1)
{
//Idemo naprijed
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (!(PINB & (1< {
//Idite unatrag 1 sekundu
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
kašnjenje_ms(1000);
//Zamotaj ga
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
kašnjenje_ms(1000);
}
if (!(PINB & (1< {
//Idite unatrag 1 sekundu
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
kašnjenje_ms(1000);
//Zamotaj ga
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
kašnjenje_ms(1000);
}
};
}

O mom robotu

Trenutačno je moj robot gotovo gotov.


Opremljen je bežičnom kamerom, senzorom udaljenosti (i kamera i ovaj senzor ugrađeni su na rotirajući toranj), senzorom prepreka, enkoderom, prijemnikom signala s daljinskog upravljača i RS-232 sučeljem za spajanje na Računalo. Radi u dva načina: autonomno i ručno (prima upravljačke signale s daljinskog upravljača), a kameru je moguće uključiti/isključiti i daljinski ili pomoću samog robota radi uštede baterije. Pišem firmware za sigurnost stana (prijenos slika na računalo, detekcija pokreta, hodanje po prostorima).

Po vašoj želji objavljujem video:

UPD. Ponovo sam postavio fotografije i napravio neke manje ispravke u tekstu.

Sada postoji mnogo mogućnosti koje vam omogućuju da počnete stvarati robote bez ikakvog super-duper posebnog znanja. I super je! Jer pokreće lavinu znanja.

I ne morate početi sa znanjem. Znanje ne bi trebalo biti lokomotiva. Znanje je prtljaga koja putuje ovim vlakom. Što je onda lokomotiva? A lokomotiva je upravo neznanje kako to učiniti da se nešto dogodi samo od sebe. Izrada robota je upravo stjecanje takvog znanja.

Da ne bismo zaglibili u primjerima, uzmimo samo jedan primjer. Najtrivijalniji primjer. Neka se robot kreće po sobi bez udaranja o zidove. Što trebaš znati:

1. Kakva će biti mehanika kretanja. (Većina robota ima mehaniku, ali postoje i bestjelesni roboti, npr. burzovni roboti.) Ako nemate znanja iz ovog područja, odmah ih krenite stjecati. Kakvi mehanizmi postoje za kretanje, po ravnom, po neravnom, hodanje, na kotačima... Ako ne možete napraviti takav mehanizam, nađite gotov. Rastavite ga i ponovno sastavite ako je moguće.

2. Kako će robot komunicirati s vanjskim svijetom. Ovdje bi bilo dobro imati znanja iz radioelektronike i/ili informacijske tehnologije kako bi razumjeli kako čitati audio, optičke, mehaničke signale, kako primati informacije iz mreže (potonje je posebno važno za bestjelesne robote). Minimalno znanje je već dovoljno, znanje koje nedostaje potrebno je odmah nadopuniti. Srećom, možete koristiti ogroman broj modularnih elemenata i senzora povezanih s gotovim kontrolerima koji signale tih senzora jednostavno pretvaraju u brojeve. (ukoliko ste zainteresirani, možete razgovarati/razmijeniti linkove/adrese u komentarima gdje se sve to kupuje)

3. (najvažnije) Kako će robot razmišljati. Potrebno je odlučiti od čega se sastoji njegova "mentalna" aktivnost. Za odabrani primjer, to je samo mogućnost uključivanja i isključivanja N elektromotora u pravo vrijeme ovisno o izmjerenoj udaljenosti do zida ispred (najmanje). Za mentalnu aktivnost robotu je potrebna programabilna jedinica s mikroprocesorom. Postoje mnoge gotove platforme za konstruiranje robota (Arduino, Matryoshka, Strawberry Pi, Iskra, Troyka itd. Opet vas pozivam da komentirate: dijelite linkove, pitajte)

Odmah se postavlja pitanje: znači li to da morate znati programirati? Strogo govoreći da. No, među navedenim platformama postoje i one kod kojih se programiranje provodi u vizualnom okruženju bez korištenja određenog programskog jezika. (Odnosno, pažnja! Ne morate znati programirati da biste započeli. Ali naravno morate znati da biste nastavili)

Ovdje su tri glavne kosti na kojima treba imati žile početnog znanja i vještina, dostupnih čak i djetetu, a na kojima se zatim gradi meso višeg inženjerskog znanja:

  • graditi mehanizme od konstrukcionog seta - u budućnosti je to cijeli niz "strojarskih znanosti": fizika (mehanika), dijelovi strojeva i mehanizmi, čvrstoća materijala, hidraulika itd.
  • znati kako se osigurava interakcija s vanjskim svijetom (čak su i dječji konstrukcioni setovi danas opremljeni senzorskim modulima) – u budućnosti će to uključivati ​​programiranje, mrežne protokole, fiziku (elektrika, optika, akustika, radar itd.)
  • imati osnovno razumijevanje programiranja: varijable, algoritmi - u budućnosti programiranje (različiti jezici i programske paradigme), algoritmi i strukture podataka, baze podataka. Izbor programskog jezika nije bitan, izbor je vrlo širok, od vizualnih okruženja za djecu, ali do asemblerskog jezika određenog mikroprocesora. Možete birati prema svom postojećem znanju.

Pa, i na kraju, za inspiraciju, pogledajte (a ovo nije reklama, nemam nikakve veze s ovim proizvođačem (podijelite druge primjere)) koji su dječji alati za stvaranje robota

Najbolji članci na temu