Turinys:

„LaserKitty“!!: 7 žingsniai (su nuotraukomis)
„LaserKitty“!!: 7 žingsniai (su nuotraukomis)

Video: „LaserKitty“!!: 7 žingsniai (su nuotraukomis)

Video: „LaserKitty“!!: 7 žingsniai (su nuotraukomis)
Video: Laserkitty 2024, Spalio mėn
Anonim
Image
Image
Gaukite savo daiktus
Gaukite savo daiktus

Visuotinai pripažįstama tiesa, kad viena katė, turinti laimę, turi netekti žaislo lazeriu. Kaip ir pavieniams ponams, trokštantiems būsimų žmonų, reikia laikytis kai kurių atsargumo priemonių. Bet ar tai netiesa nieko, ką tikrai verta turėti?

Jei nerimaujate dėl naminių gyvūnėlių ir lazerio saugumo, prieš komentuodami pereikite prie šios instrukcijos pabaigos. Jei nerimaujate dėl būsimos ar net dabartinės žmonos, tikriausiai turėsite ieškoti kitur.

Dabar galite nuvykti į vietinę naminių gyvūnėlių parduotuvę ir nusipirkti lazerinę žymeklį, o galbūt net tam tikrą įtaisą, kuris papildo elementarų automatizavimą. Jūs sutaupytumėte šiek tiek pinigų ir galėtumėte juos grąžinti, jei neveiktų. Arba galite ką nors pastatyti patys. Jau yra daug pavyzdžių, bet čia yra mano indėlis į kanoną. Jame yra:

  • Pilnas išmaniojo telefono valdymas
  • Rankiniai, automatiniai ir suplanuoti režimai
  • Individualizuota programos sąsaja
  • Sistemos būsena sinchronizuota tarp kelių žiniatinklio klientų
  • Sistemos būsena atspindėta „LaserKitty“!! pats
  • Konfigūruojami pasukimo ir pakreipimo diapazono apribojimai
  • Konfigūruojamas žaidimo laiko seansų ilgis ir dažnis
  • Konfigūruojami žaidimo langai
  • Sąrankos puslapis su akimirksniu rodomais dabartiniais nustatymais
  • NTP laiko sinchronizavimas
  • „WiFi“tvarkyklė, skirta lengvai nustatyti naujus tinklus
  • Tonų generatorius, skirtas žaisti „Neįmanomos misijos“temą prieš kiekvieną žaidimo seansą: jūsų katė gali arba nevertinti ironijos.
  • Pushbullet pranešimai visuose jūsų įrenginiuose, kai prasideda nauja žaidimo laiko sesija
  • Konfigūruojama pagrindinė padėtis, kad žaidimo laikas baigtųsi prie maisto dubenėlio ar nejudančio žaislo
  • Visi nustatymai saugomi EEPROM, todėl neprarandami nutrūkus elektros tiekimui
  • Ir daug daugiau! Na, nelabai, tai viskas.

1 žingsnis: įsigykite savo daiktus

Štai ką aš naudojau:

  • Mini keptuvė ir pakreipimo mazgas. Tai tikrai nėra pigiausias, kurį galite rasti, ir mūsų tikslams jį reikia šiek tiek pakeisti. Aš jį pasirinkau, nes jis atrodo šiek tiek vėsesnis nei sandėliuojami rūsio plastikiniai mazgai. Kaip netikėta premija, jo dizainas leidžia labai lengvai pritvirtinti lazerį. Komplekte yra pora mikro servo, tačiau labai rekomenduoju nusipirkti krūvą papildomų, kad būtų galima pakeisti. Jums reikės bent vieno papildomo servo (sugedęs yra gerai).
  • Aptvaras. Man skaudu sumokėti 8 USD už plastikinę dėžę ir tikrai rasite kažką tinkamo už mažesnę kainą. Vis dėlto kažkas apie susieto korpuso dydį yra tinkamas.
  • ESP8266 pagrindu sukurta plėtros lenta. Aš naudoju „NodeMCU“. Tai nėra perdėtas teiginys, kad myliu šiuos dalykus. Lengva naudoti „Arduino IDE“ir daug „flash“atminties jūsų tinklalapiams. Taip pat pigu ir, mano patirtimi, labai sunku kepti.
  • Mini lazeris. Dešimt už 6 USD, įskaitant „Amazon Prime“. Ar tu juokauji?? Dabar turiu tik sugalvoti, ką daryti su kitais devyniais.
  • Pasyvus tonų garsinis signalas.
  • Dviejų kanalų relė. Aš juos naudoju, norėdamas įjungti ir išjungti servo ir lazerį. Galbūt galėsite pašalinti šį komponentą, kaip paaiškinsiu vėliau.
  • 5VDC maitinimo šaltinis. Tikimės, kad turėsite vieną iš tokių, esančių kažkur seniai pamirštame „Gizmo“, bet jei ne ką nors pigaus ir linksmo, kurio jums gali prireikti maždaug 1A 5VDC.
  • Įvairios eksploatacinės medžiagos, tokios kaip rezistoriai, šviesos diodai, prijungimo viela, karščio susitraukimas, lydmetalis, karšti klijai. Įprastas. Aš taip pat naudojau cilindrinį lizdą gaunamam 5 V nuolatinės srovės maitinimo šaltiniui iš mano gėdingai didelės sunaikintų „Arduino“išjungimo lentų kolekcijos.
  • Paskutinis, bet ne mažiau svarbus dalykas - vinilinis lipdukas, skirtas šiam įnoringam užbaigimui.

Taigi. Jūs žiūrite apie 50 USD. Galėtum tai padaryti pigiau, bet ar tavo kačiukas nenusipelno geriausio?

2 žingsnis: įrankiai ir ištekliai

Įrankiai ir ištekliai
Įrankiai ir ištekliai

Įrankių pusėje čia nieko ypatingo. Tiesiog padorus lituoklis, multimetras, gręžtuvas ir pagrindiniai rankiniai įrankiai. Maitinimo šaltinis yra tinkamas eksperimentuoti su lazeriu, bet nėra būtinas.

Šis projektas tikrai išnaudoja ESP8266 ir ypač „NodeMCU“galimybes. Jei tik pradedate naudoti ESP8266, neradau geresnio vieno langelio šaltinio nei šis dalykas. Be to, visa tai yra „Google“paieška, siekiant rasti atsakymus į iškilusias problemas.

3 žingsnis: Paruoškite gaubtą

Paruoškite gaubtą
Paruoškite gaubtą
Paruoškite gaubtą
Paruoškite gaubtą

Kaip jau minėjau, sumokėti 8 USD už plastikinį korpusą atrodo neįtikėtinai. Dar blogiau yra tai, kad viską sugadina padarydamas skylę netinkamoje vietoje. Taigi, prieš turėdami savo dėžę su grąžtu ir (arba) bet kokiu kitu chaoso kūrėju, apsvarstykite mano padarytas klaidas.

  • Pirmiausia turite pagalvoti, kur visi daiktai tilps. Geros naujienos yra tai, kad mano siūlomas gaubtas turi daug vietos, net ir esant labai netvarkingiems laidams, kuriuos matote čia. Jūs netgi galite išsisukti su mažesne dėžute, ypač jei pašalinsite relės.
  • Svarbiausia yra tai, kur sumontuosite keptuvę ir pakelsite dangtį. Pirmasis mano bandymas parodytas čia. Aš maniau, kad meniškai pastatysiu jį nuo centro ir šiek tiek atgal, kad būtų užtikrintas stabilumas. Bloga idėja! Jums reikia surinkimo kuo arčiau dangčio šono, kad gaubtas netrukdytų spinduliui esant dideliems pakreipimo kampams. Be to, manau, kad idealus sprendimas būtų panoraminį lazerį statyti statmenai trumpai pusei, o ne, kaip aš padariau, ilgajai pusei. Aš tai padariau kitaip tik dėl estetinių priežasčių, nors yra šiek tiek daugiau trukdžių.
  • Kaip matote, „NodeMCU“yra sumontuotas „Perfboard“ir galėjo būti lengvai pastatytas taip, kad jo „micro USB“jungtis būtų pasiekiama iš lizdo šone arba gale. Tai palengvintų programinės įrangos atnaujinimą (nereikia nuimti dangčio). Mano pirminė idėja buvo atnaujinimams naudoti „OTA“biblioteką ir pamatysite, kad mano kodas apima šią funkciją, nors ir yra komentuojama. Problema buvo ta, kad tonų generatorius ir OTA netinkamai grotų kartu („NodeMCU“pakartotinai atstatė dainos vidurį). Ši problema tikriausiai yra pataisoma, tačiau man niekada nepavyko atnaujinti SPIFFS, išskyrus USB, todėl būtų buvę malonu turėti prieigą prie USB jungties. Kai jau visa tai supratau, „NodeMCU“sumontavau „Perfboard“taip, kad jungtis neišsikabintų iš dėžutės, nebūtų įmanoma be daug fafingo. O gerai.
  • Jei vėl daryčiau projektą, RGB šviesos diodą suderinčiau su raudonu „įjungimo“šviesos diodu. (RGB šviesos diodo paskirtis yra parodyti, kokiu režimu veikia „LaserKitty !!“, nežiūrint į programą.)

Vienintelė šiek tiek sudėtinga iš tikrųjų skylių padarymo dalis yra stačiakampis, skirtas servo servui. Aš naudoju grąžtą ir dildę. Kaip matote iš mano pirmojo bandymo, sunku padaryti jį tiksliai kvadratinį (arba, manau, stačiakampį). Bet kai sumontuotas servo, to tikrai nematyti.

Turėsite padaryti dar tris skyles, kurios turėtų būti dedamos dėžutės gale ir naudojamos maitinimo lizdui, signalui ir pakreipimo servo bei lazerio laidų įėjimo vietai. Visos šios skylės gali būti apvalios ir nesudaryti sunkumų tik gręžtuvu.

Laisvas karštų klijų naudojimas užtikrina viską savo vietoje (išskyrus keptuvės servo sistemą, kuri yra prisukama prie dangtelio naudojant servo tvirtinimo skirtukus).

4 žingsnis: „Pan and Tilt“surinkimas

Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas
Kepimo ir pakreipimo mazgas

Kai gavau keptuvės ir pakreipimo mazgą, maniau, kad padariau dar vieną didelę klaidą. Sudėjus taip, kaip nurodyta, tai iš tikrųjų nėra kepimo ir pakreipimo mechanizmas, o labiau pakreipimo ir pasukimo konstrukcija - tinkama pagal paskirtį kaip roboto ranka. Tačiau ramaus apmąstymo akimirka leido man pamatyti, kad iš tikrųjų galima surinkti kitaip, kad būtų pasiektas norimas rezultatas. Dar geriau, originali „sukimo“servo vieta galėtų būti naudojama kaip lazerio laikiklis.

Jei išnagrinėsite užbaigtą surinkimą šiose nuotraukose, suprasite. Jums liks mažas metalinis blokas, kurio nereikia šiam dizainui.

Įkvėpimo blyksnis buvo panaudoti originalią antrojo servo vietą lazeriui pritvirtinti. Dar geriau, jei nukirsite galvą nuo dufo servo ir išgręžite atlenktą rankos laikiklį, tai yra puiki lazerio montavimo vieta! Tiesiog nenuvertinkite pastangų, reikalingų servo pjūklui atskirti. Tiems mažiems pūstuvams yra mėsos!

Surinkę ir sumontavę gaubte, IR PRIEŠ NAUDOJANT MAITINIMĄ įsitikinkite, kad jis bus beveik 180 laipsnių kampu per visą korpuso paviršių. Kažkaip ar kitaip po to, kai sėkmingai jį įdiegiau, aš vėl sumontuoju keptuvės laikiklį taip, kad varžtų galvutės ant pagrindo būtų susietos su pakelta servo dalimi, kurioje ketinama pritvirtinti ranką. Rezultatas buvo tas, kad servo mašina iš karto pašalino pavaras. Ryškioje pusėje dabar turiu dar vieną dufo servo, kurį galiu naudoti kaip lazerinį laikiklį.

5 žingsnis: prijunkite laidą

Sujunkite laidą
Sujunkite laidą

Tikimės, kad „Fritzing“eskizas viską paaiškina. Kai kurie punktai, kuriuos reikia paaiškinti toliau:

  • Kaip aptarta vėliau, norėjau, kad lazeris būtų kuo silpnesnis, išlaikant pakankamai ryškumą, kad jį būtų galima naudoti bet kurioje ryškiausioje patalpų šviesoje. Šiek tiek eksperimentuodamas nusprendžiau jį maitinti iš 3,3 V nuolatinės srovės kaiščio, esančio „Node MCU“, ir nuosekliai pridėjau 22 omų rezistorių. Naudojant šį įrenginį, jis suvartoja apie 10 mA, todėl teoriškai jis gali būti maitinamas tiesiai iš GPIO kaiščio, tačiau aš pastebėjau, kad tai per silpna, net ir be rezistoriaus.
  • Lazeris turi labai ribotas galimybes keisti fokusavimą (kolimimaciją?), Kurį naudojau, kad taškas būtų didesnis ir taip išsklaidytų lazerio energiją
  • Mano pirmoji mintis buvo įjungti ir išjungti servo tranzistorių, tačiau dėl to servai išprotėjo. Esu tikras, kad tam yra rimta priežastis, bet kadangi jau turėjau keletą relių, pasirinkau lengviausią kelią ir visiškai izoliuotą maitinimą prie servo. Kadangi relės turėjo du kanalus, maniau, kad taip pat galiu perjungti lazerį (purpuriniai laidai yra valdymo signalas iš MCU). Man patinka šio sprendimo sukeltas mechaninis spragtelėjimas. Nors galite nuspręsti kitaip. Nerodoma, tačiau relės maitinamos tiesiogiai iš 5 V nuolatinės srovės šaltinio - „NodeMCU“galėjo tiesiog įjungti dviejų kanalų relę, tačiau nebuvo jokios priežasties rizikuoti. Jei anksčiau naudojote šias reles, jums reikia pašalinti jungiklį tarp JD-VCC ir VCC.
  • RGB šviesos diodas turi 220 omų srovę ribojančius rezistorius raudonai ir žaliai ir 100 omų mėlynai. Raudonas „įjungimo“šviesos diodas turi 450 omų rezistorių, nes jis maitinamas iš 5, o ne 3,3 V nuolatinės srovės. Tai tik „ballpark“vertės, kad gautumėte daug ryškumo ir pagrįsto ilgaamžiškumo.
  • Garsinis signalas yra gana garsus. Norėdami sumažinti garsą, prie signalo linijos galite pridėti rezistorių. Tonus galima visiškai išjungti naudojant programinę įrangą, tačiau kažkas tarp jų gali būti malonu.

6 žingsnis: Kodas

Kodas
Kodas
Kodas
Kodas
Kodas
Kodas
Kodas
Kodas

Nepaisant gana ilgo techninės įrangos paaiškinimo, 90% pastangų čia buvo skirta kodui. Būtų buvę daugiau, bet iš čia „pasiskolinau“puikų kodą lazerio judėjimui automatiniu režimu. Nėra prasmės išradinėti dviračio. Tiesą sakant, galite nuspręsti sekti šį projektą, o ne šį, arba derinti abiejų aspektus. Žinoma, man patinka idėja kai kuriuos komponentus gaminti naudojant 3-D spausdintuvą, bet aš jo neturiu.

Mano kodas (rastas „GitHub“čia) susideda iš trijų pagrindinių dalių. Yra pats „Arduino“eskizas, HTML failai su krūva „JavaScript“programos turiniui ir susiję CSS failai stiliui. Aš naudoju šį projektą norėdamas šiek tiek daugiau sužinoti apie visus šiuos programavimo elementus, pradedant nuo labai žemos bazės, ypač taikymo sąsajos pusėje. Bandžiau šiek tiek sutvarkyti kodą, bet pagrindinis dėmesys buvo skirtas tam, kad viskas veiktų. Kodas naudoja „Websockets“dvipusiam ryšiui tarp „NodeMCU“serverio ir prijungtų klientų.

„Arduino“kodas yra plačiai komentuojamas, todėl tikimės, kad jį bus lengva sekti. Atsisiuntę jį iš „GitHub“, įklijuokite visą partiją į aplanką, įkelkite eskizą į savo MCU, tada įkelkite „duomenų“pakatalogio turinį į SPIFFS.

Tiesą sakant, subraižykite. Jei norite naudoti „Pushbullet“pranešimo funkciją, pirmiausia jums reikės API prieigos rakto, kurį galima rasti čia. Tai įrašyta „Arduino“kodo 88 eilutėje. „Pushbullet“veikia gerai, tačiau jei pirmą kartą nustatote paskyrą savo telefone, gali tekti prisijungti, atsijungti ir vėl prisijungti, kol pranešimai nebus rodomi taip, kaip sukonfigūruota telefono nustatymuose.

Yra trys tinklalapiai-pradinis ekranas, tikroji programos sąsaja ir sąrankos puslapis. Tokiu būdu atskyrus turinį, sąsaja tampa daug panašesnė į programą, ypač dėl daugybės konfigūravimo parinkčių (ekrano kopijoje užfiksuota tik dalis šių parinkčių).

Viena keista, kad „NodeMCU“galėtų aptarnauti kelis puslapius, buvo ta, kad visus vaizdų failus turėjau įdėti tiesiai į duomenų aplanką - tiesiog negalėjau jo veikti, jei jie buvo sudėti į poaplankius. Įtraukiau visus vaizdus, kuriuos naudoju „GitHub“saugykloje, kad jis veiktų iš karto, tačiau neabejotinai norėsite juos pakeisti savo nuotraukomis.

7 žingsnis: Baigimas ir saugumas lazeriu

Apdailos darbai ir sauga lazeriu
Apdailos darbai ir sauga lazeriu
Apdailos darbai ir sauga lazeriu
Apdailos darbai ir sauga lazeriu
Apdailos darbai ir sauga lazeriu
Apdailos darbai ir sauga lazeriu

Nepaisant akį traukiančių 8 USD išlaidų, gaubtas yra gana naudingas. Šiek tiek pasigrožėjęs „Etsy“radau vinilo grafiką, kurią matote ant gatavo produkto (ir kuris atsispindi paraiškos puslapyje). Išsiųsta iš JK, ji buvo šiek tiek brangi, bet tikrai verta - ir jūs gausite du, jei norite pakartoti projektą. Paskutiniam meniniam suklestėjimui pasukau mažus „duobutes“katės akyse, kad jie žiūrėtų į ryškiai raudoną galios šviesos diodą, kuris reiškia lazerio tašką. Priklausomai nuo jūsų įnoringumo apetito, galite nuspręsti arba nenueiti šios papildomos mylios.

Pradžios ekrano HTML faile yra kodas, skirtas pridėti piktogramą prie „iPhone“pagrindinio ekrano.

Galiausiai neturėčiau ignoruoti susirūpinimo dėl lazerio naudojimo žaidžiant su katėmis. Yra du pagrindiniai prieštaravimai:

  • Lazeris gali apakinti ar pažeisti katės akis
  • Žaisti lazerio tašku galiausiai netenkina katės, nes jos niekada negali jų sugauti ar „nužudyti“

Abiejose temose yra daug diskusijų, kai kurios iš pažiūros informuotos, kitos mažiau. Galų gale jūs turite patys nuspręsti, ar šis projektas, ar bet koks kitas žaislas lazeriu tinka jūsų katei. Ką aš padariau, tai pabandžiau išspręsti pirmąją problemą, padarydamas lazerį kiek įmanoma silpnesnį, neapsunkindamas matymo esant tinkamam apšvietimui. Taip pat įsitikinkite, kad bet kuri katė, besinaudojanti prietaisu, nėra linkusi žiūrėti į patį lazerį, o ne į tašką - ypač jei ketinate naudoti „LaserKitty“!! automatiniais arba suplanuotais režimais. Vienas iš „Pushbullet“pranešimo funkcijos tikslų yra tai, kad ji bus naudojama kartu su stebėjimo kamera, kad jums būtų priminta žiūrėti, kaip jūsų kačiukas žaidžia būdamas toli.

Kalbant apie antrąjį prieštaravimą, įtraukiau galimybę išsaugoti „pradinę padėtį“, į kurią lazeris grįš po suplanuotų grojimo seansų. Jei nustatysite, kad tai būtų stacionarus žaislas ar jūsų kačiuko maisto dubenėlis, tikiuosi, kad tai suteiks tam tikrą skiriamąją gebą. Nors su katėmis, kas iš tikrųjų žino?

Rekomenduojamas: