Inhoudsopgave:

LaserKitty!!: 7 stappen (met afbeeldingen)
LaserKitty!!: 7 stappen (met afbeeldingen)

Video: LaserKitty!!: 7 stappen (met afbeeldingen)

Video: LaserKitty!!: 7 stappen (met afbeeldingen)
Video: fiberlaser laser graveren - barcodes (4/7) 2024, Oktober
Anonim
Image
Image
Pak je spullen
Pak je spullen

Het is een algemeen erkende waarheid dat een enkele kat in het bezit van geluk een laserspeelgoed moet hebben. Net als bij alleenstaande heren die een toekomstige vrouw willen, moeten enkele voorzorgsmaatregelen in acht worden genomen. Maar geldt dat niet voor iets dat echt de moeite waard is om te hebben?

Als je je zorgen maakt over huisdieren en laserveiligheid, ga dan naar het einde van deze Instructable voordat je commentaar geeft. Als je je zorgen maakt over een toekomstige vrouw, of zelfs een huidige, moet je waarschijnlijk ergens anders kijken.

Nu zou je naar je plaatselijke dierenwinkel kunnen gaan en een laserpointer kopen, en misschien zelfs een apparaat dat rudimentaire automatisering toevoegt. Je zou wat geld besparen en het terug kunnen sturen als het niet werkte. Of je bouwt zelf iets. Er zijn al genoeg voorbeelden, maar hier is mijn bijdrage aan de canon. Het beschikt over:

  • Volledige smartphonebediening
  • Handmatige, automatische en geplande modi
  • Aangepaste applicatie-interface
  • Systeemstatus gesynchroniseerd tussen meerdere webclients
  • Systeemstatus gespiegeld op LaserKitty!! zelf
  • Configureerbare beperkingen voor het pan- en tiltbereik
  • Configureerbare speelduur sessies lengtes en frequenties
  • Configureerbare speelvensters
  • Instellingenpagina met in één oogopslag huidige instellingen
  • NTP-tijdsynchronisatie
  • WiFi-manager voor eenvoudige installatie op nieuwe netwerken
  • Toongenerator om het Mission Impossible-thema voor elke speelsessie te spelen: uw kat kan de ironie wel of niet waarderen.
  • Pushbullet-meldingen naar al je apparaten wanneer een nieuwe speeltijdsessie begint
  • Configureerbare thuispositie zodat de speeltijd eindigt bij de voerbak of stationair speelgoed
  • Alle instellingen opgeslagen in EEPROM, dus niet verloren bij stroomuitval
  • En nog veel meer! Nou, niet echt, daar gaat het om.

Stap 1: Pak je spullen

Dit is wat ik heb gebruikt:

  • Een mini pan en tilt montage. Dit is zeker niet de goedkoopste die je kunt vinden en het heeft wel wat aanpassingen nodig voor onze doeleinden. Ik koos het omdat het er een beetje cooler uitziet dan de goedkope plastic assemblages in de kelder. Als een onverwachte bonus zorgt het ontwerp voor een zeer eenvoudige manier om de laser te monteren. Het wordt geleverd met een paar micro-servo's, maar ik raad je ten zeerste aan om er een aantal extra te kopen voor vervangingsdoeleinden. Je hebt minimaal één extra servo nodig (een kapotte is prima).
  • Een behuizing. Het doet me pijn om $ 8 te betalen voor een plastic doos en je zou zeker iets kunnen vinden dat geschikt is voor minder. Iets over de grootte van de gekoppelde behuizing klopt echter wel.
  • Een op ESP8266 gebaseerd ontwikkelbord. Ik heb de NodeMCU gebruikt. Het is niet overdreven om te zeggen dat ik van deze dingen hou. Gemakkelijk te gebruiken binnen de Arduino IDE en voldoende flash-geheugen voor uw webpagina's. Ook goedkoop en, in mijn ervaring, erg moeilijk om te bakken.
  • Een mini-laser. Tien voor $ 6 inclusief Amazon Prime. Maak je een grapje?? Nu moet ik alleen nog bedenken wat ik met de andere negen moet doen.
  • Een passieve zoemer voor de tonen.
  • Een tweekanaals relais. Ik gebruik deze voor het in- en uitschakelen van de servo's en laser. U kunt dit onderdeel misschien verwijderen, zoals ik later zal uitleggen.
  • 5VDC voeding. Hopelijk heb je een van deze rondslingeren van een lang vergeten gadget, maar zo niet, iets goedkoops en vrolijks dat ongeveer 1A van 5VDC kan produceren, is wat je nodig hebt.
  • Diverse verbruiksartikelen zoals weerstanden, LED's, aansluitdraad, krimpkous, soldeer, hete lijm. Het gebruikelijke. Ik gebruikte ook een barrel jack voor de inkomende 5VDC voeding van mijn beschamend grote verzameling vernietigde Arduino knock-off boards.
  • Last but not least, een vinyl sticker voor die grillige finishing touch.

Dus ja. Je kijkt naar ongeveer $ 50 in totaal. Je zou het voor minder kunnen doen, maar verdient je kat niet het beste?

Stap 2: Hulpmiddelen en bronnen

Hulpmiddelen en bronnen
Hulpmiddelen en bronnen

Niets bijzonders aan de kant van het gereedschap hier. Gewoon een degelijke soldeerbout, multimeter, boormachine en basis handgereedschap. Een bankvoeding is leuk om te experimenteren met de laser maar niet essentieel.

Dit project maakt echt gebruik van de mogelijkheden van de ESP8266 en in het bijzonder de NodeMCU. Als je net begint met de ESP8266, heb ik geen betere one-stop-bron gevonden dan dit ding. Verder draait het allemaal om Googlen om antwoorden te vinden op problemen die zich onderweg voordoen.

Stap 3: Bereid de behuizing voor

Bereid de behuizing voor
Bereid de behuizing voor
Bereid de behuizing voor
Bereid de behuizing voor

Zoals ik misschien al heb gezegd, lijkt het schandalig om $ 8 te betalen voor een plastic behuizing. Wat nog erger is, is het ding verknoeien door een gat op de verkeerde plaats te maken. Dus voordat je je kist met de boormachine en / of welke andere chaosmaker dan ook tot je beschikking hebt, overweeg dan de fouten die ik heb gemaakt.

  • Allereerst moet je nadenken over waar alle spullen zullen passen. Het goede nieuws is dat de behuizing die ik voorstel voldoende ruimte heeft, zelfs met de zeer slordige bedrading die je hier ziet. U kunt misschien zelfs wegkomen met een kleinere doos, vooral als u de relais elimineert.
  • Het belangrijkste is waar u de pan- en kantelmontage in het deksel monteert. Mijn eerste poging wordt hier getoond. Ik dacht dat ik het artistiek uit het midden zou plaatsen en een beetje naar achteren voor stabiliteit. Slecht idee! U moet het geheel zo dicht mogelijk bij de zijkant van het deksel plaatsen, zodat de behuizing zelf de balk niet hindert bij hoge kantelhoeken. Ik denk ook dat de ideale opstelling zou zijn om de pan-laser loodrecht op de korte zijde te monteren in plaats van, zoals ik deed, op de lange zijde. Ik deed het om puur esthetische redenen andersom, ook al is er iets meer kans op interferentie.
  • Zoals je kunt zien, is de NodeMCU op Perfboard gemonteerd en had hij gemakkelijk zo kunnen worden geplaatst dat de micro-USB-connector toegankelijk was via een sleuf aan de zijkant of achterkant. Dit zou software-updates eenvoudiger maken (het deksel hoeft niet te worden verwijderd). Mijn oorspronkelijke idee was om de Over-The-Air (OTA) -bibliotheek te gebruiken voor updates en je zult zien dat mijn code die functionaliteit bevat, hoewel er commentaar op is. Probleem was dat de toongenerator en OTA niet goed samen zouden spelen (de NodeMCU zou halverwege het nummer herhaaldelijk resetten). Dat probleem is waarschijnlijk op te lossen, maar ik ben er nooit in geslaagd SPIFFS anders dan via USB bij te werken, dus toegang tot de USB-connector zou leuk geweest zijn. Tegen de tijd dat ik dit allemaal doorhad, had ik de NodeMCU op het Perfboard gemonteerd op een manier die betekende dat het niet mogelijk was om de connector uit de doos te laten steken zonder veel gedoe. Oh nou ja.
  • Als ik het project opnieuw zou doen, zou ik de RGB-LED uitlijnen met de rode "power on" LED. (Het doel van de RGB-LED is om aan te geven in welke modus LaserKitty!! zich bevindt zonder naar de app te hoeven kijken.)

Het enige enigszins lastige deel van het daadwerkelijk maken van de gaten is de rechthoekige voor de pan-servo. Ik gebruikte een boor en een vijl. Zoals je bij mijn eerste poging kunt zien, is het moeilijk om het precies vierkant te maken (of rechthoekig, denk ik). Maar als de servo gemonteerd is zie je dat niet echt.

U moet nog drie andere gaten maken. Deze moeten aan de achterkant van de doos worden geplaatst en worden gebruikt voor de voedingsaansluiting, zoemer en ingang voor de kantelservo en laserbedrading. Al deze gaten kunnen rond zijn en vormen geen probleem om te maken met slechts een boor.

Liberaal gebruik van hete lijm zorgt ervoor dat alles op zijn plaats blijft (met uitzondering van de panservo, die aan het deksel is vastgeschroefd met behulp van de montagelipjes van de servo).

Stap 4: De pan- en kantelmontage

De pan- en kantelmontage
De pan- en kantelmontage
De pan- en kantelmontage
De pan- en kantelmontage
De pan- en kantelmontage
De pan- en kantelmontage
De pan- en kantelmontage
De pan- en kantelmontage

Toen ik de pan en tilt montage ontving, dacht ik dat ik weer een grote fout had gemaakt. In elkaar gezet volgens de instructies is het eigenlijk helemaal geen draai- en kantelmechanisme, maar eerder een kantel- en draaimechanisme - geschikt voor het beoogde gebruik als robotarm. Een moment van kalme reflectie liet me echter zien dat het eigenlijk op een andere manier kon worden gemonteerd om het gewenste resultaat te bereiken. Nog beter, de oorspronkelijke locatie van de "twist" -servo zou kunnen worden gebruikt als een montage voor de laser.

Als je de voltooide montage op deze foto's bekijkt, krijg je het idee. Je blijft zitten met een klein metalen blok dat niet nodig is in dit ontwerp.

De flits van inspiratie die ik had was om de oorspronkelijke locatie van de tweede servo te gebruiken om de laser te monteren. Sterker nog, als je een duff-servo onthoofdt en de spie-armbevestiging uitboort, is dit de perfecte montagelocatie voor de laser! Onderschat de inspanning die nodig is om de servo uit elkaar te zagen niet. Er zit wat vlees in die kleine ettertjes!

Na montage en installatie in de behuizing, EN VOORDAT U VOEDING TOEPAST, moet u ervoor zorgen dat deze ongeveer 180 graden over de voorkant van de behuizing kan draaien. Op de een of andere manier nadat ik het eenmaal met succes had geïnstalleerd, kreeg ik de panbevestiging weer in elkaar zodat de boutkoppen op de basis tegen het verhoogde deel van de servo aankwamen waar de arm moet worden gemonteerd. Het resultaat was dat de servo onmiddellijk zijn versnellingen ontdeed. Aan de positieve kant heb ik nu nog een duff-servo om als lasermontage te gebruiken.

Stap 5: Sluit het aan

Sluit het aan
Sluit het aan

Hopelijk maakt de Fritzing-schets het een en ander duidelijk. Enkele punten ter verduidelijking:

  • Zoals later besproken, wilde ik de laser zo gedimd mogelijk maken met behoud van voldoende helderheid om hem bruikbaar te maken in alles behalve het helderste binnenlicht. Met een beetje experimenteren besloot ik hem van stroom te voorzien via een 3,3 VDC-pin op de Node MCU, waarbij ik voor de goede orde een weerstand van 22 Ohm in serie toevoeg. Met deze opstelling trekt hij ongeveer 10 mA, dus in theorie zou hij rechtstreeks van een GPIO-pin kunnen worden gevoed, maar dat vond ik te zwak, zelfs zonder de weerstand.
  • De laser heeft een zeer beperkt vermogen om de focus te veranderen (collimatie?) die ik heb gebruikt om de stip groter te maken en daardoor de laserenergie te verspreiden
  • Mijn eerste gedachte was om de servo's aan en uit te zetten met een transistor, maar dit zorgde ervoor dat de servo's gek werden. Ik weet zeker dat hier een goede reden voor is, maar aangezien ik al wat relais bij de hand had, nam ik de gemakkelijke uitweg en volledig geïsoleerde voeding naar de servo's. En aangezien de relais twee kanalen hadden, dacht ik dat ik de laser net zo goed op die manier kon schakelen (de paarse draden zijn het stuursignaal van de MCU). Ik hou ook van het mechanische klikgeluid dat deze oplossing produceert. U kunt echter anders beslissen. Niet weergegeven, maar de relais worden rechtstreeks gevoed door de 5VDC-voeding - de NodeMCU had misschien een tweekanaalsrelais rechtstreeks kunnen voeden, maar er was geen reden om het risico te nemen. Als u deze relais al eerder heeft gebruikt, weet u dat u de jumper tussen JD-VCC en VCC moet verwijderen.
  • De RGB LED heeft 220 Ohm stroombegrenzende weerstanden op rood en groen en 100 Ohm op blauw. De rode "power on" LED heeft een weerstand van 450 Ohm aangezien hij gevoed wordt door 5VDC in plaats van 3,3VDC. Dit zijn slechts margewaarden om voldoende helderheid en een redelijke levensduur te krijgen.
  • De zoemer is behoorlijk luid. Misschien wilt u een weerstand aan de signaallijn toevoegen om het volume te dempen. De tonen kunnen volledig via de software worden uitgeschakeld maar iets er tussenin is misschien leuk.

Stap 6: De code

De code
De code
De code
De code
De code
De code
De code
De code

Ondanks de nogal langdradige uitleg van de hardwarekant, ging 90% van de moeite hier in de code. Het zou meer zijn geweest, maar ik heb een geweldige code "geleend" voor de beweging van de laser in de automatische modus vanaf hier. Het heeft geen zin om het wiel opnieuw uit te vinden. U kunt er zelfs voor kiezen om dat project te volgen in plaats van dit, of om aspecten van beide te mixen en matchen. Zeker, ik hou van het idee om sommige componenten met een 3D-printer te maken, maar ik heb er geen.

Mijn code (te vinden op GitHub hier) bestaat uit drie hoofddelen. Er is de Arduino-schets zelf, HTML-bestanden met een heleboel Javascript voor de applicatie-inhoud en bijbehorende CSS-bestanden voor styling. Ik heb dit project gebruikt om iets meer te leren over al deze programmeerelementen, beginnend met een zeer lage basis, vooral aan de kant van de applicatie-interface. Ik heb geprobeerd de code een beetje op te ruimen, maar mijn belangrijkste focus was om het ding aan het werk te krijgen. De code gebruikt Websockets voor bidirectionele communicatie tussen de NodeMCU-server en aangesloten clients.

De Arduino-code is uitgebreid becommentarieerd, dus hopelijk vindt u het gemakkelijk te volgen. Nadat je het van GitHub hebt gedownload, plak je het hele lot in een map, upload je de schets naar je MCU en upload je de inhoud van de "data"-submap naar SPIFFS.

Schrap dat eigenlijk. Als je de Pushbullet-meldingsfunctie wilt gebruiken, heb je eerst een API-toegangstoken nodig die hier beschikbaar is. Het gaat in regel 88 van de Arduino-code. Pushbullet werkt goed, maar als je voor de eerste keer een account op je telefoon instelt, moet je misschien inloggen, uitloggen en vervolgens weer inloggen voordat meldingen verschijnen zoals geconfigureerd in de instellingen van je telefoon.

Er zijn drie webpagina's: een opstartscherm, de eigenlijke applicatie-interface en een instellingenpagina. Door de inhoud op deze manier te scheiden, wordt het gebruik van de interface veel app-achtiger, vooral vanwege de uitgebreide configuratie-opties (de screenshot legt slechts een deel van deze opties vast).

Een eigenaardigheid om de NodeMCU meerdere pagina's te laten bedienen, was dat ik alle afbeeldingsbestanden rechtstreeks in de gegevensmap moest plaatsen - ik kon het gewoon niet laten werken als ze in submappen waren geplaatst. Ik heb alle afbeeldingen die ik heb gebruikt in de GitHub-repository opgenomen, zodat het out-of-the-box werkt, maar je zult ze ongetwijfeld willen vervangen door je eigen afbeeldingen.

Stap 7: finishing touch & laserveiligheid

Finishing touch & laserveiligheid
Finishing touch & laserveiligheid
Finishing touch & laserveiligheid
Finishing touch & laserveiligheid
Finishing touch & laserveiligheid
Finishing touch & laserveiligheid

Ondanks zijn oogverblindende kosten van $ 8, is de behuizing, nou ja, nogal utilitair. Na een beetje rondneuzen op Etsy vond ik de vinylafbeelding die je op het eindproduct ziet (en die gespiegeld is op de applicatiepagina). Verzonden vanuit het VK was het een beetje duur, maar zeker de moeite waard - en je krijgt er twee voor het geval je het project wilt repliceren. Als laatste artistieke bloei heb ik de kleine "kuiltjes" in de ogen van de kat gedraaid zodat ze naar de felrode power-LED kijken, die staat voor de laserpunt. Afhankelijk van je honger naar eigenzinnigheid, kun je er wel of niet voor kiezen om deze extra mijl te gaan.

Het HTML-bestand van het opstartscherm bevat code om een pictogram toe te voegen aan het startscherm van uw iPhone.

Ten slotte moet ik de bezorgdheid over het gebruik van een laser om met katten te spelen niet negeren. Er zijn twee belangrijke bezwaren:

  • De laser kan de ogen van de kat verblinden of beschadigen
  • Spelen met een laserpunt is uiteindelijk onbevredigend voor katten omdat ze het nooit kunnen vangen of "doden"

Er is veel gemor over beide onderwerpen, sommige schijnbaar geïnformeerd, andere minder. Uiteindelijk moet u uw eigen beslissingen nemen of dit project, of een ander laserspeelgoed, geschikt is voor uw kat. Wat ik deed, was proberen het eerste probleem aan te pakken door de laser zo zwak mogelijk te maken zonder het te moeilijk te maken om te zien bij redelijke lichtniveaus. Zorg er ook voor dat elke kat die het apparaat gebruikt, niet de neiging heeft om naar de laser zelf te staren in plaats van naar de stip - vooral als u van plan bent de LaserKitty te gebruiken!! in de modus Automatisch of Gepland. Een doel van de Pushbullet-meldingsfunctie is dat deze kan worden gebruikt in combinatie met een bewakingscamera, zodat u eraan wordt herinnerd uw kat te zien spelen terwijl u weg bent.

Wat het tweede bezwaar betreft, heb ik de mogelijkheid opgenomen om een "Thuispositie" op te slaan waarnaar de laser zal terugkeren na geplande speelsessies. Als je dit zo instelt dat het wijst naar een stilstaand speeltje of de voerbak van je kat, zal dit hopelijk een oplossing bieden. Hoewel, met katten, wie weet het echt?

Aanbevolen: