Innehållsförteckning:
- Steg 1: Skaffa dina saker
- Steg 2: Verktyg och resurser
- Steg 3: Förbered höljet
- Steg 4: Pan och tilt -enheten
- Steg 5: Koppla upp det
- Steg 6: Koden
- Steg 7: Finisher och lasersäkerhet
Video: LaserKitty !!: 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Det är en sanning som allmänt erkänns att en enda katt som har lycka måste ha brist på en laserleksak. Som med ensamstående herrar i brist på framtida fruar, måste vissa försiktighetsåtgärder iakttas. Men stämmer det inte med något som verkligen är värt att ha?
Om du oroar dig för husdjur och lasersäkerhet, gå till slutet av denna instruktionsbok innan du kommenterar. Om du är orolig för en blivande fru eller till och med en nuvarande måste du förmodligen leta någon annanstans.
Nu kan du dyka ner till din lokala djuraffär och köpa en laserpekare, och kanske till och med något tillbehör som lägger till rudimentär automatisering. Du skulle spara lite pengar och kunna returnera dem om det inte fungerade. Eller så kan du bygga något själv. Det finns gott om exempel redan, men här är mitt bidrag till kanonen. Den har:
- Full smartphone -kontroll
- Manuella, automatiska och schemalagda lägen
- Anpassat applikationsgränssnitt
- Systemstatus synkroniseras mellan flera webbklienter
- Systemstatus speglas på LaserKitty !! sig
- Konfigurerbara begränsningar för panorering och lutning
- Konfigurerbara spellängdslängder och frekvenser
- Konfigurerbara spelfönster
- Inställningssida med en överblick över aktuella inställningar
- NTP -tidssynkronisering
- WiFi-hanterare för enkel installation i nya nätverk
- Tongenerator för att spela Mission Impossible -temat före varje leksession: din katt uppskattar kanske ironin.
- Pushbullet -aviseringar till alla dina enheter när en ny speltidssession startar
- Konfigurerbar hemposition så att speltiden slutar vid matskålen eller stillastående leksak
- Alla inställningar lagrade i EEPROM så att de inte går förlorade vid strömavbrott
- Och mycket mer! Tja, inte riktigt, det är ungefär det.
Steg 1: Skaffa dina saker
Detta är vad jag använde:
- En minipanna och lutningsenhet. Detta är verkligen inte det billigaste du kan hitta och det behöver ändras för våra ändamål. Jag valde det eftersom det ser lite svalare ut än fyndkällaren plastaggregat. Som en oväntad bonus möjliggör dess design ett mycket enkelt sätt att montera lasern. Den levereras med ett par mikroservos men jag rekommenderar starkt att du köper ett gäng extra för ersättningsändamål. Du behöver minst en extra servo (en trasig är bra).
- En kapsling. Det gör mig ont att betala $ 8 för en plastlåda och du kan definitivt hitta något som passar mindre. Något om storleken på det länkade höljet är dock rätt.
- En ESP8266-baserad utvecklingskort. Jag använde NodeMCU. Det är inte en överdrift att säga att jag älskar dessa saker. Lätt att använda i Arduino IDE och gott om flashminne för dina webbsidor. Också billigt och enligt min erfarenhet mycket svårt att steka.
- En minilaser. Tio för $ 6 inklusive Amazon Prime. Skojar du?? Nu måste jag bara ta reda på vad jag ska göra med de andra nio.
- En passiv summer för tonerna.
- Ett tvåkanalsrelä. Jag använder dessa för att slå på och stänga av servon och lasern. Du kanske kan eliminera denna komponent som jag förklarar senare.
- 5VDC strömförsörjning. Förhoppningsvis kommer du att ha en av dessa liggande från en länge bortglömd gizmo men om inte något billigt och glatt som kan producera runt 1A av 5VDC är vad du behöver.
- Diverse förbrukningsmaterial som motstånd, lysdioder, anslutningstråd, värmekrympning, lödning, varmt lim. Det vanliga. Jag använde också en fatuttag för den inkommande 5VDC-strömförsörjningen från min pinsamt stora samling förstörda Arduino-knock-off-brädor.
- Sist, men inte minst, en vinyldekal för den nyckfulla pricken över i: et.
Så ja. Du tittar på ungefär $ 50 totalt. Du kan göra det för mindre men förtjänar inte din katt det bästa?
Steg 2: Verktyg och resurser
Inget speciellt på verktygssidan här. Bara ett anständigt lödkolv, multimeter, borr och grundläggande handverktyg. En bänkströmförsörjning är bra för att experimentera med lasern men inte nödvändigt.
Detta projekt utnyttjar verkligen funktionerna i ESP8266 och i synnerhet NodeMCU. Om du precis har börjat med ESP8266 har jag inte hittat någon bättre one-stop-resurs än den här saken. Förutom det handlar det om Googling för att hitta svar på problem som dykt upp längs vägen.
Steg 3: Förbered höljet
Som jag kanske redan har nämnt verkar det vara upprörande att betala $ 8 för ett plasthölje. Vad som är ännu värre är att skruva upp saken genom att sätta ett hål på fel plats. Så innan du har till din låda med borren och/eller vilken annan kaos som helst till ditt förfogande, överväg de misstag jag gjort.
- Först måste du tänka på var alla saker kommer att passa. Den goda nyheten är att höljet jag föreslår har gott om plats, även med de mycket oreda ledningarna du ser här. Du kanske till och med kan komma undan med en mindre låda, särskilt om du tar bort reläerna.
- Viktigast är var du kommer att montera pannan och lutningen i locket. Mitt första försök visas här. Jag trodde att jag konstnärligt skulle placera det utanför mitten och lite tillbaka för stabilitet. Dålig idé! Du behöver enheten så nära som möjligt på lockets sida så att skåpet inte stör bommen vid höga lutningsvinklar. Jag tror också att det perfekta arrangemanget skulle vara att montera pannlasern vinkelrätt mot kortsidan snarare än, som jag gjorde, långsidan. Jag gjorde det åt andra hållet av rent estetiska skäl även om det finns lite mer potential för störningar.
- Som du kan se är NodeMCU monterad på Perfboard och kunde enkelt ha placerats så att dess mikro -USB -kontakt var åtkomlig från en plats på sidan eller bak. Detta skulle göra programuppdateringar enklare (du behöver inte ta av locket). Min ursprungliga idé var att använda Over-The-Air (OTA) biblioteket för uppdateringar så ser du att min kod innehåller den funktionaliteten, även om den kommenteras. Problemet var att tongeneratorn och OTA inte skulle spela bra tillsammans (NodeMCU skulle upprepade gånger återställa halvvägs genom låten). Det problemet är förmodligen fixbart men jag har aldrig lyckats uppdatera SPIFFS annat än via USB så att ha tillgång till USB -kontakten hade varit trevligt. När jag hade förstått allt detta hade jag monterat NodeMCU på Perfboard på ett sätt som innebar att det inte var möjligt att få ut kontakten ur lådan utan mycket faffing. Jaja.
- Om jag skulle göra projektet igen skulle jag anpassa RGB -lysdioden till den röda LED -lampan. (Syftet med RGB -lysdioden är att indikera vilket läge LaserKitty !! är i utan att behöva titta på appen.)
Den enda lite knepiga delen med att faktiskt göra hålen är den rektangulära för panservon. Jag använde en borrmaskin och en fil. Som du kan se från mitt första försök är det svårt att göra det exakt fyrkantigt (eller rektangulärt, antar jag). Men när servon är monterad kan du inte riktigt se det.
Du måste göra tre andra hål. Dessa ska placeras på baksidan av lådan och används för strömförsörjningskontakt, summer och ingång för tilt servo och laserkablar. Alla dessa hål kan vara runda och utgör inga svårigheter att göra med bara en borr.
Liberal användning av hett lim säkrar allt på plats (med undantag för panservon, som skruvas fast på locket med hjälp av servos monteringsflikar).
Steg 4: Pan och tilt -enheten
När jag fick pan och tilt -enheten trodde jag att jag hade gjort ett annat stort misstag. Sammantaget enligt instruktionerna är det verkligen inte en pan och tilt mekanism alls utan snarare en tilt och vrid design - lämplig för den avsedda användningen som robotarm. Men ett ögonblick av lugn reflektion gjorde att jag kunde se att det faktiskt kunde sättas ihop på ett annat sätt för att uppnå önskat resultat. Ännu bättre, den ursprungliga platsen för "twist" -servern kan användas som fäste för lasern.
Om du undersöker den färdiga monteringen i dessa bilder får du idén. Du kommer att sitta kvar med ett litet metallblock som inte behövs i denna design.
Inspirationsblixten jag hade var att använda den ursprungliga platsen för den andra servon för att montera lasern. Ännu bättre, om du halshugger en duff -servo och borrar ut det splined armfästet är det den perfekta monteringsplatsen för lasern! Underskatta bara inte den ansträngning som behövs för att hacka bort servon. Det finns lite kött till de små tändarna!
Efter montering och installation i skåpet, OCH INNAN DU ANVÄNDER STRÖM, se till att det kommer att panorera ungefär 180 grader över höljet. På ett eller annat sätt efter att jag hade installerat det en gång lyckades jag sätta ihop pannfästet igen så att bulthuvudena på basen band upp mot den upphöjda biten på servon där armen är avsedd att monteras. Resultatet blev att servon omedelbart tog av sina växlar. På den ljusa sidan har jag nu en annan duff -servo att använda som laserfäste.
Steg 5: Koppla upp det
Förhoppningsvis gör Fritzing -skissen klart. Några punkter att förtydliga ytterligare:
- Som diskuterades senare ville jag göra lasern så dämpad som möjligt samtidigt som jag behåller tillräckligt med ljusstyrka för att göra den användbar i alla utom det starkaste inomhusljuset. Med lite experimenterande bestämde jag mig för att driva den från ett 3.3VDC -stift på Node MCU och lägga till ett 22 Ohm -motstånd i serie för bra mått. Med denna inställning drar den runt 10mA så i teorin kan den drivas direkt från en GPIO-stift men jag tyckte att det var för svagt, även utan motståndet.
- Lasern har en mycket begränsad förmåga att ändra fokus (kollimering?) Som jag använde för att göra pricken större och därmed sprida laserenergin
- Min första tanke var att slå på och stänga av servon med en transistor men detta fick servon att bli galen. Jag är säker på att det finns en bra anledning till detta, men eftersom jag redan hade några reläer till hands tog jag den enkla vägen ut och helt isolerade strömmen till servon. Och eftersom reläerna hade två kanaler tänkte jag att jag lika gärna kunde byta laser på det sättet också (de lila ledningarna är styrsignalen från MCU). Jag gillar det mekaniska klickljudet som den här lösningen ger också. Du kan dock bestämma annat. Visas inte, men reläerna drivs direkt från 5VDC -försörjningen - NodeMCU kanske bara kunde driva ett tvåkanalsrelä direkt men det fanns ingen anledning att riskera det. Om du har använt dessa reläer innan du vet att detta kräver att du tar bort bygeln mellan JD-VCC och VCC.
- RGB LED har 220 Ohm strömbegränsande motstånd på rött och grönt och 100 Ohm på det blå. Den röda "power on" -lampan har ett 450 Ohm motstånd eftersom den drivs från 5VDC snarare än 3,3VDC. Dessa är bara ballpark -värden för att få massor av ljusstyrka och rimlig livslängd.
- Summern är ganska högljudd. Du kanske vill lägga till ett motstånd till signallinjen för att dämpa volymen. Tonerna kan stängas av helt via programvaran men något däremellan kan vara trevligt.
Steg 6: Koden
Trots den ganska långvariga förklaringen av hårdvarusidan gick 90% av ansträngningen här in i koden. Det hade varit mer men jag "lånade" lite bra kod för laserns rörelse i autoläge härifrån. Ingen mening att uppfinna hjulet igen. I själva verket kan du mycket väl bestämma dig för att följa det projektet snarare än detta, eller blanda och matcha aspekter av båda. Visst gillar jag tanken på att göra några av komponenterna med en 3D-skrivare, men jag har inte en.
Min kod (finns på GitHub här) finns i tre huvuddelar. Det finns själva Arduino -skissen, HTML -filer med ett gäng Javascript för applikationsinnehållet och tillhörande CSS -filer för styling. Jag använde detta projekt för att lära mig lite mer om alla dessa programmeringselement, från en mycket låg bas, särskilt på applikationsgränssnittets sida. Jag har försökt städa upp koden lite men mitt huvudfokus låg på att bara få saken att fungera. Koden använder Websockets för dubbelriktad kommunikation mellan NodeMCU -servern och anslutna klienter.
Arduino -koden kommenteras utförligt så förhoppningsvis är det lätt att följa den. När du har laddat ner det från GitHub, fäst hela partiet i en mapp, ladda upp skissen till din MCU och ladda sedan upp innehållet i undermappen "data" till SPIFFS.
Skrapa det faktiskt. Om du vill använda Pushbullet -aviseringsfunktionen behöver du först en API -åtkomsttoken tillgänglig härifrån. Det går i rad 88 i Arduino -koden. Pushbullet fungerar bra, men om du skapar ett konto på din telefon för första gången kan det hända att du måste logga in, logga ut och sedan logga in igen innan aviseringar börjar visas som konfigurerade i telefonens inställningar.
Det finns tre webbsidor-en stänkskärm, själva applikationsgränssnittet och en konfigurationssida. Att separera innehållet på detta sätt gör att gränssnittet blir mycket mer appliknande, särskilt på grund av de omfattande konfigurationsalternativen (skärmdumpen fångar bara en del av dessa alternativ).
En egendom med att få NodeMCU att visa flera sidor var att jag var tvungen att lägga alla bildfiler i datamappen direkt - kunde bara inte få det att fungera om de placerades i undermappar. Jag har inkluderat alla bilder som jag använde i GitHub-förvaret så att det fungerar out-of-the-box men du kommer utan tvekan att vilja ersätta dem med dina egna bilder.
Steg 7: Finisher och lasersäkerhet
Trots sin kostsamma $ 8-kostnad är höljet, ganska, nyttigt. Efter lite petande på Etsy hittade jag vinylgrafiken som du ser på den färdiga produkten (och som speglas på applikationssidan). Skickat från Storbritannien var det lite dyrt men definitivt värt det - och du får två om du vill replikera projektet. När min sista konstnärliga blomstrade roterade jag de små "groparna" i kattens ögon så att de tittar på den ljusröda power -LED: n, som står för laserpunkten. Beroende på din aptit för nyckfullhet, kanske du väljer att gå denna extra mil.
Stänkskärmens HTML -fil innehåller kod för att lägga till en ikon på din iPhone -startskärm.
Sist ska jag inte ignorera oro över att använda en laser för att leka med katter. Det finns två huvudsakliga invändningar:
- Lasern kan blinda eller skada kattens ögon
- Att leka med en laserpunkt är i slutändan otillfredsställande för katter eftersom de aldrig kan fånga eller "döda" den
Det finns mycket splatter på interwaves om båda ämnena, några till synes informerade, vissa mindre. I slutändan måste du fatta dina egna beslut om huruvida detta projekt eller någon annan laserleksak är rätt för din katt. Det jag gjorde var att försöka ta itu med det första problemet genom att göra lasern så svag som möjligt utan att göra det för svårt att se vid rimliga ljusnivåer. Se också till att alla katter som använder enheten inte har någon benägenhet att stirra på själva lasern snarare än pricken - särskilt om du tänker använda LaserKitty !! i auto- eller schemalagda lägen. Ett syfte med Pushbullet -meddelandefunktionen är att den ska användas tillsammans med en övervakningskamera så att du blir påmind om att se din kattunge spela medan du är borta.
När det gäller den andra invändningen inkluderade jag möjligheten att spara en "hemmaposition" till vilken lasern kommer att återvända efter schemalagda spelsessioner. Om du ställer in det här för att peka på en stillastående leksak eller din kattungars matskål ger det förhoppningsvis lite upplösning. Fast vem vet egentligen med katter?
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen