Naminis robotas. Mažas naminis robotas. Ką galima išugdyti naudojant šį rinkinį

Padaryk robotą labai paprasta Pažiūrėkime, ko reikia sukurti robotą namuose, kad suprastų robotikos pagrindus.

Tikrai, žiūrėdamas filmus apie robotus, ne kartą norėjote sukurti savo ginklo draugą, bet nežinojote, nuo ko pradėti. Žinoma, dvikojų terminatoriaus nepastatysi, bet mes ir to nesiekiame. Surinkti paprastas robotas visi, kas moka taisyklingai laikyti lituoklį rankose, gali tai padaryti ir tam nereikia gilių žinių, nors jie ir netrukdys. Mėgėjiška robotika nedaug kuo skiriasi nuo schemų, tik daug įdomesnė, nes čia taip pat nukenčia tokios sritys kaip mechanika, programavimas. Visi komponentai yra lengvai prieinami ir nėra tokie brangūs. Taigi pažanga nestovi vietoje ir mes ją išnaudosime savo naudai.

Įvadas

Taigi. Kas yra robotas? Daugeliu atvejų tai automatinis įrenginys, kuris reaguoja į bet kokius veiksmus aplinką. Robotus gali valdyti žmonės arba atlikti iš anksto užprogramuotus veiksmus. Paprastai robotas aprūpintas įvairiais jutikliais (atstumo, sukimosi kampo, pagreičio), vaizdo kameromis, manipuliatoriais. Elektroninė roboto dalis susideda iš mikrovaldiklio (MC) – mikroschemos, kurioje yra procesorius, laikrodžio generatorius, įvairūs periferiniai įrenginiai, laisvoji prieiga ir nuolatinė atmintis. Yra pasaulyje puiki sumaįvairūs mikrovaldikliai skirtingos sritys programas ir jų pagrindu galite surinkti galingus robotus. Dėl mėgėjiški pastatai AVR mikrovaldikliai yra plačiai naudojami. Šiandien jie yra labiausiai prieinami, o internete galite rasti daug pavyzdžių, pagrįstų šiais MK. Norėdami dirbti su mikrovaldikliais, turite mokėti programuoti surinkimo arba C ir turėti skaitmeninės bei analoginės elektronikos bazines žinias. Savo projekte naudosime C. MK programavimas mažai kuo skiriasi nuo programavimo kompiuteriu, kalbos sintaksė ta pati, dauguma funkcijų praktiškai nesiskiria, o naujosios gana lengvai išmokstamos ir patogios naudoti.

Ko mums reikia

Pirmiausia mūsų robotas galės tiesiog apeiti kliūtis, tai yra pakartoti įprastą daugumos gyvūnų elgesį gamtoje. Viską, ko mums reikia norint sukurti tokį robotą, galite rasti radijo parduotuvėse. Mes nuspręsime, kaip judės mūsų robotas. Sėkmingiausi, manau, yra vikšrai, kurie naudojami tankuose, tai patogiausias sprendimas, nes vikšrai turi didesnį pravažumą nei transporto priemonės ratai ir yra patogiau valdomi (sukti, tai pakanka pasukti takelius skirtingomis kryptimis). Todėl jums prireiks bet kokios žaislų talpyklos su nepriklausomai viena nuo kitos besisukančiomis vikšrėmis, kurią galite įsigyti bet kurioje žaislų parduotuvėje už priimtiną kainą. Iš šio bako jums reikia tik platformos su vikšrais ir varikliais su pavarų dėžėmis, likusią dalį galite saugiai atsukti ir išmesti. Mums taip pat reikia mikrovaldiklio, mano pasirinkimas krito ant ATmega16 - jis turi pakankamai prievadų jutikliams ir periferiniams įrenginiams prijungti, ir apskritai jis yra gana patogus. Taip pat reikia nusipirkti kai kuriuos radijo komponentus, lituoklį, multimetrą.

Lentos gamyba su MK

Mūsų atveju mikrovaldiklis atliks smegenų funkcijas, bet pradėsime ne nuo jo, o nuo roboto smegenų maitinimo. Tinkama mityba yra sveikatos garantija, todėl pradėsime nuo to, kaip tinkamai maitinti savo robotą, nes pradedantieji robotų kūrėjai dažniausiai dėl to daro klaidų. O kad mūsų robotas normaliai veiktų, reikia naudoti įtampos stabilizatorių. Man labiau patinka L7805 mikroschema - ji skirta užtikrinti stabilią 5 V įtampą išėjime, ko reikia mūsų mikrovaldikliui. Bet dėl ​​to, kad šios mikroschemos įtampos kritimas yra apie 2,5 V, į jį turi būti tiekiama bent 7,5 V. Kartu su šiuo stabilizatoriumi naudojami elektrolitiniai kondensatoriai, kad išlygintų įtampos bangavimą, o grandinėje turi būti diodas, apsaugantis nuo poliškumo pasikeitimo.

Dabar galime susitvarkyti su savo mikrovaldikliu. Korpusas MK yra DIP (taip lituoti patogiau) ir keturiasdešimt kaiščių. Laive yra ADC, PWM, USART ir daug daugiau, kurių kol kas nenaudosime. Apsvarstykite keletą svarbūs mazgai. RESET kaištis (9-oji MK kojelė) traukiamas rezistorius R1 į maitinimo šaltinio "pliusą" - tai turi būti padaryta! Priešingu atveju jūsų MK gali būti netyčia iš naujo nustatytas arba, kitaip tariant, sugadintas. Taip pat pageidautina, bet neprivaloma priemonė, prijungti RESET per keraminį kondensatorių C1 prie žemės. Diagramoje taip pat galite pamatyti 1000 uF elektrolitą, kuris taupo nuo įtampos kritimų, kai varikliai veikia, o tai taip pat turės teigiamą poveikį mikrovaldiklio veikimui. Kvarcinis kristalas X1 ir kondensatoriai C2, C3 turi būti dedami kuo arčiau XTAL1 ir XTAL2 kaiščių.

Nekalbėsiu apie tai, kaip paleisti MK, nes apie tai galite perskaityti internete. Programą rašysime C kalba, programavimo aplinka pasirinkau CodeVisionAVR. Tai gana patogi aplinka ir naudinga pradedantiesiems, nes joje yra įmontuotas vedlys kodui sukurti.

Variklio valdymas

Ne mažiau svarbus mūsų roboto komponentas yra variklio vairuotojas, todėl mums lengviau jį valdyti. Niekada ir jokiomis aplinkybėmis nejunkite variklių tiesiai prie MK! Apskritai, galingų apkrovų negalima valdyti tiesiai iš mikrovaldiklio, kitaip jis perdegs. Naudokite pagrindinius tranzistorius. Mūsų atveju yra speciali mikroschema - L293D. Tokiuose paprastuose projektuose visada stenkitės naudoti šią konkrečią mikroschemą su "D" indeksu, nes joje yra įmontuoti diodai apsaugai nuo perkrovos. Šią mikroschemą labai lengva valdyti ir ją nesunkiai galima įsigyti radijo parduotuvėse. Jį galima įsigyti dviem DIP ir SOIC paketais. Naudosime DIP paketą, nes lengva montuoti lentą. L293D turi atskirą maitinimo šaltinį varikliams ir logikai. Todėl pačią mikroschemą maitinsime iš stabilizatoriaus (VSS įvestis), o variklius tiesiai iš baterijų (VS įėjimas). L293D gali atlaikyti 600 mA apkrovą vienam kanalui ir turi du tokius kanalus, tai yra, prie vienos mikroschemos galima prijungti du variklius. Tačiau, kad būtų saugu, sujungsime kanalus, tada kiekvienam varikliui reikės vieno mikrono. Iš to seka, kad L293D galės atlaikyti 1,2 A. Kad tai pasiektumėte, reikia sujungti micra kojeles, kaip parodyta diagramoje. Mikroschema veikia taip: kai į IN1 ir IN2 įvedamas loginis „0“, o į IN3 ir IN4 – loginis blokas, variklis sukasi viena kryptimi, o jei signalai apverčiami, įvedamas loginis nulis, tada variklis pradės suktis kita kryptimi. EN1 ir EN2 kaiščiai yra atsakingi už kiekvieno kanalo įjungimą. Mes juos sujungiame ir prijungiame prie maitinimo šaltinio iš stabilizatoriaus "pliuso". Kadangi eksploatacijos metu mikroschema įkaista, o radiatorių montavimas tokio tipo korpusams yra problemiškas, šilumos išsklaidymą užtikrina GND kojelės - geriau jas lituoti ant plataus kontakto ploto. Tai viskas, ką jums reikia žinoti apie variklio vairuotojus pirmą kartą.

Kliūčių jutikliai

Kad mūsų robotas galėtų naršyti ir netrenktų į viską, įdiegsime du infraraudonųjų spindulių jutiklis. Paprasčiausias jutiklis susideda iš IR diodo, kuris skleidžia infraraudonųjų spindulių spektrą, ir fototranzistoriaus, kuris priims signalą iš IR diodo. Principas toks: kai prieš jutiklį nėra kliūties, IR spinduliai nepataiko į fototranzistorių ir jis neatsidaro. Jei priešais jutiklį yra kliūtis, tada spinduliai iš jo atsispindi ir krenta ant tranzistoriaus - jis atsidaro ir pradeda tekėti srovė. Tokių jutiklių trūkumas yra tas, kad jie gali skirtingai reaguoti įvairių paviršių ir nėra apsaugoti nuo trukdžių – nuo ​​pašalinių signalų iš kitų įrenginių, jutiklis gali netyčia suveikti. Signalo moduliavimas gali apsaugoti nuo trukdžių, tačiau kol kas mes tuo nesivarginsime. Pradžiai to pakanka.


Roboto programinė įranga

Norint atgaivinti robotą, reikia parašyti jam programinę įrangą, tai yra programą, kuri imtų rodmenis iš jutiklių ir valdytų variklius. Mano programa yra pati paprasčiausia, joje nėra sudėtingos struktūros ir visi supras. Kitose dviejose eilutėse yra mūsų mikrovaldiklio antraštės failai ir vėlavimo formavimo komandos:

#įtraukti
#įtraukti

Šios eilutės yra sąlyginės, nes PORTC reikšmės priklauso nuo to, kaip prijungėte variklio tvarkyklę prie mikrovaldiklio:

PORTC.0 = 1; PORTC.1 = 0; PORTC.2 = 1; PORTC.3 = 0; Reikšmė 0xFF reiškia, kad išvestis bus žurnalinė. "1" ir 0x00 - žurnalas. "0". Su tokia konstrukcija patikriname, ar prieš robotą yra kliūtis ir kurioje pusėje ji yra: if (! (PINB & (1)<

Jei šviesa iš IR diodo patenka į fototranzistorių, tada ant mikrovaldiklio kojelės nustatomas žurnalas. „0“ ir robotas pradeda judėti atgal, kad nuvažiuotų nuo kliūties, tada apsisuka, kad daugiau nesusidurtų su kliūtimi ir vėl eina į priekį. Kadangi turime du jutiklius, du kartus tikriname, ar nėra kliūties – dešinėje ir kairėje, todėl galime sužinoti, iš kurios pusės kliūtis yra. Komanda „delay_ms (1000)“ rodo, kad prireiks vienos sekundės, kol bus įvykdyta kita komanda.

Išvada

Aptariau daugumą aspektų, kurie padės jums sukurti pirmąjį robotą. Tačiau robotika tuo nesibaigia. Jei sukursite šį robotą, turėsite daug galimybių jį plėsti. Galite patobulinti roboto algoritmą, pavyzdžiui, ką daryti, jei kliūtis yra ne iš kurios nors pusės, o tiesiai priešais robotą. Taip pat nepakenks įdiegti kodavimo įrenginį – paprastą įrenginį, kuris padės tiksliai nustatyti ir žinoti savo roboto vietą erdvėje. Aiškumo dėlei galima sumontuoti spalvotą arba vienspalvį ekraną, kuris gali rodyti naudingą informaciją – akumuliatoriaus įkrovos lygį, atstumą iki kliūties, įvairią derinimo informaciją. Nepakenks ir jutiklių tobulinimas – vietoje įprastų fototranzistorių montuoti TSOP (tai IR imtuvai, suvokiantys tik tam tikro dažnio signalą). Be infraraudonųjų spindulių jutiklių yra ir ultragarsinių, jie yra brangesni, be to, jie taip pat nėra be trūkumų, tačiau pastaruoju metu jie populiarėja tarp robotikos inžinierių. Kad robotas galėtų reaguoti į garsą, būtų malonu įdiegti sustiprintus mikrofonus. Bet tikrai įdomus dalykas, manau, yra kameros įrengimas ir programavimas mašininio matymo pagrindu. Yra specialių OpenCV bibliotekų rinkinys, su kuriuo galite programuoti veido atpažinimą, judėjimą pagal spalvotus švyturius ir daug kitų įdomių dalykų. Viskas priklauso tik nuo jūsų vaizduotės ir įgūdžių.

Komponentų sąrašas:

    ATmega16 DIP-40 pakuotėje>

    L7805 pakuotėje TO-220

    L293D DIP-16 pakuotėje х2 vnt.

    0,25 W rezistoriai, kurių vardinės vertės: 10 kOhm x1 vnt., 220 Ohm x4 vnt.

    keraminiai kondensatoriai: 0,1 μF, 1 μF, 22 pF

    elektrolitiniai kondensatoriai: 1000 uF x 16 V, 220 uF x 16V x 2 vnt.

    diodas 1N4001 arba 1N4004

    kristalų rezonatorius 16 MHz dažniu

    IR diodai: tiks bet kokie du.

    fototranzistoriai, taip pat bet kokie, bet reaguojantys tik į infraraudonųjų spindulių bangos ilgį

Firmware kodas:

/ ****************************************************** ** Roboto MK tipo programinė įranga: ATmega16 Laikrodžio dažnis: 16.000000 MHz Jei turite kitokį kvarco dažnį, tai turite nurodyti aplinkos nustatymuose: Project -> Configure -> Tab "C Compiler" ****** ********************************************* / #įtraukti #įtraukti void main (void) (// Nustatykite įvesties prievadus // Per šiuos prievadus gauname signalus iš jutiklių DDRB = 0x00; // Įjunkite ištraukiamuosius rezistorius PORTB = 0xFF; // Nustatykite išvesties prievadus // Per šiuos prievadus valdome DDRC variklius = 0xFF; // Pagrindinė programos kilpa. Čia skaitome reikšmes iš jutiklių // ir valdome variklius, kol (1) (// Einame į priekį PORTC.0 = 1; PORTC. 1 = 0; PORTC.2 = 1; PORTC.3 = 0; if (! (PINB & (1<Apie mano robotą

Šiuo metu mano robotas beveik baigtas.


Turi belaidę kamerą, atstumo jutiklį (ir kamera, ir šis jutiklis sumontuotas ant besisukančio bokštelio), kliūčių jutiklį, kodavimo įrenginį, nuotolinio valdymo signalo imtuvą ir RS-232 sąsają, skirtą prisijungti prie kompiuterio. Jis veikia dviem režimais: autonominiu ir rankiniu (gauna valdymo signalus iš nuotolinio valdymo pulto), fotoaparatą taip pat galima įjungti/išjungti nuotoliniu būdu arba paties roboto taupant baterijos energiją. Rašau firmware buto apsaugai (vaizdo perkėlimas į kompiuterį, judesio aptikimas, kambario apvažiavimas).

Kaip namuose pasidaryti robotą iš įvairių medžiagų be tinkamos įrangos? Panašūs klausimai vis dažniau ėmė atsirasti įvairiuose tinklaraščiuose ir forumuose, skirtuose įvairių „pasidaryk pats“ prietaisų ir robotų gamybai. Žinoma, sukurti modernų, daugiafunkcį robotą namuose yra beveik neįmanoma užduotis. Tačiau visiškai įmanoma sukurti paprastą robotą naudojant vieną vairuotojo lustą ir naudojant kelis fotoelementus. Šiandien internete nesunku rasti diagramas su išsamiu mini robotų, galinčių reaguoti į šviesos šaltinius ir kliūtis, gamybos etapų aprašymu.

Pasirodys labai vikrus ir mobilus robotas, kuris pasislėps tamsoje, ar judės link šviesos, arba bėgs nuo šviesos, arba judės ieškodamas šviesos, priklausomai nuo to, kaip mikroschema prijungta prie variklių ir fotoelementai.

Jūs netgi galite priversti savo išmanųjį robotą sekti tik šviesią arba tamsią liniją, arba galite priversti mini robotą sekti jūsų ranką – tiesiog pridėkite kelis ryškius šviesos diodus prie jo grandinės!

Tiesą sakant, net pradedantysis, kuris tik pradeda įvaldyti šį amatą, gali savo rankomis pasigaminti paprastą robotą. Šiame straipsnyje mes apsvarstysime naminio roboto variantą, kuris reaguoja į kliūtis ir apeina jas.

Eikime tiesiai prie reikalo. Norint pagaminti namų robotą, mums reikės šių dalių, kurias nesunkiai rasite po ranka:

1. 2 baterijos ir dėklas joms;

2. Du varikliai (po 1,5 volto);

3. 2 SPDT jungikliai;

4. 3 sąvaržėlės;

4. Plastikinis rutulys su skylute;

5. Nedidelis vientisos vielos gabalas.

Namų roboto kūrimo žingsniai:

1. Vielos gabalą supjaustome į 13 dalių po šešis centimetrus ir kiekvieną iš abiejų pusių atidengiame po 1 cm.

Lituokliu prie SPDT jungiklių pritvirtiname 3 laidus, prie variklių – 2 laidus;

2. Dabar paimame dėklą akumuliatoriams, kurio vienoje pusėje nuo jo nukrypsta du įvairiaspalviai laidai (greičiausiai - juoda ir raudona). Turime lituoti kitą laidą į kitą korpuso pusę.

Dabar reikia išskleisti baterijos dėklą ir priklijuoti abu SPDT jungiklius į šoną su lituota viela lotyniškos raidės V forma;

3. Po to variklius reikia klijuoti iš abiejų korpuso pusių, kad jie suktųsi į priekį.

Tada paimkite didelę sąvaržėlę ir atsukite. Neišlenktą sąvaržėlę tempiame per plastikinio rutulio kiaurymę ir ištiesiname sąvaržėlės galus lygiagrečiai vienas kitam. Priklijuojame sąvaržėlės galus prie savo dizaino;

4. Kaip sukurti namų robotą, kad jis iš tikrųjų galėtų apeiti kliūtis? Svarbu lituoti visus sumontuotus laidus, kaip parodyta nuotraukoje;

5. Iš nelankstytų sąvaržėlių gaminame antenas ir jas klijuojame prie SPDT jungiklių;

6. Belieka įdėti baterijas į korpusą ir namų robotas pradės judėti, išvengdamas savo kelyje esančių kliūčių.

Dabar žinote, kaip sukurti namų robotą, galintį reaguoti į kliūtis.

Kaip pačiam pasidaryti robotą su tam tikrais elgesio principais? Naudojant BEAM technologiją sukuriama visa klasė tokių robotų, kurių tipiniai elgesio principai paremti vadinamąja „fotorecepcija“. Reaguodamas į šviesos intensyvumo pokyčius, toks mini robotas juda lėčiau arba, atvirkščiai, greičiau (fotokinezė).

Norint pagaminti robotą, kurio judėjimas nukreiptas nuo šviesos arba į šviesą ir yra dėl fototaksės reakcijos, mums reikia dviejų fotosensorių. Fototaksio reakcija pasireikš taip: jei šviesa patektų į vieną iš BEAM roboto fotosensorių, tada įsijungia atitinkamas elektros variklis ir robotas pasuka šviesos šaltinio link.

Ir tada šviesa paveikia antrąjį jutiklį ir tada įjungiamas antrasis elektros variklis. Dabar mini robotas pradeda judėti šviesos šaltinio link. Jei šviesa vėl patenka tik į vieną fotojutiklį, robotas vėl pradeda suktis link šviesos ir toliau juda šaltinio link, kai šviesa apšviečia abu jutiklius. Kai jokia šviesa nepaliečia jokio jutiklio, mini robotas sustoja.

Kaip sukurti robotą, kuris seka ranką? Norėdami tai padaryti, mūsų mini robotas turi būti aprūpintas ne tik jutikliais, bet ir šviesos diodais. Šviesos diodai skleis šviesą, o robotas reaguos į atspindėtą šviesą. Jei priešais vieną iš jutiklių pastatysime delną, mini robotas pasisuks jo kryptimi.

Jei delną atitrauksite šiek tiek toliau nuo atitinkamo jutiklio, tada robotas „klusniai“ seks delną. Kad atspindėtą šviesą aiškiai užfiksuotų fototranzistoriai, roboto konstravimui rinkitės ryškius (daugiau nei 1000 mCd) oranžinės arba raudonos spalvos šviesos diodus.

Ne paslaptis, kad kasmet daugėja investicijų į robotikos sritį, atsiranda daug naujų robotų kartų, tobulėjant gamybos technologijoms, atsiranda naujų robotų kūrimo ir naudojimo galimybių, o talentingi savamoksliai meistrai tęsiasi. nustebinti pasaulį naujais išradimais robotikos srityje.

Integruoti fotosensoriai reaguoja į šviesą ir eina į šaltinį, o jutikliai atpažįsta kelyje esančią kliūtį ir robotas pakeičia kryptį. Norint savo rankomis pasigaminti tokį paprastą robotą, nereikia turėti „septynių tarpatramių kaktoje“ ir aukštojo techninio išsilavinimo. Pakanka įsigyti (o kai kurias dalis galima rasti po ranka) visas reikalingas detales sukurti robotą ir palaipsniui sujungti visas mikroschemas, jutiklius, jutiklius, laidus ir variklius.

Pažiūrėkime į roboto variantą, pagamintą iš vibracinio variklio iš mobiliojo telefono, išsikrovusios baterijos, dvipusės juostos ir... dantų šepetėlio. Norėdami pradėti gaminti šį paprastą robotą iš improvizuotų priemonių, pasiimkite savo seną, nereikalingą mobilųjį telefoną ir nuimkite nuo jo vibracinį variklį. Po to paimkite seną dantų šepetėlį ir pjūklu nupjaukite galvą.

Ant dantų šepetėlio galvutės viršaus priklijuokite dvipusės juostos gabalėlį, o viršuje – vibracijos variklį. Belieka tik aprūpinti mini robotą galia, šalia vibracinio variklio sumontuojant išsikrovusią bateriją. Viskas! Mūsų robotas pasiruošęs – dėl vibracijos robotas judės į priekį ant šerių.

♦ MEISTRIS KLASĖ „PAŽANGIAI NAMINIAI“: Spustelėkite nuotrauką

♦ VAIZDO PAMOKOS PRADEDANTIEMS:

Paprasčiausią robotą gali pagaminti net tie, kurie ką tik paėmė į rankas lituoklį.

Dažniausiai mūsų robotas (priklausomai nuo konstrukcijos) bėgs link šviesos arba, priešingai, bėgs nuo jos, bėgs į priekį ieškodamas šviesos spindulio arba atsitrauks kaip kurmis.

Mūsų būsimam „dirbtiniam intelektui“ mums reikės:

  1. Lustas L293D
  2. Mažas elektrinis variklis M1 (galima ištraukti iš žaislinių automobilių)
  3. Fototranzistorius ir rezistorius, kurių vardinė vertė 200 omų.
  4. Laidai, baterija ir, žinoma, pati platforma, kur visa tai bus patalpinta.

Jei prie dizaino pridėsite dar porą ryškių šviesos diodų, tuomet nesunkiai pasieksite, kad robotas tiesiog bėgs paskui ranką ar net laikysis šviesios ar tamsios linijos. Mūsų kūrinys bus tipiškas BEAM klasės robotų atstovas. Tokių robotų elgesio principas pagrįstas „fotorecepcija“, tai yra, šviesa šiuo atveju veiks kaip informacijos šaltinis.

Mūsų robotas judės į priekį, kai jį pataikys šviesos spindulys. Toks prietaiso elgesys vadinamas „fotokineze“ – nekryptiniu judrumo padidėjimu arba sumažėjimu, reaguojant į šviesos lygio pokyčius.

Mūsų įrenginyje, kaip minėta aukščiau, kaip fotojutiklis buvo naudojamas n-p-n struktūros fototranzistorius - PTR-1. Čia galite naudoti ne tik fototranzistorių, bet ir fotorezistorių ar fotodiodą, nes visų elementų veikimo principas yra vienodas.

Paveikslėlyje iškart pavaizduota roboto sujungimo schema. Jei dar nesate pakankamai susipažinę su techniniais simboliais, remiantis šia schema, nebus sunku suprasti elementų žymėjimo ir sujungimo vienas su kitu principus.

GND. Laidai, jungiantys įvairius grandinės elementus su „žeme“ (neigiamu maitinimo šaltinio poliumi), diagramose dažniausiai neparodomi iki galo. Vietoje to nupieštas mažas brūkšnelis, nurodantis ryšį su „žeme“. Kartais prie brūkšnelio rašo „GND“ – iš angl. žodžiai „žemė“ – žemė.

Vcc. Šis žymėjimas rodo, kad grandinė yra prijungta prie maitinimo šaltinio per šią dalį - Teigiamas polius! Kartais diagramose vietoj šių raidžių dažnai rašomas esamas įvertinimas. Šiuo atveju +5V.

Roboto veikimo principas.

Šviesos pluoštui patekus į fototranzistorių (schemoje jis pažymėtas kaip PRT1), INPUT1 mikroschemos išvestyje pasirodo teigiamas signalas, dėl kurio veikia M1 variklis. Ir atvirkščiai, kai šviesos spindulys nustoja apšviesti fototranzistorių, signalas INPUT1 lusto išėjime išnyksta, todėl variklis sustoja.

Rezistorius R1 šioje grandinėje yra skirtas kompensuoti srovę, praeinančią per fototranzistorių. Rezistoriaus vertė yra 200 omų - žinoma, čia galite lituoti rezistorius su kitomis reikšmėmis, tačiau reikia atsiminti, kad fototranzistoriaus jautrumas, taigi ir paties roboto našumas, priklausys nuo vertės.

Jei rezistoriaus vertė yra didelė, tai robotas reaguos tik į labai ryškų šviesos spindulį, o jei jis mažas, tada jautrumas bus daug didesnis.

Trumpai tariant, šioje grandinėje nereikėtų naudoti rezistorių, kurių varža mažesnė nei 100 omų, kitaip fototranzistorius gali tiesiog perkaisti ir sugesti.

Skaitmeniniai ir analoginiai multimetrai Skaitymo grandinės: ekranavimas, įžeminimas Skaitymo grandinės: lempos ir fotoelementai Elektrinio virdulio remontas „Pasidaryk pats“ laikrodis su vaizdo projekcija

Tikrai, žiūrėdamas filmus apie robotus, ne kartą norėjote sukurti savo ginklo draugą, bet nežinojote, nuo ko pradėti. Žinoma, dvikojų terminatoriaus nepastatysi, bet mes ir to nesiekiame. Kiekvienas, kuris moka taisyklingai laikyti lituoklį rankose, gali surinkti paprastą robotą ir tam nereikia gilių žinių, nors jie ir netrukdys. Mėgėjiška robotika nedaug kuo skiriasi nuo schemų, tik daug įdomesnė, nes čia taip pat nukenčia tokios sritys kaip mechanika, programavimas. Visi komponentai yra lengvai prieinami ir nėra tokie brangūs. Taigi pažanga nestovi vietoje ir mes ją išnaudosime savo naudai.

Įvadas

Taigi. Kas yra robotas? Dažniausiai tai yra automatinis įrenginys, kuris reaguoja į bet kokį veiksmą aplinkoje. Robotus gali valdyti žmonės arba atlikti iš anksto užprogramuotus veiksmus. Paprastai robotas aprūpintas įvairiais jutikliais (atstumo, sukimosi kampo, pagreičio), vaizdo kameromis, manipuliatoriais. Elektroninė roboto dalis susideda iš mikrovaldiklio (MC) – mikroschemos, kurioje yra procesorius, laikrodžio generatorius, įvairūs periferiniai įrenginiai, RAM ir nuolatinė atmintis. Pasaulyje yra didžiulė mikrovaldiklių, skirtų skirtingoms taikymo sritims, įvairovė ir jų pagrindu galima surinkti galingus robotus. Mėgėjiškiems pastatams plačiai naudojami AVR mikrovaldikliai. Šiandien jie yra labiausiai prieinami, o internete galite rasti daug pavyzdžių, pagrįstų šiais MK. Norėdami dirbti su mikrovaldikliais, turite mokėti programuoti surinkimo arba C ir turėti skaitmeninės bei analoginės elektronikos bazines žinias. Savo projekte naudosime C. MK programavimas mažai kuo skiriasi nuo programavimo kompiuteriu, kalbos sintaksė ta pati, dauguma funkcijų praktiškai nesiskiria, o naujosios gana lengvai išmokstamos ir patogios naudoti.

Ko mums reikia

Pirmiausia mūsų robotas galės tiesiog apeiti kliūtis, tai yra pakartoti įprastą daugumos gyvūnų elgesį gamtoje. Viską, ko mums reikia norint sukurti tokį robotą, galite rasti radijo parduotuvėse. Mes nuspręsime, kaip judės mūsų robotas. Sėkmingiausi, manau, yra vikšrai, kurie naudojami tankuose, tai patogiausias sprendimas, nes vikšrai turi didesnį pravažumą nei transporto priemonės ratai ir yra patogiau valdomi (sukti, tai pakanka pasukti takelius skirtingomis kryptimis). Todėl jums prireiks bet kokios žaislų talpyklos su nepriklausomai viena nuo kitos besisukančiomis vikšrėmis, kurią galite įsigyti bet kurioje žaislų parduotuvėje už priimtiną kainą. Iš šio bako jums reikia tik platformos su vikšrais ir varikliais su pavarų dėžėmis, likusią dalį galite saugiai atsukti ir išmesti. Mums taip pat reikia mikrovaldiklio, mano pasirinkimas krito ant ATmega16 - jis turi pakankamai prievadų jutikliams ir periferiniams įrenginiams prijungti, ir apskritai jis yra gana patogus. Taip pat reikia nusipirkti kai kuriuos radijo komponentus, lituoklį, multimetrą.

Lentos gamyba su MK



Roboto schema

Mūsų atveju mikrovaldiklis atliks smegenų funkcijas, bet pradėsime ne nuo jo, o nuo roboto smegenų maitinimo. Tinkama mityba yra raktas į sveikatą, todėl pradėsime nuo to, kaip tinkamai maitinti savo robotą, nes pradedantieji robotų kūrėjai dažniausiai dėl to daro klaidų. O kad mūsų robotas normaliai veiktų, reikia naudoti įtampos stabilizatorių. Man labiau patinka lustas L7805 - jis skirtas stabiliai 5 V įtampai išvesti, o tai ir reikalinga mūsų mikrovaldikliui. Bet dėl ​​to, kad šios mikroschemos įtampos kritimas yra apie 2,5 V, į jį turi būti tiekiama bent 7,5 V. Kartu su šiuo stabilizatoriumi naudojami elektrolitiniai kondensatoriai, kad išlygintų įtampos bangavimą, o grandinėje turi būti diodas, apsaugantis nuo poliškumo pasikeitimo.
Dabar galime susitvarkyti su savo mikrovaldikliu. MK korpusas yra DIP (patogiau lituoti) ir turi keturiasdešimt kaiščių. Laive yra ADC, PWM, USART ir daug daugiau, kurių kol kas nenaudosime. Panagrinėkime keletą svarbių mazgų. RESET išvestį (9-oji MK kojelė) rezistorius R1 patraukia į maitinimo šaltinio „pliusą“ - tai turi būti padaryta! Priešingu atveju jūsų MK gali netyčia nustatyti iš naujo arba, kitaip tariant, sugesti. Taip pat pageidautina, bet neprivaloma priemonė, prijungti RESET per keraminį kondensatorių C1 prie žemės. Diagramoje taip pat galite pamatyti 1000 uF elektrolitą, kuris taupo nuo įtampos kritimų, kai varikliai veikia, o tai taip pat turės teigiamą poveikį mikrovaldiklio veikimui. Kvarcinis kristalas X1 ir kondensatoriai C2, C3 turi būti dedami kuo arčiau XTAL1 ir XTAL2 kaiščių.
Nekalbėsiu apie tai, kaip paleisti MK, nes apie tai galite perskaityti internete. Programą rašysime C kalba, programavimo aplinka pasirinkau CodeVisionAVR. Tai gana patogi aplinka ir naudinga pradedantiesiems, nes joje yra įmontuotas vedlys kodui sukurti.


Mano roboto mokestis

Variklio valdymas

Ne mažiau svarbus mūsų roboto komponentas yra variklio vairuotojas, todėl mums lengviau jį valdyti. Niekada ir jokiomis aplinkybėmis nejunkite variklių tiesiai prie MK! Apskritai, galingų apkrovų negalima valdyti tiesiai iš mikrovaldiklio, kitaip jis perdegs. Naudokite pagrindinius tranzistorius. Mūsų atveju yra specialus lustas - L293D. Tokiuose paprastuose projektuose visada stenkitės naudoti šią konkrečią mikroschemą su "D" indeksu, nes joje yra įmontuoti diodai apsaugai nuo perkrovos. Šią mikroschemą labai lengva valdyti ir ją nesunkiai galima įsigyti radijo parduotuvėse. Jį galima įsigyti dviem DIP ir SOIC paketais. Naudosime DIP paketą, nes lengva montuoti lentą. L293D turi atskirą maitinimo šaltinį varikliams ir logikai. Todėl pačią mikroschemą maitinsime iš stabilizatoriaus (VSS įvestis), o variklius tiesiai iš baterijų (VS įėjimas). L293D gali atlaikyti 600 mA apkrovą vienam kanalui ir turi du tokius kanalus, tai yra, prie vienos mikroschemos galima prijungti du variklius. Tačiau, kad būtų saugu, sujungsime kanalus, tada kiekvienam varikliui reikės vieno mikrono. Iš to seka, kad L293D galės atlaikyti 1,2 A. Kad tai pasiektumėte, reikia sujungti micra kojeles, kaip parodyta diagramoje. Mikroschema veikia taip: kai į IN1 ir IN2 įvedamas loginis „0“, o į IN3 ir IN4 – loginis blokas, variklis sukasi viena kryptimi, o jei signalai apverčiami – loginis nulis, tada variklis pradės suktis kita kryptimi. EN1 ir EN2 kaiščiai yra atsakingi už kiekvieno kanalo įjungimą. Mes juos sujungiame ir prijungiame prie maitinimo šaltinio iš stabilizatoriaus "pliuso". Kadangi veikimo metu mikroschema įkaista, o radiatorių montavimas tokio tipo korpusuose yra problemiškas, šilumą pašalina GND kojos - geriau jas lituoti ant plataus kontaktinio ploto. Tai viskas, ką jums reikia žinoti apie variklio vairuotojus pirmą kartą.

Kliūčių jutikliai

Kad mūsų robotas galėtų naršyti ir netrenktų į viską, jame sumontuosime du infraraudonųjų spindulių jutiklius. Paprasčiausias jutiklis susideda iš IR diodo, kuris skleidžia infraraudonųjų spindulių spektrą, ir fototranzistoriaus, kuris priims signalą iš IR diodo. Principas toks: kai prieš jutiklį nėra kliūties, IR spinduliai nepataiko į fototranzistorių ir jis neatsidaro. Jei priešais jutiklį yra kliūtis, tada spinduliai iš jo atsispindi ir krenta ant tranzistoriaus - jis atsidaro ir pradeda tekėti srovė. Tokių jutiklių trūkumas yra tas, kad jie gali skirtingai reaguoti į skirtingus paviršius ir nėra apsaugoti nuo trukdžių – jutiklis gali netyčia suveikti nuo pašalinių signalų iš kitų įrenginių. Signalo moduliavimas gali apsaugoti nuo trukdžių, tačiau kol kas mes tuo nesivarginsime. Pradžiai to pakanka.


Pirmoji mano roboto jutiklių versija

Roboto programinė įranga

Norint atgaivinti robotą, reikia parašyti jam programinę įrangą, tai yra programą, kuri imtų rodmenis iš jutiklių ir valdytų variklius. Mano programa yra pati paprasčiausia, joje nėra sudėtingų struktūrų ir ji bus aiški visiems. Kitose dviejose eilutėse yra mūsų mikrovaldiklio antraštės failai ir vėlavimo formavimo komandos:

#įtraukti
#įtraukti

Šios eilutės yra sąlyginės, nes PORTC reikšmės priklauso nuo to, kaip prijungėte variklio tvarkyklę prie mikrovaldiklio:

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

Reikšmė 0xFF reiškia, kad išvestis bus žurnalinė. „1“, o 0x00 yra žurnalas. "0".

Su tokia konstrukcija patikriname, ar prieš robotą yra kliūtis ir kurioje pusėje ji yra:

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

Jei šviesa iš IR diodo patenka į fototranzistorių, tada ant mikrovaldiklio kojelės nustatomas žurnalas. „0“ ir robotas pradeda judėti atgal, kad nuvažiuotų nuo kliūties, tada apsisuka, kad daugiau nesusidurtų su kliūtimi ir vėl eina į priekį. Kadangi turime du jutiklius, kliūties buvimą tikriname du kartus – dešinėje ir kairėje, todėl galime sužinoti, kurioje pusėje kliūtis yra. Komanda „delay_ms (1000)“ rodo, kad prireiks vienos sekundės, kol bus įvykdyta kita komanda.

Išvada

Aptariau daugumą aspektų, kurie padės jums sukurti pirmąjį robotą. Tačiau robotika tuo nesibaigia. Jei sukursite šį robotą, turėsite daug galimybių jį plėsti. Galite patobulinti roboto algoritmą, pavyzdžiui, ką daryti, jei kliūtis yra ne iš kurios nors pusės, o tiesiai priešais robotą. Taip pat nepakenks įdiegti kodavimo įrenginį – paprastą įrenginį, kuris padės tiksliai nustatyti ir žinoti savo roboto vietą erdvėje. Aiškumo dėlei galima sumontuoti spalvotą arba vienspalvį ekraną, kuris gali rodyti naudingą informaciją – akumuliatoriaus įkrovos lygį, atstumą iki kliūties, įvairią derinimo informaciją. Nepakenks ir jutiklių tobulinimas – vietoje įprastų fototranzistorių sumontuoti TSOP (tai IR imtuvai, suvokiantys tik tam tikro dažnio signalą). Be infraraudonųjų spindulių jutiklių yra ir ultragarsinių, jie yra brangesni, be to, jie taip pat nėra be trūkumų, tačiau pastaruoju metu jie populiarėja tarp robotikos inžinierių. Kad robotas galėtų reaguoti į garsą, būtų malonu įdiegti sustiprintus mikrofonus. Bet tikrai įdomus dalykas, manau, yra kameros įrengimas ir programavimas mašininio matymo pagrindu. Yra specialių OpenCV bibliotekų rinkinys, su kuriuo galite programuoti veido atpažinimą, judėjimą pagal spalvotus švyturius ir daug kitų įdomių dalykų. Viskas priklauso tik nuo jūsų vaizduotės ir įgūdžių.
Komponentų sąrašas:
  • ATmega16 DIP-40 pakuotėje>
  • L7805 pakuotėje TO-220
  • L293D DIP-16 pakuotėje х2 vnt.
  • 0,25 W rezistoriai, kurių vardinės vertės: 10 kOhm x1 vnt., 220 Ohm x4 vnt.
  • keraminiai kondensatoriai: 0,1 μF, 1 μF, 22 pF
  • elektrolitiniai kondensatoriai: 1000 uF x 16 V, 220 uF x 16V x 2 vnt.
  • diodas 1N4001 arba 1N4004
  • kristalų rezonatorius 16 MHz dažniu
  • IR diodai: tiks bet kokie du.
  • fototranzistoriai, taip pat bet kokie, bet reaguojantys tik į infraraudonųjų spindulių bangos ilgį
Firmware kodas:
/*****************************************************
Roboto programinė įranga

MK tipas: ATmega16
Laikrodžio dažnis: 16.000000 MHz
Jei jūsų kvarco dažnis skiriasi, tai turi būti nurodyta aplinkos nustatymuose:
Projektas -> Konfigūruoti -> Skirtukas "C kompiliatorius".
*****************************************************/

#įtraukti
#įtraukti

Tuščias pagrindinis (negalioja)
{
//Nustatykite įvesties prievadus
// Per šiuos prievadus gauname signalus iš jutiklių
DDRB=0x00;
// Įjungti ištraukiamuosius rezistorius
PORTB=0xFF;

//Nustatykite išvesties prievadus
//Per šiuos prievadus valdome variklius
DDRC=0xFF;

//Pagrindinė programos kilpa. Čia mes skaitome reikšmes iš jutiklių
//ir valdyti variklius
kol (1)
{
//Eime pirmyn
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (!(PINB & (1< {
//Grįžti 1 sekundę atgal
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
// Apvyniojimas
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
if (!(PINB & (1< {
//Grįžti 1 sekundę atgal
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
// Apvyniojimas
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}

Apie mano robotą

Šiuo metu mano robotas beveik baigtas.


Turi belaidę kamerą, atstumo jutiklį (ir kamera, ir šis jutiklis sumontuotas ant besisukančio bokštelio), kliūčių jutiklį, kodavimo įrenginį, nuotolinio valdymo signalo imtuvą ir RS-232 sąsają, skirtą prisijungti prie kompiuterio. Jis veikia dviem režimais: autonominiu ir rankiniu (gauna valdymo signalus iš nuotolinio valdymo pulto), fotoaparatą taip pat galima įjungti/išjungti nuotoliniu būdu arba paties roboto taupant baterijos energiją. Rašau firmware buto apsaugai (vaizdo perkėlimas į kompiuterį, judesio aptikimas, kambario apvažiavimas).

Skelbiu vaizdo įrašą pagal pageidavimą.

UPD. Iš naujo įkėliau nuotraukas ir padariau nedidelius teksto pataisymus.