Përmbajtje:

Ndërtoni veturën tuaj Vetë -Drejtuese - (Ky udhëzues është punë në proces): 7 hapa
Ndërtoni veturën tuaj Vetë -Drejtuese - (Ky udhëzues është punë në proces): 7 hapa

Video: Ndërtoni veturën tuaj Vetë -Drejtuese - (Ky udhëzues është punë në proces): 7 hapa

Video: Ndërtoni veturën tuaj Vetë -Drejtuese - (Ky udhëzues është punë në proces): 7 hapa
Video: Bisedoni me Jordan Nelson: ulni punën tuaj të parë Salesforce, markën personale dhe vrisni Link... 2024, Korrik
Anonim
Image
Image

Përshëndetje, Nëse i hidhni një sy Robotit tim Instructable on Drive With Remote USB Gamepad, ky projekt është i ngjashëm, por në një shkallë më të vogël. Ju gjithashtu mund të ndiqni ose të merrni ndonjë ndihmë ose frymëzim nga listat e dëgjimit Robotics, Home-Grown Voice-Recognition ose Self-Driving Car në Youtube.

Fillova me robotin e madh (Wallace 4), por që kur fillova një grup lokal Meetup, më duhej diçka në një shkallë më të vogël, dhe grupi ishte shumë i interesuar për vizionin kompjuterik.

Kështu që hasa në këtë kurs Udemy: Ndërtoni Veturën tuaj Vetë-Drejtuese që më dha idenë për këtë projekt.

Nëse jeni të interesuar për kursin Udemy, mund të vazhdoni të kontrolloni përsëri atje; ajo del në shitje për një zbritje të madhe herë pas here. Shënim: ka Pjesën 1 dhe Pjesën 2 - ju duhet të bëni një hetim se si t'i merrni të dy kurset si paketë (me zbritje).

Qëllimi i këtij udhëzimi është i dyfishtë. Së pari, për të dhënë disa tregues dhe alternativa për pjesë të caktuara të kursit (të tilla si pjesët dhe pajisjet). Dhe së dyti, për të zgjeruar kursin.

Qëllimi kryesor i kursit Udemy:

është të jesh në gjendje të marrësh një makinë robot të vogël me rrota për të vozitur vetë në një rrugë me dy korsi të zvogëluar.

Duhet të njohë shiritat e korsisë, dhe kur të ketë arritur në fund të rrugës.

Duhet të njohë një shenjë ndalimi (dhe ndaloje).

Gjithashtu, një sinjal trafiku KUQ dhe GREEN.

Ai gjithashtu duhet të njohë dhe manovrojë rreth një pengese (një makinë tjetër).

Çfarë shton ky Instructable në kurs:

Drejtoni makinën e vogël me një Gamepad USB të largët, pothuajse në të njëjtën mënyrë si në këtë udhëzues tjetër.

Jepni disa alternativa për atë që ofron kursi.

Ju madje nuk mund të keni nevojë të blini kursin:

Ky udhëzues mund të jetë gjithçka që ju nevojitet për të filluar.

Furnizimet

Pjesët thelbësore (të sugjeruara):

Një shasi robotike

Katër motorë

Arduino

Raspberry Pi (3, 3B+, 4)

Kamera (USB Webcam, ose moduli Picamera)

Fuqia e baterisë

Çelësat e ndezur/fikur

telat e kërcyesit

ngritje (plastike dhe ndoshta edhe metalike)

Ju lutemi rishikoni të gjithë Instructable dhe gjithashtu videot para se të përpiqeni të blini pjesë.

Pasi kam kryer këtë projekt, e kuptoj që pjesët e sakta nuk janë aq kritike.

Hapi 1: Më shumë detaje rreth pjesëve…

Image
Image
Më shumë detaje rreth pjesëve…
Më shumë detaje rreth pjesëve…
Më shumë detaje rreth pjesëve…
Më shumë detaje rreth pjesëve…

Videoja e lidhur hyn në disa detaje në lidhje me pjesët dhe disa çështje që gjeta.

  • Shikoni përreth për shasi / motorë të ndryshëm
  • Motorët tashmë duhet të kenë tela të ngjitur në to
  • Ju mund të dëshironi të keni një stërvitje dhe stërvitje, OSE një shasi me më shumë vrima
  • Mbani në mend se pesha është një çështje. Gjithçka duhet të jetë sa më e lehtë.
  • Drejtuesi i motorit L298 H-Bridge funksionon shkëlqyeshëm. SH NOTNIM: merrni një me blloqet e terminalit të vidave (shihni foton)
  • Ju me siguri do të doni përplasje plastike dhe metalike, madhësia M3 është ndoshta zgjidhja më e mirë.

Ngecjet plastike janë të mira për montimin e dërrasave në shasi (drejtuesi i motorit, Arduino, Raspberry, pcb fuqie, çelësi i ndezjes/fikjes, etj).

Mbërthimet metalike janë të mira për montimin e shasisë (forcës), dhe gjithashtu veçanërisht kur jeni duke u zhvilluar (programimi, testimi). Për zhvillim, ngërçet metalike mund të shërbejnë si shtylla. Ashtu si nëse po punonit në një makinë të vërtetë, ju doni të ngrini makinën në mënyrë që rrotat të jenë në ajër dhe të lëvizin lirshëm. Kjo eshte shume e rendesishme! Ju do të bëni gabime dhe nuk doni që makina të ngrihet dhe të përplaset.

Stërvitje + copa stërvitje

Unë me të vërtetë dua të theksoj përdorimin e një stërvitjeje, nëse keni mundësi, dhe përdorimin e ndalesave në vend të shiritit ngjitës të dyanshëm. Ka shumë të ngjarë që do të përfundoni duke hequr dhe ri-pozicionuar dërrasat tuaja, etj., Disa herë gjatë këtij projekti, dhe përdorimi i kasetës bëhet shumë i çrregullt.

Përdorimi i një stërvitjeje e bën shumë të lehtë ripozicionimin (veçanërisht nëse shasia është plastike) dhe duket më profesionale.

Hapi 2: Ngarkimi i makinës gjatë zhvillimit

Fuqizimi i makinës gjatë zhvillimit
Fuqizimi i makinës gjatë zhvillimit
Fuqizimi i makinës gjatë zhvillimit
Fuqizimi i makinës gjatë zhvillimit

Sipas mendimit tim, mënyra më e shpejtë, më e lehtë për të filluar me këtë projekt, është:

  • për zhvillimin e skicës së softuerit Arduino, thjesht lidhni Arduino me kompjuterin tuaj përmes USB
  • për softuerin Raspberry Pi, duhet të keni një energji USB 5V që mund të furnizojë të paktën 3 Amper. Dhe duhet të ketë një çelës ndezje/fikje. Nëse nuk keni një shpërndarës USB të mirë të fuqizuar të lidhur me kompjuterin tuaj, ndoshta nuk do të jeni në gjendje të furnizoni Raspberry drejtpërdrejt nga kompjuteri juaj.
  • Sepse kur të jeni gati për të testuar motorët/rrotat, më e lehtë është (shihni foton) një furnizim i mirë me energji elektrike. Sidoqoftë, ato nuk janë të lira.

Pika ime me këtë pjesë është të them se nuk doni të përdorni energjinë e baterisë gjatë zhvillimit, sepse kjo do të ngadalësojë shumë përparimin tuaj.

Gjithashtu, duke bërë diçka të ngjashme me sugjerimet e mësipërme, nuk keni pse të shqetësoheni (akoma) për saktësisht se si do ta vini në lëvizje makinën. Ju mund ta shtyni atë vendim për më vonë në projekt.

Hapi 3: Ngarkimi i makinës gjatë përdorimit aktual

Furnizimi me makinë i makinës gjatë përdorimit aktual
Furnizimi me makinë i makinës gjatë përdorimit aktual
Furnizimi me makinë i makinës gjatë përdorimit aktual
Furnizimi me makinë i makinës gjatë përdorimit aktual

Nëse vendosni të ndiqni kursin (ose atë që kam bërë) për fuqinë 5V në logjikë, atëherë kini parasysh se jo të gjitha bankat e energjisë 5V USB janë të mira për këtë projekt.

Pika kryesore këtu është se keni nevojë për 5V, por keni nevojë për të paktën 3 Amper! Mendoni në këtë mënyrë - ju doni një bankë energjetike që do të furnizojë me kompjuter laptop (ndoshta).

Nëse jetoni në SHBA. Unë mendoj se një nga mënyrat më të mira për ta bërë këtë është të blini nga Best Buy. Pse? Për shkak të politikës së tyre 14-ditore të kthimit të parave për kthime.

Unë në fakt duhej të provoja tre banka të ndryshme të energjisë para se të gjeja një që do të funksiononte. Ato të tjera bëjnë që Raspberry Pi të ankohet për nën-tension.

Unë kisha filluar me bankën më të shtrenjtë të energjisë, dhe vazhdova të provoja modelin tjetër (që kushtoi më shumë), derisa gjeta një që funksiononte.

Si të fuqizoni Arduino

Në kursin Udemy, autori zgjodhi të aktivizojë Arduino direkt nga powerbank (përmes një PCB të personalizuar që ai krijoi) dhe ai përdori kunjat e energjisë në lidhësin GPIO të Arduino.

Unë, megjithatë, zgjodha të furnizoj Arduino direkt nga Raspberry Pi, përmes kabllit USB.

Ju do të duhet të vendosni se cila është më mirë.

Si të fuqizoni motorët/drejtuesin e motorit

Në kursin Udemy, autori zgjodhi të fuqizojë motorët/drejtuesin direkt nga fuqia bankare 5V. Ekzistojnë dy konsiderata nëse përdorni atë qasje.

  1. Kur motorët fillojnë të kthehen për herë të parë, ata tërheqin më aktualin. Kjo mund (do) të bëjë që tensioni i rrymës të ulet (të ulet) nën 5V, dhe të bëjë që Mjedra të rivendoset.
  2. Përdorimi i vetëm 5V për të fuqizuar motorët do të thotë që ju nuk po siguroni aq shumë energji sa mundeni për motorët, dhe makina do të lëvizë më ngadalë (më e ngadaltë). Kam testuar motorët (me atë furnizim me energji elektrike) (shiko foton) në të paktën 9V. Ata punojnë mirë në 9V.

Vëzhgime rreth 9V (ose më shumë)

Nëse i hidhni një sy të gjitha fotove dhe videove për këtë Instructable, vutë re se unë mblodha një PCB të personalizuar për të krijuar burimin tim të energjisë 9V. Kam mësuar disa gjëra gjatë rrugës.

Tani për tani unë jam duke përdorur disa qeliza baterie 9V paralelisht, për të fuqizuar motorët. Kam përdorur bateri alkaline dhe NiMH të rimbushshme.

Përvoja mësimore #1: Duhet shumë kohë (shumë orë) për të ngarkuar siç duhet bateritë NiMH 9V.

Zgjidhja e mundshme: Investoni në një karikues NiMH me shumë bateri. Duhet të jetë një karikues "i zgjuar".

Disavantazhi: Ato nuk janë të lira.

Përvoja mësimore #2: Bateritë 9V në të vërtetë përbëhen nga disa qeliza të vogla të brendshme. Nëse njëra nga ato qeliza vdes, e gjithë bateria është e padobishme. NUK e kam pasur këtë problem, por kam lexuar për të.

Përvoja e të mësuarit #3: Jo të gjitha bateritë 9V janë të njëjta tension. Ky është i rëndësishëm. Meqenëse sa më i lartë të jetë tensioni, aq më shumë shpejtësi është e mundur. Disa qeliza baterie (dhe karikues) janë vetëm 8.4V. Disa edhe më pak. Disa janë 9.6V.

Përvoja e të mësuarit #4: Bateritë 9V, në veçanti ato NiMH, janë të lehta në peshë. Një gjë e mirë. Sidoqoftë, shumica e tyre japin vetëm mA të rrymës dalëse. Kjo është arsyeja pse unë duhej t'i vendosja ato paralelisht. Keni nevojë për një kapacitet total aktual prej gati 2 Amper, edhe për periudha të shkurtra kohore.

Përvoja e të mësuarit #5: Ekzistojnë pako baterie 9.6V, të përdorura për gjëra të tilla si makina të kontrolluara me radio. Unë nuk e kam përdorur ende, por besoj se ato japin më shumë rrymë sesa bateritë paralele 9V siç bëra unë. Gjithashtu, mund të ngarkoni njësinë e vetme. Paketat vijnë në madhësi të ndryshme. Dhe ka një konsideratë për peshën. Dhe pastaj, a e përdorni paketën për të fuqizuar të gjithë makinën, apo vetëm motorët? Nëse për të gjithë makinën, atëherë do të keni nevojë për një rregullator të uljes 5V për Raspberry Pi.

L298 H-Bridge ka aftësinë për të nxjerrë 5V për këtë qëllim, por unë jam i shqetësuar se sa rrymë mund të prodhojë për Raspberry Pi, dhe nëse do të jetë shumë e ngarkuar në bordin L298.

Nëse vendosni të keni dy burime të veçanta të energjisë, atëherë mund të keni një problem me peshën (shumë të rëndë).

Hapi 4: Programimi i Softuerëve për Drejtimin e Gamepad

Unë mendoj se kam mbuluar shumë nga ky seksion tashmë në Robot Driven Via Remote USB Gamepad Instructable, kështu që nuk do ta përsëris këtu.

Seksionet e programimit/softuerit në atë Instructable tjetër janë vetëm një sugjerim. Unë mendoj se dikush mëson më shumë nga prova dhe gabimi.

Hapi 5: Shtimi i një aparati fotografik

Shtimi i një Kamera
Shtimi i një Kamera
Shtimi i një Kamera
Shtimi i një Kamera
Shtimi i një Kamera
Shtimi i një Kamera

Në kursin Udemy, unë besoj se autori përdor dowels prej druri të rrumbullakët dhe një armë zam për të ndërtuar një mënyrë për të ngritur kamerën.

Ju do të dëshironi të ngrini kamerën në mënyrë që të shikojë poshtë në rrugën me dy korsi, në mënyrë që të mund të njohë më lehtë korsitë.

Aty ku unë jetoj në SHBA, kunjat prej druri ishin shumë të lira. Ju mund t'i blini ato në Lowe ose Home Depot. Zgjodha kunja katrorë në vend të kunjave të rrumbullakët.

Zgjodha gjithashtu të bëja një bazë më të fortë për kullën e kamerës dhe e bëra të gjithë kullën të hiqet nga makina, në mënyrë që të mund të luaj me të dhe të eksperimentoj se cili është pozicioni më i mirë për të në makinë.

Gjithashtu, e bëra kullën me idenë në mendje se do të filloj me një kamerë në internet USB, por ndoshta më vonë të kaloj në përdorimin e modulit Picamera.

Ju mund të dëshironi të investoni në një aparat fotografik të llojit të syve të peshkut.

Bleva një armë shumë të lirë me zam të nxehtë, por doja të përforcoja bazën e kullës më mirë, kështu që para-shpova disa vrima vidash dhe shtova vida për të mbajtur gjithçka më mirë së bashku.

Pastaj e fiksova bazën në shasinë e makinës.

Nëse më vonë, unë dua të lëviz gjërat, unë thjesht heq bazën nga shasia, shpoj vrima të reja në vendin e ri të shasisë dhe e rrokullis përsëri kullën në shasi.

Unë solla kodin "follow-me" Python dhe Node.js nga roboti i madh (Wallace Robot 4) si një mënyrë për të testuar gjithçka. Ju lutemi shikoni fotot në këtë seksion për listën e youtubes që japin shumë më tepër detaje rreth "follow-me".

Siç e përmenda, ishte më e lehtë për të montuar së pari një kamerë në internet USB. Më vonë mund të montoj modulin Picamera.

Hapi 6: Njohja e Fytyrës - Përcaktoni Pozicionin

Image
Image

Kjo pjesë nuk është fokusi i kursit Udemy, por ishte një ushtrim argëtues.

Nëse bëni një kërkim në internet për "njohjen e fytyrës python opencv", do të gjeni shumë shembuj të mirë se si ta bëni këtë, dhe të gjithë ata pothuajse ndjekin të njëjtat hapa.

  1. ngarkoni skedarin e fytyrës "haar"
  2. iniconi kamerën
  3. filloni një lak ku kapni një kornizë
  4. shndërroni imazhin me ngjyra në shkallë gri
  5. ushqeni atë në opencv që të gjejë fytyrë (të)
  6. filloni një lak të brendshëm (për secilën fytyrë të gjetur) (në rastin tim, shtoj kod për të abortuar nëse më shumë se 1 fytyrë)

Për këtë qëllim këtu, sapo të kemi zbuluar një fytyrë, ne njohim X, Y, W dhe H të katrorit imagjinar që përshkruan fytyrën.

Nëse dëshironi që roboti të lëvizë përpara ose prapa, ju vetëm duhet të keni parasysh W. Nëse W është shumë i madh (shumë afër), bëni që roboti të kthehet mbrapa. Nëse W është shumë i vogël (shumë larg), bëni që roboti të ecë përpara.

Lëvizja majtas/djathtas është pak më e komplikuar, por jo e çmendur. Hidhini një sy figurës për këtë seksion që detajon se si të përcaktoni pozicionin e fytyrës majtas kundrejt djathtas.

SHËNIM:

Nëse drejtoni ndonjë nga shembujt e OpenCV në internet, të gjithë tregojnë pamjen aktuale të asaj që "shikon" opencv, me fytyrën e përshkruar në një katror. Nëse do të vëzhgoni, ai katror nuk është i qëndrueshëm (konstant), edhe nëse nuk jeni duke lëvizur.

Ato vlera të ndryshueshme do të bënin që roboti të ishte vazhdimisht në lëvizje, përpara ose prapa, majtas ose djathtas.

Kështu, do t'ju duhet të keni një lloj delte si për përpara/mbrapa ashtu edhe për të majtë/të djathtë.

Le të marrim majtas kundrejt djathtas:

Pasi të keni llogaritur majtas dhe djathtas, atëherë merrni diferencën (delta):

delta = abs (majtas - djathtas)

Ju duhet të merrni absolutin sepse nuk e dini cili do të jetë numri më i madh.

Pastaj shtoni një kod të kushtëzuar vetëm në përpjekjen për të lëvizur nëse delta është më e madhe se një minimum.

Ju do të bëni të njëjtën gjë për përpara kundra.

Hapi 7: Pozicioni i Fytyrës - Roboti Lëvizës

Pasi ta dini se keni nevojë që roboti të lëvizë majtas ose djathtas, përpara ose prapa, si e bëni këtë?

Meqenëse ky Instructable është një punë në proces, për momentin, unë thjesht kopjova kodin nga roboti im i madh për ta përdorur për këtë projekt. Ju lutemi shikoni listën time të luajtjes së Robotikës në youtube ku detajon të gjitha këto.

Shkurtimisht, kam kodin në shtresa.

Skripti i njohjes së fytyrës Python bën kërkesa http në serverin Node.js

Serveri Node.js dëgjon kërkesat http për drejtimet e lëvizjes, i konverton ato në protokoll serik të personalizuar

Protokoll serik i personalizuar midis serverit Node.js dhe Arduino

Skica Arduino që bën komandat aktuale për të lëvizur robotin

Kursi Udemy nuk e bën atë si më lart. Por meqenëse doja të bëja përparim të mirë dhe të përqendrohesha në njohjen aktuale të imazhit, unë ripërdori kodin tim të mëparshëm tani për tani.

Recommended: