Мазмұны:
Бейне: Lego Duplo пойызына арналған Bluetooth Bluetooth қашықтан басқару пульті: 3 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Менің балаларыма бұл кішкентай Lego Duplo пойызы ұнады, әсіресе, мен сөзбен сөйлесе алмайтын, ең кішкентайым, сондықтан мен оған ересектерден немесе телефоннан/планшеттен тәуелсіз пойызбен ойнауға көмектесетін нәрсе жасағым келді. Пойызға қосымша өлшем қосатын және оған қосымша ойын мәнін беретін нәрсе
Lego жиынтығында пойызды басқарудың бірнеше әдісі бар, оны тоқтату үшін оны алға қарай басып, ұстап тұруға болады, сіз оны жолда жүретін түсті белгілердің көмегімен басқара аласыз, сондықтан пойыз оны өткізген кезде әр түрлі әрекеттерді тудырады. алға, кері, ойнау дыбыстары шамдарды қосады. Сондай -ақ, телефонға немесе планшетке bluetooth арқылы қосылатын планшетті жүктеуге болады.
Мұнда пойыздың толық шолуы
Интернетте аң аулағаннан кейін мен пойызды басқаруға дайын жазылған коды бар әр түрлі адамдар бар екенін білдім. Nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) жазған 'Poweredup' түйіні тамаша бастамаға ұқсайды, ол мен таныс емес, бірақ ойласам деп ойлайтын Javascript көмегімен жазылған. java негізіндегі микрочипті таба алар еді, бұл жақсы бастама болар еді.
Тағы да интернетте аң аулағаннан кейін мен espruino жүйесін таптым, бұл ardiuno -ға ұқсас, бірақ JavaScript негізі. Espriuno кодын bluetooth ендірілген MDBT42Q микросхемасына жүктеуге болады. Егер мен «қуаттандырылған» модульді жүктей алсам, онда мен жарты жолда боламын деп ойладым, бірақ бұл қарапайым емес, көптеген кітапханаларда MDBT42Q жүктеу үшін үлкен модуль бар, сондықтан маған керек сияқты. қарапайым шешімді табыңыз ….
1 -қадам: Кодекс
Эспринуо
Espruino платформасын білмейтіндер үшін https://www.espruino.com (және мен олай емеспін) бұл Arduino -ға өте ұқсас, JavaScript үшін жазған бірнеше негізгі айырмашылығы бар, бұл сәл жаңа сияқты мысалдар жоқ, бірақ форумдар арқылы қолдау өте жақсы және өте пайдалы.
Javascript пойызбен кездеседі
Бірінші кедергі пойызға Bluetooth арқылы қосылу болды, мұны espruino кодымен жеткізілетін NRF класы арқылы жасауға болады.
NRF.connect пойызға қосылу үшін пайдаланылуы мүмкін, бірақ бірінші кезекте пойыздың мекен -жайын табу қажет, сіз бұл ақпаратты алу үшін NRF.findDevices пайдалана аласыз.
Сіз мұны жасағаннан кейін пойызбен пойызбен қол алысу үшін екі мән жіберуіңіз керек, менің пойызым үшін бұл «00001623-1212-efde-1623-785feabcd123» болды, содан кейін «00001624-1212-efde-1623-785feabcd123» деп ойлаймын бұл барлық бу пойыздары үшін бірдей болады, бірақ басқа нұсқалар, яғни жүк жиынтығы басқаша болуы мүмкін
Сізде бұл бар болғаннан кейін пойызды келесідей функцияны қолдана отырып қосуға болады, пойыздың қашан қосылғанын айта аласыз ба, себебі ол фаралар көк түспен жыпылықтайды.
NRF.connect («e0: 7d: ea: 0c: 03: 29»). Содан кейін (функция (g) {
console.log («Байланысты бастау2»); gatt = g; қайтару gatt.getPrimaryService («00001623-1212-efde-1623-785feabcd123»); }). содан кейін (функция (қызмет) {return service.getCharacteristic («00001624-1212-efde-1623-785feabcd123»);}). содан кейін (функция (сипаттамасы) {Characteristic_store = сипаттамасы; қайтару сипаттамасы.readValue ();}).сосын (мән => {console.log (мән);}). содан кейін (function () {console.log («Пойыз қосылған»); қосылған = 1;
Көңілді заттар
Енді сіз пойызға қосылдыңыз, оны алға жылжыту, дыбыс шығару және жарықты қосу мен өшіру сияқты барлық қызықты нәрселердің уақыты келді. Пойызға дайындық мәнін жіберудің қарапайым жұмысы, содан кейін нақты команда
play_horn () функциясы {
console.log («хабарлама =», Characteristic_store); const prepval = жаңа Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = жаңа Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Мүмкін, мен қолданғандардан басқа команданы табу үшін сізге аздап қазу қажет болуы мүмкін
Түймешіктер мен рычагтар
Қашықтан басқару құралының физикалық жағы - тура төрт түйме (дыбыстарды ойнату, шамдарды қосу және сөндіру үшін) және бір потенциометр, ол рычагқа қосылады, осылайша сіз пойыздың жылдамдығы мен бағытын басқара аласыз.
Түймеге тартылатын резистор қажет емес, оны кодта жасауға болады, яғни
pinMode (D15, 'input_pulldown');
Сіз потенциометрді кірістердің біріне қосып, келесі пәрменді пайдаланып аналогты сигналды оқи аласыз
var read = analogRead (D31);
Ардуиноның басқа айырмашылығы - эспруниода қондырғы мен цикл жоқ. Сондықтан мен барлық жеке командаларды/триггерлерді функцияларға орналастырамын, содан кейін setInterval орнатамын, ол әр 100 миллисекунд сайын айналады, түймені тыңдайды, содан кейін түйме басылғанда қажетті функцияны іске қосады.
if (digitalRead (D15) == 1) {play_horn (); }
Тетіктің әрекеті күрделірек болды, өйткені жылдамдықты қадамдық түрде реттей алуды қаладым, сондықтан алдымен аналогтық мәнді функцияға жіберуге тура келді.
var read = analogRead (D31);
пойыз_бағыты (оқу * 1024);
Содан кейін train_direction функциясында мен команданы кастрөлдің мәніне байланысты 6 түрлі қадамға бөлдім
Пойызға жоғары жылдамдықпен жүруді айтады
Жарты жолға көтеріліп, пойызға 50% жылдамдықпен алға жүруді айтады
Орташа, пойызға тоқтауын айтады
Жартылай төмен қарай пойызға 50% жылдамдықпен артқа жүруді айтады
Төменге дейін пойызға керісінше толық жылдамдықпен жүруді айтады
яғни
train_direction функциясы (dir_val) {
//console.log("message = «, Characteristic_store); const prepval = жаңа Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = жаңа Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Characteristic_store.writeValue (sendvalue);}); }
Толық кодты төмендегі сілтеме бойынша алуға болады
2 -қадам: электр сымдары
Электр сымдары ең қарапайым бөлігі болды
Ол D15, D16, D17 және D18 -ге қосылған 4 басу түймесінен тұрды, бұл кез келген тартылатын резисторды өшірді, себебі бұл кодта және D31 -ге қосылған 10 кк резисторда.
Мен әлі де қуат көзінде жұмыс істеймін, бірақ қазіргі уақытта барлық қуат микро -USB -дің үзілуінен келеді және бұл оларды қуат банкіне немесе USB портына тікелей қосуға болады.
3 -қадам: құрастыру
Қашықтан басқару пульті 3 мм, 6 мм немесе 9 мм А4 фанерден жасалған, олар менің CNC машинамды кеседі, бірақ мен ұсынған үлгіні қолдана отырып, қолмен жасау мүмкін емес.
Үлгі мен фотосуреттер сізге қажет нәрсенің бәрін береді деп үміттенемін, бірақ көмектесетін бірнеше ескертулер бар
3мм басу түймесі тіреуішті басуға арналған, саңылау түймені дұрыс орынға қояды, бірақ біз артқы жағындағы аяққа кіруге мүмкіндік береміз, осылайша сіз микрочипке дәнекерлей аласыз, керісінше сіз MDBT42Q орната аласыз. біраз желім қолданады. Алдыңғы жағында сіз көбікті қосуыңыз керек, сондықтан ол түймелерді басқанда сәл серпіліс береді, сонымен қатар серіппелерді қолдануға болады
9 мм түймелер логотипті бояуға, гравировкаға немесе басқа батырманың не істейтінін көрсететін басқа нәрсеге қажет болады
Тұтқаны/тұтқаны қабаттастыру қажет, мен оларды барлық дұрыс позицияларда туралауға көмектесу үшін 6 мм дюбель қолдандым.
Ұсынылған:
IRduino: Arduino қашықтан басқару пульті - Жоғалған қашықтан басқару құралына еліктеу: 6 қадам
IRduino: Arduino қашықтан басқару пульті - Жоғалған қашықтан басқару пультіне еліктеу: Егер сіз теледидар немесе DVD ойнатқыш үшін қашықтан басқару пультін жоғалтқан болсаңыз, құрылғының өзіндегі түймелерге жүгіру, табу және пайдалану қаншалықты ауыр болатынын білесіз. Кейде бұл түймелер қашықтан басқару пультімен бірдей функцияны ұсынбайды. Алу
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын қолданатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: 5 қадам (суреттермен)
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын пайдаланатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: wifi мен қашықтан және андроид қосымшасы арқылы nodemcu мен IR қабылдағышты қолданатын 8 релелік қосқышты басқару. Қашықтан басқару құралы wifi қосылымына тәуелсіз жұмыс істейді. МҰНДА
IR қашықтан басқару пультін RF қашықтан басқару пультіне түрлендіру: 9 қадам (суреттермен)
IR қашықтан басқару пультін RF қашықтан басқару пультіне түрлендіріңіз: бүгінгі нұсқаулықта мен сізге микроконтроллерсіз жалпы радиожиілік модульді қалай қолдануға болатынын көрсетемін, бұл бізді кез келген құрылғының IR қашықтан басқару пультін ЖЖ -ге түрлендіре алатын жобаны құруға әкеледі. Қашықтан басқару. Түрлендірудің басты артықшылығы
Alexa дауысты басқару теледидарының қашықтан басқару пульті ESP8266: 9 қадам
Alexa дауысты басқару теледидарының қашықтан басқару пульті ESP8266: Егер сіздің үйіңізде біреу пультті босатса, сіз бос бөлмеге кіресіз бе, теледидар шырқайды. Батареялар істен шыға бастайды және бөлменің артқы жағынан басқарылмайды. Енді сіз теледидарды, DVR -ды, инфрақызыл контролмен кез келген нәрсені басқара аласыз
ДК бейне ойнатқышына арналған кішкентай баланың қашықтан басқару пульті: 6 қадам
ДК видео ойнатқышына арналған кішкентай баланың қашықтан басқару пульті: мен компьютерді USB арқылы қосатын қашықтан басқару пультін құрамын. Үлкен қашықтан басқару пульті балама ескі компьютерде бейнелерді таңдауға және ойнатуға мүмкіндік береді, бұл салыстырмалы түрде қарапайым жоба. Негізгі компонент USB пернетақтасы немесе сымсыз USB пернетақтасы болып табылады