Indholdsfortegnelse:

LaserKitty !!: 7 trin (med billeder)
LaserKitty !!: 7 trin (med billeder)

Video: LaserKitty !!: 7 trin (med billeder)

Video: LaserKitty !!: 7 trin (med billeder)
Video: Laserkitty 2024, November
Anonim
Image
Image
Få dine ting
Få dine ting

Det er en sandhed, der universelt anerkendes, at en enkelt kat, der er i besiddelse af lykke, skal mangle et laserlegetøj. Som med enlige herrer, der mangler fremtidige koner, skal nogle forholdsregler overholdes. Men er det ikke sandt for noget, der virkelig er værd at have?

Hvis du har bekymringer om kæledyr og lasersikkerhed, skal du springe til slutningen af denne instruktionsbog, før du kommenterer. Hvis du er bekymret for en kommende kone eller endda en nuværende, skal du sandsynligvis søge andre steder.

Nu kan du komme ned til din lokale dyrebutik og købe en laserpeger, og måske endda noget udstyr, der tilføjer rudimentær automatisering. Du ville spare nogle penge og kunne returnere dem, hvis det ikke virkede. Eller du kan bygge noget selv. Der er masser af eksempler derude allerede, men her er mit bidrag til kanonen. Det har:

  • Fuld smartphone -kontrol
  • Manuel, automatisk og planlagt tilstand
  • Brugerdefineret applikationsgrænseflade
  • Systemstatus synkroniseret mellem flere webklienter
  • Systemstatus spejlet på LaserKitty !! sig selv
  • Konfigurerbare pan- og tilt -grænser
  • Konfigurerbare længder og frekvenser for spilletidssessioner
  • Konfigurerbare afspilningsvinduer
  • Opstillingsside med et hurtigt overblik over aktuelle indstillinger
  • NTP -tidssynkronisering
  • WiFi-manager til nem opsætning på nye netværk
  • Tonegenerator til at spille temaet Mission Impossible før hver legesession: din kat kan eller vil ikke sætte pris på ironien.
  • Pushbullet -meddelelser til alle dine enheder, når en ny spilletidssession starter
  • Konfigurerbar hjemmeposition, så spilletiden ender ved madskål eller stationært legetøj
  • Alle indstillinger gemt i EEPROM, så de ikke går tabt ved strømafbrydelse
  • Og meget mere! Nå, egentlig ikke, det er det.

Trin 1: Få dine ting

Dette er hvad jeg brugte:

  • En minipande og vippesamling. Dette er bestemt ikke den billigste, du kan finde, og det kræver en vis ændring til vores formål. Jeg valgte det, fordi det ser lidt køligere ud end billige kælderen plastik samlinger. Som en uventet bonus giver dets design en meget let måde at montere laseren på. Den leveres med et par mikroservoer, men jeg anbefaler stærkt, at du køber en masse ekstra til erstatningsformål. Du skal bruge mindst en ekstra servo (en ødelagt er fin).
  • Et kabinet. Det gør mig ondt at betale $ 8 for en plastikæske, og du kan helt sikkert finde noget, der passer til mindre. Noget om størrelsen på det sammenkædede kabinet er dog rigtigt.
  • Et ESP8266-baseret udviklingskort. Jeg brugte NodeMCU. Det er ikke en overdrivelse at sige, at jeg elsker disse ting. Let at bruge i Arduino IDE og masser af flashhukommelse til dine websider. Også billig og efter min erfaring meget svær at stege.
  • En mini laser. Ti for $ 6 inklusive Amazon Prime. Laver du sjov med mig?? Nu skal jeg bare finde ud af, hvad jeg skal gøre med de andre ni.
  • En passiv summer til tonerne.
  • Et to -kanals relæ. Jeg bruger disse til at tænde og slukke servoer og laser. Du kan muligvis fjerne denne komponent, som jeg forklarer senere.
  • 5VDC strømforsyning. Forhåbentlig har du en af disse liggende fra en længe glemt gizmo, men hvis ikke noget billigt og muntert, der kan producere omkring 1A på 5VDC, er det, du har brug for.
  • Diverse forbrugsstoffer såsom modstande, lysdioder, tilslutningstråd, varmekrympning, loddemetal, varm lim. Det sædvanlige. Jeg brugte også en tønde jack til den indkommende 5VDC strømforsyning fra min pinligt store samling af ødelagte Arduino knock-off boards.
  • Sidst, men på ingen måde mindst, et vinylklistermærke til den finurlige finish.

Så ja. Du kigger på omkring $ 50 alt sammen. Du kunne gøre det for mindre, men fortjener din kat ikke det bedste?

Trin 2: Værktøjer og ressourcer

Værktøjer og ressourcer
Værktøjer og ressourcer

Intet særligt på værktøjssiden her. Bare et anstændigt loddejern, multimeter, boremaskine og grundlæggende håndværktøj. En bænkstrømforsyning er god til at eksperimentere med laseren, men ikke afgørende.

Dette projekt udnytter virkelig mulighederne i ESP8266 og især NodeMCU. Hvis du lige er begyndt med ESP8266, har jeg ikke fundet en bedre one-stop-ressource end denne ting. Bortset fra det handler det om Googling for at finde svar på problemer, der dukkede op undervejs.

Trin 3: Forbered kabinettet

Forbered kabinettet
Forbered kabinettet
Forbered kabinettet
Forbered kabinettet

Som jeg måske allerede har nævnt, virker det skandaløst at betale $ 8 for et plastikskab. Hvad der endnu er værre, er at skrue op for sagen ved at sætte et hul på det forkerte sted. Så før du har din kasse med boremaskinen og/eller hvilken som helst anden kaosproducent til din rådighed, skal du overveje de fejl, jeg lavede.

  • Først skal du tænke over, hvor alle tingene skal passe. Den gode nyhed er, at kabinettet, jeg foreslår, har masser af plads, selv med de meget uklare ledninger, du ser her. Du kan måske endda slippe afsted med en mindre kasse, især hvis du fjerner relæerne.
  • Vigtigst er, hvor du vil montere panden og vippe i låget. Mit første forsøg vises her. Jeg tænkte, at jeg kunstnerisk ville placere det uden for midten og et par veje tilbage for at få stabilitet. Dårlig idé! Du har brug for samlingen så tæt som rimeligt muligt på siden af låget, så selve kabinettet ikke forstyrrer strålen ved høje vippevinkler. Jeg tror også, at det ideelle arrangement ville være at montere pandelaseren vinkelret på den korte side frem for, som jeg gjorde, den lange side. Jeg gjorde det den anden vej af rent æstetiske årsager, selvom der er lidt mere potentiale for interferens.
  • Som du kan se, er NodeMCU monteret på Perfboard og kunne let have været placeret, så dets mikro -USB -stik var tilgængeligt fra et slot i siden eller bagpå. Dette ville gøre softwareopdateringer lettere (ingen grund til at tage låget af). Min oprindelige idé var at bruge Over-The-Air (OTA) biblioteket til opdateringer, og du vil se, at min kode indeholder denne funktionalitet, selvom den er kommenteret. Problemet var, at tonegeneratoren og OTA ikke ville spille godt sammen (NodeMCU ville gentagne gange nulstille halvvejs i sangen). Dette problem kan sandsynligvis rettes, men jeg har aldrig haft succes med at opdatere SPIFFS andet end via USB, så det ville have været rart at have adgang til USB -stikket. Da jeg havde fundet ud af alt dette, havde jeg monteret NodeMCU på Perfboard på en måde, der betød, at det ikke var muligt at få stikket til at stikke ud af kassen uden meget faffing. Åh godt.
  • Hvis jeg skulle lave projektet igen, ville jeg justere RGB -LED'en med den røde "tændte" LED. (Formålet med RGB LED er at angive, hvilken tilstand LaserKitty !! er i uden at skulle se på appen.)

Den eneste lidt vanskelige del ved rent faktisk at lave hullerne er den rektangulære til panservoen. Jeg brugte en boremaskine og en fil. Som du kan se fra mit første forsøg, er det svært at gøre det nøjagtigt firkantet (eller rektangulært, tror jeg). Men når servoen er monteret, kan du ikke rigtig se det.

Du bliver nødt til at lave tre andre huller. Disse skal placeres på bagsiden af kassen og bruges til strømforsyningsstik, summer og indgang til tilt servo og laserkabler. Alle disse huller kan være runde og ikke være vanskelige at lave med bare en boremaskine.

Liberal brug af varm lim sikrer alt på plads (med undtagelse af panservoen, der er boltet til låget ved hjælp af servoens monteringsfaner).

Trin 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 modtog pan og tilt -samlingen, troede jeg, at jeg havde begået en anden stor fejl. Sammensat som instrueret er det virkelig slet ikke en gryde- og vippemekanisme, men snarere et vippe- og vriddesign - passende til dets tilsigtede anvendelse som robotarm. Imidlertid tillod et øjeblik med rolig refleksion mig at se, at det faktisk kunne samles på en anden måde for at opnå det ønskede resultat. Endnu bedre, den originale placering af "twist" servoen kunne bruges som en holder til laseren.

Hvis du undersøger den færdige samling i disse billeder, får du ideen. Du står tilbage med en lille metalblok, der ikke er nødvendig i dette design.

Det glimt af inspiration, jeg havde, var at bruge den oprindelige placering af den anden servo til at montere laseren. Endnu bedre, hvis du halshugger en duff -servo og borer ud af spaltearmen, er det det perfekte monteringssted for laseren! Undervurder bare ikke den indsats, der er nødvendig for at hacksav servoen fra hinanden. Der er noget kød til de små tændere!

Efter samling og installation i kabinettet, OG FØR DU ANVENDER STRØM, skal du sørge for, at det vil panorere stort set 180 grader hen over kabinettets overflade. På en eller anden måde, efter at jeg havde installeret det en gang med succes, fik jeg pandefæstet sat sammen igen, så bolthovederne på basen bundet op mod den hævede bit af servoen, hvor armen er beregnet til at blive monteret. Resultatet var, at servoen straks fjernede sine gear. På den lyse side har jeg nu endnu en duff -servo til at bruge som laserophæng.

Trin 5: Tråd op

Tråd det op
Tråd det op

Forhåbentlig gør Fritzing -skitsen tingene klart. Nogle punkter for at præcisere yderligere:

  • Som diskuteret senere, ønskede jeg at gøre laseren så dæmpet som muligt og samtidig beholde nok lysstyrke til at gøre den anvendelig i alle undtagen det klareste indendørs lys. Med lidt eksperimentering besluttede jeg mig for at drive den fra en 3,3VDC pin på Node MCU og tilføjede en 22 Ohm modstand i serie for godt mål. Med denne opsætning trækker den omkring 10mA, så i teorien kunne den drives direkte fra en GPIO-pin, men jeg fandt den for svag, selv uden modstanden.
  • Laseren har en meget begrænset evne til at ændre fokus (kollimering?), Som jeg brugte til at gøre prikken større og derved sprede laserenergien
  • Min første tanke var at tænde og slukke servoerne med en transistor, men det fik servoerne til at gå amok. Jeg er sikker på, at der er en god grund til dette, men da jeg allerede havde nogle relæer til rådighed, tog jeg den lette vej ud og fuldstændig isoleret strøm til servoerne. Og da relæerne havde to kanaler, tænkte jeg, at jeg lige så godt kunne skifte laser på den måde (de lilla ledninger er styresignalet fra MCU). Jeg kan også godt lide den mekaniske klikstøj, denne løsning producerer. Du kan dog bestemme andet. Ikke vist, men relæerne får strøm direkte fra 5VDC -forsyningen - NodeMCU har måske lige været i stand til at drive et to -kanals relæ direkte, men der var ingen grund til at risikere det. Hvis du har brugt disse relæer, før du ved, at dette kræver fjernelse af jumperen mellem JD-VCC og VCC.
  • RGB LED'en har 220 Ohm strømbegrænsende modstande på rød og grøn og 100 Ohm på den blå. Den røde "tændte" LED har en 450 Ohm modstand, da den er drevet fra 5VDC frem for 3,3VDC. Disse er bare ballpark -værdier for at få masser af lysstyrke og rimelig levetid.
  • Summeren er ret høj. Du vil måske tilføje en modstand til signallinjen for at dæmpe lydstyrken. Tonerne kan slås helt fra via softwaren, men noget imellem kan være rart.

Trin 6: Koden

Koden
Koden
Koden
Koden
Koden
Koden
Koden
Koden

På trods af den temmelig langvarige forklaring på hardwaresiden gik 90% af indsatsen her ind i koden. Det ville have været mere, men jeg "lånte" en god kode til laserens bevægelse i autotilstand herfra. Ingen mening at genopfinde hjulet. Faktisk kan du godt beslutte dig for at følge det projekt frem for dette eller blande og matche aspekter af begge dele. Bestemt kan jeg lide tanken om at lave nogle af komponenterne med en 3D-printer, men jeg har ikke en.

Min kode (findes på GitHub her) er i tre hoveddele. Der er selve Arduino -skitsen, HTML -filer med en masse Javascript til applikationsindholdet og tilhørende CSS -filer til styling. Jeg brugte dette projekt til at lære lidt mere om alle disse programmeringselementer, startende fra en meget lav base især på applikationsgrænsefladesiden af tingene. Jeg har forsøgt at rydde op i koden lidt, men mit hovedfokus var på bare at få tingen til at fungere. Koden bruger Websockets til tovejskommunikation mellem NodeMCU -serveren og tilsluttede klienter.

Arduino -koden er udførligt kommenteret, så forhåbentlig finder du det let at følge. Når du har downloadet det fra GitHub, skal du stikke det hele i en mappe, uploade skitsen til din MCU og derefter uploade indholdet af "data" -undermappen til SPIFFS.

Faktisk rids det. Hvis du vil bruge Pushbullet -meddelelsesfunktionen, skal du først have et API -adgangstoken tilgængeligt herfra. Det går i linje 88 i Arduino -koden. Pushbullet fungerer godt, men hvis du opretter en konto på din telefon for første gang, kan du opleve, at du skal logge ind, logge ud og derefter logge ind igen, før meddelelser begynder at blive vist som konfigureret i telefonens indstillinger.

Der er tre websider-en stænkskærm, den egentlige applikationsgrænseflade og en opsætningsside. Adskillelse af indholdet på denne måde gør brug af grænsefladen meget mere app-agtig, især på grund af de omfattende konfigurationsmuligheder (skærmbilledet fanger kun en del af disse muligheder).

En finurlighed ved at få NodeMCU til at betjene flere sider var, at jeg var nødt til at lægge alle billedfilerne direkte i datamappen - kunne bare ikke få det til at fungere, hvis de blev placeret i undermapper. Jeg har inkluderet alle de billeder, jeg brugte i GitHub-depotet, så det fungerer uden for kassen, men du vil uden tvivl ønske at erstatte dem med dine egne billeder.

Trin 7: Efterbehandling og lasersikkerhed

Efterbehandling og lasersikkerhed
Efterbehandling og lasersikkerhed
Efterbehandling og lasersikkerhed
Efterbehandling og lasersikkerhed
Efterbehandling og lasersikkerhed
Efterbehandling og lasersikkerhed

På trods af dens øje vandende $ 8 omkostninger, kabinettet er, godt, temmelig utilitaristisk. Efter en lille smule pokker på Etsy fandt jeg den vinylgrafik, du ser på det færdige produkt (og som er spejlet på applikationssiden). Sendt fra Storbritannien var det lidt dyrt, men bestemt det værd - og du får to, hvis du vil gentage projektet. Da min sidste kunstneriske blomstrede, roterede jeg de små "fordybninger" i kattens øjne, så de kigger på den knaldrøde power -LED, der står for laserprikken. Afhængigt af din appetit på indfald, kan du vælge at gå denne ekstra mil.

Stænkskærmens HTML -fil indeholder kode til at tilføje et ikon til din iPhone -startskærm.

Sidst skal jeg ikke ignorere bekymringer om brug af en laser til at lege med katte. Der er to hovedindvendinger:

  • Laseren kan blinde eller beskadige kattens øjne
  • At lege med en laser prik er i sidste ende utilfredsstillende for katte, fordi de aldrig kan fange eller "dræbe" det

Der er meget splatter på interwaves om begge emner, nogle tilsyneladende informerede, nogle mindre. I sidste ende skal du træffe dine egne beslutninger om, hvorvidt dette projekt eller et andet lasertøj er det rigtige for din kat. Det, jeg gjorde, var at prøve at løse det første problem ved at gøre laseren så dæmpet som muligt uden at gøre det for svært at se ved rimelige lysniveauer. Sørg også for, at enhver kat, der bruger enheden, ikke har tendens til at stirre på selve laseren frem for prikken - især hvis du har tænkt dig at bruge LaserKitty !! i automatisk eller planlagt tilstand. Et formål med Pushbullet -meddelelsesfunktionen er, at den skal bruges sammen med et overvågningskamera, så du bliver mindet om at se din killing spille, mens du er væk.

Med hensyn til den anden indsigelse inkluderede jeg muligheden for at gemme en "hjemmeposition", som laseren vender tilbage til efter planlagte afspilningssessioner. Hvis du indstiller dette til at pege på et stationært legetøj eller din killings madskål, vil det forhåbentlig give en vis opløsning. Selvom, med katte, hvem ved det egentlig?

Anbefalede: