Taula de continguts:

LaserKitty !!: 7 passos (amb imatges)
LaserKitty !!: 7 passos (amb imatges)

Vídeo: LaserKitty !!: 7 passos (amb imatges)

Vídeo: LaserKitty !!: 7 passos (amb imatges)
Vídeo: Основные ошибки при возведении перегородок из газобетона #5 2024, Octubre
Anonim
Image
Image
Aconsegueix les teves coses
Aconsegueix les teves coses

És una veritat universalment reconeguda que un sol gat en possessió de bona fortuna ha de mancar d’una joguina làser. Com passa amb els senyors solters que necessiten futures esposes, cal observar algunes precaucions. Però, no és cert que res valgui la pena tenir-ho?

Si teniu dubtes sobre les mascotes i la seguretat del làser, aneu al final d'aquest manual abans de fer comentaris. Si teniu dubtes sobre una futura esposa, o fins i tot sobre l’actual, probablement haureu de buscar en un altre lloc.

Ara podeu anar a la vostra botiga local d’animals de companyia i adquirir un punter làser, i potser fins i tot algun dispositiu que afegeixi una automatització rudimentària. Estalviareu diners i podríeu tornar-los si no funcionés. O podríeu construir alguna cosa vosaltres mateixos. Ja hi ha molts exemples, però aquí teniu la meva contribució al cànon. Inclou:

  • Control complet del telèfon intel·ligent
  • Modes manuals, automàtics i programats
  • Interfície d'aplicació personalitzada
  • Estat del sistema sincronitzat entre diversos clients web
  • L'estat del sistema es reflecteix a LaserKitty !! a si mateix
  • Restriccions de rang panoràmic i d’inclinació configurables
  • Durades i freqüències de la sessió de temps de reproducció configurables
  • Finestres de joc configurables
  • Pàgina de configuració amb la configuració actual d'un cop d'ull
  • Sincronització horària NTP
  • Gestor de WiFi per a una fàcil configuració en xarxes noves
  • Generador de tons per reproduir el tema Mission Impossible abans de cada sessió de joc: el vostre gat pot apreciar la ironia o no.
  • Envieu notificacions a tots els vostres dispositius quan comenci una nova sessió de temps de reproducció
  • Posició inicial configurable perquè el temps de joc finalitzi al bol de menjar o a la joguina fixa
  • Totes les configuracions emmagatzemades a EEPROM no es perden en cas d’aparició de corrent
  • I molt més! Bé, en realitat no, això és tot.

Pas 1: Obteniu les vostres coses

Això és el que he utilitzat:

  • Un mini conjunt de paella i inclinació. Aquest no és certament el més barat que pugueu trobar i necessita alguna modificació per als nostres propòsits. L’he escollit perquè sembla una mica més fresc que els conjunts de plàstic de soterrani. Com a avantatge inesperat, el seu disseny permet una manera molt fàcil de muntar el làser. Ve amb un parell de microservos, però us recomano que en compreu un munt d’altres per reemplaçar-los. Necessitareu com a mínim un servo addicional (un trencat està bé).
  • Un recinte. Em dol pagar 8 dòlars per una caixa de plàstic i, sens dubte, podríeu trobar alguna cosa adequada per a menys. Alguna cosa sobre la mida del recinte enllaçat és correcte.
  • Una placa de desenvolupament basada en ESP8266. He utilitzat el NodeMCU. No és una exageració dir que m’encanten aquestes coses. Fàcil d'utilitzar a l'IDE Arduino i molta memòria flash per a les vostres pàgines web. També barat i, segons la meva experiència, molt difícil de fregir.
  • Un mini làser. Deu per 6 dòlars inclòs Amazon Prime. Em prens el pél?? Ara només he d’esbrinar què fer amb els altres nou.
  • Un brunzidor passiu per als tons.
  • Un relé de dos canals. Els faig servir per encendre i apagar els servos i el làser. És possible que pugueu eliminar aquest component com us explicaré més endavant.
  • Alimentació de 5VDC. Esperem que en tingueu un d’aquests aparells oblidats des de fa molt de temps, però si no és res econòmic i alegre que pugui produir al voltant de 1A de 5VDC, és el que necessiteu.
  • Consumibles diversos com ara resistències, LEDs, filferro de connexió, encongiment, soldadura, cola calenta. El de sempre. També he utilitzat una presa de barril per a la font d'alimentació d'entrada de 5VDC de la meva vergonyosament àmplia col·lecció de taules destructores Arduino destruïdes.
  • Per últim, però no menys important, una etiqueta de vinil per a aquest capritxós toc final.

Així que sí. Esteu buscant uns 50 dòlars en total. Ho podries fer per menys, però el teu gatet no es mereix el millor?

Pas 2: eines i recursos

Eines i recursos
Eines i recursos

Aquí no hi ha res d’especial. Només un soldador decent, multímetre, trepant i eines manuals bàsiques. Una font d'alimentació de banc és agradable per experimentar amb el làser, però no és essencial.

Aquest projecte realment explota les capacitats de l’ESP8266 i, en particular, del NodeMCU. Si tot just comenceu amb l’ESP8266, no he trobat cap recurs únic millor que aquesta cosa. A part d’això, es tracta de buscar a Google les respostes als problemes que apareixen en el camí.

Pas 3: prepareu el recinte

Prepareu el recinte
Prepareu el recinte
Prepareu el recinte
Prepareu el recinte

Com ja he esmentat, pagar 8 dòlars per un recinte de plàstic sembla escandalós. El que és encara pitjor, però, és cargolar la cosa posant un forat al lloc equivocat. Per tant, abans de tenir a la vostra caixa amb la broca i / o qualsevol altre fabricant de caos a la vostra disposició, tingueu en compte els errors que he comès.

  • En primer lloc, heu de pensar on encaixaran totes les coses. La bona notícia és que el recinte que suggereixo té molt espai, fins i tot amb el cablejat molt desordenat que veieu aquí. Fins i tot podreu sortir amb una caixa més petita, sobretot si elimineu els relés.
  • El més important és on muntareu el conjunt de la paella i la inclinació a la tapa. El meu primer intent es mostra aquí. Vaig pensar que el situaria artísticament fora del centre i una mica enrere per obtenir estabilitat. Mala idea! Necessiteu el muntatge el més a prop possible del costat de la tapa perquè el recinte no interfereixi amb la biga en angles d’inclinació elevada. A més, crec que la disposició ideal seria muntar el làser panoràmic perpendicular al costat curt en lloc de, com he fet, el costat llarg. Ho vaig fer a l’altra manera per raons purament estètiques, tot i que hi ha una mica més de potencial d’interferència.
  • Com podeu veure, el NodeMCU està muntat a Perfboard i s’hauria pogut col·locar fàcilment de manera que el seu connector micro USB fos accessible des d’una ranura lateral o posterior. Això facilitaria les actualitzacions de programari (no cal treure la tapa). La meva idea original era utilitzar la biblioteca Over-The-Air (OTA) per a actualitzacions i veureu que el meu codi inclou aquesta funcionalitat, tot i que es comenta. El problema va ser que el generador de tons i l'OTA no es reproduirien bé junts (el NodeMCU es restabliria repetidament a la meitat de la cançó). Probablement es pot solucionar aquest problema, però mai no he tingut èxit en actualitzar SPIFFS que no sigui per USB, de manera que tenir accés al connector USB hauria estat bo. Quan vaig tenir tot això assabentat, havia muntat el NodeMCU al Perfboard d'una manera que significava que no es podia treure el connector de la caixa sense fer-ne gaire. Oh bé.
  • Si tornés a fer el projecte, alinearia el LED RGB amb el LED vermell "encès". (L'objectiu del LED RGB és indicar en quin mode es troba LaserKitty !! sense haver de mirar l'aplicació.)

L'única part lleugerament difícil de fer els forats és la rectangular per al servo pan. He utilitzat un trepant i una llima. Com es pot veure des del meu primer intent, és difícil fer-lo exactament quadrat (o rectangular, suposo). Però quan el servo està muntat no es pot veure realment.

Haureu de fer altres tres forats. Aquests s’han de col·locar a la part posterior de la caixa i s’utilitzen per a la presa d’alimentació, el brunzidor i el punt d’entrada per al cablejat del làser i del servo inclinació. Tots aquests forats poden ser rodons i no presenten cap dificultat per fer només amb un trepant.

L'ús liberal de cola calenta assegura tot al seu lloc (amb l'excepció del servo pan, que es cargola a la tapa mitjançant les pestanyes de muntatge del servo).

Pas 4: el conjunt Pan i Tilt

El conjunt Pan i Tilt
El conjunt Pan i Tilt
El conjunt Pan i Tilt
El conjunt Pan i Tilt
El conjunt Pan i Tilt
El conjunt Pan i Tilt
El conjunt Pan i Tilt
El conjunt Pan i Tilt

Quan vaig rebre el conjunt de la panoràmica i la inclinació, vaig pensar que havia comès un altre gran error. Reuneix-lo segons les instruccions que realment no és un mecanisme d’inclinació i inclinació, sinó un disseny d’inclinació i gir, adequat per al seu ús previst com a braç del robot. Tanmateix, un moment de reflexió tranquil·la em va permetre veure que es podia muntar de manera diferent per aconseguir el resultat desitjat. Encara millor, la ubicació original del servo "twist" es podria utilitzar com a suport per al làser.

Si examineu el muntatge complet en aquestes imatges, tindreu la idea. Us quedarà un petit bloc metàl·lic que no és necessari en aquest disseny.

El flaix d’inspiració que vaig tenir va ser utilitzar la ubicació original del segon servo per muntar el làser. Encara millor, si decapiteu un servo duff i treieu el suport del braç estret, és el lloc de muntatge perfecte per al làser. Simplement no subestimeu l’esforç necessari per separar el servo. Hi ha una mica de carn en aquells menuts!

Després de muntar-lo i instal·lar-lo al recinte, I ABANS D'APLICAR-NE LA POTÈNCIA, assegureu-vos que es desplaçarà gairebé 180 graus a la cara del recinte. D’alguna manera o altra després d’haver-lo instal·lat amb èxit, vaig tornar a muntar el muntatge panoràmic de manera que els caps del cargol de la base s’enllaçessin amb la punta elevada del servo on es pretén muntar el braç. El resultat va ser que el servo es va despullar immediatament dels engranatges. A la part més brillant, ara tinc un altre servo duff per utilitzar com a muntatge làser.

Pas 5: connecteu-lo

Wire It Up
Wire It Up

Esperem que l’esbós de Fritzing deixi les coses clares. Alguns punts a aclarir:

  • Com es va comentar més endavant, volia fer que el làser fos tan feble com fos possible, tot conservant la brillantor suficient per fer-lo útil a totes, excepte la llum interior més brillant. Amb una mica d’experimentació, vaig decidir alimentar-lo des d’un pin de 3,3 V CC a la MCU de node, afegint una resistència de 22 Ohm en sèrie per a una bona mesura. Amb aquesta configuració, es dibuixa al voltant de 10 mA, de manera que, en teoria, es podria alimentar directament des d’un pin GPIO, però em va semblar massa feble, fins i tot sense la resistència.
  • El làser té una capacitat molt limitada de canviar d'enfocament (colimació?) Que he utilitzat per fer el punt més gran i dispersar l'energia del làser.
  • El meu primer pensament va ser encendre i apagar els servos amb un transistor, però això va fer que els servos es tornessin bojos. Estic segur que hi ha una bona raó per a això, però com que ja tenia alguns relés a mà, vaig agafar la sortida fàcil i vaig aïllar totalment els servos. I com que els relés tenien dos canals, vaig pensar que també podia canviar el làser d’aquesta manera (els cables morats són el senyal de control de la MCU). M'agrada el soroll mecànic de clics que també produeix aquesta solució. Però podeu decidir el contrari. No es mostra, però els relés s’alimenten directament del subministrament de 5VDC; és possible que el NodeMCU només hagi pogut alimentar un relé de dos canals directament, però no hi ha cap raó per arriscar-lo. Si heu utilitzat aquests relés abans de saber-ho, cal eliminar el pont entre JD-VCC i VCC.
  • El LED RGB té resistències de limitació de corrent de 220 Ohm en vermell i verd i 100 Ohm en blau. El LED vermell "encès" té una resistència de 450 Ohm, ja que s'alimenta des de 5VDC en lloc de 3,3VDC. Aquests són només valors bàsics per obtenir molta brillantor i una longevitat raonable.
  • El brunzidor és força fort. És possible que vulgueu afegir una resistència a la línia de senyal per atenuar el volum. Els tons es poden desactivar completament mitjançant el programari, però pot ser que hi hagi alguna cosa entremig.

Pas 6: el codi

El codi
El codi
El codi
El codi
El codi
El codi
El codi
El codi

Malgrat l'explicació bastant llarga de la part del maquinari, el 90% de l'esforç es va dedicar al codi. Hauria estat més, però "vaig demanar prestat" un codi fantàstic per al moviment del làser en mode automàtic des d'aquí. No té sentit reinventar la roda. De fet, és possible que decidiu seguir aquest projecte en lloc d’això o barrejar aspectes de tots dos. Certament, m’agrada la idea de fabricar alguns components amb una impressora 3D, però no en tinc cap.

El meu codi (que es troba a GitHub aquí) es divideix en tres parts principals. Hi ha el propi esbós Arduino, fitxers HTML amb un munt de Javascript per al contingut de l'aplicació i fitxers CSS associats per a l'estil. He utilitzat aquest projecte per aprendre una mica més sobre tots aquests elements de programació, començant per una base molt baixa, sobretot pel que fa a la interfície de l'aplicació. He intentat endreçar una mica el codi, però el meu objectiu principal era només fer que la cosa funcionés. El codi utilitza Websockets per a la comunicació bidireccional entre el servidor NodeMCU i els clients connectats.

El codi Arduino és molt comentat, així que espero que sigui fàcil de seguir. Un cop l'heu descarregat de GitHub, enganxeu tot el lot a una carpeta, pengeu l'esbós a la vostra MCU i, a continuació, pengeu el contingut de la subcarpeta "dades" a SPIFFS.

En realitat, ratlla això. Si voleu utilitzar la funció de notificació Pushbullet, primer necessiteu un testimoni d'accés a l'API disponible des d'aquí. Va a la línia 88 del codi Arduino. Pushbullet funciona bé, però si configureu un compte al telèfon per primera vegada, és possible que hàgiu d'iniciar la sessió, tanqueu la sessió i torneu a iniciar la sessió abans que les notificacions comencin a aparèixer tal com estan configurades a la configuració del telèfon.

Hi ha tres pàgines web: una pantalla de presentació, la interfície d'aplicació real i una pàgina de configuració. Separar el contingut d’aquesta manera fa que l’ús de la interfície sigui molt més semblant a l’aplicació, sobretot a causa de les extenses opcions de configuració (la captura de pantalla només captura una part d’aquestes opcions).

Una de les molèsties d’aconseguir que el NodeMCU servís diverses pàgines era que havia de posar tots els fitxers d’imatges a la carpeta de dades directament; no podia fer-ho funcionar si es col·locaven a subcarpetes. He inclòs totes les imatges que he fet servir al dipòsit de GitHub perquè funcionin de manera immediata, però sens dubte voldreu substituir-les per les vostres pròpies imatges.

Pas 7: Acabat dels tocs i seguretat del làser

Tocs d’acabat i seguretat làser
Tocs d’acabat i seguretat làser
Tocs d'acabat i seguretat làser
Tocs d'acabat i seguretat làser
Tocs d’acabat i seguretat làser
Tocs d’acabat i seguretat làser

Tot i el seu atractiu cost de 8 dòlars, el recinte és, en efecte, força utilitari. Després d’haver buscat una mica l’Etsy, vaig trobar el gràfic en vinil que veieu al producte acabat (i que es reflecteix a la pàgina de l’aplicació). Enviat des del Regne Unit, era una mica car, però val la pena, i en teniu dos per si voleu replicar el projecte. Quan el meu últim artístic va florir, vaig girar els petits "clots" als ulls del gat perquè miressin el LED de color vermell brillant, que significa el punt làser. Depenent de la vostra gana de caprici, podeu o no fer aquesta milla addicional.

El fitxer HTML de la pantalla de presentació inclou codi per afegir una icona a la pantalla inicial de l'iPhone.

Finalment, no hauria d’ignorar les preocupacions expressades sobre l’ús d’un làser per jugar amb els gats. Hi ha dues objeccions principals:

  • El làser podria cegar o danyar els ulls del gat
  • Jugar amb un punt làser en última instància no és satisfactori per als gats perquè mai no el poden atrapar ni “matar”

Hi ha molta incidència en les entranyes de tots dos temes, alguns aparentment informats, d’altres menys. En última instància, heu de prendre les vostres pròpies decisions sobre si aquest projecte o qualsevol altra joguina làser és adequat per al vostre gat. El que vaig fer va ser intentar solucionar el primer problema fent que el làser fos el més feble possible sense que fos massa difícil de veure a nivells de llum raonables. A més, assegureu-vos que qualsevol gat que utilitza el dispositiu no tingui propensió a mirar el làser en lloc del punt, sobretot si teniu intenció d’utilitzar el LaserKitty. en modes automàtics o programats. Un dels propòsits de la funció de notificació Pushbullet és que s’utilitzi juntament amb una càmera de monitorització, de manera que se us recorda que mireu el vostre gatet mentre esteu fora.

Quant a la segona objecció, he inclòs la possibilitat de desar una "Posició inicial" a la qual tornarà el làser després de les sessions de joc programades. Si configureu aquesta opció per assenyalar una joguina fixa o el bol de menjar del vostre gatet, esperem que aporti una resolució. Tot i que, amb gats, qui ho sap realment?

Recomanat: