Мазмуну:
Video: Lego Duplo Train үчүн жыгач Bluetooth Remote: 3 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Менин балдарым бул кичинекей Lego Duplo поездин жакшы көрүштү, айрыкча менин сөзүм менен сүйлөшө албаган эң кичүүм, ошондуктан мен ага поезд менен чоңдорго же телефондорго/планшеттерге көз карандысыз ойноого жардам бере турган бир нерсе кургум келди. Поездге кошумча өлчөм кошуп, ага кошумча оюн маанисин бере турган нерсе
Lego топтомунда поездди башкаруунун анча -мынча жолу бар, аны токтотуу үчүн аны алдыга түртүүгө жана кармап турууга болот, аны жолдо бараткан түстүү белгилердин жардамы менен башкара аласыз, андыктан поезд анын үстүнөн өткөндө ар кандай аракеттерди жаратат. алдыга, артка, ойноо үндөрү жарыкты күйгүзөт. Сиз поездге Bluetooth аркылуу туташа турган телефонуңузду же планшетиңиз үчүн колдонмону жүктөп алсаңыз болот.
Бул жерде поезддин толук кароосу
Интернетте аңчылык кылгандан кийин, мен поездди башкарууга даяр жазылган коду бар ар кандай адамдар бар экенин таптым. Nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) тарабынан жазылган "Poweredup" түйүнү кемчиликсиз башталыш сыяктуу көрүнгөн, мен Javascriptтин жардамы менен жазылган, бирок мен аны менен тааныш эмесмин, бирок эгер ойлосом java негизиндеги микрочипти таба алса, бул жакшы башталыш болмок.
Дагы интернетте аңчылык кылгандан кийин, мен espruino системасын таптым, бул ардиуного окшош, бирок javascriptтин айланасындагы база. Эсприуно коду bluetooth камтылган MDBT42Q микрочипине жүктөлүшү мүмкүн. Эгерде мен "иштетилген" модулду жүктөй алсам, анда мен жарым жолдо болмокмун деп ойлогом, бирок бул жөнөкөй эмес, көптөгөн китепканаларда MDBT42Q жүктөө үчүн камтылган модуль, андыктан мага керек окшойт жөнөкөй чечим табуу ….
1 -кадам: Код
Esprinuo
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"). Анан (function (g) {
console.log ("Байланыш башталууда2"); gatt = g; return gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). анда (функция (кызмат) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). анан (функция (мүнөздөмө) {Characteristic_store = мүнөздөмө; кайтаруу мүнөздөмөсү.readValue ();}). анан (value => {console.log (value);}). анан (function () {console.log ("Train Connected"); connect = 1;
Кызыктуу нерселер
Эми сиз поездге тутадыңыз, аны алдыга жылдыруу, үн чыгаруу жана жарыкты күйгүзүү жана өчүрүү сыяктуу кызыктуу нерселердин убактысы келди. Бул поездге даярдык маанисин жөнөтүү, андан кийин иш жүзүндөгү буйрукту аткаруу
play_horn () {функциясы
console.log ("message =", 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);
Ардуинонун башка айырмасы, esprunioдо орнотуу жана укурук жок. Ошентип, анын ордуна мен бардык бөлөк командаларды/триггерлерди функцияларга коём, андан кийин setInterval орнотом, ал ар бир 100 миллисекундта айланат, баскычты угуп, анан баскыч басылганда керектүү функцияны иштетем.
if (digitalRead (D15) == 1) {play_horn (); }
Ылдамдыкты иштетүү бир аз татаалыраак болчу, анткени ылдамдыкты акырындык менен жөнгө салууну каалагандыктан, адегенде функцияга аналогдук маанини жөнөтүүм керек болчу.
var read = analogRead (D31);
train_direction (окуу * 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ге туташкан 10k каршылыгында болгон.
Мен дагы эле электр менен камсыздоо боюнча иштеп жатам, бирок азыркы учурда бардык кубаттуулук микро USB портунан келип чыгат жана бул түздөн -түз кубат банкына же USB портуна туташтырылышы мүмкүн
3 -кадам: куруу
Алыстан башкаруу пульту негизинен 3мм, 6мм же 9мм А4 фанерадан турат, алар менин CNC машинамды кесип салышат, бирок шаблонду колдонушат, бирок кол менен жасоо мүмкүн эмес.
Мен шаблон жана сүрөттөр сизге керектүү нерселердин бардыгын берет деп үмүттөнөм, бирок жардам бере турган бир нече жазуулар бар
3мм баскычты орнотуу баскычты жабыш үчүн, боштук баскычты туура жерге жайгаштырат, бирок биз сизге микрочипке ширетүү үчүн арткы бутуңузга кирүүгө уруксат беребиз, тескерисинче MDBT42Q орнотсоңуз болот бир аз клей колдонуу. Алдыңкы жагына ушунчалык көбүк кошушуңуз керек, андыктан баскычтарды басканда бир аз секирет, булактарды колдонсоңуз болот
9мм баскычтарга логотип же боёк, гравировка же башка нерсе керек болот, ал баскыч эмне кылаарын көрсөтөт
Реверч/тутканы катмарлаш керек, мен аларды туура позицияларда тегиздөө үчүн 6 мм дюбель колдондум.
Сунушталууда:
Жыгач LED оюн дисплейи Raspberry Pi Zero менен иштейт: 11 кадам (сүрөттөр менен)
Raspberry Pi Zero тарабынан иштетилген жыгач LED оюн дисплейи: Бул проект 20x10 пикселдик WS2812 негизделген LED дисплейин ишке ашырат, анын көлөмү 78х35 см, аны ретро оюндарын ойноо үчүн конок бөлмөсүнө оңой эле орнотсо болот. Бул матрицанын биринчи версиясы 2016 -жылы курулган жана башка көптөгөн адамдар тарабынан кайра курулган. Бул экспозиция
Батарея менен иштеген Bluetooth спикери // Кантип куруу керек - Жыгач иштетүү: 14 кадам (Сүрөттөр менен)
DIY батарейка менен иштеген Bluetooth спикери // Кантип куруу керек-Жыгач иштетүү: Мен бул кайра заряддалуучу, батарейка менен иштөөчү, портативдүү Bluetooth бумбокс спикерин Parts Express C-Note спикери комплектин жана алардын KAB амп тактасын (төмөндөгү бардык бөлүктөргө шилтемелерди) колдонуп курдум. Бул менин биринчи спикерим болчу жана чындыгында таң калам
DIY жыгач Bluetooth спикери: 8 кадам (сүрөттөр менен)
DIY жыгач Bluetooth спикери: Интернетте бул долбоордун миңдеген версиялары бар. Эмне үчүн мен аны жасап жатам? Анткени мен каалайм :) Менде идеалдуу Bluetooth спикери жөнүндө өз көз карашым бар (мен үчүн идеалдуу) жана мен сизге дизайнымды көрсөтүп, процессти кургум келет! Ошондой эле
MDF жыгач корпусунда Arduino менен Nixie саатын жасаңыз: 11 кадам (сүрөттөр менен)
MDF жыгач корпусунда Arduino менен Nixie саатын жасаңыз: Бул көрсөтмөдө мен Nixie саатын Arduino менен схема боюнча кантип жасоону көрсөтөм, бул мүмкүн болушунча жөнөкөй. Алардын баары MDF жыгач корпусуна салынган. Бүткөндөн кийин, саат продуктка окшош: жакшы көрүнгөн жана бекем. Келгиле, ст
Кара жаңгактан жасалган жыгач кабык гарнитурасы Hi -Fi 40 же 50мм сенхейзер айдоочулары менен: 6 кадам (сүрөттөр менен)
Кара жаңгактын жыгач кабыгынын гарнитурасы Hi -Fi 40 же 50 мм сенхейзер драйверлери менен: Бул пост менин 4 -инструкциям. Коомчулукту чоң жана Hi-End кулакчындары көбүрөөк кызыктырат деп ойлоп жатканымда, муну угуу сизди көбүрөөк кубандырат деп ойлойм. Бул түзүлүштүн сапаты $ 300+ коммерциялык гарнитуралар менен салыштырылат, ал эми