Orodha ya maudhui:
Video: Kijijini cha Bluetooth cha Mbao cha Treni ya Lego Duplo: Hatua 3 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Watoto wangu walipenda treni hii ndogo ya Lego Duplo haswa mdogo wangu ambaye anajitahidi kuwasiliana mwenyewe na maneno kwa hivyo nilitaka kumjengea kitu ambacho kitamsaidia kucheza na gari moshi bila watu wazima au simu / vidonge. Kitu ambacho kingeongeza mwelekeo zaidi kwa gari moshi na kuipatia thamani ya kucheza
Seti ya Lego tayari ina njia chache ya kudhibiti gari moshi, unaweza kuisukuma mbele ili kuianza na kuishikilia ili kuizuia, unaweza kuidhibiti kwa kutumia vitambulisho vya rangi ambavyo huenda kwenye wimbo kwa hivyo wakati treni inapopita juu yake husababisha vitendo tofauti yaani. mbele, kugeuza nyuma, kucheza sauti kuwasha taa. Unaweza pia kupakua programu kwa ajili yako simu au kompyuta kibao ambayo inaweza kuungana na gari moshi kupitia Bluetooth.
Hapa ukaguzi kamili wa gari moshi
Baada ya kuwinda kwenye wavuti niligundua kulikuwa na watu wachache tofauti ambao walikuwa na nambari zote zilizoandikwa tayari kudhibiti gari moshi. Nodi ya 'Poweredup' iliyoandikwa na nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) ilionekana kama imeanza kabisa, Iliandikwa kwa kutumia Javascript ambayo sikuwa naifahamu sana lakini nilifikiri ikiwa inaweza kupata microchip msingi java, huu utakuwa mwanzo mzuri.
Tena baada ya kuwinda kwenye wavuti tena nikapata mfumo wa espruino, hii ni sawa na ardiuno lakini msingi karibu na javascript. Nambari ya espriuno inaweza kupakiwa kwenye mircochip ya MDBT42Q ambayo ilikuwa na upachikaji wa Bluetooth. Nilidhani ikiwa ningeweza kupakia moduli "iliyowezeshwa" kwa hiyo ningefika nusu, lakini hii rahisi haikuwa kesi moduli iliyokuwa na maktaba nyingi kubwa kupakia kwenye MDBT42Q, kwa hivyo inaonekana lazima pata suluhisho rahisi….
Hatua ya 1: Kanuni
Esprinuo
Kwa wale ambao hawajui jukwaa la Espruino https://www.espruino.com (na sikujua) ni sawa na Arduino, Kuna tofauti kuu moja iliyoandikwa kwa javascript badala ya c, Inahisi mpya zaidi kwa hivyo kuna isije mifano hata hivyo msaada kupitia vikao ni nzuri na husaidia sana.
Javascript kukutana na treni
Kikwazo cha kwanza kilikuwa kuungana na gari moshi kupitia bluetooth, Hii inaweza kufanywa kwa kutumia darasa la NRF ambalo linasafiri na nambari ya espruino.
Unganisho la NRF linaweza kutumiwa kuungana na gari moshi hata hivyo hitaji lako la kwanza kupata anwani ya gari moshi yenyewe, unaweza kutumia NRF.findDevices kupata habari hii
Mara tu unapofanya hivi basi unahitaji kutuma gari moshi thamani mbili kushikana mkono na gari moshi, kwa treni yangu hii ilikuwa "00001623-1212-efde-1623-785feabcd123" ikifuatiwa na "00001624-1212-efde-1623-785feabcd123" naamini hii itakuwa sawa kwa treni zote za mvuke zilizowekwa lakini matoleo mengine yaani mzigo umewekwa labda tofauti
Mara tu unapokuwa na hii unaweza kuunganisha gari moshi ukitumia kazi kama ifuatayo, je! Unaweza kujua wakati treni imeunganishwa kwani itaangazia taa za bluu
Unganisho la NRF ("e0: 7d: ea: 0c: 03: 29") kisha (kazi (g) {
console.log ("Kuanza kuunganisha2"); gatt = g; kurudi gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); basi). kisha (kazi (huduma) {kurudi huduma.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");})) kisha (kazi (tabia) {Characteristic_store = characteristic; return characteristic.readValue ();} basi (value => {console.log (value);})) kisha (function () {console.log ("Train Connected"); connected = 1;
Vitu vya kufurahisha
Sasa umeunganisha kwenye gari moshi ni wakati wa vitu vyote vya kufurahisha kama kusonga mbele, kutoa sauti na kuwasha taa na kuwasha. Ni kazi rahisi kutuma treni thamani ya utayarishaji, ikifuatiwa na amri halisi yaani
kazi play_horn () {
console.log ("message =", Tabia_duka); const prepval = mpya Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); sentvalue = mpya Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Tabia_duka.writeValue (preval). Basi (_ => {Characteristic_store.writeValue (sentvalue);}); }
Unaweza kulazimika kuchimba kidogo ili upate amri nyingine kuliko zile nilizotumia
Vifungo na Levers
Upande wa mbali wa kijijini uko sawa mbele mbele vitufe vinne (kucheza sauti, kuwasha na kuwasha taa) na potentiometer moja ambayo imeunganishwa na lever ili uweze kudhibiti kasi na mwelekeo wa gari moshi
Kitufe hakihitaji kuvuta kontena badala yake unaweza kufanya hivyo kwa nambari, yaani
pinMode (D15, 'input_pulldown');
Unaweza kuunganisha potentiometer kwa moja ya pembejeo na kisha usome ishara ya analog kwa kutumia amri ifuatayo
kusoma var = analogRead (D31);
Tofauti nyingine kwa arduino ni kwamba esprunio haina usanidi na kitanzi. Kwa hivyo badala yangu ninaweka amri / vichocheo vyote tofauti katika kazi na kisha kuseti setInterval ambayo inazunguka kila milliseconds 100, nikisikiliza kitufe kisha nifanye kazi inayohitajika wakati kifungo kimeshinikizwa.
ikiwa (digitalRead (D15) == 1) {play_horn (); }
Kuigiza lever ilikuwa ngumu zaidi kwani ingetaka kuweza kuongeza kasi kwa kasi kwanza ilibidi nipeleke thamani ya analog kufanya kazi
kusoma var = analogRead (D31);
mwelekeo wa treni (kusoma * 1024);
Halafu katika kazi ya mwongozo wa treni nilivunja amri kwa nyongeza 6 tofauti kulingana na thamani ya sufuria
Njia yote juu, inamwambia treni iende kasi kamili mbele
Nusu juu, inaambia treni kwenda mbele kwa kasi ya 50%
Katikati, anamwambia treni isimame
Nusu chini, inaambia gari moshi kurudi nyuma kwa kasi ya 50%
Njia yote chini, inamwambia treni iende kasi kamili kwa kurudi nyuma
yaani
kazi treni_direction (dir_val) {
//console.log ("ujumbe =", Duka la Tabia); const prepval = mpya Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); sentvalue = mpya Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); ikiwa (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = mpya Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } ikiwa (dir_val 200) {const sendvalue = mpya Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } ikiwa (dir_val 100) {const sendvalue = mpya Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } ikiwa (dir_val {Characteristic_store.writeValue (sendvalue);}); }
Nambari kamili inaweza kuwa chini kwa kiunga hapa chini
Hatua ya 2: Wiring
Wiring hiyo ilikuwa sehemu rahisi zaidi
Ilijumuisha tu kitufe cha kushinikiza 4 kilichounganishwa na D15, D16, D17 na D18 bila kontena yoyote ya kuvuta kwani hii ilifanywa kwa nambari na kipinga 1 10k kilichounganishwa na D31
Bado ninafanya kazi kwenye usambazaji wa umeme lakini kwa sasa nguvu zote huja kuzuka kwa usb ndogo na hii inaweza kuunganishwa moja kwa moja na benki ya umeme au bandari ya USB
Hatua ya 3: Jengo
Kijijini ni zaidi ya 3mm, 6mm au 9mm karatasi za A4 za plywood, Wao ambapo hukatwa kwenye mashine yangu ya CNC hata hivyo kutumia templeti iliyotolewa ningependa ingawa haingewezekana kufanya kwa mkono
Natumahi kuwa templeti na picha zitakupa kila kitu unachohitaji kurekebisha lakini kuna maelezo machache ambayo yanaweza kusaidia
Mlima wa Kitufe cha 3mm ni kwa kubandika kitufe cha kushinikiza, pengo litaweka kitufe mahali sahihi lakini tunakuruhusu ufikie mguu nyuma ili uweze kutengenezea microchip, upande wa nyuma unaweza pia kuweka MDBT42Q kutumia gundi. Mbele utahitaji kuongeza povu kwa hivyo inapeana vifungo kidogo wakati unavyobonyeza chini unaweza kutumia chemchemi
Vifungo 9mm vitahitaji nembo ya rangi, engraving au kitu kingine ambacho kuonyesha kitufe gani hufanya nini
Lever / Handle itahitaji kuwekwa juu, nilitumia tela ya 6mm kusaidia kuipatanisha katika nafasi zote sahihi
Ilipendekeza:
Onyesho la Uchezaji wa Mbao la Mbao Inaendeshwa na Raspberry Pi Zero: Hatua 11 (na Picha)
Uonyesho wa Michezo ya Uchezaji wa Mbao Unaotumiwa na Raspberry Pi Zero: Mradi huu unatambua pikseli ya Wx2812 ya pikseli ya Wx2812 yenye ukubwa wa 78x35 cm ambayo inaweza kusanikishwa kwa urahisi sebuleni kucheza michezo ya retro. Toleo la kwanza la tumbo hili lilijengwa mnamo 2016 na lilijengwa upya na watu wengine wengi. Muda huu
Kidhibiti cha Kijijini cha Kivinjari cha Arduino (linux): Hatua 9 (na Picha)
Kidhibiti cha Kijijini cha Kivinjari cha Arduino (linux): Tuna watoto. Nawapenda kwa bits lakini wanaendelea kuficha rimoti kwa setilaiti na TV wanapoweka vituo vya watoto. Baada ya haya kutokea kila siku kwa miaka kadhaa, na baada ya mke wangu kipenzi kuniruhusu kuwa na
Saa ya Mbao ya Mbao: Hatua 5 (na Picha)
Saa ya LED ya Mbao: Saa ya LED ya mbao inaonekana kama sanduku la mbao lenye kuchosha isipokuwa kwamba wakati unang'aa mbele yake. Badala ya kipande cha plastiki kijivu kutazama, una kipande cha kuni nzuri. Bado inaendelea na majukumu yake yote, pamoja na
Badilisha Kijijini chako cha IR kuwa Kijijini cha RF: Hatua 9 (na Picha)
Badilisha Kijijini chako cha IR kiwe Remote ya RF: Kwa leo inayoweza kufundishwa, nitakuonyesha jinsi unaweza kutumia moduli ya generic ya RF bila mdhibiti mdogo ambaye mwishowe atatuongoza kujenga mradi ambapo unaweza kubadilisha Remote ya IR ya kifaa chochote kuwa RF Kijijini. Faida kuu ya kubadilisha
Kijijini cha Kidhibiti cha IP cha NES: Hatua 7 (na Picha)
Kijijini cha Kidhibiti cha NES ya IP: Kwa kupachika mdhibiti mdogo wa PIC kwenye kidhibiti cha NES, inaweza kubadilishwa kuwa mbadala wa kijijini cha iPod ya Apple. (Ni iPods za 3 na 4 za kizazi tu zilizo na hii, ni bandari ndogo ya mviringo karibu na kichwa cha kichwa). Sasisho (8/26/2011): Ni