Satura rādītājs:

Izveidojiet savu pašbraucošo automašīnu - (šī instrukcija darbojas): 7 soļi
Izveidojiet savu pašbraucošo automašīnu - (šī instrukcija darbojas): 7 soļi

Video: Izveidojiet savu pašbraucošo automašīnu - (šī instrukcija darbojas): 7 soļi

Video: Izveidojiet savu pašbraucošo automašīnu - (šī instrukcija darbojas): 7 soļi
Video: 💣 Правильный 2.0 TDI - это версия с Common Rail !!! Чем этот мотор лучше версии с насос-форсункой ? 2024, Jūlijs
Anonim
Image
Image

Sveiki, Ja paskatās uz manu citu Instructable on Drive Robot With Remote USB Gamepad, šis projekts ir līdzīgs, bet mazākā mērogā. Varat arī sekot vai saņemt palīdzību vai iedvesmu no robotikas, pašmāju balss atpazīšanas vai pašbraucošu automašīnu atskaņošanas sarakstiem vietnē YouTube.

Es sāku ar lielo robotu (Wallace 4), bet, tā kā es izveidoju vietējo Meetup grupu, man vajadzēja kaut ko mazākā mērogā, un grupu ļoti interesēja datora redze.

Tāpēc es saskāros ar šo Udemy kursu: izveidojiet savu pašbraucošo automašīnu, kas man deva ideju par šo projektu.

Ja jūs interesē Udemy kurss, varat turpināt to pārbaudīt; tas laiku pa laikam tiek pārdots par milzīgu atlaidi. Piezīme: ir 1. un 2. daļa - jums ir jāizpēta, kā iegūt abus kursus komplektā (ar atlaidi).

Šīs pamācības mērķis ir divējāds. Pirmkārt, sniegt norādes un alternatīvas noteiktām kursa daļām (piemēram, detaļām un aparatūrai). Un, otrkārt, paplašināt kursu.

Udemy kursa galvenais mērķis:

ir panākt, lai neliels riteņu robotu automobilis pats brauc pa samazinātu divu joslu ceļu.

Tai ir jāatpazīst joslas svītras un kad tā ir sasniegusi ceļa galu.

Tam ir jāatzīst apstāšanās zīme (un apstāšanās).

Arī SARKANS un ZAĻS satiksmes signāls.

Tai arī jāatpazīst šķēršļi (cita automašīna) un jāmanevrē ap tiem.

Ko šī instrukcija pievieno kursam:

Brauciet ar mazo automašīnu, izmantojot USB tālvadības pulti, līdzīgi kā šajā instrukcijā.

Norādiet dažas alternatīvas kursam.

Iespējams, jums pat nav jāpērk kurss:

Šis pamācība var būt viss, kas jums nepieciešams, lai sāktu darbu.

Piegādes

Svarīgākās (ieteiktās) daļas:

Robota šasija

Četri motori

Arduino

Raspberry Pi (3, 3B+, 4)

Kamera (USB tīmekļa kamera vai Picamera modulis)

Akumulatora jauda

Ieslēgšanas/izslēgšanas slēdži

džemperu vadi

statīvi (plastmasa un varbūt arī metāls)

Lūdzu, pārskatiet visu Instructable un arī videoklipus, pirms mēģināt iegādāties detaļas.

Pēc šī projekta veikšanas es saprotu, ka precīzās daļas nav tik kritiskas.

1. darbība. Sīkāka informācija par detaļām…

Image
Image
Sīkāka informācija par detaļām…
Sīkāka informācija par detaļām…
Sīkāka informācija par detaļām…
Sīkāka informācija par detaļām…

Saistītajā videoklipā ir sīki aprakstītas detaļas un dažas problēmas, kuras es atklāju.

  • Apskatiet dažādas šasijas / motorus
  • Motoriem jau vajadzētu būt pielodētiem vadiem
  • Iespējams, vēlēsities urbi un urbjus, VAI šasiju ar vairākām caurumiem
  • Paturiet prātā, ka svars ir problēma. Visam jābūt pēc iespējas vieglākam.
  • L298 H-Bridge motora draiveris darbojas lieliski. PIEZĪME: iegūstiet vienu ar skrūvju spaiļu blokiem (skatiet fotoattēlu)
  • Jūs, iespējams, vēlēsities gan plastmasas, gan metāla izolāciju, M3 izmērs, iespējams, ir labākā izvēle.

Plastmasas atdalītāji ir piemēroti dēļu montāžai uz šasijas (motora draiveris, Arduino, Raspberry, barošanas bloks, ieslēgšanas/izslēgšanas slēdzis utt.).

Metāla atdalītāji ir piemēroti šasijas montāžai (izturība), kā arī īpaši, kad jūs izstrādājat (programmēšana, testēšana). Attīstībai metāla atdalītāji var kalpot kā pāļi. Tāpat kā tad, ja strādājat pie īstas automašīnas, vēlaties pacelt automašīnu tā, lai riteņi būtu gaisā un varētu brīvi pārvietoties. Tas ir ļoti svarīgi! Jūs pieļausit kļūdas un nevēlaties, lai automašīna vienkārši paceltos un avarētu.

Urbis + urbji

Es patiešām vēlos uzsvērt urbjmašīnas izmantošanu, ja jums tas ir iespējams, un abpusējas līmlentes vietā izmantot pārtraukumus. Ļoti iespējams, ka šī projekta laikā vairākas reizes noņemsiet un pārvietosit dēļus utt., Un lentes lietošana kļūst ļoti netīra.

Izmantojot urbi, to ir ļoti viegli pārvietot (īpaši, ja šasija ir plastmasa), un tas izskatās profesionālāk.

2. darbība: automašīnas barošana izstrādes laikā

Automašīnas barošana izstrādes laikā
Automašīnas barošana izstrādes laikā
Automašīnas barošana izstrādes laikā
Automašīnas barošana izstrādes laikā

Manuprāt, ātrākais un vienkāršākais veids, kā sākt šo projektu, ir:

  • programmatūras Arduino skices izstrādei vienkārši pievienojiet Arduino datoram, izmantojot USB
  • programmatūrai Raspberry Pi jums vajadzētu būt 5 V USB barošanai, kas var nodrošināt vismaz 3 ampērus. Un tam vajadzētu būt ieslēgšanas/izslēgšanas slēdzim. Ja vien datoram nav pievienots labs, darbināms USB centrmezgls, jūs, iespējams, nevarēsit barot Raspberry tieši no datora.
  • Kad esat gatavs pārbaudīt motorus/riteņus, vienkāršākais ir (skatīt fotoattēlu) labs barošanas avots. Tomēr tie nav lēti.

Šajā sadaļā es gribu teikt, ka jūs nevēlaties izmantot akumulatora enerģiju izstrādes laikā, jo tas ievērojami palēninās jūsu progresu.

Tāpat, darot kaut ko līdzīgu iepriekš minētajiem ieteikumiem, jums nav (vēl) jāuztraucas par to, kā jūs darbināsit automašīnu. Jūs varat atlikt šo lēmumu vēlāk projektā.

3. darbība: automašīnas barošana faktiskās lietošanas laikā

Automašīnas barošana faktiskās lietošanas laikā
Automašīnas barošana faktiskās lietošanas laikā
Automašīnas barošana faktiskās lietošanas laikā
Automašīnas barošana faktiskās lietošanas laikā

Ja jūs nolemjat sekot kursam (vai tam, ko esmu darījis) attiecībā uz 5 V jaudu pēc loģikas, tad ņemiet vērā, ka ne visas 5 V USB barošanas bankas ir piemērotas šim projektam.

Galvenais šeit ir tas, ka jums ir nepieciešams 5V, bet vismaz 3 ampēri! Padomājiet par to šādā veidā - jūs vēlaties powerbank, kas darbinās klēpjdatoru (iespējams).

Ja jūs dzīvojat ASV, es domāju, ka viens no labākajiem veidiem, kā to izdarīt, ir iegādāties no Best Buy. Kāpēc? 14 dienu naudas atgriešanas politikas dēļ.

Man faktiski bija jāizmēģina trīs dažādas powerbankas, pirms atradu vienu, kas darbotos. Pārējie izraisa Raspberry Pi sūdzību par zemu spriegumu.

Es biju sācis ar lētāko powerbank, un tikai turpināju izmēģināt nākamo modeli (kas maksāja vairāk), līdz atradu vienu, kas darbojās.

Kā darbināt Arduino

Udemy kursā autors izvēlējās barot Arduino tieši no powerbank (izmantojot paša izgatavotu pielāgotu PCB) un izmantoja strāvas tapas Arduino GPIO savienotājā.

Tomēr es izvēlējos vienkārši barot Arduino tieši no Raspberry Pi, izmantojot USB kabeli.

Jums būs jāizlemj, kurš ir labāks.

Kā barot motorus/motora vadītāju

Udemy kursā autors izvēlējās barot motorus/vadītāju tieši no 5 V barošanas bloka. Ja izmantojat šo pieeju, ir divi apsvērumi.

  1. Kad motori pirmo reizi sāk griezties, tie patērē vislielāko strāvu. Tas var (izraisīs) strāvas sprieguma pazemināšanos zem 5 V un aveņu atiestatīšanu.
  2. Izmantojot tikai 5 V motoru barošanai, jūs nedodat motoriem tik daudz enerģijas, kā jūs varētu, un automašīna kustēsies lēnāk (lēnāk). Esmu pārbaudījis motorus (ar šo barošanas avotu) (skat. Fotoattēlu) līdz vismaz 9V. Viņi strādā labi pie 9V.

Novērojumi par 9V (vai vairāk)

Ja paskatījāties uz visiem šī Instructable fotoattēliem un videoklipiem, pamanījāt, ka esmu samontējis pielāgotu PCB, lai izveidotu savu 9V barošanas avotu. Pa ceļam esmu iemācījusies dažas lietas.

Pašlaik motoru barošanai es paralēli izmantoju vairākas (3) 9V bateriju šūnas. Esmu izmantojis gan sārma, gan NiMH uzlādējamas baterijas.

Mācīšanās pieredze Nr. 1: Lai pareizi uzlādētu NiMH 9V baterijas, nepieciešams ilgs laiks (daudzas stundas).

Iespējamais risinājums: ieguldiet vairāku akumulatoru NiMH lādētājā. Tam vajadzētu būt "gudram" lādētājam.

Trūkums: tie nav lēti.

Mācīšanās pieredze #2: 9V baterijas patiesībā sastāv no vairākām nelielām iekšējām šūnām. Ja viena no šīm šūnām nomirst, visa baterija ir bezjēdzīga. Man NAV bijusi šāda problēma, bet es par to lasīju.

Mācīšanās pieredze #3: Ne visas 9 V baterijas ir vienāda sprieguma. Šis ir svarīgs. Jo lielāks spriegums, jo lielāks ātrums ir iespējams. Daži akumulatoru elementi (un lādētāji) ir tikai 8,4 V. Daži pat mazāk. Daži ir 9.6V.

Mācīšanās pieredze #4: 9V baterijas, īpaši NiMH, ir vieglas. Laba lieta. Tomēr lielākā daļa no tām nodrošina tikai mA izejas strāvu. Tāpēc man tie bija jānovieto paralēli. Kopējā strāvas jauda ir nepieciešama gandrīz 2 ampēri, pat īsu laiku.

Mācīšanās pieredze #5: Pastāv 9,6 V akumulatori, ko izmanto tādām lietām kā radio vadāmas automašīnas. Es vēl neesmu to izmantojis, bet es uzskatu, ka tie nodrošina lielāku strāvu, nekā veicot paralēlās 9 V baterijas, kā es to darīju. Turklāt jūs varat uzlādēt vienu ierīci. Iepakojumi ir dažādu izmēru. Un ir jāņem vērā svars. Un tad, vai jūs izmantojat iepakojumu, lai darbinātu visu automašīnu vai tikai motorus? Ja visai automašīnai, tad Raspberry Pi jums būs nepieciešams 5V pazemināšanas regulators.

L298 H-Bridge patiešām spēj izvadīt 5 V.

Ja jūs nolemjat izmantot divus atsevišķus barošanas avotus, iespējams, jums ir svara problēma (pārāk smaga).

4. solis: programmatūras programmēšana Gamepad braukšanai

Es domāju, ka es daudz šīs sadaļas aptvēru jau ar robotu vadāmu tālvadības USB spēļu paliktni Instructable, tāpēc es to šeit neatkārtošu.

Programmēšanas/programmatūras sadaļas šajā citā Instructable ir tikai ieteikumi. Es domāju, ka ar izmēģinājumu un kļūdu palīdzību cilvēks uzzina vairāk.

5. darbība: kameras pievienošana

Kameras pievienošana
Kameras pievienošana
Kameras pievienošana
Kameras pievienošana
Kameras pievienošana
Kameras pievienošana

Udemy kursā es uzskatu, ka autors izmanto apaļus koka dībeļus un līmes pistoli, lai izveidotu veidu, kā paaugstināt kameru.

Jūs vēlaties pacelt kameru tā, lai tā skatītos uz leju uz divu joslu ceļa, lai tā varētu vieglāk atpazīt joslas.

Kur es dzīvoju ASV, koka dībeļi bija ļoti lēti. Jūs varat tos iegādāties Lowe's vai Home Depot. Apaļo dībeļu vietā es izvēlējos kvadrātveida dībeļus.

Es arī izvēlējos izgatavot stingrāku pamatu kameras tornim, un visu torni padarīju noņemamu no automašīnas, lai es varētu rotaļāties un eksperimentēt, kāda ir tā labākā pozīcija automašīnā.

Es arī izveidoju torni ar domu, ka sākšu ar USB tīmekļa kameru, bet, iespējams, vēlāk pāriesim pie Picamera moduļa izmantošanas.

Iespējams, vēlēsities ieguldīt zivju acs tipa kamerā.

Es nopirku ļoti lētu karstās līmes pistoli, bet es vēlējos labāk nostiprināt torņa pamatni, tāpēc es iepriekš izurbju dažas skrūvju atveres un pievienoju skrūves, lai viss būtu labāk kopā.

Tad es pieskrūvēju pamatni pie automašīnas šasijas.

Ja vēlāk es vēlos pārvietot lietas, es vienkārši atskrūvēju pamatni no šasijas, izurbju jaunus caurumus šasijas jaunajā vietā un vēlreiz pieskrūvēju torni pie šasijas.

Es no lielā robota (Wallace Robot 4) pārnesu kodu "follow-me" Python un Node.js, lai pārbaudītu visu. Lūdzu, skatiet šajā sadaļā esošos fotoattēlus, lai iegūtu sarakstu ar youtubēm, kurās ir sniegta daudz sīkāka informācija par “sekot man”.

Kā jau minēju, vispirms bija vieglāk uzstādīt USB tīmekļa kameru. Vēlāk es varu uzstādīt Picamera moduli.

6. darbība: sejas atpazīšana - nosakiet pozīciju

Image
Image

Šī daļa nav Udemy kursa uzmanības centrā, taču tas bija jautrs vingrinājums.

Ja tīmeklī meklējat “python opencv sejas atpazīšana”, jūs atradīsit daudz labu piemēru, kā to izdarīt, un tie visi lielā mērā veic tās pašas darbības.

  1. ielādējiet "haar" sejas failu
  2. inicializējiet kameru
  3. sāciet cilpu, kur jūs satverat rāmi
  4. pārvērst krāsaino attēlu pelēkā mērogā
  5. ievadiet to opencv, lai tas atrastu seju (-as)
  6. sākt iekšējo cilpu (katrai atrastajai sejai) (manā gadījumā es pievienoju kodu, lai pārtrauktu, ja ir vairāk nekā 1 seja)

Šim nolūkam, kad esam atklājuši seju, mēs zinām X, Y, W un H no iedomātā kvadrāta, kas iezīmē seju.

Ja vēlaties, lai robots virzītos uz priekšu vai atpakaļ, jums vienkārši jāņem vērā W. Ja W ir pārāk liels (pārāk tuvu), ļaujiet robotam virzīties atpakaļ. Ja W ir pārāk mazs (pārāk tālu), ļaujiet robotam virzīties uz priekšu.

Kreisā/labā kustība ir nedaudz sarežģītāka, bet nav traka. Apskatiet šīs sadaļas attēlu, kurā sīki aprakstīts, kā noteikt kreisās un labās sejas stāvokli.

PIEZĪME:

Ja izmantojat kādu no Web OpenCV piemēriem, tie visi parāda faktisko skatu uz to, ko opencv "redz", un seja ir iezīmēta kvadrātā. Ja ievērojat, šis kvadrāts nav stabils (nemainīgs), pat ja jūs nekustaties.

Šīs mainīgās vērtības izraisītu robota pastāvīgu kustību uz priekšu vai atpakaļ, pa kreisi vai pa labi.

Tādējādi jums būs nepieciešama kāda veida delta gan uz priekšu/atpakaļ, gan pa kreisi/pa labi.

Paņemsim pa kreisi pret labo:

Kad esat aprēķinājis pa kreisi un pa labi, iegūstiet starpību (delta):

delta = abs (pa kreisi - pa labi)

Jums jāņem absolūts, jo jūs nezināt, kurš no tiem būs lielāks.

Tad jūs pievienojat kādu nosacītu kodu, lai mēģinātu pārvietoties tikai tad, ja delta ir lielāka par minimālo.

Jūs darītu to pašu attiecībā uz priekšu un atpakaļ.

7. solis: sejas stāvoklis - kustīgais robots

Kad jūs zināt, ka jums ir nepieciešams robots, lai pārvietotos pa kreisi vai pa labi, uz priekšu vai atpakaļ, kā to izdarīt?

Tā kā šī pamācība ir izstrādes stadijā, šobrīd es vienkārši nokopēju sava lielā robota kodu, lai to izmantotu šim projektam. Lūdzu, pārbaudiet manu Robotics atskaņošanas sarakstu vietnē youtube, kur tas viss ir sīki aprakstīts.

Īsi sakot, man ir kods slāņos.

Python sejas atpazīšanas skripts nosūta http pieprasījumus uz Node.js serveri

Node.js serveris klausās http pārvietošanās norāžu pieprasījumus, pārvērš tos par pielāgotu sērijas protokolu

Pielāgots sērijas protokols starp Node.js serveri un Arduino

Arduino skice, kas izpilda faktiskās komandas robota pārvietošanai

Udemy kurss to nedara tāpat kā iepriekš. Bet, tā kā es vēlējos gūt labus panākumus un koncentrēties uz faktisko attēla atpazīšanu, pagaidām es atkārtoti izmantoju savu iepriekšējo kodu.

Ieteicams: