Talaan ng mga Nilalaman:

Kinokontrol ng Gesture Rover Gamit ang isang Accelerometer at isang RF Transmitter-Receiver Pair: 4 na Hakbang
Kinokontrol ng Gesture Rover Gamit ang isang Accelerometer at isang RF Transmitter-Receiver Pair: 4 na Hakbang

Video: Kinokontrol ng Gesture Rover Gamit ang isang Accelerometer at isang RF Transmitter-Receiver Pair: 4 na Hakbang

Video: Kinokontrol ng Gesture Rover Gamit ang isang Accelerometer at isang RF Transmitter-Receiver Pair: 4 na Hakbang
Video: 🟡 POCO X5 PRO - MOST DETAILED REVIEW and TESTS 2024, Hunyo
Anonim
Kinokontrol ng Gesture Rover Gamit ang isang Accelerometer at isang RF Transmitter-Receiver Pair
Kinokontrol ng Gesture Rover Gamit ang isang Accelerometer at isang RF Transmitter-Receiver Pair

Hoy, ikaw, Kailanman ninanais ang pagbuo ng isang rover na maaari mong patnubayan sa pamamagitan ng simpleng mga kilos ng kamay ngunit hindi kailanman makakakuha ng lakas ng loob na makipagsapalaran sa mga intricacies ng pagproseso ng imahe at pag-interfaced ng isang webcam sa iyong microcontroller, hindi pa banggitin ang paakyat na labanan upang malampasan ang mahinang saklaw at line-of- mga isyu sa paningin? Kaya, huwag kang matakot … sapagkat may isang madaling paraan! Narito, habang ipinakikita ko sa iyo ang makapangyarihang ACCELEROMETER! * ba dum tsss *

Ang isang accelerometer ay isang talagang cool na aparato na sumusukat sa gravitational acceleration kasama ang isang linear axis. Kinakatawan ito nito bilang isang antas ng boltahe na nagbabagu-bago sa pagitan ng lupa at ng boltahe ng suplay, na binabasa ng aming microcontroller bilang isang halagang analog. Kung ilalapat natin nang kaunti ang aming talino (kaunting matematika lamang at ilang pisika ng Newtonian), hindi lamang natin ito magagamit upang masukat ang linear na paggalaw kasama ang isang axis, ngunit maaari din nating gamitin ito upang matukoy ang anggulo ng pagkiling at pakiramdam ng mga panginginig. Huwag mag-alaala! Hindi namin kakailanganin ang matematika o pisika; haharapin lang namin ang mga hilaw na halagang iniluwa ng accelerometer. Sa katunayan, hindi mo talaga kailangang alalahanin ang iyong sarili tungkol sa mga teknikalidad ng isang accelerometer para sa proyektong ito. Hahawakan ko lang ang ilang mga detalye at detalyado lamang hangga't kailangan mong maunawaan ang malaking larawan. Bagaman, kung interesado kang pag-aralan ang panloob na mekanika ay tumingin dito.

Kailangan mo lamang isaisip ito sa ngayon: ang isang accelerometer ay ang gizmo (madalas na isinama sa isang gyroscope) na magbubukas ng mga pintuan sa lahat ng mga laro ng sensor ng paggalaw na nilalaro namin sa aming mga smartphone; isang laro ng karera ng kotse halimbawa, kung saan pinapatakbo namin ang sasakyan sa pamamagitan lamang ng Pagkiling ng aming mga aparato sa alinmang direksyon. At, maaari nating gayahin ang napaka-epekto na ito sa pamamagitan ng pagdikit ng isang accelerometer (siyempre, sa ilang mga auxiliary) sa isang guwantes. Inilagay lamang namin ang aming mga magic gloves at ikiling ang aming mga kamay sa kaliwa o kanan, pasulong o paatras at nakikita ang aming mga rovers na sumayaw sa aming mga tono. Ang kailangan lang naming gawin dito ay isalin ang mga pagbabasa ng accelerometer sa mga digital na signal na maaaring bigyang kahulugan at mag-isip ng mga motor sa rover ang isang mekanismo upang maipadala ang mga signal na ito sa rover. Upang magawa ito, tumawag kami sa mabuting ol 'Arduino at mga pantulong nito para sa eksperimento ngayon, isang pares ng transmiter-receiver ng RF na tumatakbo sa 434MHz sa gayon ay nagbibigay ng isang saklaw na halos 100-150m sa bukas na espasyo, na nakakatipid din sa atin mula sa line-of- mga isyu sa paningin.

Napakagandang hack, eh? Sumisid tayo …

Hakbang 1: Ipunin ang Iyong Mga Pantustos

Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
Ipunin ang Iyong Mga Pantustos
• Arduino Nano x1
• Accelerometer (ADXL335) x1
• 5V DC Motor + Gulong x2 bawat isa
• Bovine wheel * x1
• L293D Motor Driver + 16 pin IC socket x1 bawat isa
• 434 MHz RF Transmitter x1
• 434 MHz RF Receiver x1
• HT-12E Encoder IC + 18 pin IC socket x1 bawat isa
• HT-12D Decoder IC + 18 pin IC socket x1 bawat isa
• LM7805 Voltage Regulator x1
• Paglipat ng Pushbutton x2
• Red LED + 330O risistor x2 bawat isa
• Dilaw na LED + 330O risistor x1 bawat isa
• Green LED + 330O risistor (opsyonal) x4 bawat isa
• 51kO at 1MO Resistors x1 bawat isa
• 10µF Radial Capacitors x2
Mga Baterya, Konektor ng Baterya, USB Cable, Jumper Wires, Mga Header ng Babae, 2-pin Screw Terminal, PCB, Chasis at iyong karaniwang Soldering Accessories

Kung nagtataka ka kung bakit gumagamit kami ng isang bovine wheel, ang bagay ay iyon, ang mga transmiter ng RF at mga module ng tatanggap ay nakakuha lamang ng 4 na mga data pin, na nangangahulugang maaari lamang tayong magmaneho ng 2 mga motor at samakatuwid ang paggamit ng isang bovine wheel upang suportahan ang istraktura. Gayunpaman, kung sa tingin mo na ang iyong rover ay magmumukhang isang tad mas cool na may apat na gulong, huwag magalala, mayroong isang trabaho sa paligid! Sa kasong ito, i-gasgas lamang ang gulong ng bovine mula sa listahan at magdagdag ng isa pang pares ng mga motor na 5V DC, na sinamahan ng isang gulong, at abangan ang simpleng pag-hack na tinalakay patungo sa pagtatapos ng hakbang 3.

Sa wakas, para sa matapang na puso, mayroong saklaw para sa isa pang bahagyang pagbabago sa disenyo, na kung saan ay medyo nagsasangkot ng pag-engineering ng iyong sariling Arduino. Tumungo sa seksyon ng bonus sa susunod na hakbang at tingnan ang iyong sarili. Kakailanganin mo rin ang ilang dagdag na mga supply: isang ATmega328P, isang 28pin IC socket, isang 16Mhz crystal oscillator, dalawang 22pF ceramic cap, isa pang 7805 voltage regulator, dalawa pang 10μF radial cap at 10kΩ, 680Ω, 330Ω resistors, at oo, minus ang Arduino!

Hakbang 2: Wire Up ang Transmitter

Wire Up ang Transmitter
Wire Up ang Transmitter
Wire Up ang Transmitter
Wire Up ang Transmitter
Wire Up ang Transmitter
Wire Up ang Transmitter
Wire Up ang Transmitter
Wire Up ang Transmitter

Babagain namin ang proyekto sa dalawang nasasakupan: ang transmitter at ang mga circuit ng receiver. Ang transmitter ay binubuo ng isang accelerometer, isang Arduino at isang RF transmitter module na isinama sa isang HT-12E encoder IC, lahat ay naka-wire ayon sa naka-attach na eskematiko.

Ang accelerometer, tulad ng ipinakilala nang mas maaga, ay nagsisilbing kilalanin ang aming kilos ng kamay. Gagamitin namin ang isang three-axis accelerometer (karaniwang tatlong mga solong-axis na accelerometer sa isa) upang matugunan ang aming mga pangangailangan. Maaari itong magamit upang sukatin ang pagpabilis sa lahat ng tatlong mga sukat, at tulad ng maaaring nahulaan mo, hindi magbubunga ng isa, ngunit isang hanay ng tatlong mga halagang analog na may kaugnayan sa tatlong mga axe nito (x, y at z). Sa totoo lang, kailangan lang namin ng acceleration kasama ang x at y axes dahil maaari lamang naming himukin ang rover sa apat na direksyon: froward o paatras (ibig sabihin sa kahabaan ng y axis) at pakaliwa o pakanan (ibig sabihin kasama ang x axis). Kakailanganin namin ang z axis kung nagtatayo kami ng isang drone, upang makontrol din namin ang pag-akyat o pagbaba nito sa pamamagitan ng mga kilos. Sa anumang kaso, ang mga halagang ito ng analog na ibinibigay ng accelerometer ay dapat na mai-convert sa mga digital na signal upang makapag-drive ng mga motor. Ito ay alagaan ng Arduino na nagpapadala rin ng mga signal na ito, sa pagkakumberte, sa rover sa pamamagitan ng RF transmitter module.

Ang RF transmitter ay nakakuha lamang ng isang trabaho: upang maipadala ang "serial" data na magagamit sa pin 3 out ang antena sa pin 1. Itinataguyod nito ang paggamit ng HT-12E, isang 12 bit parallel-to-serial data encoder, na nangongolekta hanggang sa 4 na piraso ng parallel data mula sa Arduino sa mga linya na AD8 hanggang sa AD11, sa gayon ay nagbibigay-daan sa amin na magbigay ng puwang para sa hanggang 24 = 16 na magkakaibang mga kumbinasyon ng I / O na taliwas sa solong data pin sa RF transmitter. Ang natitirang 8 piraso, na iginuhit mula sa mga linya na A0 hanggang A7 sa encoder, ay bumubuo ng address byte, na nagpapadali sa pagpapares ng RF transmitter na may kaukulang RF receiver. Ang 12 bits ay magkakasama at naka-serialize, at ipinasa sa pin ng data ng RF transmitter, na siya namang, ASK-modulates ang data sa isang 434MHz carrier wave at i-shoot ito sa pamamagitan ng antena sa pin 1.

Konseptwal, ang anumang RF receiver na nakikinig sa 434Mhz ay dapat na maharang, gawing demodulate at ma-decode ang data na ito. Gayunpaman, ang mga linya ng address sa HT-12E, at ang mga nasa HT-12D counterpart (isang 12 bit serial-to-parallel data decoder), payagan kaming mag-render ng isang RF na transmiter-receiver na pares na natatangi sa pamamagitan ng pagruruta ng data lamang sa inilaan ang tagatanggap sa gayo'y naglilimita sa komunikasyon sa lahat ng iba pa. Ang kailangan lang sa amin ay i-configure ang mga linya ng address nang magkapareho sa parehong mga harapan. Halimbawa, dahil na-ground namin ang lahat ng mga linya ng address para sa aming HT-12E, dapat naming gawin ang pareho para sa HT-12D sa pagtanggap kung hindi man makakatanggap ang rover ng mga signal. Sa ganitong paraan, makokontrol din natin ang maraming mga rovers gamit ang isang solong circuit ng transmiter sa pamamagitan ng magkaparehong pag-configure ng mga linya ng address sa mga HT-12D sa bawat isa sa mga tatanggap. O kaya, maaari nating ilagay sa dalawang guwantes, ang bawat isa ay nakakabit ng isang transmiter circuit na naglalaman ng isang natatanging pagsasaayos ng linya ng address (sabihin, isa sa lahat ng mga linya ng address na naka-ground at ang isa pa ay may mataas na hawak, o isa na may isang linya na pinagbatayan habang ang natitirang pitong hinahawakan mataas at ang isa pa na may dalawang linya na nakaugat habang ang natitirang anim na pinanghahawakang mataas, o anumang iba pang kombinasyon nito) at bawat pagpipiloto ng maraming magkatulad na naka-configure na mga rover. Patugtugin ang maestro sa isang android symphony!

Ang isang mahalagang bagay na dapat tandaan habang ang pag-iipon ng circuit ay ang halaga ng Rosc. Ang HT-12E ay may panloob na oscillator circuit sa pagitan ng mga pin 15 at 16, na pinagana sa pamamagitan ng pagkonekta ng isang risistor, na tinatawag na Rosc, sa pagitan ng mga pin na iyon. Ang halagang napili para sa Rosc ay talagang tumutukoy sa dalas ng oscillator, na maaaring mag-iba depende sa boltahe ng suplay. Ang pagpili ng isang naaangkop na halaga para sa Rosc ay mahalaga sa paggana ng HT-12E! Sa isip, ang dalas ng oscillator ng HT-12E ay dapat na 1/50 beses kaysa sa katapat na HT-12D. Samakatuwid, dahil nagpapatakbo kami sa 5V, pinili namin ang mga resistor ng 1MΩ at 51kΩ bilang Rosc para sa mga HT-12E at HT-12D circuit ayon sa pagkakabanggit. Dapat bang balak mong patakbuhin ang mga circuit sa ibang boltahe ng suplay, sumangguni sa grapong "Oscillator Frequency vs Supply Voltage" sa pahina 11 ng naka-attach na HT-12E datasheet upang matukoy ang eksaktong dalas ng oscillator at resistor na gagamitin.

Gayundin, bilang isang tala sa gilid, gagamitin namin ang mga babaeng header dito (naghahatid ng isang katulad na layunin bilang mga socket ng IC) upang mai-plug ang accelerometer, ang RF transmitter at ang Arduino sa circuit sa halip na direktang i-solder ang mga ito sa PCB. Ang hangarin na tirahan ng isang maliit na sangkap na muling magagamit. Sabihin, matagal na mula nang ininhinyero mo ang iyong kilos na kinokontrol ng kilos at nakaupo lamang doon, kalahati na natakpan ng alikabok, sa ibabaw ng iyong tropeo at nadapa ka sa isa pang mahusay na nakapagturo na magagamit ang pagiging epektibo ng isang accelerometer. Kaya ano ang gagawin mo? Yank mo lang ito sa labas ng iyong rover at itulak ito sa iyong bagong circuit. Hindi na kailangang ipatawag ang "Mga Amazon" upang makakuha ka ng bago:-p

Bonus: Tanggalin ang Arduino, at gayunpaman Huwag

Kung sakali pakiramdam mo ay medyo mas malakas ang loob, at lalo na kung sa palagay mo na ang paggasta sa magandang dinisenyong kamangha-manghang ito (ang Arduino, syempre) para sa isang walang gaanong gawain tulad ng sa atin ay medyo labis na labis, labis na magtiis.; at kung hindi, huwag mag-atubiling lumaktaw sa susunod na hakbang.

Ang aming layunin dito ay upang gawing isang permanenteng miyembro ng koponan ang Arduino (ang utak ng Arduino; oo, pinag-uusapan ko ang ATmega IC!) Ang ATmega ay mai-program upang magpatakbo ng isang solong sketch nang paulit-ulit upang maaari itong magsilbi bilang isang walang hanggang bahagi ng circuit, tulad ng HT-12E-isang simpleng IC, nakaupo lamang doon, ginagawa kung ano ang dapat. Hindi ba ganito dapat ang anumang tunay na naka-embed na system?

Anyways, upang magpatuloy sa pag-upgrade na ito, baguhin lamang ang circuit ayon sa ikalawang nakakalakip na eskematiko. Dito, pinalitan lamang namin ang mga babaeng header para sa Arduino ng isang IC socket para sa ATmega, magdagdag ng isang 10K pull-up risistor sa reset pin (pin 1) ng IC at ibomba ito gamit ang isang panlabas na orasan sa pagitan ng mga pin 9 at 10 Sa kasamaang palad, kung aalisin natin ang Arduino, binitawan din natin ang mga built-in na voltage regulator; ergo, dapat nating kopyahin ang LM7805-circuit na ginamit namin para sa tatanggap din dito. Bukod pa rito, gumagamit din kami ng isang divider ng boltahe upang iguhit ang 3.3V na kinakailangan upang mapagana ang accelerometer.

Ngayon, ang tanging iba pang mga catch dito ay ang pag-program ng ATmega upang gawin ang trabaho nito. Hihintayin mo pa rin ito hanggang sa hakbang 4. Kaya, manatiling nakatutok…

Hakbang 3: At, ang Tatanggap

At, ang Tumatanggap
At, ang Tumatanggap
At, ang Tumatanggap
At, ang Tumatanggap
At, ang Tumatanggap
At, ang Tumatanggap
At, ang Tumatanggap
At, ang Tumatanggap

Ang tatanggap ay binubuo ng isang module ng RF receiver na isinama sa isang HT-12D decoder IC at isang pares ng DC motors na pinapatakbo sa tulong ng isang L293D motor driver, lahat ay naka-wire ayon sa naka-attach na eskematiko.

Ang trabaho lamang ng RF receiver ay upang i-demodulate ang alon ng carrier (natanggap sa pamamagitan ng antena nito sa pin 1) at i-render ang nakuhang "serial" na data sa pin 7 mula sa kung saan kinuha ito ng HT-12D para sa deserialization. Ngayon, sa pag-aakalang ang mga linya ng address (A0 hanggang A7) sa HT-12D ay naka-configure na magkapareho sa katapat nitong HT-12E, ang 4 na magkatulad na piraso ng data ay nakuha at naipasa, sa pamamagitan ng mga linya ng data (D8 hanggang D11) sa HT-12D, sa driver ng motor, na kung saan ay binibigyang kahulugan ang mga signal na ito upang himukin ang mga motor.

Muli, bigyang pansin ang halaga ng Rosc. Ang HT-12D, mayroon ding panloob na circuit ng oscillator sa pagitan ng mga pin 15 at 16, na pinagana sa pamamagitan ng pagkonekta ng isang risistor, na tinatawag na Rosc, sa pagitan ng mga pin na iyon. Ang halagang napili para sa Rosc ay talagang tumutukoy sa dalas ng oscillator, na maaaring mag-iba depende sa boltahe ng suplay. Ang pagpili ng isang naaangkop na halaga para sa Rosc ay mahalaga sa paggana ng HT-12D! Mainam na ang dalas ng oscillator ng HT-12D ay dapat na 50 beses kaysa sa katapat na HT-12E. Samakatuwid, dahil nagpapatakbo kami sa 5V, pinili namin ang mga resistor ng 1MΩ at 51kΩ bilang Rosc para sa mga HT-12E at HT-12D circuit ayon sa pagkakabanggit. Dapat bang balak mong patakbuhin ang mga circuit sa ibang boltahe ng suplay, sumangguni sa grapong "Oscillator Frequency vs Supply Voltage" sa pahina 5 ng naka-attach na HT-12D datasheet upang matukoy ang eksaktong dalas ng oscillator at resistor na gagamitin.

Gayundin, huwag kalimutan ang mga babaeng header para sa RF receiver.

Bilang pagpipilian, ang isang LED ay maaaring konektado sa pamamagitan ng isang kasalukuyang 330Ω na limitasyon sa resistor sa bawat isa sa 4 na mga pin ng data ng HT-12D upang matulungan matukoy ang kaunting natanggap sa pin na iyon. Magaan ang LED kung ang natanggap na kaunti ay TAAS (1) at malabo kung ang natanggap na kaunti ay mababa (0). Bilang kahalili, ang isang solong LED ay maaaring itali sa VT pin ng HT-12D (muli, sa pamamagitan ng isang kasalukuyang 330Ω na nililimitahan na risistor), na masisindi kung may wastong pagpapadala.

Ngayon, kung hinahanap mo ang pag-hack gamit ang mga motor na pinag-uusapan ko sa unang hakbang, madali itong sumpain! I-wire lamang ang dalawang motor sa bawat set nang kahanay tulad ng ipinakita sa pangalawang eskematiko. Gumagana ito sa paraang dapat ito sapagkat ang mga motor sa bawat set (ang harap at likuran na mga motor sa kaliwa at ang harap at likuran na mga motor sa kanan) ay hindi kailanman hinihimok sa magkabilang direksyon. Iyon ay, upang mai-kanan ang rover, ang harap at likurang mga motor sa kaliwa ay dapat parehong hinihimok pasulong at ang harap at likurang mga motor sa kanan ay dapat na parehong hinihimok paatras. Katulad nito, upang makaliwa ang rover, ang harap at likuran na mga motor sa kaliwa ay dapat parehong hinihimok paatras at ang harap at likurang mga motor sa kanan ay dapat na parehong hinihimok. Samakatuwid, ligtas na pakainin ang parehong pares ng voltages sa parehong mga motor sa isang hanay. At, ang paraan upang magawa ito ay sa pamamagitan lamang ng pag-hook sa kanila ng mga motor na kahanay.

Hakbang 4: Nasa Code

Nasa Code
Nasa Code

Mayroon lamang isang bagay na natitira upang gawin upang maiangat ang rover. Oo, nahulaan mo ito ng tama! (Inaasahan kong ginawa mo) Kailangan pa rin naming isalin ang mga pagbabasa ng accelerometer sa isang form na maaaring bigyang-kahulugan ng driver ng motor upang makapagmamaneho ng mga motor. Kung iniisip mo na dahil ang mga pagbabasa ng accelerometer ay analog at inaasahan ng driver ng motor ang mga digital na signal, kailangan naming magpatupad ng isang uri ng isang ADC, mabuti, hindi sa teknikal, ngunit iyon ang medyo kailangan nating gawin. At medyo prangko nito.

Alam namin na ang isang accelerometer ay sumusukat sa gravitational acceleration kasama ang isang linear axis at ang acceleration na ito ay kinakatawan bilang isang antas ng boltahe na nagbabagu-bago sa pagitan ng lupa at ng supply voltage, na binabasa ng aming microcontroller bilang isang analog na halaga na nag-iiba sa pagitan ng 0 at 1023. Ngunit, dahil kami Nagpapatakbo ng accelerometer sa 3.3V, ipinapayong itakda namin ang analog na sanggunian para sa 10-bit ADC (na isinama sa ATmeaga sakay ng isang Arduino) sa 3.3V. Gagawing mas simple ang pag-unawa sa mga bagay; bagaman, hindi ito magiging mahalaga para sa aming maliit na eksperimento kahit na hindi namin (kakailanganin lamang naming i-tweak nang kaunti ang code). Gayunpaman, upang magawa ito, binabalewala lamang namin ang mga pin ng AREF sa Arduino (pin 21 sa ATmega) hanggang sa 3.3V at ipahiwatig ang pagbabago sa code sa pamamagitan ng pagtawag sa analogReferen (Panlabas).

Ngayon, kapag inilatag natin ang accelerometer flat at analog Basahin ang pagpapabilis kasama ang mga axis ng x at y (tandaan? Kailangan lang natin ang dalawang palakol na ito), nakakakuha kami ng isang halagang 511 (ibig sabihin kalahating paraan sa pagitan ng 0 at 1023), na kung saan ay isa lamang paraan ng pagsasabi na mayroong 0 pagpapabilis kasama ang mga palakol na ito. Sa halip na paghukay sa mga detalye ng katotohanan, isipin lamang ito bilang x at y axes sa isang grap, na may halagang 511 na nagsasaad ng pinagmulan at 0 at 1023 ang mga endpoint na nakalarawan sa pigura; i-orient ang accelerometer sa isang paraan na ang mga pin nito ay tumuturo at hinahawakan nang mas malapit sa iyo o baka mabaligtad / ipagpalit ang mga palakol. Nangangahulugan ito na, kung ikiling natin ang accelerometer sa kanan, dapat nating basahin ang halagang higit sa 511 sa kahabaan ng x-axis, at kung ikiling natin ang accelerometer sa kaliwa, dapat tayong makakuha ng isang halaga na mas mababa sa 511 kasama ang x-axis. Katulad nito, kung ikiling natin ang accelerometer pasulong, dapat nating basahin ang halagang higit sa 511 sa kahabaan ng y-axis, at kung ikiling natin ang accelerometer paatras, dapat nating basahin ang isang halagang mas mababa sa 511 kasama ang y-axis. At ito ang kung paano namin nahihinuha, sa code, ang direksyon na dapat itulak sa rover. Ngunit nangangahulugan din ito na dapat nating panatilihin ang accelerometer na talagang matatag at nakahanay na parallel sa isang patag na ibabaw upang mabasa ang isang 511 kasama ang parehong mga palakol upang maiparada pa rin ang rover. Upang magaan ang gawaing ito nang kaunti, tinutukoy namin ang ilang mga threshold na bumubuo ng isang hangganan, tulad ng inilalarawan ng pigura, upang ang rover ay mananatiling nakatigil hangga't ang x at y na pagbabasa ay nasa loob ng mga hangganan at alam nating sigurado na ang rover ay dapat na itakda paggalaw sa sandaling lumampas ang threshold.

Halimbawa, kung ang y-axis ay nagbabasa ng 543, alam natin na ang accelerometer ay nakakiling pasulong ergo dapat nating patnubayan ang rover pasulong. Ginagawa namin ito sa pamamagitan ng pagtatakda ng mga pin na D2 at D4 HIGH at mga pin na D3 at D5 LOW. Ngayon, dahil ang mga pin na ito ay direktang naka-wire sa HT-12E, ang mga signal ay naka-serialize at pinaputok ang RF transmitter na mahuli lamang ng RF receiver na nakaupo sa rover, na sa tulong ng HT-12D ay nawawala ang mga signal at ipinapasa ang mga ito sa L293D, na siya namang binibigyang kahulugan ang mga signal na ito at hinihimok ang mga motor

Gayunpaman, maaaring gusto mong baguhin ang mga threshold na ito upang ma-calibrate ang pagkasensitibo. Ang isang madaling paraan upang gawin ito ay ang wire na lamang ang iyong accelerometer sa iyong Arduino at magpatakbo ng isang sketch na dumura ang mga pagbasa x at y sa serial monitor. Ngayon ilipat lamang ang accelerometer sa paligid ng kaunti, sulyap sa mga pagbabasa at magpasya sa mga threshold.

At, iyon lang! I-upload ang code sa iyong Arduino at mag-enjoy !! O, marahil ay hindi kaagad:-(Kung hindi mo pinalampas ang seksyon ng bonus, ang pag-upload ng code sa iyong ATmega ay nangangahulugang kaunting trabaho. Mayroon kang dalawang mga pagpipilian:

Pagpipilian A: Gumamit ng isang USB sa Serial na aparato tulad ng FTDI FT232 pangunahing breakout board. Patakbuhin lamang ang mga wire mula sa header ng TTL sa mga kaukulang mga pin sa ATmega ayon sa pagmamapa sa ibaba:

Mga Pin sa Breakout Board Mga Pin sa Microcontroller
DTR / GRN RST / I-reset (Pin 1) sa pamamagitan ng cap na 0.1µF
Rx Tx (Pin 3)
Tx Rx (Pin 2)
Vcc + 5v Output
CTS (hindi nagamit)
Gnd Lupa

Ngayon, isaksak ang isang dulo ng isang USB cable sa breakout board at ang isa pa sa iyong PC at i-upload ang code tulad ng karaniwang gusto mo: ilunsad ang Arduino IDE, pumili ng isang naaangkop na serial port, itakda ang uri ng board, ipunin ang sketch at pindutin ang upload.

Opsyon B: Gumamit ng isang UNO kung mayroon kang isang nakahiga sa kung saan. I-plug lamang ang iyong ATmega sa UNO, i-upload ang code tulad ng karaniwang gusto mo, hilahin ang IC at itulak ito pabalik sa transmitter circuit. Kasing dali ng pie!

Ang alinman sa mga pagpipiliang ito ay dapat na gumana, sa pag-aakalang ikaw ay sapat na matalino upang sunugin ang bootloader bago ibigay ang iyong ATmega, o, kung ikaw ay mas matalino upang bumili ng isang ATmega na ang bootloader ay naka-install na sa unang lugar. Kung hindi, magpatuloy at gawin ito sa pamamagitan ng pagsunod sa mga hakbang na nakabalangkas dito.

Andddd, opisyal na tayong tapos! Umaasa ako na nasiyahan ka sa kakaibang mahabang pagtuturo na ito. Ngayon, magpatuloy, tapusin ang pagbuo ng iyong rover kung hindi ka pa tapos, paglaruan ito sandali at bumalik upang ibaha ang seksyon ng mga komento sa ibaba ng mga query at / o nakabubuo na mga pintas.

Salamat

P. S. Ang dahilan kung bakit hindi ako nag-upload ng anumang mga larawan ng natapos na proyekto ay, mabuti, sapagkat hindi ko ito kumpletuhin. Sa kalagitnaan ng pagbuo nito, naisip ko ang ilang mga pagpapalaki, tulad ng kontrol sa bilis, pag-iwas sa balakid at marahil isang LCD sa rover, na talagang hindi gaanong mahirap kung gagamit kami ng isang microcontroller sa parehong paglilipat at pagtanggap ng mga dulo. Ngunit, bakit hindi gawin ito sa mahirap na paraan ?! Kaya, kasalukuyang nagtatrabaho ako sa direksyong iyon at magpo-post ako ng isang update sa lalong madaling magkaroon ng anumang prutas. Gayunpaman, sinubukan ko ang code at ang disenyo sa tulong ng isang mabilis na prototype na binuo ko gamit ang mga module mula sa isa sa aking mga naunang proyekto; maaari kang tumingin sa video dito.

Inirerekumendang: