Innholdsfortegnelse:

LaserKitty !!: 7 trinn (med bilder)
LaserKitty !!: 7 trinn (med bilder)

Video: LaserKitty !!: 7 trinn (med bilder)

Video: LaserKitty !!: 7 trinn (med bilder)
Video: Laserkitty 2024, Oktober
Anonim
Image
Image
Få tingene dine
Få tingene dine

Det er en sannhet som er universelt anerkjent at en enkelt katt som er i besittelse av lykke må ha mangel på et lasertøy. Som med enslige herrer som mangler fremtidige koner, må noen forholdsregler overholdes. Men er det ikke sant om noe virkelig verdt å ha?

Hvis du er bekymret for kjæledyr og lasersikkerhet, kan du gå til slutten av denne instruksjonsboken før du kommenterer. Hvis du er bekymret for en fremtidig kone, eller til og med en nåværende, må du sannsynligvis lete andre steder.

Nå kan du komme ned til din lokale dyrebutikk og kjøpe en laserpeker, og kanskje til og med noe utstyr som legger til rudimentær automatisering. Du ville spare penger og kunne returnere dem hvis det ikke fungerte. Eller du kan bygge noe selv. Det er mange eksempler der ute allerede, men her er mitt bidrag til kanonen. Den har:

  • Full smarttelefonkontroll
  • Manuelle, automatiske og planlagte moduser
  • Tilpasset applikasjonsgrensesnitt
  • Systemstatus synkronisert mellom flere webklienter
  • Systemstatus speilet på LaserKitty !! seg selv
  • Konfigurerbare begrensninger for panorering og tilt
  • Konfigurerbare lengder og frekvenser for spilletid
  • Konfigurerbare spillvinduer
  • Oppsettside med et øyeblikk gjeldende innstillinger
  • NTP -tidssynkronisering
  • WiFi-manager for enkel oppsett på nye nettverk
  • Tonegenerator for å spille Mission Impossible -temaet før hver lekeøkt: katten din setter kanskje pris på ironien.
  • Pushbullet -varsler til alle enhetene dine når en ny spilletidstime starter
  • Konfigurerbar hjemmeposisjon, slik at spilletiden slutter ved matskålen eller det stasjonære leketøyet
  • Alle innstillinger lagret i EEPROM så ikke gå tapt ved strømbrudd
  • Og mye mer! Vel, egentlig ikke, det er omtrent det.

Trinn 1: Få tingene dine

Dette er hva jeg brukte:

  • En minipanne og vippemontasje. Dette er absolutt ikke den billigste du kan finne, og den trenger noen endringer for våre formål. Jeg valgte det fordi det ser litt kulere ut enn kjøpskjellerens plastmonteringer. Som en uventet bonus gir designen en veldig enkel måte å montere laseren på. Den kommer med et par mikroservoer, men jeg anbefaler på det sterkeste at du kjøper en haug med ekstra for erstatningsformål. Du trenger minst en ekstra servo (en ødelagt er greit).
  • En innhegning. Det gjør meg vondt å betale $ 8 for en plastboks, og du kan definitivt finne noe som passer for mindre. Noe om størrelsen på det koblede kabinettet er omtrent riktig.
  • Et ESP8266-basert utviklingskort. Jeg brukte NodeMCU. Det er ikke en overdrivelse å si at jeg elsker disse tingene. Enkel å bruke i Arduino IDE og rikelig med flashminne for nettsidene dine. Også billig og etter min erfaring veldig vanskelig å steke.
  • En minilaser. Ti for $ 6 inkludert Amazon Prime. Tuller du med meg?? Nå må jeg bare finne ut hva jeg skal gjøre med de ni andre.
  • En passiv summer for tonene.
  • Et to -kanals relé. Jeg bruker disse til å slå servoer og laser på og av. Du kan kanskje eliminere denne komponenten som jeg forklarer senere.
  • 5VDC strømforsyning. Forhåpentligvis vil du ha en av disse liggende fra en lenge glemt gizmo, men om ikke noe billig og muntert som kan produsere rundt 1A på 5VDC er det du trenger.
  • Diverse forbruksvarer som motstander, lysdioder, tilkoblingstråd, varmekrymping, loddetinn, varmt lim. Det vanlige. Jeg brukte også en fatkontakt for den innkommende 5VDC strømforsyningen fra min pinlig store samling ødelagte Arduino knock-off boards.
  • Sist, men ikke minst, et vinyldekal for den finurlige prikken over i’en.

Så ja. Du ser på omtrent $ 50 alt sammen. Du kan gjøre det for mindre, men fortjener ikke katten din det beste?

Trinn 2: Verktøy og ressurser

Verktøy og ressurser
Verktøy og ressurser

Ikke noe spesielt på verktøysiden her. Bare et greit loddejern, multimeter, drill og grunnleggende håndverktøy. En benk strømforsyning er fint for å eksperimentere med laseren, men ikke avgjørende.

Dette prosjektet utnytter virkelig egenskapene til ESP8266 og spesielt NodeMCU. Hvis du nettopp har begynt med ESP8266, har jeg ikke funnet noen bedre one-stop-ressurs enn denne tingen. Annet enn det handler det om Googling for å finne svar på problemer som dukket opp underveis.

Trinn 3: Forbered kabinettet

Forbered vedlegg
Forbered vedlegg
Forbered vedlegg
Forbered vedlegg

Som jeg kanskje allerede har nevnt, virker det skandaløst å betale $ 8 for et plasthylster. Det som er enda verre er å skru opp tingen ved å sette et hull på feil sted. Så før du har med deg boret og/eller hvilken som helst annen kaosemaker du har til rådighet, bør du vurdere feilene jeg gjorde.

  • Først må du tenke på hvor alle tingene vil passe. Den gode nyheten er at kabinettet jeg foreslår har god plass, selv med de veldig ryddig ledningene du ser her. Du kan til og med komme unna med en mindre boks, spesielt hvis du eliminerer reléene.
  • Det viktigste er hvor du vil montere pannen og vippe i lokket. Mitt første forsøk er vist her. Jeg trodde jeg kunstnerisk ville plassere det utenfor sentrum og noen få veier tilbake for stabilitet. Dårlig ide! Du trenger monteringen så nær som rimelig mulig på siden av lokket, slik at selve kabinettet ikke forstyrrer bjelken ved høye vippevinkler. Jeg tror også det ideelle arrangementet ville være å montere pannlaseren vinkelrett på kortsiden i stedet for, som jeg gjorde, langsiden. Jeg gjorde det den andre veien av rent estetiske årsaker, selv om det er litt mer potensial for forstyrrelser.
  • Som du kan se, er NodeMCU montert på Perfboard og kunne lett ha blitt plassert slik at mikro -USB -kontakten var tilgjengelig fra et spor i siden eller bak. Dette ville gjøre programvareoppdateringer enklere (du trenger ikke å ta av lokket). Min opprinnelige idé var å bruke Over-The-Air (OTA) biblioteket for oppdateringer, og du vil se at koden min inneholder den funksjonaliteten, selv om den er kommentert. Problemet var at tonegeneratoren og OTA ikke ville spille godt sammen (NodeMCU ville gjentatte ganger tilbakestilles halvveis i sangen). Det problemet kan sannsynligvis løses, men jeg har aldri lykkes med å oppdatere SPIFFS annet enn via USB, så det ville vært fint å ha tilgang til USB -kontakten. Da jeg hadde funnet ut alt dette, hadde jeg montert NodeMCU på Perfboard på en måte som betydde at det ikke var mulig å få kontakten til å stikke ut av esken uten mye faffing. Jaja.
  • Hvis jeg skulle gjøre prosjektet igjen, ville jeg justere RGB -LED -en med den røde "power on" -lampen. (Formålet med RGB LED er å indikere hvilken modus LaserKitty !! er i uten å måtte se på appen.)

Den eneste litt vanskelige delen med å faktisk lage hullene er den rektangulære for panservoen. Jeg brukte en drill og en fil. Som du kan se fra mitt første forsøk, er det vanskelig å gjøre det nøyaktig firkantet (eller rektangulært, antar jeg). Men når servoen er montert kan du egentlig ikke se det.

Du må lage tre andre hull. Disse skal plasseres på baksiden av boksen og brukes til strømforsyningskontakt, summer og inngangspunkt for tilt servo og laserkabler. Alle disse hullene kan være runde og gir ingen vanskeligheter med bare en drill.

Liberal bruk av varmt lim sikrer alt på plass (med unntak av panservoen, som er festet til lokket ved hjelp av servoens festetapper).

Trinn 4: Pan og Tilt Assembly

Pan og Tilt Assembly
Pan og Tilt Assembly
Pan og Tilt Assembly
Pan og Tilt Assembly
Pan og Tilt Assembly
Pan og Tilt Assembly
Pan og Tilt Assembly
Pan og Tilt Assembly

Da jeg mottok pan og tilt -enheten trodde jeg at jeg hadde gjort en annen stor feil. Sett sammen som instruert, er det egentlig ikke en panne- og vippemekanisme i det hele tatt, men snarere en tilt- og vridningsdesign - egnet for den tiltenkte bruken som robotarm. Imidlertid tillot et øyeblikk av rolig refleksjon meg å se at det faktisk kunne settes sammen på en annen måte for å oppnå ønsket resultat. Enda bedre, den opprinnelige plasseringen av "twist" -servoen kan brukes som et feste for laseren.

Hvis du undersøker den ferdige monteringen i disse bildene, får du ideen. Du vil sitte igjen med en liten metallblokk som ikke er nødvendig i dette designet.

Blitsen av inspirasjon jeg hadde var å bruke den opprinnelige plasseringen av den andre servoen til å montere laseren. Enda bedre, hvis du halshugger en duff -servo og borer ut det splined armfeste, er det det perfekte monteringsstedet for laseren! Bare ikke undervurder innsatsen som trengs for å hacksag servoen fra hverandre. Det er litt kjøtt til de små tennene!

Etter montering og installasjon i kabinettet, OG FØR DU BRUKER STRØM, må du passe på at den vil panorere ganske mye 180 grader på tvers av kabinettet. På en eller annen måte etter at jeg hadde installert det en gang med hell, fikk jeg panneholderen satt sammen igjen slik at bolthodene på basen bundet opp mot den hevede biten på servoen der armen er ment å monteres. Resultatet var at servoen umiddelbart fjernet girene. På den lyse siden har jeg nå en annen duff -servo å bruke som laserfeste.

Trinn 5: Wire It Up

Wire It Up
Wire It Up

Forhåpentligvis gjør Fritzing -skissen ting klart. Noen punkter for å tydeliggjøre ytterligere:

  • Som diskutert senere, ønsket jeg å gjøre laseren så svak som mulig, samtidig som jeg beholder nok lysstyrke til å gjøre den brukbar i alle unntatt det skarpeste innendørs lyset. Med litt eksperimentering bestemte jeg meg for å drive den fra en 3.3VDC -pinne på Node MCU, og la til en 22 Ohm motstand i serie for godt mål. Med dette oppsettet trekker det rundt 10mA, så i teorien kan det drives direkte fra en GPIO-pin, men jeg fant det for svakt, selv uten motstand.
  • Laseren har en svært begrenset evne til å endre fokus (kollimering?) Som jeg brukte for å gjøre prikken større og derved spre laserenergien
  • Min første tanke var å slå servoene på og av med en transistor, men dette fikk servoene til å gå amok. Jeg er sikker på at det er en god grunn til dette, men siden jeg allerede hadde noen reléer hendige, tok jeg den enkle veien ut og totalt isolert strøm til servoene. Og siden reléene hadde to kanaler, tenkte jeg at jeg like godt kunne bytte laser på den måten også (de lilla ledningene er kontrollsignalet fra MCU). Jeg liker den mekaniske klikkestøyen denne løsningen også produserer. Du kan bestemme noe annet. Ikke vist, men reléene drives direkte fra 5VDC -forsyningen - NodeMCU kan bare ha vært i stand til å drive et to -kanals relé direkte, men det var ingen grunn til å risikere det. Hvis du har brukt disse reléene før du vet at dette krever at du fjerner jumperen mellom JD-VCC og VCC.
  • RGB LED har 220 Ohm strømbegrensende motstander på rødt og grønt og 100 Ohm på blått. Den røde "power on" LED -lampen har en 450 Ohm motstand siden den er drevet fra 5VDC i stedet for 3,3VDC. Dette er bare ballpark -verdier for å få rikelig med lysstyrke og rimelig levetid.
  • Summeren er ganske høy. Det kan være lurt å legge til en motstand på signallinjen for å dempe volumet. Tonene kan slås helt av via programvaren, men noe i mellom kan være fint.

Trinn 6: Koden

Koden
Koden
Koden
Koden
Koden
Koden
Koden
Koden

Til tross for den ganske langvarige forklaringen på maskinvaresiden, gikk 90% av innsatsen her inn i koden. Det ville ha vært mer, men jeg "lånte" noen gode koder for bevegelse av laseren i auto -modus herfra. Ingen mening å finne opp hjulet på nytt. Faktisk kan du godt velge å følge det prosjektet i stedet for dette, eller blande og matche aspekter av begge deler. Jeg liker absolutt tanken på å lage noen av komponentene med en 3D-skriver, men jeg har ikke en.

Koden min (finnes på GitHub her) er i tre hoveddeler. Det er selve Arduino -skissen, HTML -filer med en haug med Javascript for applikasjonsinnholdet, og tilhørende CSS -filer for styling. Jeg brukte dette prosjektet til å lære litt mer om alle disse programmeringselementene, fra en veldig lav base, spesielt på applikasjonsgrensesnittets side av ting. Jeg har prøvd å rydde opp i koden litt, men hovedfokuset mitt var å bare få ting til å fungere. Koden bruker Websockets for toveiskommunikasjon mellom NodeMCU -serveren og tilkoblede klienter.

Arduino -koden er grundig kommentert, så forhåpentligvis finner du den lett å følge. Når du har lastet den ned fra GitHub, legger du hele partiet i en mappe, laster opp skissen til MCU -en og laster deretter opp innholdet i undermappen "data" til SPIFFS.

Egentlig skrape det. Hvis du vil bruke Pushbullet -varslingsfunksjonen, trenger du først et API -tilgangstoken tilgjengelig herfra. Den går i linje 88 i Arduino -koden. Pushbullet fungerer bra, men hvis du oppretter en konto på telefonen din for første gang, kan det hende du må logge deg på, logge av og deretter logge på igjen før varsler begynner å vises som konfigurert i telefonens innstillinger.

Det er tre websider-en sprutskjerm, selve applikasjonsgrensesnittet og en oppsettside. Å skille innholdet på denne måten gjør bruk av grensesnittet mye mer appliknende, spesielt på grunn av de omfattende konfigurasjonsalternativene (skjermbildet fanger bare en del av disse alternativene).

En finurlighet ved å få NodeMCU til å betjene flere sider var at jeg måtte sette alle bildefilene i datamappen direkte - jeg kunne bare ikke få det til å fungere hvis de ble plassert i undermapper. Jeg har inkludert alle bildene jeg brukte i GitHub-depotet, så det fungerer utenom boksen, men du vil uten tvil bytte dem ut med dine egne bilder.

Trinn 7: Etterbehandling og lasersikkerhet

Etterbehandling og lasersikkerhet
Etterbehandling og lasersikkerhet
Etterbehandling og lasersikkerhet
Etterbehandling og lasersikkerhet
Etterbehandling og lasersikkerhet
Etterbehandling og lasersikkerhet

Til tross for kostnaden for $ 8 i øynene, er kabinettet ganske nyttig. Etter litt pokkering på Etsy fant jeg vinylgrafikken du ser på det ferdige produktet (og som er speilet på applikasjonssiden). Sendt fra Storbritannia var det litt dyrt, men definitivt verdt det - og du får to hvis du vil replikere prosjektet. Etter hvert som min siste kunstneriske blomstring, roterte jeg de små "gropene" i kattens øyne, så de ser på den lyse røde LED -lampen, som står for laserprikken. Avhengig av din appetitt på lunefullhet, kan du velge å gå denne ekstra milen eller ikke.

Sprutskjermens HTML -fil inneholder kode for å legge til et ikon på iPhone -startskjermen.

Sist skal jeg ikke ignorere bekymringene om bruk av laser for å leke med katter. Det er to hovedinnvendinger:

  • Laseren kan blinde eller skade kattens øyne
  • Å leke med en laserprikk er til syvende og sist utilfredsstillende for katter fordi de aldri kan fange eller "drepe" det

Det er mye splatter på interwaves om begge emnene, noen tilsynelatende informert, noen mindre. Til syvende og sist må du ta dine egne beslutninger om dette prosjektet eller et annet lasertøy er riktig for katten din. Det jeg gjorde var å prøve å løse det første problemet ved å gjøre laseren så svak som mulig uten å gjøre det for vanskelig å se på rimelige lysnivåer. Sørg også for at alle katter som bruker enheten ikke har en tilbøyelighet til å stirre på selve laseren i stedet for prikken - spesielt hvis du har tenkt å bruke LaserKitty !! i Auto eller Planlagte moduser. Et formål med Pushbullet -varslingsfunksjonen er at den skal brukes sammen med et overvåkningskamera, slik at du blir påminnet om å se pusen din spille mens du er borte.

Når det gjelder den andre innsigelsen, inkluderte jeg muligheten til å lagre en "hjemmeposisjon" som laseren kommer tilbake til etter planlagte spilløkter. Hvis du setter dette til å peke på et stasjonært leketøy eller kattens matskål, vil det forhåpentligvis gi litt oppløsning. Selv om, med katter, hvem egentlig vet?

Anbefalt: