Talaan ng mga Nilalaman:
Video: Wooden Bluetooth Remote para sa Lego Duplo Train: 3 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Gustung-gusto ng aking mga anak ang maliit na pagsasanay ng Lego Duplo partikular ang aking bunso na nagpupumilit na makipag-usap sa kanyang sarili sa mga salita kaya nais kong bumuo sa kanya ng isang bagay na makakatulong sa kanya na maglaro ng tren nang nakapag-iisa ng mga may sapat na gulang o telepono / tablet. Isang bagay na magdagdag ng isang labis na sukat sa tren at bibigyan ito ng karagdagang halaga ng paglalaro
Ang set ng Lego ay mayroon nang ilang paraan upang makontrol ang tren, maaari mo itong itulak upang simulan at hawakan ito upang pigilan ito, maaari mong kontrolin ito gamit ang mga tag ng kulay na pupunta sa track kaya kapag naipasa ito ng tren ay nag-uudyok ito ng iba't ibang mga pagkilos ie pasulong, baligtarin, i-play ang mga tunog buksan ang mga ilaw. Maaari ka ring mag-download ng isang app para sa iyong telepono o tablet na maaaring kumonekta sa tren sa pamamagitan ng bluetooth.
Narito ang isang buong pagsusuri ng tren
Matapos ang pangangaso sa internet nahanap ko doon mayroong ilang iba't ibang mga tao na handa nang nakasulat na code upang makontrol ang tren. Ang 'Poweredup' node na sinulat ni nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) ay mukhang isang perpektong nagsimula, Ito ay nakasulat gamit ang Javascript na hindi ko pamilyar na pamilyar ngunit naisip ko kung maaaring makahanap ng java based microchip, ito ay magiging isang magandang pagsisimula.
Muli pagkatapos ng pangangaso sa internet muli nakita ko ang espruino system, ito ay katulad ng ardiuno ngunit base sa paligid ng javascript. Ang code ng espriuno ay maaaring mai-load sa isang MDBT42Q mircochip na may blu-embed. Naisip ko kung mai-load ko ang "pinalakas" na module dito magiging kalahating daan ako roon, subalit ang simpleng ito ay hindi kaso isang module na nilalaman sa maraming mga aklatan hanggang sa malalaking mai-load sa MDBT42Q, kaya tila kailangan kong makahanap ng isang mas simpleng solusyon โฆ.
Hakbang 1: Ang Code
Esprinuo
Para sa mga hindi alam ang platform ng Espruino https://www.espruino.com (at hindi ko alam) ito ba ay halos kapareho ng Arduino, Mayroong ilang pangunahing pagkakaiba sa isa na isinulat nito para sa javascript sa halip na c, Mas bahagyang nararamdaman kaya't baka may mga halimbawa subalit ang suporta sa pamamagitan ng mga forum ay malaki at lubos na kapaki-pakinabang.
Javascript matugunan ang tren
Ang unang sagabal ay upang kumonekta sa tren sa pamamagitan ng bluetooth, Maaari itong magawa gamit ang klase ng NRF na ipinadala sa espruino code.
Ang NRF.connect ay maaaring magamit upang kumonekta sa tren subalit ang iyong unang kailangan upang hanapin ang address ng tren mismo, maaari mong gamitin ang NRF.findDevices upang makuha ang impormasyong ito
Kapag nagawa mo ito kailangan mong magpadala ng dalawang halaga sa tren upang makipagkamay sa tren, para sa aking tren ito ay "00001623-1212-efde-1623-785feabcd123" sinundan ng "00001624-1212-efde-1623-785feabcd123" Naniniwala ako magiging pareho ito para sa lahat ng itinakda ang mga tren ng singaw ngunit ang iba pang mga bersyon ibig sabihin ay ang hanay ng kargamento ay maaaring magkakaiba
Kapag mayroon ka nito maaari mong ikonekta ang tren gamit ang pag-andar tulad ng sumusunod, maaari mo bang sabihin kapag ang tren ay kumonekta dahil ito ay i-flash ito asul na mga ilaw
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Pagkatapos (pagpapaandar (g) {
console.log ("Simula sa pagkonekta2"); gatt = g; ibalik ang gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). pagkatapos (pagpapaandar (serbisyo) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). pagkatapos (pagpapaandar (katangian) {Characteristic_store = katangian; ibalik ang katangian.readValue ();}).tapos (halaga => {console.log (halaga);}). pagkatapos (function () {console.log ("Konektado sa Tren"); konektado = 1;
Ang nakakatuwa bagay
Ngayon ay nakakonekta ka sa tren oras na para sa lahat ng mga nakakatuwang bagay tulad ng paglipat nito, paggawa ng tunog at pag-on at pag-off ng ilaw. Ito ay simpleng trabaho ng pagpapadala ng tren ng isang prep halaga, na sinusundan ng aktwal na utos hal
function play_horn () {
console.log ("message =", Characteristic_store); Const prepval = bagong Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = bagong Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).tapos (_ => {Characteristic_store.writeValue (sendvalue);}); }
Maaaring kailanganin mong gumawa ng kaunting paghuhukay upang makahanap ng iba pang utos kaysa sa ginamit ko
Mga Pindutan at Levers
Ang pisikal na bahagi ng remote ay tuwid na pasulong sa apat na mga pindutan (upang i-play ang mga tunog, i-on at i-off ang mga ilaw) at isang potensyomiter na kumonekta sa pingga upang makontrol mo ang bilis at direksyon ng tren
Ang pindutan ay hindi kailangan ng pull up risistor sa halip magagawa mo ito sa code, ibig sabihin
pinMode (D15, 'input_pulldown');
Maaari mong ikonekta ang potentiometer sa isa sa mga input at pagkatapos ay basahin ito ang analog signal gamit ang sumusunod na utos
pagbasa ng var = analogRead (D31);
Ang iba pang pagkakaiba sa arduino ay ang esprunio na walang setup at loop. Kaya't sa halip ay inilalagay ko ang lahat ng magkakahiwalay na utos / pag-trigger sa mga pagpapaandar at pagkatapos ay i-set up ang setInterval na loop sa bawat 100 milliseconds, pakikinig sa pindutan pagkatapos ay patakbuhin ang kinakailangang pag-andar kapag ang pindutan ay pinindot.
kung (digitalRead (D15) == 1) {play_horn (); }
Ang pag-aksyon sa pingga ay mas kumplikado dahil nais na ma-incrementally ayusin ang bilis kaya kailangan ko munang ipadala ang analog na halaga upang gumana
pagbasa ng var = analogRead (D31);
train_direction (pagbabasa * 1024);
Pagkatapos sa pagpapaandar ng tren_direction ay sinira ko ang utos sa 6 na magkakaibang mga pagtaas batay sa halaga ng palayok
Lahat ng paraan, sasabihin sa tren na magpatuloy sa buong bilis
Half way up, sasabihin sa tren na magpatuloy sa 50% na bilis
Gitna, sinasabi sa tren na huminto
Half way down, sasabihin sa tren na paatras sa 50% na bilis
Lahat ng mga paraan pababa, sasabihin sa tren na pumunta sa buong bilis ng pabaliktad
ibig sabihin
pagpapaandar ng train_direction (dir_val) {
//console.log("message = ", Characteristic_store); Const prepval = bagong Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = bagong Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); kung (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = bagong Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } kung (dir_val 200) {const sendvalue = bagong Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } kung (dir_val 100) {const sendvalue = bagong Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } kung (dir_val {Characteristic_store.writeValue (sendvalue);}); }
Ang buong code ay maaaring maging down para sa link sa ibaba
Hakbang 2: Ang Mga Kable
Ang mga kable ay ang pinakasimpleng bahagi
Ito ay binubuo lamang sa 4 na pindutan ng push na konektado sa D15, D16, D17 at D18 nang walang anumang pull up risistor dahil ginawa ito sa code at 1 10k risistor na konektado sa D31
Nagtatrabaho pa rin ako sa suplay ng kuryente ngunit sa kasalukuyan lahat ng lakas ay nagmumula sa isang micro usb breakout at maaari silang direktang konektado sa isang power bank o isang USB port
Hakbang 3: Ang Build
Ang remote ay halos wala sa 3mm, 6mm o 9mm A4 na mga sheet ng playwud, Sila kung saan gupitin sa aking makina ng CNC gayunpaman gamit ang template na ibinigay ay gagawin ko kahit na hindi imposibleng gawin ito ng kamay
Inaasahan kong ang template at mga larawan ay magbibigay sa iyo ng lahat ng kailangan mo upang muling gawin ngunit may ilang mga tala na maaaring makatulong
Ang mount ng 3mm Push Button ay para sa pagdikit ng pindutan ng itulak, ilalagay ng puwang ang pindutan sa tamang lugar ngunit pinapayagan kang ma-access ang binti sa likod upang maaari kang maghinang sa microchip, sa reverse maaari mo ring mai-mount ang MDBT42Q gamit ang ilang pandikit. Sa harap kakailanganin mong idagdag kaya foam kaya nagbibigay ito ng kaunting bounce sa mga pindutan kapag pinindot mo ang mga ito maaari mo ring gamitin ang mga bukal
9mm na mga pindutan ang kakailanganin ng pintura ng logo, pag-ukit o iba pa upang maipakita kung anong pindutan ang ginagawa
Ang Lever / Handle ay kailangang i-layer, gumamit ako ng isang 6mm dowel upang matulungan silang ihanay ang mga ito sa lahat ng wastong posisyon
Inirerekumendang:
Ipakita ang Wooden LED Gaming Display Pinapagana ng Raspberry Pi Zero: 11 Mga Hakbang (na may Mga Larawan)
Ipakita ang Wooden LED Gaming Display Pinapagana ng Raspberry Pi Zero: Napagtanto ng proyektong ito ang isang 20x10 pixel na WS2812 batay sa LED display na may sukat na 78x35 cm na maaaring mai-install sa sala upang maglaro ng mga retro game. Ang unang bersyon ng matrix na ito ay itinayo noong 2016 at itinayong muli ng maraming iba pang mga tao. Ang expe na ito
Mga Laruang Switch-Adapt: isang Steam Train Toy na Ginawang Naa-access !: 7 Mga Hakbang (na may Mga Larawan)
Switch-Adapt Laruan: isang Steam Train Toy Ginawang Naa-access !: Ang pagbagay ng Laruan ay magbubukas ng mga bagong paraan at na-customize na solusyon upang payagan ang mga bata na may limitadong kakayahan sa motor o mga kapansanan sa pag-unlad na makipag-ugnay sa mga laruan nang nakapag-iisa. Sa maraming mga kaso, ang mga bata na nangangailangan ng inangkop na mga laruan ay hindi maaring
Mga Layered Light sa Wooden Frame: 10 Hakbang (na may Mga Larawan)
Mga Layered Light sa Wooden Frame: Ang ilaw na ito ay naglalaman ng mga layer ng matboard na pinutol ng laser, at pagkatapos ay nakalagay sa loob ng isang kahoy na frame. Ang ilan ay gumagamit ng: Gamitin ito bilang isang lampara sa iyong aparador! Ilagay ito sa mantel sa Tahoe cabin na inuupahan mo bilang isang bakasyon sa katapusan ng linggo kasama ang mga kaibigan! Ibitay ito
Black Walnut Wooden Shell Headphone Na May Hi โ Fi 40 o 50mm Sennheiser Drivers: 6 Hakbang (na may Mga Larawan)
Black Walnut Wooden Shell Headphone Sa Hi โ Fi 40 o 50mm Sennheiser Drivers: Ang post na ito ay ang aking ika-4 na itinuturo. Tulad ng nahanap ko ang komunidad ay higit na interesado sa malalaking at Hi-End na mga over-the-ear na headphone, hulaan maaari kang mas nasiyahan na marinig ito. Ang kalidad ng pagbuo na ito ay maihahambing sa anumang $ 300 + na commericial headphone, habang ang
Olympus Evolt E510 Remote Cable Release (Bersyon 2 Na May Auto Focus sa Remote): 6 Mga Hakbang (na may Mga Larawan)
Ang Olympus Evolt E510 Remote Cable Release (Bersyon 2 Na May Auto Focus sa Remote): Kahapon ay nagtayo ako ng isang simpleng isang button na remote para sa aking Olympus E510. Karamihan sa mga camera ay may isang shutter release button (ang isa na itutulak mong kumuha ng litrato) na mayroong dalawang mga mode. Kung ang pindutan ay dahan-dahang nalulumbay, ang camera ay awtomatikong mag-focus at sukatin ang ilaw