Madalas akong gumawa ng mga robot o laruan batay sa Arduino o mga katulad na board. Bilang isang pagpipilian para sa pagkontrol ng mga naturang aparato, ginagamit ko ang saklaw ng infrared. Sa mga tuntunin ng tatanggap ay walang mga problema, madaling mahanap at kumonekta, ngunit sa kaso ng remote control ay mas mahirap.
At narito ang dalawang pagpipilian:
1. gamitin ang remote control mula sa TV o iba pang kagamitan na malapit na. Pagkatapos ay mayroong maraming pag-aalala, mga problema at nangangailangan ng maraming oras. Una, kailangan mong basahin ang mga code ng pindutan mula sa remote control, at pagkatapos ay isulat ang mga ito sa iyong firmware. Ang isa pang problema ay ang remote control ay nagpapadala ng isang senyas kapag ang mga pindutan ay pinindot nang isang beses, ay hindi ulitin ito (kung ang aparato ay gumagalaw o malayo, ang tagatanggap ay maaaring hindi basahin ito nang sabay-sabay), at hindi nagpapadala ng anumang bagay kapag ang pindutan ay pinakawalan, na kung saan ay lubos na nakakabagabag kapag kinakailangan upang makontrol ang paglipat ng makinarya. Well, hindi ko nais na kontrolin ang TV at ang machine nang sabay.
2. gawin ang iyong sariling liblib.
Ito ang pangalawang paraan na pupunta ako. Para sa mga pangunahing kaalaman, ginamit ko ang lumang joystick mula sa Sega console. Mayroong lahat ng kailangan mo doon. Apat na mga arrow (maginhawa para sa pagkontrol ng mga kotse) at 8 mga pindutan.
Kaya kung ano ang kailangan namin:
- joystick mula sa Sega
- Arduino Pro Mini 3.3v 8MHz
- USB-TTL
- 2 baterya Ni-Mn 1.2v 1000mA
- IR LED
- Red LED
- Blue LED
- risistor 2x75Om, 2x5Om, 1x2Om
kawad
- Ang konektor ng PLSx5 na "ina"
- mainit na pandikit
- mga wire
- baterya kompartimento 4xAAA
- maraming kulay na mga wire
- paghihinang iron, panghinang, rosin
- tuwid na braso
Hakbang 1 Solder
I-disassemble namin ang aming joystick, tinanggal ang board mula dito at ibenta ang lahat ng mga wire dito. Susunod, kailangan mong kumuha ng isang clerical kutsilyo o isang matalim na kutsilyo at gupitin ang lahat ng mga track mula sa controller sa board upang hindi ito makagambala sa amin at hindi salungat sa Arduino. Malapit sa bawat pindutan mayroong isang maliit na bilog na may hubad na track. Ang pagkuha ng isang paghihinang iron, kinakailangan sa panghinang sa bawat tabo kasama ang kawad, pati na rin ang paghahanap ng isang karaniwang wire sa panghinang at isang wire dito (karaniwan, itim). Ang pagbabalot ng mga wire ay dapat magmukhang katulad nito:
Sa baligtad, sa isang dobleng panig na nakadikit ang aming Arduino. Ang isang maliit na pagbabawas tungkol sa pagpili ng Arduino. Sa prinsipyo, maaari mong gamitin ang anumang board, ang pangunahing bagay ay umaangkop sa loob ng joystick.
Itala ang aming mga motibo ayon sa sumusunod na pamamaraan
Joystick Arduino
Up arrow 2
Down arrow 4
Kaliwa Arrow 5
Tamang arrow 6
Button A 8
B button 10
C button 7
X pindutan ng 12
Y button 11
Z button 9
Simulan ang 14 na pindutan (A0)
I-reset ang pindutan ng RST
IR LED + 3
Pangkalahatang GND
Blue LED
sa pamamagitan ng isang 75 ohm raw risistor
Red LED
sa pamamagitan ng risistor 75 Om + 5 na konektor
Ipaalam sa akin: Ipinagbili ko ang lahat ng mga pindutan dahil ito ay maginhawa sa pamamagitan ng kawad, kung halo-halong, kailangan mo lamang ayusin ito sa pagtahi. Ang pangunahing IR positibong contact ay dapat ibenta sa 3! Tandaan na ang nagbebenta ng minus IR sa GND. Ang pindutan ng I-reset ay kinakailangan upang i-restart ang Arduino gamit ang firmware.
Hakbang 2 kaso mode
Kinakailangan na mag-isip sa isang konklusyon ng mga wires para sa koneksyon ng USB-TTL. Ginamit ko ang konektor sa 5 PLS na "ina". Gumawa siya ng isang angkop na puwang ng sukat sa kanang bahagi ng joystick, ipinasok ang konektor at pinuno ang lahat ng mainit na pandikit. + 5v mula sa konektor na ito ngayon, output lamang ang wire. TX sa RX Arduino, RX hanggang TX ayon sa pagkakabanggit. + 3.3v hanggang 3.3 Arduino, GND hanggang GND Arduino. Gumawa siya ng angkop na puwang ng sukat sa kanang bahagi ng joystick.
Upang ipahiwatig ang pagsasama ng remote control at ang singil ng baterya, kinakailangan upang mag-drill ng dalawang butas na may diameter na 5 mm sa harap ng joystick at ipasok ang mga LED doon. At pinutol din ang isang butas para sa switch.
Sa loob, punan ang mga diode at lumipat ng mainit na pandikit.
Hakbang 3 nutrisyon
Kaya mayroong dalawang pagpipilian para sa nutrisyon. Ginawa ko pareho, ngunit maaari mong piliin ang naaangkop at gumamit ng isa.
Pinapagana ang unang baterya. Upang gawin ito, ang nagbebenta ng dalawang mga baterya ng NI-MN sa serye, sa mga plus sa pamamagitan ng switch, na nagbebenta ng sumusunod na 5Om + 5Om + 2Om + Diode sa serye at sa +5 ng aming konektor, ito ay para sa singilin mula sa USB-TTL. Binalot namin ang nagresultang spike mula sa mga diode at resistors na may de-koryenteng tape at inilalagay ang kanang itaas na sulok. Kaayon, ang nagbebenta ng aming pulang LED sa pamamagitan ng isang 75 Om resistor upang magpahiwatig ng isang singil. Ang pangalawang posisyon ng switch ay ang gumaganang wire mula dito napupunta sa RAW Arduino at muli kahanay, sa oras na ito isang asul na LED, sa pamamagitan ng isang 75Om risistor. Minus nang direkta sa GND Arduino.
Ang mga baterya ay matatagpuan sa tuktok ng joystick at dapat nakadikit
Susunod up ang mga pagmamanipula sa Arduino. Ang katotohanan ay maliit ang boltahe ng 2.4 volts, at upang masimulan ang aming magsusupil kailangan mong baguhin ang mga piyus ng Arduino. Ang mga detalyadong tagubilin tungkol sa firmware ng bootloader at fuse bits ay lampas sa saklaw ng paksang ito, at ang Internet ay puno ng mga scheme at mga pagpipilian. Ang pangunahing resulta dito ay upang huwag paganahin ang kontrol ng kapangyarihan ng Arduino. Narito ang diagram ng ICSP Arduino Pro Mini pinout.
Ang pangalawang pagpipilian ay mas simple at hindi nangangailangan ng karagdagang mga pagmamanipula sa Arduino. Solder sa switch ang positibong kawad mula sa aming kompartimento ng baterya, minus sa GND Arduino. Inihatid namin ang mga wire sa pamamagitan ng paggawa ng isang maliit na hiwa sa kaso at kola ang kompartimento sa likod na takip ng joystick sa isang double-sided tape. Ito ay nakakakuha ng ganito:
Hindi ito mukhang maganda, ngunit mas mabilis ito at may mas kaunting mga problema.
Hakbang 4 Assembly
Kaya nakuha namin ang sumusunod na konstruksyon:
Kapag nag-iipon, kinakailangang ilatag ang mga wires upang hindi sila makagat ng mga panloob na bahagi ng joystick. Hindi ako nagtagumpay kaagad, ngunit pagkatapos ng limang pagtatangka ang lahat ay gagana. Narito ang aking remote control Assembly.
Hakbang 5 firmware
Ang aming remote control ay flashed sa pamamagitan ng isang konektor na konektado sa USB-TTL, ang pagsingil ay din sa pamamagitan nito. Huwag kalimutang pindutin ang I-reset kapag binubuhos ang simula.
Kapag isinusulat ang firmware, isinulat ko ang isang random na hanay ng mga numero (code) para sa bawat utos (pindutan). Ginagamit ko ang mga code sa pagsulat ng firmware ng isang pinamamahalaang aparato. Ang mga code ay ipinadala ng tatlong beses, na nag-aalis ng posibilidad na laktawan ang isang utos. Kapag pinakawalan mo ang pindutan, ang isang code ay ipinadala din na ginagamit upang ihinto ang pinamamahalaang aparato.