Taula de continguts:

Rellotge d'ubicació "Weasley" amb 4 agulles: 11 passos (amb imatges)
Rellotge d'ubicació "Weasley" amb 4 agulles: 11 passos (amb imatges)

Vídeo: Rellotge d'ubicació "Weasley" amb 4 agulles: 11 passos (amb imatges)

Vídeo: Rellotge d'ubicació
Vídeo: 41 - El rellotge d'agulles per a orientar-se 2024, Juliol
Anonim
Rellotge d'ubicació "Weasley" amb 4 agulles
Rellotge d'ubicació "Weasley" amb 4 agulles

Així, doncs, amb un Raspberry Pi que feia temps que donava voltes, volia trobar un bon projecte que em permetés aprofitar-lo al màxim. M’he trobat amb aquest fantàstic rellotge d’ubicació de Weasley, construïble amb instruccions, de ppeters0502 i he pensat que seria bo provar-ho.

El rellotge consisteix bàsicament en un Raspberry Pi que controla els servos per girar les agulles del rellotge. Com a la casa de la família Weasley als llibres / pel·lícules de Harry Potter, cada membre de la família té la seva pròpia mà. Cada mà assenyala la ubicació actual d'aquest membre de la família. El rellotge ho aconsegueix rebent missatges dels telèfons mòbils de la família cada vegada que entren o surten d’un radi predefinit.

Les principals diferències respecte a l’anterior Instructable eren que necessitava tenir 4 agulles, no dues (en cas contrari, les meves filles s’haurien queixat) i vaig decidir construir el marc també, no aconseguir un rellotge antic per reutilitzar-lo. Això es va produir perquè em preocupava que l'espai fos un problema en una caixa de rellotge existent, amb la necessitat d'encaixar en 4 servos, etc.

Vaig trigar molt més del que esperava, tot i que sobretot em vaig trobar amb problemes difícils que em van enfonsar i que no semblaven estar coberts pel missatge original. Res contra l'instrumentable original, que generalment era fantàstic, però havien passat alguns anys i les versions de les coses havien canviat … etc. A més, estar al Regne Unit significava que alguns dels elements imperials / mètrics provocaven més desafiaments del que esperava.

A més, tot i que estic bé en la codificació, la creació física del rellotge definitivament em va estirar i va necessitar algunes eines addicionals, que també em van frenar una mica.

Al final inclouré una secció sobre "Coses que faria diferent / millor si ho tornés a fer …"

Subministraments:

Una de les coses que més em va cridar l’atenció va ser que els components cars tenien a veure amb les agulles del rellotge. 4 mans és definitivament molt més car que 2. He decidit posar alguns costos perquè tingueu una idea. Aquesta és la primera vegada que ho sumo tot i, sense tenir en compte les eines, crec que vaig gastar uns 200 lliures. A més d’algunes coses que no he fet servir (i que no he inclòs a continuació) més el Pi, més la font d’alimentació que ja tenia.

Pi, etc

  1. Raspberry Pi: no recordo quant costava originalment, però era un model 2B. Crec que si encara no en teniu, probablement fins i tot un Pi Zero en tindria. Havia afegit un dongle wifi i una targeta SD amb Raspbian. I tenia un carregador de telèfon Android antic.
  2. Adafruit Servohat per al Pi - 16 lliures
  3. Font d'alimentació per al Servohat: això em va costar molt trobar-ho, ja que tots els llocs web només assenyalaven el lloc d'Adafruit que, òbviament, recomana una font d'alimentació als EUA. Llavors em vaig adonar que tenia un subministrament de tensió variable antic amb puntes intercanviables, així que ho vaig fer servir. Però el dels EUA és de 8 dòlars, de manera que aquest és l’esport.
  4. Funda per al Pi, de manera que el pugui fixar al marc del rellotge. 5 lliures esterlines

Servo i engranatges

Aquí cito el preu per a tots els 4, així que dividiu si voleu menys mans (sumant-lo és de ~ 40 £ PER MÀ = 160 £: -o

  1. 4 x Servos: he utilitzat els recomanats per ppeters0502 - trobats a ebay per ~ 15 £ cadascun = 60 £ - He cercat el text següent "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-degree "però de vegades no estaven disponibles
  2. 4 x tubs de llautó que s’adaptaven exactament l’un a l’altre, de ~ 3 £ cadascun. Tinc 1 cadascun de 1/4 ", 7/32", 3/16 ", 5/32" = 11 £
  3. 4 x pinces que es fixen als tubs de llautó per permetre fixar engranatges. ~ 7 lliures cadascun = 28 lliures. Els he rebut d'ActiveRobots que fa comandes regulars des de Servocity als Estats Units, cosa que us permet evitar l'enviament internacional. També poden obtenir qualsevol altra cosa que pugueu trobar al principal lloc web de Servocity als Estats Units. Va ser molt útil per als següents 2 articles
  4. 4 x engranatges amb patró d’acetil de 0,770 "per muntar als cubs de subjecció. ~ 6 £ cadascun = 24 £
  5. 4 engranatges acetil muntats en spline d'acetil per muntar als servos. ~ 6,50 £ cadascun = 26 £
  6. 1 paquet de femelles hexagonals als engranatges connectats a les femelles de fixació = 2,60 GBP
  7. 1 x tecla hexagonal de 7/64 "(clau Allen) perquè tot el que prové dels EUA és imperial, de manera que els centenars de tecles Allen que ja tinc són inútils = 1 £

Per a la construcció física

Aquí he utilitzat sobretot retalls de coses sobre les quals havia mentit

  1. 2 quadrats de fusta contraxapada per a la placa "cara" i "posterior"
  2. Aleshores vaig tallar cilindres de 4x10cm d’un vell passamans que tenia per tal de connectar l’esquena a la cara
  3. Alguns blocs per muntar els servos al desplaçament correcte, només talles de fusta tova que he tallat a mida.
  4. Assortiment de cargols. de molt petit (per fixar la caixa Pi al marc) a mitjà (per fixar el marc junts)
  5. Xapa d'acer dolç de 0,75 mm d'uns 50cm x 20cm (per tallar les mans). Això va ser l'únic que vaig comprar ~ 9 lliures a Wickes

Eines

Algunes coses que tenia i d’altres les he pres o manllevat

  1. Soldador + soldadura elèctrica: per connectar els connectors a l'Adafruit Hat & Pi.
  2. Trencaclosques: per retallar la forma rugosa de les mans
  3. Trepant. només un trepant de 18V sense fil normal
  4. Broques: tingueu en compte que necessitareu broques imperials per fer forats que coincideixin amb els tubs de llautó. Vaig aconseguir manllevar-ne alguns.
  5. serra mecànica: per tallar els tubs de llautó. No facis el que vaig fer i gasta 3 lliures esterlines al tallador de tubs, funciona per pressió i significa que l’interior dels tubs es redueix una mica. de manera que el tub de mida següent no s'adapta
  6. Esmoladora de bancs: no en tenia cap, però sí un amic, i va facilitar la formació de les mans MOLT. Fins aleshores només feia servir fitxers. No en compraria un només per aquest projecte, però per a les mans de metall va ser fantàstic.
  7. Vaig comprar alguns fitxers de punt de diamant variats (molt petits). útil per a mans i tubs al voltant de 15 £
  8. paper de vidre aspre i llis
  9. algunes petites abraçadores mantenen les coses al seu lloc durant la perforació.
  10. un vici per la mateixa raó.

Pas 1: Configuració dels telèfons per enviar la seva ubicació al vostre Pi (Part I MQTT Broker)

Aquest bit el descriu molt bé ppeters0502 al seu excel·lent Weasley Clock Instructable. Curiosament, tot i que potser reflecteix diferents habilitats, va començar amb la compilació i després va passar al programari, ho vaig fer al revés. Per tant, vaig començar amb el telèfon … pengueu, no, no, vaig començar amb el corredor MQTT, que és el pas 6 de la seva instrucció. Ometré tots els bits que fa molt bé i només hi llançaré alguns bits que puc afegir. Vaig seguir la ruta CloudMQTT que ell va mencionar.

PERas Quan escrivia això, vaig comprovar l'enllaç als plans i vaig trobar que ja no hi ha cap pla gratuït. El van retirar, pel que sembla motiu raonable. és a dir, que la gent configurés una instància gratuïta i després no l’utilitzaria mai. No me n’he adonat perquè les instàncies actuals poden continuar. Així que no canviaré. Però fa que les instruccions siguin una mica redundants. Sembla que hi ha 3 opcions.

  1. Paga els 5 dòlars mensuals per Cloud MQTT (però això sembla costós per al rellotge de forma continuada).
  2. Seguiu la ruta Mosquitto on Pi tal com es descriu a la primera instrucció. No puc comentar-ho, però podria ser una bona opció.
  3. Només cal que cerqueu "broker de núvol MQTT gratuït" i sembla que n'hi ha d'altres.

Per tant, suposant que teniu un corredor MQTT en funcionament, si es tracta d’un CloudMQTT, apareixerà un servidor, usuari, contrasenya i port. Necessitareu tot això per configurar els vostres telèfons per enviar al corredor les vostres ubicacions / moviments.

Pas 2: configureu els vostres telèfons per enviar la seva ubicació al vostre Pi (pistes pròpies de la part II)

Això també es descriu molt bé a l’instructible original, als passos 7 (Android), 8 (iOS) i 9 (configuració de regions).

Només tenia dispositius iOS, així que no vaig provar el pas 7.

Què hi afegiria a aquestes instruccions?

  1. A la configuració també hi ha els camps TrackerID i DeviceID. Aquests hauríeu de tenir-los per poder identificar-vos dins de la vostra família. Per exemple. Els tenia com a R i RPhone respectivament. Això vol dir que podeu passar al rellotge per quina Servo i, per tant, quina mà gireu.
  2. Les regions són el nom de les ubicacions de les quals voleu fer el seguiment.
  3. Cada regió està definida per un nom, una latitud, una longitud i un radi.
  4. Com que volia tenir diverses ubicacions com a una secció del meu rellotge, vaig utilitzar una convenció de noms, que va resultar molt útil. Altres mètodes són possibles, però això va funcionar per a mi.

    • Per exemple, per a la secció FAMÍLIA del rellotge volia tenir els meus pares i germans i els pares i germans de la meva dona. Per tant, tenia ubicacions com "Family Tom", "Family Dick", Family Harry "i" Family ParentsR ". Això significava que la següent etapa podia saber què passar al Clock.
    • Tingueu en compte que les persones poden tenir ubicacions diferents. Però, sempre que siguin coherents amb la convenció de noms, no està malament. Per exemple. el meu treball seria diferent de la regió de treball de la meva dona i es trucaria de manera diferent. però sempre que tots dos comencin a "Treballar", tot està bé.
  5. Voleu que el mode estigui configurat a "Significatiu" a la pantalla de Maps. Això vol dir que (sobretot) només rebeu missatges quan entreu o sortiu de regions. Sembla que aquesta és la versió actualitzada de la nota marcada com a IMPORTANT: al final del pas 8 a l’instructible original.
  6. Com es va esmentar a l’instructible original, l’ús de Google Maps és una manera excel·lent de conèixer el lat / llarg d’algun lloc. Em va semblar més eficient fer-ho de manera massiva, descobrint tots els lat / llargs de la meva ubicació, després els vaig enganxar a Notes (al meu Mac) i, amb la sincronització del núvol, significava que apareixien màgicament al meu iPhone a Notes i els podria copiar / enganxar a Owntracks. També volia dir que podia enviar el fitxer als telèfons de la meva família i que tots teníem ubicacions constants.
  7. Les ubicacions properes poden causar problemes. El meu germà viu a dos carrers de distància i, inicialment, el meu telèfon continuava pensant que jo estava a la zona de casa seva a la vegada que a casa. Finalment, vaig haver de posar una lògica addicional a Node Red per detectar i ignorar aquest fet.

Pas 3: Configuració del Raspberry Pi

Configuració del Raspberry Pi
Configuració del Raspberry Pi

Així doncs, aquí suposo que teniu un Pi base configurat i amb wifi. Jo estava executant Raspbian però no hauria d’importar. Utilitzeu les instruccions de raspberrypi.org per configurar-ho tot.

Tingueu en compte que un Pi té ports per mostrar a un monitor, un teclat / ratolí, etc. PER obviously òbviament, un cop el tingueu al rellotge, no en voleu res. Per tant, la resposta suggerida per algú al lloc web de Raspberry pi, crec, va ser establir una connexió VNC. Això us permet connectar-vos des d’un altre dispositiu al Pi i controlar-lo també. Ho faig des del meu Mac, però també ho he fet des d’un iPad. Suggeriria utilitzar alguna cosa amb un teclat per facilitar-ne l'ús.

Acabo de trobar que sembla que ho han facilitat des que em vaig connectar … vegeu aquí

Essencialment, us connecteu i obteniu una finestra que és la interfície estàndard Pi.

Per tant, teniu una finestra al vostre Pi des del portàtil o l’ordinador.

Ara cal connectar els Servos.

Primer heu de fer soldadures bastant bàsiques per aconseguir el barret adafruit al Pi. És una mica complicat, però tot i no haver soldat durant trenta anys, va estar bé. Com sempre, he trobat un vídeo útil de YouTube per recórrer-lo, que m’ha estat de gran ajuda.

Tot i que el barret pot executar 16 servos, només en necessitava 4 i, per tant, només em vaig molestar a soldar el primer joc de 4 pins.

A continuació, els servos només empenyen als passadors. Vaig fer un primer per comprovar que realment podia aconseguir que el servo es mogués.

Va ser aquí on vaig assolir el meu primer obstacle principal. Tenia un script Python molt bàsic per moure els servos i literalment no va passar res. Vaig passar aproximadament una setmana provant nous guions, etc., i després va començar a aparèixer fum al barret. Apagant-ho tot, vaig comprovar l’esquema. Era un component que protegeix contra la polaritat inversa. Com que tenia una font d'alimentació multi-punta i multi-voltatge, m'havia perdut el fet que podríeu tenir la sortida de CC en totes dues direccions invertint la punta. M’havia equivocat (50:50 d’oportunitats) i em vaig cremar el primer barret d’adafruit

:-(Així que un lleuger retard en comprar-ne un de nou, vaig tornar a soldar i vaig corregir la punta. Molt millor.

A continuació, necessitava esbrinar com moure els servos al punt correcte del rellotge. Això arribarà al pas 5, però el que vaig fer, al no haver construït el rellotge real, va ser cargolar lleugerament els servos a una mica de fusta aleatòria i enganxar-los una cinta adhesiva amb una fletxa, com a la imatge. Això va donar una retroalimentació molt visual al que estava codificant.

Pas 4: Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)

Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)
Instal·lació de Node Red (Obtenir els missatges del servidor MQTT al vostre script Python)

Node-RED és un programa que instal·leu al Pi, que us proporciona una interfície visual (al navegador) per rebre missatges del servidor MQTT i utilitzar-lo per passar la informació correcta al vostre script Python (que es descriu al següent pas (Pas 5). He utilitzat pràcticament les instruccions de ppeters0502 al pas 5. Hi ha una lògica en aquests fluxos i una lògica addicional en el pitó, i podeu tenir-ne més o menys, segons les vostres preferències. Bàsicament, heu de fer el següent

  1. He rebut nodes per als missatges MQTT: són de color porpra clar i en tenia 1 per membre de la família
  2. Assigneu-lo al servo que voleu moure (numerat 0, 1, 2, 3)
  3. Determineu si esteu entrant o deixant un radi a OwnTracks
  4. Esbrineu a quina ubicació cal assenyalar el servo

    Hi havia algunes excepcions a les regles bàsiques que necessitava incorporar

  5. Estableix l’angle correctament

Vaig tenir Node-RED fent els primers 4 i vaig mantenir el Python relativament senzill.

Aquí podeu veure el flux bàsic i aquí es poden exportar tots els fluxos al format, cosa que significa que podeu importar aquest flux bàsic al vostre Node-RED i després adaptar-lo. Tingueu en compte que he eliminat totes les connexions dels nodes morats perquè no pugueu accedir a la meva instància MQTT. També he eliminat tots els nodes de prova, ja que contenen dades reals … és possible que hàgiu de canviar aquest tipus de fitxer perquè sigui flow.json per poder importar-lo al vostre Node-RED, però Instructables no em va permetre carregar-lo.

Els nodes verds són nodes de depuració que després mostren la sortida a la finestra de depuració a la dreta de la pantalla (pot ser que s’hagi d’ampliar; trobeu la fletxa a la meitat de la dreta)

El primer bit que cal fer és el bit "En directe - només per a depuració". Això comprova que podeu rebre els missatges MQTT i veure què hi ha. json és només una versió més estructurada dels missatges que us permet obtenir les dades més fàcilment. En aquest flux, quan estic actiu, connecto els nodes morats de la part superior esquerra al node json a la dreta d’ells.

Provar nodes

Un cop sabeu com es veuran els missatges en directe, és molt avorrit haver de sortir de casa, baixar per la carretera i tornar, només per provocar un esdeveniment. Un cop fet això, podeu copiar el missatge en un activador de TEST i, tot seguit, feu-hi clic per simular l'esdeveniment. També podeu canviar les dades per semblar que pertanyen a diferents ubicacions (assegureu-vos que corresponguin exactament als noms de les ubicacions de Owntracks).

Podeu veure al flux que tots els casos de prova van a un node separat i que al node json. Això és només per ordenar la pantalla.

No puc emfatitzar prou la utilitat que han tingut i són encara aquests nodes.

S'està trucant a Python

Llavors vaig arribar al següent bloqueig de carreteres. Aquest va trigar MOLTS a buscar en fòrums, etc. El meu flux funcionaria perfectament, però no desencadenaria el meu script Python. No ho he pogut resoldre, però us estalviaré el jurament, etc. Només per dir que, tal com es ressalta a la segona captura de pantalla, heu d'especificar python3, ja que aparentment Node-RED assumeix python2, tret que ho especifiqueu.

2 complicacions addicionals, només si cal

Aleshores vaig tenir diversos reptes on la lògica no funcionava del tot. El primer va ser que Owntracks va ser una mica estrany i, com que el meu germà viu a 2 carrers, sovint es deia que estava en dos llocs alhora o que continuava canviant de lloc. L'única manera que podia evitar-ho era afegir una condició per aturar els falsos positius. Si afirmava que era a casa seva, vaig encaminar i comprovar la longitud / latitud real del missatge i l'avortar si deia que realment era a casa.

L'altre problema era que, quan passejava amb el meu gos, no podia obtenir un bon radi. Normalment camino per la mateixa zona, de manera que aquí vaig dir: "Si entro en aquesta zona, definitivament passejo amb el gos i ho estaré fins que arribi a casa". això significava que no canviaria al pub que passaria de tornada cap a casa, ni a altres llocs locals que podrien desencadenar-se mentre passejaven els gossos. Per fer-ho, calia configurar algunes variables de context persistents (busqueu-les a Node-RED. Consulteu la captura de pantalla. Aquestes variables persisteixen fins que es reiniciï Node-RED i, per tant, puc dir que, si es passeja per un gos, configureu la variable de context a "Gos". A continuació, ignoreu qualsevol altra cosa tret que jo "Enter" a casa.

La darrera captura de pantalla és la del meu flux final real, amb totes les excepcions, només pel vostre interès.

Pas 5: Moure els servos realment amb Python al Pi

Una breu desviació a servos. No sabia res de servos, però hi ha molta informació en línia. Les que he fet servir són servos continus que poden girar 360 graus sense problemes. L'altre tipus principal són servos pas a pas que es mouen en trossos (passos) i aparentment només pugen a uns 180 graus (clarament no són útils aquí). L’avantatge dels servos escalonats és que només podeu inclinar un angle i es mouen fins a aquest punt i s’aturen. Tota la documentació que vaig trobar deia que els servos continus funcionen donant-los una velocitat i un temps per mantenir aquesta velocitat (per exemple, velocitat màxima durant 1 s) i acaben allà on acaben, però és relatiu al seu punt de partida. Després de molts intents, no vaig poder aconseguir que això funcionés, però vaig descobrir, mitjançant el banc de proves, que els servos tornaven constantment al mateix punt amb el mateix angle. La qual cosa és molt més fàcil, així que ho vaig fer. Pot haver-hi algun desavantatge que desconec, però em funciona. Tingueu en compte, però, que cada servo és únic i, per tant, haureu de tenir un conjunt d'angles únic per a cada servo. Em va semblar més fàcil tenir un script python de "calibratge", on pogués configurar els servos a angles al seu torn, refinar-los fins que quedessin tots bé. Aquest és el primer guió adjunt. Només heu de comentar els servos que no esteu provant, concentrar-vos en un i ajustar els valors segons necessiteu. NOTA: el calibratge per al banc de proves és senzill, aspre i llest. Haureu de tornar a calibrar quan el rellotge estigui muntat, perquè els engranatges, etc., ho canviaran tot. Aleshores, el segon guió és bastant bàsic. Fa el següent

  1. Importeu algunes biblioteques
  2. moveu les variables provinents de Node-RED a variables de l'script
  3. assigna els angles determinats per l’escript de calibratge a les ubicacions del rellotge.
  4. comproveu que la ubicació es troba a la llista i, si no, moveu-vos a "Peril".
  5. escriviu el que s'ha fet en un fitxer de registre
  6. moveu el servo requerit a l’angle desitjat
  7. Deixeu que un servo "zumbi" *

3 coses a tenir en compte.

El fitxer de registre és molt útil per depurar. Vol dir que podeu mirar la depuració Node-RED d'un missatge i, a continuació, veure què va passar a l'script. la sortida té aquest aspecte. Els primers 3 són jo que porto el gos a passejar i, després, el nen 1 que surt de casa i arribo a l’escola. Nota per comprovar l’hora al Pi. Pot ser per defecte UTC i no permetre canvis horaris d’estiu / hivern. Per exemple. els horaris següents són 1 hora fora.

2020-12-07_05: 36: 03 Qui = 0, loc = Viatjar, detall = Inici, Angle = 10, índex = 8

2020-12-07_05: 36: 04 Qui = 0, loc = Gos, detall = Astons, Angle = 86,5, índex = 10

2020-12-07_06: 07: 49 Qui = 0, loc = Inici, detall = entrant, angle = 75, índex = 0

2020-12-07_06: 23: 53 Qui = 2, loc = Viatjar, detall = Inici, Angle = 19, índex = 8

2020-12-07_06: 30: 48 Qui = 2, loc = Escola, detall = N, angle = 60,5, índex = 2

Servo-brunzit

Un dels Servos (0) seguia brunzint després de finalitzar el guió. Com us podeu imaginar, això és súper molest tenir-lo a la nostra cuina. Vaig trobar un fil en algun lloc que esmentava establir l'angle de servo a "cap", que d'alguna manera estableix que sigui inactiu. Va funcionar molt bé i es pot veure al guió al final.

Horaris

Tingueu en compte el poc que fa una mà per escombrar el rellotge. Podeu veure al guió que hi ha una línia time.sleep (4) just abans de configurar el servo perquè deixi de brunzir. Això és degut a que heu de permetre que la mà arribi al seu destí abans de configurar-la al ralentí. En cas contrari, només s’atura. Això també és important a l'hora de calibrar-lo, ja que esteu fent diversos moviments dins de l'script. El configuraria per passar a les 12 ubicacions al seu torn, de manera que pogués tornar a comprovar-les totes. però necessiteu una mica de temps entremig.

Pas 6: Finalització del programari: telèfons a servidors

Un cop tingueu configurat el banc de proves i els scripts, podreu executar-lo una mica en directe i veure com funciona en temps real. Aquí és on he trobat les excepcions que necessitava afegir al flux Node-RED.

Podeu desconnectar i connectar fàcilment membres de la família al flux Node-RED si voleu concentrar-vos en un. Per exemple, si dos causen problemes, però voleu solucionar-los d'un en un. En cas contrari, tingueu en compte que continuarà rebent missatges de qualsevol telèfon connectat.

Vaig esmentar el problema de Dog-walking i la casa del meu germà era molt propera. Vaig tenir 2 reptes més.

En primer lloc, ubicacions dins d’altres ubicacions. La meva dona feia un curs a una universitat de Londres. Volíem que això es registri com a "Escola", però també és a "Londres". Per tant, calia tornar a utilitzar el context per dir que, si deixeu aquella "escola", mogueu-vos a "Londres" i no a "viatjar".

En segon lloc, les condicions de la cursa. Com es va esmentar, la casa del meu germà és a 2 carrers de distància i també és a prop del nostre pub / restaurant preferit. Això vol dir que de vegades es reben 2 senyals al mateix temps o molt a prop. Això pot configurar una "condició de carrera" en què obtingueu diferents resultats, depenent de quins passin per la lògica més ràpida, cosa que conduirà a resultats imprevisibles. Per contrarestar-ho, vaig fer que tots els missatges "entrants" tinguessin un retard de 1 s en la lògica, que semblava solucionar el problema. És possible que hi hagi maneres millors i més elegants de solucionar-ho, però semblava que funcionava.

Pas 7: Construir el rellotge físic - Part I - Servos i eix

Construint el rellotge físic - Part I - Servos i eix
Construint el rellotge físic - Part I - Servos i eix
Construint el rellotge físic - Part I - Servos i eix
Construint el rellotge físic - Part I - Servos i eix
Construint el rellotge físic - Part I - Servos i eix
Construint el rellotge físic - Part I - Servos i eix

Ara és el que menys confiava, i per això el vaig deixar per durar. Volia una cara de mida decent i una construcció fàcil. També estava nerviós per aconseguir físicament 2 servos al voltant de l'eix central. Això significava que, després d'haver mirat breument a eBay els rellotges vells com en la instrucció que seguia, vaig decidir donar-me més possibilitats construint-ho jo mateix.

  • Tinc 2 quadrats de fusta contraxapada grans (~ 30cm) que tenia al voltant (aproximadament 9 mm de gruix).
  • Després vaig tallar un vell carril de barana en seccions de 4x10cm i vaig cargolar la placa frontal i la posterior.
  • Un cop marcat el forat central, el vaig perforar de la mateixa mida que el tub de llautó més gran.
  • Després el vaig pintar amb pintura blanca normal.
  • Després d'alguna experimentació, em vaig adonar que probablement no podria aconseguir 4 servos al voltant del mateix eix si estiguessin tots units a la placa posterior (o frontal). Per tant, necessitava tenir 3 + 1 o 2 + 2 a cada plat. Vaig acabar amb 3 al darrere i 1 al davant.
  • Vaig treballar les compensacions necessàries en un tros de paper i després vaig tallar els tubs de llautó perquè coincidissin. Tingueu en compte que el tub més gruixut és el més curt i que el més prim ha d’anar fins a la placa posterior. (De fet, vaig incloure el més petit en un forat que he perforat parcialment a la placa posterior, però no tot el camí perquè l'eix no es mogués cap enrere).
  • Per als tubs, he comprat un tallador de tubs, però això fa servir pressió per tallar-los i significa que no es pot introduir el tub més petit a dins. Així que vaig fer servir una serra mecànica i vaig haver de fer una bona quantitat d’arxius perquè funcionessin. Els fitxers puntuals de diamant eren molt valuosos aquí.
  • Llavors vaig fer coincidir el diagrama amb els desplaçaments reals de les pinces i els engranatges *.
  • Un cop vaig tenir els desplaçaments, vaig saber com de "alt" fer els blocs per muntar els servos. Vaig trencar un parell de blocs serrant-los massa prims i també perforant el forat per deixar sortir el filferro.
  • Després va arribar la part més complicada d’on col·locar els blocs perquè es trobessin exactament amb els engranatges de l’eix. Vaig cargolar un bloc i després podria girar el servo per trobar l'eix i després cargolar el segon bloc a l'altre extrem del servo. També vaig trobar que necessitava tallar una mica alguns blocs per evitar enganxar altres engranatges. Va trigar força estona.
  • Un cop fet tot això, vaig aconseguir la meva funda de gerds pi, hi vaig perforar dos forats i la vaig cargolar a la placa frontal. Després, podria afegir el Pi, tancar les plaques davantera i posterior (després d’haver connectat els servos al pi (recordant quin servo era per a quin membre de la família) i girar cap a les mans …

* Aquí he trobat el problema més gran, que encara no he resolt completament. Els tubs de llautó eren, 1/4 ", 7/32", 3/16 ", 5/32". Però les pinces eren mètriques (excepte una que feia 1/4 "). Convertint els tubs en mètriques eren de 6,35 mm, 5,56 mm, 4,76 mm 3,97 mm. Les pinces restants eren de 4 mm, 5 mm i 6 mm. els més grans estan bé, però és clar que els 0,44 mm suposen un recorregut excessiu per a la pinça, de manera que he hagut de tapar-lo amb paper. Ho he provat diverses vegades i funciona bé durant un temps i després torna a afluixar-se. la mà no funciona correctament. Va estar bé durant uns 6 mesos, de manera que el temps dedicat a fer-ho bé va ser un temps ben invertit. Però si ho tornés a fer, podria haver augmentat o baixat 1 mida, amb un buit per intentar aconseguir millor ajust de la pinça al tub. Per exemple, aneu a 9/32 ", 1/4", (buit), 3/16 ", 5/32"

Pas 8: les agulles del rellotge

Les agulles del rellotge
Les agulles del rellotge
Les agulles del rellotge
Les agulles del rellotge
Les agulles del rellotge
Les agulles del rellotge

Vaig decidir la xapa d'acer, ja que volia una cosa rígida, però amb menys probabilitats de trencar mentre la fabricava. El fet de ser prim significava que 4 mans no eren un problema.

  • Primer vaig esbossar una forma.
  • Després el vaig transferir a l’acer a sobre d’una cinta adhesiva.
  • Aleshores els vaig retallar amb la meva trencaclosques molt poc expert. Eren diferents i són diferents, però això no m’importa.
  • Aleshores, un amic em va suggerir que demanés prestat el seu molí de banc per donar-los forma, i va ser fantàstic. molt recomanable. En cas contrari, la presentació dura edats.
  • Encara hi havia una mica de llimat per fer i després de polir per assegurar que no hi hagués vores afilades i també un bon acabat.
  • Vaig haver de fer forats perquè coincidissin amb els respectius tubs de llautó (utilitzeu tubs tallats per comprovar-los, no els muntats al rellotge).
  • Vaig trobar que els forats necessitaven una mica de llimat per posar-los als tubs, però un cop estaven ajustats i no necessitaven cola. L'excepció va ser la mà frontal que volia tenir una "portada". Així que vaig tallar una peça d’acer (majoritàriament) rodona, després d’haver perforat el forat i tenir-lo a la mida adequada, i el vaig enganxar al davant. el podeu veure a la darrera imatge. De vegades, la mà del davant necessitava una mica de cola per assegurar-la, però després d'un parell d'arrencades falses les mans funcionen molt bé.
  • Havia rebutjat la idea de les fotos (perquè els nens es queixarien ràpidament de les nostres fotografies de data), així que em vaig conformar amb pintar inicials amb pintura acrílica.

Pas 9: completar

Complet!
Complet!
Complet!
Complet!

Tot funciona molt bé. De vegades, les mans estan una mica apagades, segons la procedència, però en realitat no importa perquè cada ubicació és una secció no només una línia.

De vegades, estranyament, el meu telèfon es nega a reconèixer que estic a casa. Estic clarament dins del radi de Owntracks quan es mostra al mapa, i fins i tot quan la precisió és bona … No tinc ni idea de per què. no sembla que afecti la resta de la meva família. però la configuració és la mateixa. Això vol dir que Owntracks mai no envia cap missatge i em quedo atrapat a "Viatjar". Però normalment es resol a si mateix amb el temps.

Ha estat molt útil tenir-lo a la cuina, sobretot per saber quan les noies es dirigeixen cap a casa des de l’escola o cap a casa dels seus amics i, per tant, quan se’ls pot preparar menjar / te.

De nou, un gran consell d’agraïment a @ ppeters0502 per les bones instruccions a seguir. Amb sort, això pot afegir alguna cosa al voltant de la creació d’un rellotge de 4 agulles..

Pas 10: coses que vaig aprendre i que faria millor / diferent si ho hagués de tornar a fer

  • Les versions físiques necessiten proves i errors. No hi ha manera de predir els problemes de l’espai, només cal submergir-s’hi i provar-ho.
  • Per al codi, els problemes de Google Googling són essencials
  • Comenceu bàsic i acumuleu. Els servos a la fusta del banc de proves significaven que podia treballar la major part sense la construcció física
  • És possible que tinc les mans tallades amb làser en una màquina CNC. Però no sabia on era el local, i m’agrada com funcionava l’acer dolç (era barat i el molí de banc ho feia molt més fàcil)
  • pot ser possible un motor pas a pas si utilitzeu l’engranatge per aconseguir un gir de 360. però és possible que hagueu de tenir els servos massa a prop de l'eix central
  • Hi ha 2 tipus de servo (Futaba i HiTech). Assegureu-vos que ho heu comprovat, ja que tenen un nombre diferent de dents a la spline. I en vaig comprar els equivocats inicialment …
  • No connecteu el barret amb la polaritat equivocada;-)
  • Google i Stack Overflow són els vostres amics quan estan bloquejats. Però heu d’utilitzar bons termes de cerca …
  • El banc de proves és en realitat una manera d’obtenir una versió més senzilla i econòmica amb molta més facilitat. La major part de les complicacions de la construcció prové d’haver de fer girar les mans al voltant del mateix eix. Si us hi comprometeu, és molt més fàcil. I crec que el 4 pot ser el límit de l’eix únic tret que l’eix s’allargui molt. Podria, suposo, tenir-ne 3 a la placa frontal i tres a la placa posterior si l’eix fos més llarg …

Pas 11: possibles extensions de futur …?

Les idees que vaig tenir sobre els passos següents són les següents.

  1. M'agradaria reutilitzar un vell iPad com a rellotge. és a dir, fer un rellotge digital. Possiblement basada en un navegador o una aplicació. Com que un rellotge físic és essencialment apàtrida (és a dir, no sap on es troba actualment, tret que les agulles estiguin en una posició física), hauria de tenir un magatzem de dades persistent. Node Red pot escriure al sistema de fitxers local, de manera que probablement ho faria.
  2. Si ho fes, m’agradaria poder veure-ho des de fora de casa. Però aleshores realment necessitem solucionar la seguretat. Com que l'accés a la mateixa xarxa wifi és una cosa, l'accés a Internet és una altra cosa. Actualment no tinc ni idea de la millor manera d’aconseguir-ho, però sospito que podria funcionar una subscripció MQTT que anés d’una altra manera (pi publica l’estat actual i els dispositius externs s’hi subscriuen) …?
  3. M'agradaria una mà per a "A l'estranger". però això pot ser complex des del punt de vista de OwnTracks. Potser només podríeu utilitzar llarg / lat combinat amb uns radis enormes?

Recomanat: