Kazalo:

ARCA (čudovit daljinsko vodeni Android): 4 koraki (s slikami)
ARCA (čudovit daljinsko vodeni Android): 4 koraki (s slikami)

Video: ARCA (čudovit daljinsko vodeni Android): 4 koraki (s slikami)

Video: ARCA (čudovit daljinsko vodeni Android): 4 koraki (s slikami)
Video: Милая биполярочка Кратика ► 2 Прохождение God of War (HD Collection, PS3) 2024, Julij
Anonim
ARCA (čudovit daljinsko vodeni Android)
ARCA (čudovit daljinsko vodeni Android)
ARCA (čudovit daljinsko vodeni Android)
ARCA (čudovit daljinsko vodeni Android)
ARCA (čudovit daljinsko vodeni Android)
ARCA (čudovit daljinsko vodeni Android)

Ta pouk je bil ustvarjen v skladu z zahtevami projekta Makecourse na Univerzi v Južni Floridi (www.makecourse.com).

ARCA je čudovit Android z daljinskim upravljanjem, ki ga je neverjetno zabavno graditi in igrati. Cilj tega projekta je bil ustvariti nekaj, kar bi lahko vsak razumel in se nanj navezoval, tako da bi ustvaril robota, ki je hkrati čudovit in funkcionalen.

Robot deluje tako, da prikazuje različna čustva na matriki LED 8 x 8, ta čustva vključujejo veselje, spanje, ljubezen, jezo, neumnost in pogled navzgor, levo in desno. Robot deluje tudi kot avtomobil z daljinskim upravljalnikom in lahko gre naprej in zavije levo ali desno. Robot gre naprej z aktiviranjem obeh kolesnih motorjev, zavije levo z vklopom desnega motorja in zavije desno z vklopom levega motorja. Zasnova je zelo poenostavljena, vendar deluje, zato sem se želel močno osredotočiti na programiranje Arduina, saj sem po srcu programer.

Najnovejše različice vseh datotek, uporabljenih v tej vadnici, najdete v mojem skladišču Github ARCA.

1. korak: Seznam delov in 3D tiskanje

Seznam delov in 3D tiskanje
Seznam delov in 3D tiskanje
Seznam delov in 3D tiskanje
Seznam delov in 3D tiskanje

Deli za ta projekt se lahko natisnejo 3D ali kupijo na spletu. Ko sem razmišljal o sestavi, sem želel narediti ključ učinkovitosti in poskušati ne (čisto dobesedno) znova izumiti kolesa. 3D tiskalnik, uporabljen za ta projekt, je bil Makerbot Replicator, če želite zagotoviti, da so vaši 3D natisi skladni z mojimi, uporabite ta tiskalnik.

Strukturne komponente

  • Škatla z luknjami na straneh za kolesa in roke
  • Pokrov škatle z luknjami za zadnja kolesa in luknjo za IR senzor
  • Leva roka
  • Desna roka
  • Os za dve zadnji kolesi
  • dva osna priključka za povezavo pokrova z osi
  • 4 kolesa (na tej povezavi so tudi motorji)
  • Majhni vijaki (za vgradnjo v motorje)

Električne komponente

  • Arduino Uno
  • Majhna plošča (kupil sem komplet Arduino in zraven je prišel)
  • Dve matriki rdečih pik MAX7219 s krmiljenjem MCU
  • Infrardeči sprejemnik in daljinski upravljalnik
  • Dva tranzistorja TIP 120
  • Povezovalne žice (uporabil sem veliko moških in ženskih žic ter moških do moških in priporočam, da si vzamete kratke žice z dolgimi)
  • en 220 ohmski upor
  • Dva zobniška motorja
  • Napajalniki, ki jih je mogoče priključiti prek USB (prenosni za mobilne telefone)

2. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Strukturni sklop

3D natisnjene dele bo verjetno treba očistiti, zato priporočam, da jih obrusite z drobnim peskom in uporabite aceton (odstranjevalec laka za nohte), da odstranite vse ostanke lepila, uporabljenega v procesu 3D tiskanja. Nekateri deli se morda ne prilegajo popolnoma, zato sem moral brusiti os, da je popolnoma okrogla in se pravilno prilega skozi luknje.

Kolesa je treba rahlo prilagoditi, bolj jih je treba izvrtati, da se prilegajo dimenzijam osi zadaj in vijakom spredaj. S svedrom 6 mm izvrtajte luknje v kolesih, da izvrtite večje luknje v kolesih.

Za to montažo sem uporabil različna lepila, vendar sem ugotovil, da je tekoči beton (lepilo za modeliranje) najboljši za držanje kljub dolgemu času sušenja, vendar je epoksid najboljši za stvari, ki se jih morate hitro posušiti in dobro držati, kljub temu, da so neurejene.

Preostanek sklopa je precej naravnost:

  1. Nosilce osi pritrdite na zadnjo stran pokrova škatle z epoksidom za tesnjenje
  2. Prenesite os skozi držala osi
  3. Kolesa prilepite na os s tekočim betonom
  4. Roke vstavite skozi zgornje luknje in z epoksidom lepite na držalo za roke
  5. Pokrov škatle privijte v škatlo
  6. Uporabite električni trak na dnu škatle, kjer so kolesa

Električni sklop

Sprednja kolesa so pritrjena neposredno na motorje, zato morate z majhnim vijakom v motorju narediti dovolj dolgo, da se prilega skozi luknjo v robotu na vsaki strani. V vrtljivem zatiču motorja mora biti majhna luknja in lahko tam privijete vijak in prilepite glavo vijaka v kolo, potem ko potisnete vijak skozi luknjo v škatli.

Zadnja stran moje plošče je imela lepljivo podlago, vendar jo lahko pritrdite z električnim trakom, če se vaša ne. Električni trak je bil uporabljen tudi za pritrditev električnih komponent, ki niso na plošči, iz varnostnih razlogov. MCU -ji z LED zasloni so bili pritrjeni na zadnji del očesnih očes z električnim trakom, motorji pa so bili pritrjeni tudi na stranice škatle blizu lukenj z električnim trakom. Uporabil sem rdeči električni trak, da bi bil za vsak slučaj bolj neviden, in priporočam uporabo električnega traku s podobno barvo kot vaša različica ARCA.

Okvir in zatiči so nastavljeni tako kot ta slika Fritzing. Če želite temu diagramu dodati več za prilagoditev ARCA, lahko prenesete datoteko Fritzing v moje skladišče Github in jo uredite po želji.

Žice sem pritrdil na zanke v motorjih zobnikov, tako da sem žice upognil okoli zank, da so ostale pritrjene. Verjetno bi bilo bolje spajkati te povezave, če imate dostop do spajkalnika, vendar je to enostavna rešitev, če ga nimate.

Napajalnik je priključen na isti kabel, s katerim je Arduino priključen na računalnik, da prenesete svoj program, ta pa je v robotu samo ohlapen, zato ga je mogoče enostavno odstraniti in napolniti.

3. korak: Programiranje

Programiranje
Programiranje

Tukaj je koda, ki jo lahko naložite v svoj ARCA, da deluje tako kot moja, za uporabo kode pa potrebujete tudi naslednji dve knjižnici.

Zaradi jasnosti in prilagajanja pa vas bom popeljal skozi svojo kodo. Ta korak lahko preskočite, če ne prilagajate svojega robota ali ne nameravate spreminjati čustev.

Najprej v svojo kodo vključim dve knjižnici, ki mi omogočata uporabo funkcij in predmetov teh knjižnic. Tu tudi opredeljujem svoje zatiče. Če ste se odločili, da bodo vaši zatiči drugačni od mojih, ki sem jih nastavil v prejšnjem koraku, tukaj spremenite kodo z ustreznimi zatiči.

Nato sem definiral čustva, razglasil potrebne objekte za IR senzor in zaslone LED 8 x 8 ter določil nekatere globalne spremenljivke. Čustva so deklarirana v bajtni matriki, kjer vsaka šestnajstiška številka v matriki predstavlja vrstice v nastalem zaslonu 8 x 8. Če želite ustvariti svoja čustva po meri, vam priporočam, da v mrežo 8 x 8 narišete želeno čustvo in nato v vsako vrstico napišete 8 -bitno binarno število, kjer je lučka ugasnjena 0, lučka pa 1, nato pa ustvarite šestnajstiško število od tega in ga vstavi v niz dolžine 8. Določil sem tudi nekatere globalne spremenljivke za uporabo v zanki; spremenljivke za utripajoči mehanizem in kazalce za shranjevanje čustev in jih nastavite tako, da začnejo pri nevtralnem položaju.

Zdaj pridemo do nastavitvene zanke, kjer zaradi testiranja vklopim serijsko spremljanje, kar bi vam lahko pomagalo pri preizkusu kode z različnimi daljinskimi upravljalniki IR. Nato sem inicializiral objekte levega in desnega očesa s funkcijami iz knjižnice za upravljanje LED. Zataknil sem tudi zatiče gonila in zagnal IR sprejemnik.

V zanki v bistvu čaka, da IR signal spremeni status quo robota. Torej, če je sprejet IR signal in se ujema z eno od kod iz določenega gumba, potem to, če se sproži izjava in ustrezno nastavi vrednosti levega in desnega očesa za čustva. Če pritisnete gumb za premikanje, na primer levo, desno, naprej in OK, so zatiči digitalno zapisani, da so vklopljeni ali izklopljeni, odvisno od pritisnjenega gumba. Samo opomba o kodah IR sprejemnika: v oddaljeni knjižnici IR je vzorčna koda, ki vam bo dala šestnajstiške kode za vaš daljinski upravljalnik, če se s pritiskom na gumbe nič ne zgodi, odprite ta program in se prepričajte, da so kode pravilne. Vse kar morate storiti je, da spremenite šestnajstiško številko, ki je priložena vsakemu gumbu.

Nazadnje imate funkcijo, ki natisne čustva na zaslone 8 x 8. Ta uporablja funkcije setRow iz knjižnice za upravljanje LED in gre samo skozi matrike, ki ste jih ustvarili, in ustrezno nastavi vrstice. Vzame dva parametra: matriko za levo oko in matriko za desno oko. To je lahko bodisi kazalec bajtov bodisi sam niz bajtov (tj. Ime "nevtralno"), ki deluje kot kazalec.

4. korak: Nasveti in triki za bonus

Bonus nasveti in triki
Bonus nasveti in triki

Med tem projektom sem se zagotovo veliko naučil in želel sem deliti nekaj dodatnih nasvetov, ki veljajo tako za ta projekt kot za druge projekte, ki uporabljajo Arduino.

  • Za Arduino je veliko spletnih virov in po mojem mnenju najbolj koristno prihaja s spletnega mesta Arduino zaradi njihovih jasnih in jedrnih primerov kode.
  • Ne odpirajte kolesa, obstaja veliko kompletov in vnaprej izdelanih kosov, s katerimi lahko olajšate svoj projekt. Sem programer in ne strojni inženir in težko sem ugotovil, kako bom naredil tega robota, vendar je bilo enostavno najti nekaj za nakup na spletu in ga implementirati v mojo zasnovo v primerjavi s povsem dobesednim izumljanjem kolo
  • Knjižnice so vaš prijatelj v Arduinu in v vseh objektno naravnanih jezikih in obstajajo z razlogom. To povežite z mikrokrmilniki in programiranje LED 8 x 8 je preprosto. Enega od teh sem že ročno programiral in samo en uporablja skoraj vsak pin v Arduinu in zahteva tono kode. Zelo grdo in ne preveč zabavno.
  • 3D -tiskalniki so kul, vendar niso popolni in v redu je, da morate brusiti nekaj stvari. Pri 3D -tiskanju bi iz tega razloga raje postali večji, saj ga v večini primerov lahko malo pobrušite, da se popolnoma prilega.
  • Napajanje je lahko problem, ker sem razmišljal o porabi energije v zadnjem trenutku in mislil, da bo 5v baterija zmogla. Potem navidezno naključno včasih motor ali LED zaslon ne bi deloval. Ko sem nadgradil na napajalnik, ni bilo več težav, kljub temu, da je bil znotraj robota večji.

Priporočena: