Obsah:

Hodiny umiestnenia „Weasley“so 4 rukami: 11 krokov (s obrázkami)
Hodiny umiestnenia „Weasley“so 4 rukami: 11 krokov (s obrázkami)

Video: Hodiny umiestnenia „Weasley“so 4 rukami: 11 krokov (s obrázkami)

Video: Hodiny umiestnenia „Weasley“so 4 rukami: 11 krokov (s obrázkami)
Video: Zmeny umiestnenia volebných miestností 2024, Júl
Anonim
Polohovacie hodiny „Weasley“so 4 rukami
Polohovacie hodiny „Weasley“so 4 rukami

Takže s Raspberry Pi, ktorý už nejaký čas koloval, som chcel nájsť pekný projekt, ktorý by mi umožnil ho čo najlepšie využiť. Narazil som na tieto skvelé inštrukčné budovateľské hodiny Weasley od ppeters0502 a povedal som si, že by bolo dobré to vyskúšať.

Hodiny sa v zásade skladajú z Raspberry Pi, ktoré ovláda servá a otáča ručičkami s hodinami. Rovnako ako v dome rodiny Weasleyovcov v knihách/filmoch o Harrym Potterovi, každý člen rodiny má svoju vlastnú ruku. Každá ruka ukazuje na aktuálne umiestnenie daného člena rodiny. Hodiny to dosahujú prijímaním správ z mobilných telefónov rodiny vždy, keď vstúpia alebo opustia vopred definovaný okruh.

Hlavné rozdiely oproti predchádzajúcemu Instructable boli v tom, že potrebujem mať 4 ruky, nie 2 (inak by sa moje dcéry sťažovali) a rozhodol som sa postaviť aj rám, a nie dostať staré hodiny na opätovné použitie. Dôvodom bolo to, že som sa obával, že v existujúcom puzdre hodín bude problém s priestorom, s potrebou zmestiť 4 servá atď.

Trvalo to oveľa dlhšie, ako som očakával, aj keď väčšinou tam, kde som narazil na fiktívne problémy, ktoré ma zaskočili a ktoré sa nezdali byť zahrnuté v pôvodnom príspevku. Nič proti pôvodnému Instructable, ktorý bol vo všeobecnosti skvelý, ale uplynulo niekoľko rokov a verzie vecí sa zmenili … atď. Byť v Británii znamenalo, že niektoré imperiálne/metrické prvky spôsobili viac výziev, ako som očakával.

Aj keď som v kódovaní v poriadku, fyzická výroba hodín ma určite natiahla a vyžadovala ďalšie nástroje, ktoré ma tiež trochu spomalili.

Na konci uvediem časť „Veci, ktoré by som urobil inak/lepšie, keby som to robil znova…“

Zásoby:

Jedna z vecí, ktoré ma zarazili, bolo, že drahé súčiastky súviseli s ručičkami hodín. 4 ruky sú určite oveľa drahšie ako 2. Rozhodol som sa vložiť niekoľko nákladov, aby ste mali predstavu. Toto je prvýkrát, čo som to všetko zhrnul, a bez ohľadu na nástroje si myslím, že som minul asi 200 libier. Plus niektoré veci, ktoré som nepoužil (a neboli zahrnuté nižšie), plus Pi, plus napájanie, ktoré som už mal.

Pi atď

  1. Raspberry Pi - nepamätám si, koľko pôvodne stál, ale bol to Model 2B. Myslím si, že ak ho ešte nemáte, pravdepodobne by to urobil aj Pi Zero. Pridal som wifi dongle a SD kartu s Raspbian. A okolo som nechal ležať starú nabíjačku telefónu s Androidom.
  2. Servafat Adafruit pre Pi - 16 libier
  3. Napájanie pre Servohat - Toto som mal skutočne problém nájsť, pretože všetky webové stránky len poukazovali na stránku adafruit, ktorá potom zjavne odporúča americký zdroj energie. Potom som si uvedomil, že mám starý zdroj premenlivého napätia s vymeniteľnými hrotmi, takže som to použil. Ale ten americký stojí 8 dolárov, takže o to ide.
  4. Puzdro na Pi, aby som ho potom mohol pripevniť k rámu hodín. 5 libier

Servo a prevody

Tu uvádzam cenu za všetky 4, takže rozdeľte, ak chcete menej rúk (sčítaním je to ~ 40 £ ZA RUČU = 160 £: -o

  1. 4 x Servo-použil som tie, ktoré odporúča ppeters0502-nájdené na ebayi po 15 GBP = 60 GBP-Hľadal som nasledujúci text „GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-degree „ale niekedy boli nedostupní
  2. 4 x mosadzné rúrky, ktoré do seba presne zapadajú - každá po 3 libry. Dostal som 1 kus 1/4 palca, 7/32 palca, 3/16 palca, 5/32 palca = 11 libier
  3. 4 x svorky, ktoré sa upínajú na mosadzné rúrky, aby vám umožnili pripevniť prevody. ~ 7 libier za kus = 28 libier Dostal som ich od ActiveRobots, ktorí robia pravidelné objednávky od Servocity v USA, čo vám umožňuje vyhnúť sa medzinárodnej preprave. Môžu tiež získať čokoľvek iné, čo nájdete na hlavnom americkom serveri Servocity. To bolo veľmi praktické pre ďalšie 2 položky
  4. 4 x ozubené koleso acetyl 0,770 "na upevnenie na upínacích nábojoch. ~ 6 GBP za kus = 24 GBP
  5. 4 x acetylové drážkované acetylové prevody pre montáž na servá. ~ 6,50 GBP za kus = 26 GBP
  6. 1 x balenie šesťhranných matíc k pripevneným prevodom k upínacím maticiam = 2,60 GBP
  7. 1 x 7/64 palcový šesťhranný kľúč (imbusový kľúč), pretože všetko, čo pochádza z USA, je imperiálne, takže stovky imbusových kľúčov, ktoré už mám, sú zbytočné = 1 GBP

Pre fyzickú stavbu

Tu som väčšinou používal odrezky vecí, o ktorých som klamal

  1. 2 x štvorce preglejky pre „prednú“a „zadnú“dosku
  2. Potom som odrezal valce 4x10 cm zo starej zábradlia, ktorú som mal, aby som spojil chrbát s tvárou
  3. Niektoré bloky na namontovanie serva na správny offset - iba odrezky z mäkkého dreva, ktoré som narezal na veľkosť.
  4. Rôzne skrutky. od veľmi malých (na pripojenie puzdra Pi k rámu) až po stredné (na pripojenie rámu k sebe)
  5. 0,75 mm plech z mäkkej ocele asi 50 cm x 20 cm (na vystrihnutie rúk). Toto bola jediná vec, ktorú som kúpil ~ 9 libier od Wickes

Nástroje

Niektoré veci som mal a niektoré som si požičal alebo kúpil

  1. Spájkovačka + elektrická spájka - na prichytenie konektorov k Adafruit Hat & Pi.
  2. Skladačka - na vyrezanie hrubého tvaru rúk
  3. Vŕtačka. len obyčajná akumulátorová 18V vŕtačka
  4. Vrtáky - Majte na pamäti, že budete potrebovať cisárske vrtáky na vytváranie otvorov, ktoré zodpovedajú mosadzným rúrkam. Niektoré sa mi podarilo požičať.
  5. píla na pílu - na rezanie mosadzných rúr. Nerobte to, čo som urobil, a miniem 3 GBP na frézu na rúrky, funguje to tlakom a znamená to, že vnútro rúr sa trochu zmenší. takže trubica ďalšej veľkosti nepasuje
  6. Stolný mlynček - nemal som ani jeden, ale priateľ áno a tvarovanie rúk bolo VEĽA jednoduchšie. Do tej doby som používal iba súbory. Nekúpil by som jeden iba pre tento projekt, ale pre kovové ruky to bolo skvelé.
  7. Kúpil som si rôzne diamantové pilníky (veľmi malé). užitočné pre ruky a tuby okolo 15 libier
  8. hrubý a hladký brúsny papier
  9. niektoré malé svorky držia veci pri vŕtaní na svojom mieste.
  10. zverák z rovnakého dôvodu.

Krok 1: Nastavenie telefónov tak, aby odosielali vašu polohu vášmu Pi (časť I MQTT Broker)

Tento kúsok veľmi dobre popisuje ppeters0502 vo svojom vynikajúcom Weasley Clock Instructable. Zvláštne, aj keď to možno odráža rôzne sady zručností, začal s zostavením a potom prešiel na softvér, urobil som to naopak. Takže som začal s telefónom … počkajte, nie, nie, začal som s maklérom MQTT, ktorý je krokom 6 v jeho Instructable. Vynechám všetky kúsky, ktoré robí veľmi dobre, a hodím iba kúsky, ktoré by som mohol pridať. Išiel som cestou CloudMQTT, ktorú spomenul.

ALE keď som to písal, skontroloval som odkaz na plány a zistil som, že bezplatný plán už neexistuje! Z dôvodu rozumných dôvodov to stiahli. tj., že ľudia si vytvoria bezplatnú inštanciu a potom ju nikdy nepoužijú. Nevšimol som si to, pretože súčasné inštancie môžu pokračovať. Takže sa nezmením. Pokyny sú však trochu nadbytočné. Zdá sa, že existujú 3 možnosti.

  1. Platte 5 dolárov mesačne za Cloud MQTT (ale to znie draho na hodiny priebežne).
  2. Choďte po trase Mosquitto na Pi, ako je popísané v prvom návode. Nemôžem sa k tomu vyjadriť, ale mohla by to byť dobrá voľba.
  3. Stačí si vygoogliť „bezplatného cloudového brokera MQTT“a zdá sa, že existujú aj ďalšie.

Takže za predpokladu, že máte fungujúceho makléra MQTT, ak je to niečo ako CloudMQTT, zobrazí sa server, používateľ, heslo a port. To všetko budete potrebovať na nastavenie telefónov na odosielanie maklérom vašich miest/pohybov.

Krok 2: Nastavenie vašich telefónov tak, aby odosielali vašu polohu vášmu Pi (časť II Owntracks)

To je tiež veľmi dobre pokryté v pôvodnom pokyne v krokoch 7 (Android), 8 (iOS) a 9 (nastavenie regiónov).

Mal som iba zariadenia iOS, takže krok 7 som neskúšal.

Čo by som k týmto pokynom dodal?

  1. V nastavení sú tiež polia TrackerID a DeviceID. Mali by ste ich vedieť identifikovať vo svojej rodine. Napr. Mal som ich ako R a RPhone. To znamená, že môžete prejsť k hodinám, ktoré servo a teda ktorou rukou sa máte obrátiť.
  2. Regióny sú názvy miest, ktoré chcete sledovať.
  3. Každý región je definovaný názvom, šírkou, dĺžkou a polomerom.
  4. Pretože som chcel mať na svojich hodinách niekoľko miest ako jednu sekciu, použil som konvenciu pomenovania, ktorá sa ukázala ako veľmi užitočná. Sú možné aj iné metódy, ale mne sa to osvedčilo.

    • Napríklad pre časť RODINY v hodinách som chcel mať svojich rodičov a súrodencov a rodičov a súrodencov mojej ženy. Preto som mal polohy ako „Family Tom“, „Family Dick“, Family Harry „a“Family ParentsR “. To znamenalo, že ďalšia etapa mohla vedieť, čo treba odovzdať Hodinám.
    • Majte na pamäti, že ľudia môžu mať rôzne polohy. Ale pokiaľ sú v súlade s konvenciou pomenovania, potom je to v poriadku. Napr. moja práca by sa líšila od pracovného regiónu mojej manželky a nazývala by sa inak. ale pokiaľ obaja začnú „pracovať“, potom je všetko v poriadku.
  5. Chcete, aby bol režim na obrazovke Mapy nastavený na „Významný“. To znamená, že správy (väčšinou) dostanete iba vtedy, keď zadáte alebo opustíte regióny. Zdá sa, že ide o aktualizovanú verziu poznámky s názvom DÔLEŽITÉ: na konci kroku 8 v pôvodnom pokyne.
  6. Ako je uvedené v pôvodnom návode, používanie Máp Google je skvelý spôsob, ako niekde zistiť zemepisnú šírku/dĺžku. Zistilo sa mi efektívnejšie robiť to hromadne, zistiť všetky zemepisné šírky a dĺžky mojej polohy, potom som ich vložil do poznámok (na počítači Mac) a so synchronizáciou v cloude to znamenalo, že sa magicky objavili v mojom zariadení iPhone. v Notes a mohol by som ich skopírovať/prilepiť do Owntracks. Znamenalo to tiež, že môžem poslať súbor na telefóny mojej rodiny a všetci sme mali rovnaké polohy.
  7. Miesta, ktoré sú blízko seba, môžu spôsobovať problémy. Môj brat žije o 2 ulice ďalej a spočiatku si môj telefón myslel, že som súčasne v regióne jeho domu, ako aj doma. Nakoniec som musel do Node Red vložiť ďalšiu logiku, aby som zachytil a ignoroval túto udalosť.

Krok 3: Nastavenie Raspberry Pi

Nastavenie Raspberry Pi
Nastavenie Raspberry Pi

Tu teda predpokladám, že máte základňu Pi nastavenú a na wifi. Používal som Raspbian, ale to by nemalo vadiť. Podľa pokynov na raspberrypi.org všetko nastavte.

Všimnite si toho, že Pi má porty na zobrazenie na monitore, klávesnici/myši atď. ALE keď už máte hodiny, nič z toho nechcete. Myslím, že odpoveď, ktorú navrhol niekto na webe Raspberry pi, bolo vytvoriť pripojenie VNC. To vám umožní pripojiť sa k Pi z iného zariadenia a tiež ho ovládať. Robím to z počítača Mac, ale tiež som to urobil z iPadu. Na uľahčenie použitia by som odporučil použiť niečo s klávesnicou.

Práve som zistil, že sa zdá, že to uľahčili, pretože som sa pripojil … pozri tu

V podstate sa pripojíte a dostanete okno, ktoré je štandardným rozhraním Pi.

Takže máte okno do svojho Pi z prenosného počítača alebo počítača.

Teraz musíte pripojiť servá.

Najprv musíte urobiť pomerne základné spájkovanie, aby ste klobúk adafruit dostali na Pi. Je to trochu nešikovné, ale napriek tomu, že som 30 rokov nepájal, bolo to v poriadku. Ako vždy, našiel som užitočné video z YouTube, ktoré ma ním sprevádzalo, čo bola veľká pomoc.

Aj keď klobúk môže poháňať 16 serv, potreboval som iba 4 a tak som sa obťažoval iba s spájkovaním prvej sady 4 pinov.

Potom servá len zatlačte na čapy. Najprv som urobil jeden, aby som skontroloval, či môžem skutočne rozhýbať servo.

Tu som narazil na svoju prvú veľkú prekážku. Mal som veľmi jednoduchý pythonový skript na presun serva a doslova sa nič nestalo. Strávil som asi týždeň skúšaním nových skriptov atď. A potom sa na klobúku začal objavovať dym. Keď som všetko vypol, skontroloval som schému. Bola to súčasť, ktorá chráni pred opačnou polaritou. Pretože som mal zdroj s viacerými hrotmi a s viacerými napätiami, zmeškal som skutočnosť, že výstup DC môžete otáčať obojsmerne obrátením hrotu. Zle som to pochopil (šanca 50:50) a práve som spálil svoj prvý adafruitový klobúk

:-(Takže mierne zdržanie, keď som kúpil nový, znova spájkoval a korigoval hrot. Oveľa lepšie.

Ďalej som musel zistiť, ako presunúť servá do správneho bodu na hodinách. K tomu príde krok 5, ale čo som urobil, pretože som nevybudoval skutočné hodiny, bolo ľahké priskrutkovať servá na náhodný kúsok dreva a nalepiť na ne maskovaciu pásku so šípkou, ako na obrázku. To poskytlo veľmi vizuálnu spätnú väzbu na to, čo som kódoval.

Krok 4: Inštalácia Node Red (získanie správ zo servera MQTT do vášho skriptu Python)

Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)
Inštalácia Node Red (Získanie správ zo servera MQTT do vášho skriptu Python)

Node-RED je program, ktorý nainštalujete na Pi, ktorý vám poskytne vizuálne rozhranie (vo vašom prehliadači) na prijímanie správ z vášho servera MQTT a jeho použitie na prenos správnych informácií do vášho python skriptu (popísané v nasledujúcom kroku (Krok 5). Do značnej miery som použil pokyny ppeters0502 v kroku 5. V týchto tokoch je logika a v pythone ďalšia logika a v každom môžete mať viac alebo menej, v závislosti od vašich preferencií. V zásade musíte urobiť nasledujúci

  1. Majú prijímacie uzly pre správy MQTT - tieto sú svetlo purpurové a mal som 1 na člena rodiny
  2. Namapujte to na servo, ktoré chcete presunúť (číslované 0, 1, 2, 3)
  3. Zistite, či vstupujete alebo nechávate polomer na OwnTracks
  4. Zistite, na ktoré miesto musí smerovať servo

    Existovalo niekoľko výnimiek zo základných pravidiel, ktoré som potreboval zabudovať

  5. Nastavte uhol správne

Nechal som Node-RED urobiť prvé 4 a udržal som Python relatívne jednoduchý.

Tu môžete vidieť základný tok a všetky toky je možné exportovať do formátu tu, čo znamená, že tento základný tok môžete importovať do svojho Node-RED a potom sa prispôsobiť. Všimnite si toho, že som odstránil všetky pripojenia z purpurových uzlov, aby ste nemali prístup k mojej inštancii MQTT. Tiež som odstránil všetky testovacie uzly, pretože obsahujú skutočné údaje … možno budete musieť zmeniť tento typ súboru na flows.json, aby ste ho mohli importovať do vášho Node-RED, ale Instructables mi to nedovolil nahrať.

Zelené uzly sú ladiace uzly, ktoré potom zobrazujú výstup v okne ladenia v pravej časti obrazovky (môže byť potrebné rozšíriť - nájdite šípku do polovice vpravo)

Prvým bitom, ktorý musíte urobiť, je bit „Live - iba na ladenie“. To kontroluje, či môžete prijímať správy MQTT, a zistiť, čo v nich je. json je iba štruktúrovanejšia verzia správ, ktorá vám umožní jednoduchšie získanie údajov. V tomto toku, keď je naživo, potom prepojím fialové uzly vľavo hore s uzlom json napravo od nich.

Testovacie uzly

Akonáhle viete, ako budú správy vyzerať naživo, je veľmi nudné vyjsť von z domu a ísť po ceste a späť, aby ste spustili udalosť. Akonáhle to urobíte, môžete správu skopírovať do spúšťača TEST a potom na ňu simulovať udalosť. Môžete tiež zmeniť údaje tak, aby sa tvárili, že sú pre rôzne miesta (uistite sa, že presne zodpovedajú názvom miest v Owntracks).

Na toku môžete vidieť, že všetky testovacie prípady prechádzajú do samostatného uzla a potom do uzla json. Toto je čisto na upratanie obrazovky.

Nedokážem dostatočne zdôrazniť, aké užitočné tieto uzly boli a stále sú.

Volanie Pythonu

Tak som potom narazil na ďalšiu zátaras. Tento si vyžadoval veľa googlovania vo fórach atď. Môj tok by fungoval perfektne, ale nespustil by môj pythonový skript. Nedokázal som to vyriešiť, ale ušetrím vás nadávok atď. Ak chcete povedať, že ako je zvýraznené na druhom obrázku, musíte zadať python3, pretože Node-RED zjavne predpokladá python2, pokiaľ neurčíte.

2 ďalšie komplikácie - iba v prípade potreby

Potom som mal niekoľko výziev, kde logika celkom nefungovala. Prvá bola, že Owntracks boli trochu divné a keďže môj brat býva o 2 ulice ďalej, často sa hovorilo, že som na 2 miestach naraz, alebo som medzi nimi stále prepínal. Jediný spôsob, ako sa to dalo obísť, bolo pridať podmienku na zastavenie falošných pozitív. Ak tvrdilo, že som v jeho dome, potom som prešiel správou a skontroloval som skutočnú zemepisnú dĺžku/šírku v správe a prerušil som ju, ak tam bolo, že som skutočne doma.

Ďalším problémom bolo, že pri venčení svojho psa som nemohol získať dobrý rádius. Väčšinou chodím v tej istej oblasti, takže tu som povedal: „Ak vstúpim do tejto oblasti, určite venčím psa a budem, kým sa nedostanem domov“. to znamenalo, že sa neprepne do krčmy, ktorou prechádzam po ceste domov, alebo na rôzne iné miestne miesta, ktoré by sa mohli spustiť pri venčení psov. Aby som to mohol urobiť, potreboval som nastaviť niektoré trvalé kontextové premenné (vyhľadajte ich na Node-RED. Pozri snímku obrazovky. Tieto premenné pretrvávajú, kým sa Node-RED reštartuje a môžem teda povedať, že ak na prechádzke so psom, nastavte kontextovú premennú „Psovi“. Potom Ignorujte VŠETKO ostatné, pokiaľ „nevstúpim“domov.

Posledný obrázok obrazovky je ten môj skutočný konečný tok, až na všetky výnimky, len pre vašu zaujímavosť.

Krok 5: Skutočne pohybujúce sa serva s Pythonom na Pi

Krátka odbočka na servá. Nevedel som nič o servách, ale na internete je veľa informácií. Použil som sériové servo, ktoré sa môže otáčať o 360 stupňov a hladko. Druhým hlavným druhom sú krokové serva, ktoré sa pohybujú po častiach (kroky) a zjavne idú až do asi 180 stupňov (tu zjavne nie je užitočné). Výhodou krokových serva je, že stačí nakloniť uhol a oni sa presunú do tohto bodu a zastavia. Všetka dokumentácia, ktorú som našiel, hovorila o tom, že nepretržité serva fungujú tak, že sa im poskytne rýchlosť a čas na udržanie tejto rýchlosti (napr. Plná rýchlosť 1 s) a skončia tam, kde skončia, ale je to relatívne k ich počiatočnému bodu. Po mnohých pokusoch som to nedokázal uviesť do prevádzky, ale pomocou testovacej stolice som zistil, že serva sa stále vracajú do rovnakého bodu pod rovnakým uhlom. Čo je oveľa jednoduchšie, tak som to urobil. Môže existovať nejaká nevýhoda, o ktorej neviem, ale funguje to na mňa. Všimnite si však, že každé servo je jedinečné, a preto musíte mať pre každé servo jedinečnú sadu uhlov. Pre mňa bolo najľahšie mať „kalibračný“pythonový skript, kde by som mohol serva postupne nastavovať na uhly a upravovať ich, kým všetky nevyzerali správne. Toto je prvý priložený skript. Stačí komentovať servá, ktoré netestujete, sústrediť sa na jedno a potom upraviť hodnoty podľa potreby. POZNÁMKA: Kalibrácia na testovacej stolici je jednoduchá, hrubá a pripravená. Keď sú hodiny zostavené, budete musieť znova kalibrovať, pretože prevody atď. Zmenia všetko. Potom je druhý skript celkom základný. Vykonáva nasledujúce

  1. Importujte niekoľko knižníc
  2. presuňte premenné pochádzajúce z Node-RED do premenných v skripte
  3. mapuje uhly určené kalibračným skriptom na miesta na hodinách.
  4. skontrolujte, či sa miesto nachádza v zozname, a ak nie, presuňte sa na „Nebezpečenstvo“
  5. napíšte, čo bolo urobené do súboru denníka
  6. posuňte požadované servo do požadovaného uhla
  7. Zastavte „bzučanie“jedného serva *

3 veci na vedomie

Súbor denníka je veľmi užitočný pri ladení. Znamená to, že sa môžete pozrieť na ladenie správy Node-RED a potom zistiť, čo sa stalo v skripte. výstup vyzerá takto. Prvé 3 som zobral psa na prechádzku a potom Dieťa 1 odišlo z domu a prišlo do školy. Poznámka: Ak chcete skontrolovať čas na Pi. Štandardne môže byť UTC a neumožňuje zmeny letného/zimného času. Napr. nižšie uvedené časy sú 1 hodinu vonku.

2020-12-07_05: 36: 03 Kto = 0, miesto = Cestovanie, detail = Domov, Uhol = 10, index = 8

2020-12-07_05: 36: 04 Kto = 0, miesto = pes, detail = astóny, uhol = 86,5, index = 10

2020-12-07_06: 07: 49 Kto = 0, miesto = Domov, detail = vstup, uhol = 75, index = 0

2020-12-07_06: 23: 53 Kto = 2, miesto = Cestovanie, detail = Domov, Uhol = 19, index = 8

2020-12-07_06: 30: 48 Kto = 2, miesto = škola, detail = N, uhol = 60,5, index = 2

Bzučanie servo

Jedno zo serva (0) po skončení skriptu stále bzučalo. Dokážete si asi predstaviť, že je to veľmi nepríjemné v našej kuchyni. Niekde som našiel vlákno, ktoré uvádzalo nastavenie uhla serva na „žiadny“, čo ho nejako nastavilo na nečinnosť. Fungovalo to skvele a je to vidieť na scenári na konci.

Časovanie

Majte na pamäti, ako nízko je ruka potrebná na to, aby ste zametali nepretržite. Na skripte vidíte, že existuje riadok time.sleep (4) tesne predtým, ako nastavíme servo, aby prestalo bzučať. Je to preto, že musíte ruke dovoliť dostať sa na miesto určenia predtým, ako ju nastavíte na voľnobeh. Inak to jednoducho prestane. To je tiež dôležité pri jeho kalibrácii, pretože v rámci skriptu robíte viacero pohybov. Nastavil by som to tak, aby sa postupne presúvalo na všetkých 12 miest, aby som ich mohol všetky znova skontrolovať. ale medzi tým potrebujete trochu času.

Krok 6: Dokončenie softvéru - telefóny na servá

Keď máte testovaciu lavicu a skripty nastavené, môžete ju chvíľu spustiť „naživo“a v reálnom čase sa presvedčiť, ako funguje. Tu som našiel výnimky, ktoré som potreboval pridať do svojho toku Node-RED.

V toku Node-RED sa môžete ľahko odpojiť a pripojiť k rodinným príslušníkom, ak sa chcete na jeden sústrediť. Ak napríklad dva spôsobujú problémy, ale chcete opraviť jeden po druhom. V opačnom prípade majte na pamäti, že budete aj naďalej prijímať správy z akéhokoľvek pripojeného telefónu.

Spomenul som problém s Dog-walking a bratovým domom, ktoré boli celkom blízko. Mal som ďalšie 2 výzvy.

Najprv umiestnenia v iných lokalitách. Moja manželka robila kurz na vysokej škole v Londýne. Chceli sme, aby sa to zaregistrovalo ako „škola“, ale bolo to aj v „Londýne“. Potrebovali sme teda znova použiť kontext a povedať, že ak ste odchádzali z „školy“, presuňte sa do „Londýna“, nie do „cestovania“.

Za druhé, závodné podmienky. Ako už bolo spomenuté, dom môjho brata je vzdialený 2 ulice a tiež blízko našej obľúbenej krčmy/reštaurácie. To znamená, že niekedy sú prijaté 2 signály súčasne alebo veľmi blízko seba. To môže vytvoriť „závodné podmienky“, v ktorých získate rôzne výsledky v závislosti od toho, ktorá logika prejde najrýchlejšie, čo povedie k nepredvídateľným výsledkom. Aby som tomu zabránil, nechal som, aby všetky „zadávané“správy mali logiku s oneskorením 1 s, čím sa zdá, že sa problém vyriešil. Môžu existovať lepšie, elegantnejšie spôsoby, ako to vyriešiť, ale zdá sa, že to funguje.

Krok 7: Zostavenie fyzických hodín - časť I - serva a nápravy

Budovanie fyzických hodín - časť I - serva a nápravy
Budovanie fyzických hodín - časť I - serva a nápravy
Budovanie fyzických hodín - časť I - serva a nápravy
Budovanie fyzických hodín - časť I - serva a nápravy
Budovanie fyzických hodín - časť I - serva a nápravy
Budovanie fyzických hodín - časť I - serva a nápravy

Teraz tá časť, o ktorej som bol najmenej presvedčený, a preto som to nechal vydržať. Chcel som slušnú veľkosť tváre a jednoduchú konštrukciu. Tiež som bol nervózny z toho, že som fyzicky dostal 2 servá okolo centrálnej nápravy. To znamenalo, že keď som sa krátko pozrel na eBay na staré hodiny podľa návodu, ktorý som nasledoval, rozhodol som sa dať si viac šancí a postaviť si ho sám.

  • Dostal som 2 veľké (~ 30 cm) štvorce preglejky, okolo ktorých som ležal (hrubé asi 9 mm).
  • Potom som nakrájal starú koľajnicu na časti 4x10 cm a priskrutkoval prednú a zadnú dosku k sebe.
  • Po označení stredového otvoru som vŕtal tak, aby mal rovnakú veľkosť ako najväčšia mosadzná rúrka.
  • Potom som to natrel normálnou bielou lesklou farbou.
  • Po nejakom experimentovaní som zistil, že by som pravdepodobne nemohol dostať 4 serva okolo tej istej nápravy, keby boli všetky pripevnené k zadnej (alebo prednej) doske. Potreboval som teda mať buď 3 + 1 alebo 2 + 2, na každom tanieri. Skončil som s 3 vzadu a 1 vpredu.
  • Vypracoval som požadované ofsety na kus papiera a potom som narezal mosadzné trubice, aby zodpovedali. Všimnite si, že najhrubšia trubica je najkratšia a najtenšia musí ísť až k zadnej doske. (Najmenší som vlastne zapichol do otvoru, ktorý som čiastočne vyvŕtal v zadnej doske, ale nie celkom, aby sa náprava neposunula dozadu).
  • K rúrkam som kúpil rezačku rúrok, ale tá ich odrezáva tlakom, čo znamená, že menšiu rúrku nedostanete dovnútra. Použil som teda pílu na kov a potom som musel urobiť značné množstvo spisov, aby mohli začať pracovať. Diamantové pilníky tu boli neoceniteľné.
  • Potom som porovnal diagram so skutočnými posunmi pre svorky a ozubené kolesá *.
  • Akonáhle som mal offsety, vedel som, aké „vysoké“sú bloky pre montáž serv. Zlomil som pár blokov tak, že som ich videl príliš tenké a tiež som vŕtal dieru, aby sa drôt dostal von.
  • Potom prišla tá hlúpa časť, kam umiestniť bloky tak, aby presne zodpovedali zubom na náprave. Zaskrutkoval som jeden blok a potom som mohol otočiť servo tak, aby sa stretlo s nápravou, a potom zaskrutkovať druhý blok na druhý koniec serva. Tiež som zistil, že potrebujem trochu vystrihnúť z niektorých blokov, aby som sa nezachytil inými zubami. Trvalo to dlho.
  • Akonáhle som mal všetko hotové, vzal som svoj malinový kufrík, vyvŕtal doň dva otvory a priskrutkoval ho k prednej doske. Potom by som mohol pridať Pi, zatvoriť prednú a zadnú dosku (po pripojení serv k pí (pamätať si, ktoré servo bolo pre ktorého člena rodiny)) a obrátiť sa k rukám …

* Tu som našiel najväčší problém, ktorý ešte musím úplne vyriešiť. Mosadzné rúrky boli 1/4 ", 7/32", 3/16 ", 5/32". Ale svorky boli metrické (okrem jednej, ktorá mala 1/4 "). Pri premene rúrok na metrické boli 6,35 mm, 5,56 mm, 4,76 mm, 3,97 mm. Zostávajúce svorky boli s otvorom 4 mm, 5 mm a 6 mm. Najmenšie 2 a najväčšie sú v poriadku. ale 0,44 mm je očividne príliš veľký zdvih na svorku, takže som ju musel vyplniť papierom. Skúšal som to mnohokrát a chvíľu to funguje v poriadku, potom sa opäť uvoľní. Takže 2. najväčší Ruka nefunguje správne. Bolo to v poriadku asi 6 mesiacov, takže čas strávený tým, že som to urobil dobre, bol dobre investovaný čas. Ale keby som to robil znova, mohol by som ísť o 1 veľkosť hore alebo dole, s medzerou na to, aby som sa pokúsil získať lepšia svorka k trubici. napr. zvoľte 9/32 ", 1/4", (medzera), 3/16 ", 5/32"

Krok 8: Hodinové ručičky

Hodinové ručičky
Hodinové ručičky
Hodinové ručičky
Hodinové ručičky
Hodinové ručičky
Hodinové ručičky

Rozhodol som sa pre oceľový plech, pretože som chcel niečo tuhé, ale menej pravdepodobné, že by to prasklo, keď som to robil. Tiež byť tenký znamenal, že 4 ruky neboli menší problém.

  • Najprv som načrtol tvar.
  • Potom som to preniesol na oceľ na nejakú maskovaciu pásku.
  • Potom som ich veľmi neodborne vystrihol svojou skladačkou. Všetci boli a sú rôzni, ale to mi nevadí.
  • Potom priateľ navrhol, aby som si požičal jeho brúsku na tvarovanie, a bolo to skvelé. vysoko odporúčané. V opačnom prípade podanie trvá veky.
  • Stále bolo potrebné urobiť nejaké brúsenie a potom brúsenie, aby sa zaistili ostré hrany a tiež pekný povrch.
  • Musel som vyvŕtať otvory, aby zodpovedali príslušným mosadzným trubkám (na kontrolu používajte odrezané rúrky, nie namontované na hodinách).
  • Zistil som, že diery potrebujú malý pilník, aby sa dostali na rúrky, ale keď už boli, boli tesné a nepotrebovali žiadne lepidlo. Výnimkou bola predná ruka, ktorej som chcel dať „kryt“. Potom som vyvŕtal (väčšinou) okrúhly kus ocele, potom, čo som vyvŕtal otvor, dostal som správnu veľkosť a nalepil som ho dopredu. môžete to vidieť na poslednom obrázku. Predná ruka občas potrebovala na zaistenie kúsok lepidla, ale po niekoľkých falošných štartoch ruky fungujú skutočne dobre.
  • Odmietol som myšlienku fotografií (pretože deti by sa rýchlo sťažovali na naše fotky z rande), a tak som sa uspokojil s maľovaním na iniciály akrylovou farbou.

Krok 9: Dokončite

Hotovo!
Hotovo!
Hotovo!
Hotovo!

Všetko to funguje naozaj krásne. Ruky sú niekedy trochu mimo, podľa toho, odkiaľ prišli, ale v skutočnosti na tom nezáleží, pretože každé miesto je časť, nie iba čiara.

Niekedy, čudne, môj telefón odmietne uznať, že som doma. Keď som zobrazený na mape, som jasne v okruhu Owntracks, a dokonca aj keď je presnosť dobrá … Netuším prečo. nezdá sa, že by to postihlo zvyšok mojej rodiny. ale nastavenie je rovnaké. To znamená, že Owntracks nikdy neodošle správu a ja sa zaseknem v „Cestovaní“. Ale zvyčajne sa to nakoniec vyrieši samo.

Bolo veľmi užitočné mať v kuchyni, väčšinou vedieť, kedy sa dievčatá chystajú domov zo školy alebo z domu svojich priateľov, a kedy pre nich mať pripravené jedlo/čaj.

Ešte raz veľká vďaka za @ppeters0502 za skvelé pokyny, ktoré treba dodržať. Našťastie tieto môžu niečo pridať k výrobe hodín so 4 rukami.

Krok 10: Veci, ktoré som sa naučil a ktoré by urobili lepšie/inak, keby som to mal urobiť znova

  • Fyzické zostavy vyžadujú pokus a omyl. Problémy s priestorom nemožno predpovedať, stačí sa ponoriť a vyskúšať.
  • V prípade kódu sú problémy s googlením nevyhnutné
  • Začnite od základov a budujte sa. Serva na dreve testovacej stolice znamenali, že väčšinu z nich som mohol uviesť do prevádzky bez fyzickej stavby
  • Ruku som mohol nechať rezať laserom na CNC stroji. Ale nevedel som, kde je miestny, a páči sa mi, ako sa mäkká oceľ osvedčila (bola lacná a brúska to veľmi uľahčila).
  • krokový motor by mohol byť možný, ak pomocou prevodovky dosiahnete 360 otáčok. ale potom možno budete musieť mať serva príliš blízko centrálnej nápravy
  • Existujú 2 typy servo (Futaba a HiTech). Uistite sa, že ste to skontrolovali, pretože majú v drážkovej drážke rôzny počet zubov. A pôvodne som kúpil nesprávne …
  • Nespájajte klobúk so zlou polaritou;-)
  • Google a Stack Overflow sú vaši priatelia, keď sa zaseknú. Musíte však použiť dobré hľadané výrazy …
  • Testovacia lavica je v skutočnosti spôsob, akým môžete jednoduchšie, lacnejšie verzie získať oveľa jednoduchšie. Väčšina komplikácií spojených s postavením pochádza z toho, že sa ruky musia otáčať okolo tej istej nápravy. Ak v tejto záležitosti urobíte kompromis, potom je všetko oveľa jednoduchšie. A myslím si, že 4 môže byť limitom jednej nápravy, pokiaľ sa hriadeľ nedostane oveľa dlhšie. Predpokladám, že ak by bol hriadeľ dlhší, mohli by ste mať 3 na prednej doske a tri na zadnej doske …

Krok 11: Možné budúce rozšírenia …?

Nápady, ktoré som mal o ďalších krokoch, sú nasledujúce.

  1. Chcel by som znova použiť starý ciferník ako ciferník. tj vytvoriť digitálne hodiny. Možno v prehliadači alebo v aplikácii. Pretože sú fyzické hodiny v podstate bez štátnej príslušnosti (t. J. Nevedia, kde sa momentálne nachádzajú, okrem toho, že ruky sú vo fyzickej polohe), potreboval by som mať trvalé úložisko údajov. Node Red môže zapisovať do lokálneho systému súborov, takže by som to asi urobil.
  2. Ak by som to urobil, chcel by som to vidieť mimo domova. Potom však skutočne musíme vyriešiť zabezpečenie. Pretože prístup v rámci tej istej siete Wi -Fi je jedna vec, prístup z internetu je vec druhá. Aktuálne nemám predstavu o tom, ako to najlepšie urobiť, ale mám podozrenie, že by predplatné MQTT, ktoré pôjde iným spôsobom, mohlo fungovať (pi zverejňuje aktuálny stav a prihlásia sa k nemu externé zariadenia) …?
  3. Celkom by sa mi páčila jedna ruka pre „Abroad“. ale to môže byť zložité z hľadiska OwnTracks. Možno by bolo možné použiť iba dĺžku/šírku v kombinácii s obrovskými polomermi?

Odporúča: