Sadržaj:

Weasleyjev' sat sa četiri ruke: 11 koraka (sa slikama)
Weasleyjev' sat sa četiri ruke: 11 koraka (sa slikama)

Video: Weasleyjev' sat sa četiri ruke: 11 koraka (sa slikama)

Video: Weasleyjev' sat sa četiri ruke: 11 koraka (sa slikama)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Srpanj
Anonim
'Weasley' Sat sa četiri ruke
'Weasley' Sat sa četiri ruke

Dakle, s Raspberry Pi -jem koji se već neko vrijeme vrtio, želio sam pronaći lijep projekt koji će mi omogućiti da ga najbolje iskoristim. Naišao sam na ovaj sjajni Instructable Build Your Own Weasley Location Clock od ppeters0502 i pomislio sam da bi bilo dobro probati.

Sat se u osnovi sastoji od Raspberry Pi -a koji kontrolira servo pogone kako bi okrenuo kazaljke na satu. Kao i u kući obitelji Weasley u knjigama/filmovima o Harryju Potteru, svaki član obitelji ima svoju ruku. Svaka ruka pokazuje trenutnu lokaciju tog člana obitelji. Sat to postiže primanjem poruka s mobilnih telefona obitelji kad god uđu ili izađu iz unaprijed definiranog radijusa.

Glavne razlike u odnosu na prethodni Instructable bile su u tome što sam trebao imati 4 ruke, a ne 2 (inače bi se moje kćeri žalile) i odlučio sam izgraditi okvir, a ne da dobijem stari sat za ponovnu upotrebu. To je bilo zato što sam bio zabrinut da će prostor biti problem u postojećoj kućištu sata, s potrebom da stane u 4 servo -a itd.

Trajalo je puno duže nego što sam očekivao, iako uglavnom tamo gdje sam naišao na škakljive probleme koji su me zapanjili i za koje se čini da nisu obuhvaćeni izvornim postom. Ništa protiv izvornog Instructable -a, koji je općenito bio sjajan, ali prošlo je nekoliko godina i verzije su se stvari promijenile … itd. Također, boravak u Velikoj Britaniji značio je da su neki od Imperijalnih/Metričkih elemenata izazvali više izazova nego što sam očekivao.

Također, iako sam dobro s kodiranjem, fizička izrada sata definitivno me rastegnula i zahtijevala je neke dodatne alate, što me također donekle usporilo.

Na kraju ću uključiti odjeljak "Stvari koje bih napravio drugačije/bolje da to radim ponovo …"

Pribor:

Jedna od stvari koje su me pogodile je da su skupe komponente bile povezane sa kazaljkama na satu. 4 ruke su definitivno puno skuplje od 2. Odlučio sam staviti neke cijene kako biste imali ideju. Ovo je prvi put da sve zbrajam, a zanemarujući alate, mislim da sam potrošio oko 200 funti. Plus neke stvari koje nisam koristio (i koje nisu navedene ispod) plus Pi, plus napajanje koje sam već imao.

Pi itd

  1. Raspberry Pi - ne mogu se sjetiti koliko je prvobitno koštao, ali to je bio model 2B. Mislim da ako ga već nemate, vjerojatno bi čak i Pi Zero odgovarao. Dodao sam WiFi ključ i SD karticu s Raspbian -om. U blizini sam ležao stari punjač za Android telefon.
  2. Adafruit Servohat za Pi - 16 £
  3. Napajanje za Servohat - Ovo sam se jako trudio pronaći jer su sve web stranice samo pokazale stranicu adafruit koja onda očito preporučuje američko napajanje. Tada sam shvatio da imam staro napajanje promjenjivog napona s izmjenjivim vrhovima pa sam to i iskoristio. No, američki košta 8 USD, pa je to temelj.
  4. Kućište za Pi, kako bih ga zatim mogao pričvrstiti na okvir sata. 5 GBP

Servo i zupčanici

Ovdje citiram cijenu za sve 4, pa podijelite ako želite manje ruku (zbrajanjem to iznosi ~ 40 £ po ruci = 160 £: -o

  1. 4 x servomotori-koristio sam one koje preporučuje ppeters0502-pronađeno na ebayu za ~ 15 £ svaki = 60 £-tražio sam sljedeći tekst "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360 stupnjeva "ali ponekad su bili nedostupni
  2. 4 x mjedene cijevi koje se točno uklapaju jedna u drugu - ~ 3 £ svaka. Dobio sam po 1 od 1/4 ", 7/32", 3/16 ", 5/32" = 11 £
  3. 4 x stezaljke koje se pričvršćuju na mjedene cijevi kako biste mogli pričvrstiti zupčanike. ~ 7 £ svaki = 28 £. Dobio sam ih od ActiveRobota koji redovito naručuju iz Servocity -a u SAD -u, što vam omogućuje da izbjegnete međunarodnu dostavu. Također mogu dobiti bilo što drugo što možete pronaći na glavnom američkom web mjestu Servocity. Ovo je bilo jako zgodno za sljedeće 2 stavke
  4. 4 x zupčanika s uzorkom od acetila 0,770 "za montažu na stezne glavčine. ~ 6 £ svaki = 24 £
  5. 4 x acetilni zupčanici montirani na acetil zupčaniku za montažu na servo pogone. ~ 6,50 £ svaki = 26 £
  6. 1 x pakiranje šesterokutnih matica na pričvršćene zupčanike za stezne matice = 2,60 £
  7. 1 x 7/64 "šesterokutni ključ (imbus ključ) jer je sve što dolazi iz SAD -a imperijalno, pa su stotine imbus ključeva koje već imam beskorisni = 1 £

Za fizičku građu

Ovdje sam uglavnom koristio dijelove stvari o kojima sam lagao

  1. 2 x kvadrata šperploče za ploču za lice i stražnju stranu
  2. Zatim sam izrezao cilindre 4x10 cm sa stare ograde koju sam imao kako bih spojio stražnju stranu s licem
  3. Neki blokovi za postavljanje servomotora na ispravan pomak - samo otkosi od mekog drva koje sam izrezao prema veličini.
  4. Razni vijci. od vrlo malih (za pričvršćivanje Pi kućišta na okvir) do srednjih (za pričvršćivanje okvira zajedno)
  5. 0,75 mm lim od mekog čelika otprilike 50 cm x 20 cm (za rezanje ruku). Ovo je jedino što sam kupio ~ 9 £ od Wickesa

Alati

Neke stvari sam imao, a neke sam posudio ili kupio

  1. Lemilica + električno lemljenje - za pričvršćivanje konektora na Adafruit Hat & Pi.
  2. Ubodna pila - za izrezivanje grubog oblika ruku
  3. Bušilica. samo obična bežična bušilica od 18V
  4. Bušilice - Imajte na umu da će vam biti potrebne imperijalne burgije za izradu rupa koje odgovaraju mjedenim cijevima. Neke sam uspio posuditi.
  5. nožna pila - za rezanje mjedenih cijevi. Nemojte raditi ono što sam ja radio i potrošiti 3 £ na rezač cijevi, radi pod pritiskom i znači da se unutrašnjost cijevi malo smanjuje. tako da cijev sljedeće veličine dolje ne prolazi
  6. Klupa za mljevenje - nisam imala jednu od ovih, ali prijateljica je imala i to je uvelike olakšalo oblikovanje ruku. Do tada sam samo koristio datoteke. Ne bih ga kupio samo za ovaj projekt, ali za metalne ruke bio je odličan.
  7. Kupio sam neke datoteke s dijamantnim točkama (vrlo male). korisno za ruke i cijevi oko 15 funti
  8. grubi i glatki brusni papir
  9. neke male stezaljke drže stvari na mjestu tijekom bušenja.
  10. porok iz istog razloga.

Korak 1: Postavljanje telefona za slanje njihove lokacije na vaš Pi (I dio MQTT posrednik)

Ovaj dio je vrlo dobro opisao ppeters0502 u svom izvrsnom Weasley Clock Instructable -u. Čudno, iako možda odražava različite skupove vještina, počeo je s izgradnjom, a zatim prešao na softver, a ja sam to učinio obrnuto. Dakle, počeo sam s telefonom … čekaj, nisam, počeo sam s posrednikom MQTT, što je korak 6 u njegovom Instructable. Izostavit ću sve dijelove koje jako dobro radi i samo ću ubaciti neke dijelove koje bih mogao dodati. Krenuo sam putem CloudMQTT koji je spomenuo.

ALI dok sam ovo pisao, provjerio sam vezu do planova i otkrio da više nema besplatnog plana! Povukli su ga iz, kako se čini, razumnih razloga. tj. da bi ljudi postavili besplatnu instancu, a zatim je nikada ne bi koristili. Nisam primijetio jer se trenutne instance mogu nastaviti. Tako da se neću promijeniti. Ali to čini upute pomalo suvišnima. Čini se da postoje 3 opcije.

  1. Plaćajte 5 USD mjesečno za Cloud MQTT (ali to stalno zvuči skupo za sat).
  2. Idite Mosquitto on Pi rutom kako je opisano u prvom Instructable. Ne mogu to komentirati, ali mogla bi biti dobra opcija.
  3. Samo google "besplatni MQTT cloud broker" i čini se da postoje neki drugi.

Dakle, pod pretpostavkom da imate aktivnog posrednika MQTT -a, ako je išta poput CloudMQTT -a, tada će se prikazati poslužitelj, korisnik, lozinka i port. Sve će vam ovo trebati za postavljanje telefona kako biste posredniku poslali svoje lokacije/kretanja.

Korak 2: Postavljanje telefona za slanje njihove lokacije na vaš Pi (dio II Vlasničke stranice)

To je također vrlo dobro pokriveno u izvornom Instructable, u koracima 7 (Android), 8 (iOS) i 9 (postavljanje regija).

Imao sam samo iOS uređaje pa nisam pokušao korak 7.

Što bih dodao tim uputama?

  1. U postavci se nalaze i polja TrackerID i DeviceID. Ovo biste trebali imati mogućnost da vas identificiraju u svojoj obitelji. Npr. Imao sam ih kao R i RPhone. To znači da možete proći kroz sat koji servo i prema tome koju kazaljku okrenuti.
  2. Regije su naziv lokacija koje želite pratiti.
  3. Svaka regija definirana je nazivom, zemljopisnom širinom, dužinom i radijusom.
  4. Budući da sam htio imati više lokacija kao jedan odjeljak na satu, upotrijebio sam konvenciju imenovanja, koja se pokazala vrlo korisnom. Moguće su i druge metode, ali meni je to uspjelo.

    • Na primjer, za OBITELJSKI dio sata htio sam imati svoje roditelje i braću i sestre te roditelje i braću i sestre svoje žene. Stoga sam imao lokacije poput "Family Tom", "Family Dick", Family Harry "i" Family ParentsR ". To je značilo da bi sljedeća faza mogla znati što prenijeti na Sat.
    • Imajte na umu da ljudi mogu imati različite lokacije. No, sve dok su u skladu s konvencijom o imenovanju, to je u redu. Npr. moj bi se posao razlikovao od radnog područja moje žene i drugačije bi se zvao. ali sve dok oboje započnu "Rad" onda je sve u redu.
  5. Želite da način rada postavite na "Značajan" na zaslonu Karata. To znači da poruke (uglavnom) dobivate samo kada uđete ili izađete iz regija. Čini se da je ovo ažurirana verzija bilješke s oznakom VAŽNO: na kraju 8. koraka u izvornom Instructable.
  6. Kao što je spomenuto u izvornom Instructable -u, korištenje Google karata odličan je način da otkrijete Lat/Long negdje. Smatrao sam da je učinkovitije to učiniti skupno, otkrivajući sve zemljopisne širine/duljine moje lokacije, zatim sam ih zalijepio u Bilješke (na svom Macu) i uz sinkronizaciju u oblaku to je značilo da su se čarobno pojavile na mojem iPhoneu u Notesu i mogao bih ih kopirati/zalijepiti u Owntracks. To je također značilo da mogu poslati datoteku na telefone svoje obitelji i svi smo imali dosljedne lokacije.
  7. Bliske lokacije mogu uzrokovati probleme. Moj brat živi 2 ulice dalje, a u početku je moj telefon stalno razmišljao da sam istovremeno u njegovoj kući, kao i kod kuće. Na kraju sam morao staviti dodatnu logiku u Node Red da uhvatim i zanemarim ovo što se događa.

Korak 3: Postavljanje Raspberry Pi

Postavljanje Raspberry Pi
Postavljanje Raspberry Pi

Dakle, pretpostavljam da imate postavljenu bazu Pi i na WiFi. Vodio sam Raspbian, ali to ne bi trebalo biti važno. Upotrijebite upute na stranici raspberrypi.org da biste sve postavili.

Imajte na umu da Pi ima priključke za prikaz na monitoru, tipkovnici/mišu itd. ALI očito kad ga imate na satu, ne želite ništa od toga. Dakle, odgovor, koji je netko predložio na web stranici Raspberry pi, mislim, bio je postaviti VNC vezu. To vam omogućuje povezivanje s drugog uređaja s Pi -om i njegovo upravljanje. Radim to sa svog Mac -a, ali to sam učinio i s iPada. Predlažem da koristite nešto s tipkovnicom radi lakšeg korištenja.

Upravo sam otkrio da su mi izgleda olakšali otkad sam se povezao … vidi ovdje

U osnovi se povezujete i dobivate prozor koji je standardno Pi sučelje.

Dakle, imate prozor za svoj Pi sa svog prijenosnog računala ili računala.

Sada morate spojiti Servosisteme.

Prvo morate napraviti prilično osnovno lemljenje da biste adafruit šešir stavili na Pi. Malo je škakljivo, ali unatoč tome što nisam lemio 30-ak godina, bilo je u redu. Kao i uvijek, pronašao sam koristan YouTube video koji me je proveo, što mi je bilo od velike pomoći.

Iako šešir može pokretati 16 servo pogona, trebala su mi samo 4 pa sam mučio samo lemljenje prvog seta od 4 pina.

Zatim se servomotori samo pritisnu na iglice. Prvo sam napravio jednu da provjerim mogu li zaista pokrenuti servo.

Tu sam naišao na svoju prvu veliku prepreku. Imao sam vrlo osnovnu python skriptu za premještanje servomotora i doslovno se ništa nije dogodilo. Proveo sam oko tjedan dana isprobavajući nove skripte itd., A onda se na šeširu počeo pojavljivati dim. Isključivši sve, provjerio sam shemu. To je bila komponenta koja štiti od obrnutog polariteta. Budući da sam imao višenaponski, višenaponski izvor napajanja, propustio sam činjenicu da bi DC izlaz mogao ići u oba smjera okretanjem vrha. Pogriješio sam (šansa 50:50) i upravo sam izgorio svoj prvi šešir od adafruta

:-(Tako da je došlo do laganog odgode jer sam kupio novu, ponovno lemio i ispravio vrh. Puno bolje.

Zatim sam trebao smisliti kako pomaknuti servo pogone na ispravnu točku na satu. To će se dogoditi u 5. koraku, ali ono što sam učinio, budući da nisam izgradio stvarni sat, bilo je lagano pričvršćivanje servomotora na nasumični komad drva i zalijepljenje neke maskirne trake sa strelicom, kao na slici. To je dalo vrlo vizualnu povratnu informaciju onom što sam kodirao.

Korak 4: Instaliranje Node Red (Dobivanje poruka s MQTT poslužitelja na vašu Python skriptu)

Instaliranje čvora Red (primanje poruka s poslužitelja MQTT na vašu skriptu Python)
Instaliranje čvora Red (primanje poruka s poslužitelja MQTT na vašu skriptu Python)
Instaliranje čvora Red (primanje poruka s poslužitelja MQTT na vašu skriptu Python)
Instaliranje čvora Red (primanje poruka s poslužitelja MQTT na vašu skriptu Python)
Instaliranje Node Red (Dobivanje poruka s MQTT poslužitelja na vašu Python skriptu)
Instaliranje Node Red (Dobivanje poruka s MQTT poslužitelja na vašu Python skriptu)
Instaliranje Node Red (Dobivanje poruka s MQTT poslužitelja na vašu Python skriptu)
Instaliranje Node Red (Dobivanje poruka s MQTT poslužitelja na vašu Python skriptu)

Node-RED je program koji instalirate na Pi, koji vam daje vizualno sučelje (u vašem pregledniku) za primanje poruka s vašeg MQTT poslužitelja i pomoću njega za prosljeđivanje točnih informacija u vašu python skriptu (obrađeno u sljedećem koraku (Korak 5). Prilično sam koristio upute ppeters0502 u koraku 5. Postoji logika u ovim tijekovima i dodatna logika u pythonu, a u svakom možete imati više ili manje, ovisno o vašim željama. U osnovi morate učiniti sljedeće

  1. Imam prijemne čvorove za MQTT poruke - to su svijetloljubičaste boje i imao sam 1 po članu obitelji
  2. Preslikajte to na servo koji želite premjestiti (numerirani 0, 1, 2, 3)
  3. Odredite ulazite li ili napuštate radijus na OwnTracks -u
  4. Odredite na koje mjesto servo mora biti usmjeren

    Postojali su neki izuzeci od osnovnih pravila koja sam trebao ugraditi

  5. Pravilno postavite kut

Node-RED je radio prva 4, a Python je bio relativno jednostavan.

Ovdje možete vidjeti osnovni tok, a svi se tokovi mogu izvesti u ovdje prikazani format, što znači da ovaj osnovni tok možete uvesti u svoj Node-RED, a zatim se prilagoditi. Imajte na umu da sam uklonio sve veze s ljubičastih čvorova tako da ne možete pristupiti mojoj instanci MQTT. Također sam uklonio sve test-čvorove jer sadrže stvarne podatke … možda ćete morati promijeniti ovu vrstu datoteke u flows.json kako biste je uvezli u svoj Node-RED, ali Instructables mi to nisu dopustili.

Zeleni čvorovi su čvorovi za otklanjanje pogrešaka koji zatim prikazuju izlaz u prozoru za otklanjanje pogrešaka na desnoj strani zaslona (možda će biti potrebno proširenje - pronađite strelicu na pola gore s desne strane)

Prvi bit koji treba učiniti je bit "Uživo - samo za ispravljanje pogrešaka". Time se provjerava možete li primiti MQTT poruke i vidjeti što je u njima. json je samo strukturiranija verzija poruka koja vam omogućuje lakše izvlačenje podataka. U ovom toku, kada je uživo, tada povezujem ljubičaste čvorove gore lijevo s čvorom json desno od njih.

Testiranje čvorova

Kad znate kako će poruke izgledati uživo, postaje dosadno morati izaći iz svoje kuće, niz cestu i natrag, samo da biste pokrenuli događaj. Nakon što to učinite, možete kopirati poruku u okidač TEST, a zatim je samo kliknite kako biste simulirali događaj. Također možete promijeniti podatke, pretvarajući se da pripadaju različitim lokacijama (provjerite odgovaraju li točno nazivima lokacija u Owntrackima).

U toku možete vidjeti da svi testni slučajevi idu u zasebni čvor, a zatim to ide u čvor json. Ovo je čisto za spremanje zaslona.

Ne mogu dovoljno naglasiti koliko su ti čvorovi bili korisni, a i dalje su.

Pozivanje Pythona

Pa sam onda udario u sljedeću blokadu. Ovaj je uzeo MNOGO guglanja po forumima itd. Moj tok bi savršeno radio, ali ne bi pokrenuo moju python skriptu. Nisam to mogao riješiti, ali poštedjet ću vas psovanja itd. Samo da kažem da, kao što je istaknuto na drugom snimku zaslona, morate navesti python3, kako očito Node-RED pretpostavlja python2, osim ako ne navedete.

2 dodatne komplikacije - samo ako je potrebno

Tada sam imao niz izazova u kojima logika nije baš funkcionirala. Prvo je to što je Owntracks bio pomalo čudan i, budući da moj brat živi 2 ulice dalje, često je govorilo da sam na 2 mjesta odjednom ili da se stalno prebacujem između njih. Jedini način na koji sam to mogao zaobići bio je dodati stanje za zaustavljanje lažno pozitivnih rezultata. Ako je tvrdilo da sam u njegovoj kući, pregledao sam i provjerio stvarnu zemljopisnu dužinu/širinu u poruci i prekinuo je ako piše da sam zapravo kod kuće.

Drugi problem je bio što, dok sam šetao psa, nisam mogao postići dobar radijus. Obično hodam istim područjem, pa sam ovdje rekao "ako uđem u ovo područje, definitivno ću šetati psa i bit ću sve dok ne dođem kući." to je značilo da se neće prebaciti na pub koji prolazim na putu kući, ili na druga lokalna mjesta koja bi mogla izazvati hodanje pasa. Da bih to učinio, morao sam postaviti neke trajne kontekstualne varijable (potražite ih na Node-RED. Pogledajte snimku zaslona. Ove varijable traju sve dok se Node-RED ponovno ne pokrene, pa mogu reći Ako ste u šetnji psa, postavite Kontekstnu varijablu "Dog". Zatim zanemarite NIŠTA drugo osim ako ne 'uđem' u dom.

Posljednji snimak zaslona je moj konačni tok, sa svim iznimkama, samo radi vašeg interesa.

Korak 5: Zapravo premještanje servosa s Pythonom na Pi

Kratko preusmjeravanje u servomotore. Nisam znao ništa o servo pogonima, ali na internetu postoji mnogo informacija. One koje sam koristio su kontinuirani servomotori koji se mogu okretati za 360 stupnjeva i glatko. Druga glavna vrsta su stepeni servo pogoni koji se kreću u komadima (koracima) i naizgled idu samo do oko 180 stupnjeva (ovdje očito nije korisno). Prednost stepper servo servera je što ih možete jednostavno staviti pod kut i oni se pomiču do te točke i zaustavljaju. Sva dokumentacija koju sam pronašao kaže da kontinuirani servo pogoni rade tako što im se daje brzina i vrijeme za održavanje te brzine (npr. Puna brzina za 1 s) i završavaju tamo gdje završavaju, ali to je u odnosu na njihovu početnu točku. Nakon puno pokušaja ovo mi nije uspjelo, ali sam pomoću testnog stola otkrio da su se servomotori dosljedno vraćali na istu točku pod istim kutom. Što je puno lakše, pa sam upravo to učinio. Možda postoji neki nedostatak za koji ne znam, ali meni to uspijeva. Imajte na umu, međutim, da je svaki servo jedinstven, pa morate imati jedinstveni skup kutova za svaki servo. Bilo mi je najlakše imati "kalibracijsku" python skriptu, gdje bih mogao redom postaviti servo u kutove, poboljšavajući ih sve dok ne izgledaju ispravno. Ovo je prva priložena skripta. Samo komentirate servomotore koje ne testirate, koncentrirate se na jedan, a zatim prilagodite vrijednosti kako vam je potrebno. NAPOMENA: kalibracija ispitnog stola je jednostavna, gruba i spremna. Morat ćete ponovno kalibrirati kad sat bude sastavljen, jer će zupčanici itd. Promijeniti sve. Zatim je druga skripta prilično osnovna. Radi sljedeće

  1. Uvezite nekoliko knjižnica
  2. premjestite varijable koje dolaze iz Node-RED u varijable u skripti
  3. preslikava kutove određene skriptom kalibracije na mjesta na satu.
  4. provjerite nalazi li se lokacija na popisu, a ako nije, prijeđite na "Opasnost"
  5. zapisati što je učinjeno u log datoteku
  6. pomaknite potrebni servo pod željeni kut
  7. Zaustavite jedan servo od 'zujanja' *

3 stvari na koje treba obratiti pažnju.

Zapisnička datoteka je super korisna za ispravljanje pogrešaka. To znači da možete pogledati Node-RED ispravljanje pogrešaka u poruci, a zatim vidjeti što se dogodilo u skripti. izlaz izgleda ovako. Prva 3 ja vodim psa u šetnju, a zatim Dijete 1 napušta kuću i stiže u školu. Napomena za provjeru vremena na Pi. Prema zadanim postavkama može biti UTC i ne dopušta promjenu ljetnog/zimskog vremena. Npr. donje vrijeme je 1 sat van.

2020-12-07_05: 36: 03 Tko = 0, loc = Putovanje, detalj = Početna, Kut = 10, indeks = 8

2020-12-07_05: 36: 04 Tko = 0, loc = pas, detalj = Astons, Kut = 86,5, indeks = 10

2020-12-07_06: 07: 49 Tko = 0, loc = Početna, detalj = unos, Kut = 75, indeks = 0

2020-12-07_06: 23: 53 Tko = 2, loc = Putovanje, detalj = Početna, Kut = 19, indeks = 8

2020-12-07_06: 30: 48 Tko = 2, lokal = škola, detalj = N, kut = 60,5, indeks = 2

Servo-zujanje

Jedan od servomotora (0) neprestano je brujao nakon završetka scenarija. Kao što možete zamisliti, ovo je jako neugodno imati u našoj kuhinji. Našao sam negdje nit u kojoj se spominje postavljanje kuta servoa na 'nema' što ga nekako postavlja u stanje mirovanja. To je sjajno funkcioniralo i može se vidjeti u scenariju na kraju.

Rokovi

Imajte na umu koliko je niska kazaljka da biste premetali danonoćno. U skripti možete vidjeti da postoji red time.sleep (4) neposredno prije nego što smo postavili servo da prestane zujati. To je zato što morate dopustiti da ruka dođe do odredišta prije nego što je postavite u stanje mirovanja. Inače jednostavno prestaje. To je također važno pri kalibriranju jer radite više poteza unutar skripte. Pokrenuo bih ga tako da se redom premjesti na svih 12 lokacija, tako da ih mogu sve ponovno provjeriti. ali vam treba malo vremena između.

Korak 6: Dovršavanje softvera - telefoni do servo uređaja

Nakon što postavite testni stol i skripte, možete ga pokrenuti 'uživo' nakratko i vidjeti kako radi u stvarnom vremenu. Ovdje sam pronašao iznimke koje sam trebao dodati u svoj Node-RED tok.

Možete se jednostavno odspojiti i povezati članove obitelji u toku Node-RED ako se želite koncentrirati na jednoga. Na primjer, ako dva uzrokuju probleme, ali želite popraviti jedan po jedan. U protivnom, imajte na umu da ćete i dalje primati poruke sa svih povezanih telefona.

Spomenuo sam problem s šetanjem pasa i bratovom kućom koja je prilično blizu. Imao sam još 2 izazova.

Prvo, lokacije unutar drugih lokacija. Moja je žena pohađala tečaj na jednom fakultetu u Londonu. Htjeli smo da se to registrira kao 'Škola', ali nalazi se i u 'Londonu'. Stoga smo morali ponovno upotrijebiti kontekst da kažemo da ako napuštate tu 'školu', prijeđite na 'London', a ne na 'Putovanje'.

Drugo, uvjeti utrke. Kao što je spomenuto, kuća mog brata udaljena je 2 ulice, a također je u blizini našeg omiljenog puba/restorana. To znači da se ponekad primaju 2 signala istovremeno ili vrlo blizu. To može postaviti "uvjete utrke" u kojima postižete različite ishode, ovisno o tome koji logički proces najbrže prolazi, što dovodi do nepredvidivih ishoda. Kako bih se tome suprotstavio, učinio sam da sve 'ulazne' poruke imaju kašnjenje od 1 s u logici, što je izgleda riješilo problem. Možda postoje bolji, elegantniji načini da se to riješi, ali činilo se da djeluje.

Korak 7: Izgradnja fizičkog sata - I dio - Servo i osovina

Izgradnja fizičkog sata - I. dio - Servo i osovina
Izgradnja fizičkog sata - I. dio - Servo i osovina
Izgradnja fizičkog sata - I. dio - Servo i osovina
Izgradnja fizičkog sata - I. dio - Servo i osovina
Izgradnja fizičkog sata - I dio - Servo i osovina
Izgradnja fizičkog sata - I dio - Servo i osovina

Sad ono u što nisam bio najmanje siguran, zbog čega sam to ostavio da traje. Željela sam lice pristojne veličine i laku konstrukciju. Također sam bio nervozan zbog fizičkog dobivanja 2 servo motora oko središnje osovine. To je značilo da sam, pogledavši nakratko na ebayu stare satove kao u uputama koje sam slijedio, odlučio sebi dati više prilika tako što ću ih sam izgraditi.

  • Dobio sam 2 velika (~ 30 cm) kvadrata šperploče koja sam ležao (debljine oko 9 mm).
  • Zatim sam izrezao staru tračnicu za ograde na dijelove 4x10 cm i zajedno pričvrstio prednju i stražnju ploču.
  • Označivši središnju rupu, izbušio sam je iste veličine kao najveća mjedena cijev.
  • Zatim sam ga obojala normalnom bijelom sjajnom bojom.
  • Nakon nekog eksperimentiranja shvatio sam da vjerojatno ne bih mogao dobiti 4 servo motora oko iste osovine ako su svi pričvršćeni na stražnju (ili prednju) ploču. Pa sam morao imati ili 3 + 1 ili 2 + 2, na svakom tanjuru. Završio sam s 3 straga i 1 sprijeda.
  • Razradio sam potrebne pomake na komadu papira, a zatim izrezao mjedene cijevi kako bi odgovarale. Imajte na umu da je najdeblja cijev najkraća, a najtanja mora ići sve do stražnje ploče. (Zapravo sam najmanji ugradio u rupu koju sam djelomično izbušio u stražnjoj ploči, ali ne do kraja da se osovina ne pomakne unatrag).
  • Za cijevi sam kupio rezač cijevi, ali za njihovo rezanje koristi se pritisak, što znači da manju cijev ne možete unijeti unutra. Pa sam upotrijebio nožnu pilu, a zatim sam morao podnijeti dosta datoteka kako bih ih natjerao da rade. Dijamantne datoteke su ovdje bile neprocjenjive.
  • Zatim sam spojio dijagram sa stvarnim pomacima za stezaljke i zupčanike *.
  • Nakon što sam imao pomake, znao sam koliko 'visoko' napraviti blokove za postavljanje servomotora. Razbio sam nekoliko blokova tako što sam ih rezao pretanko i izbušio rupu kako bih pustio žicu.
  • Zatim je uslijedio lukavi dio mjesta gdje se postavljaju blokovi kako bi se točno susreli sa zupčanicima na osovini. Ušrafio sam jedan blok, a zatim mogao okrenuti servo prema osovini, a zatim uviti drugi blok serva u drugi blok. Također sam otkrio da moram malo izrezati neke blokove kako ne bih zaglavio druge zupčanike. Trajalo je dosta dugo.
  • Kad sam sve to obavio, nabavio sam kovčeg od maline pi, izbušio dvije rupe u njemu i pričvrstio ga na prednju ploču. Zatim sam mogao dodati Pi, zatvoriti prednju i stražnju ploču (spojivši servosisteme na pi (sjećajući se koji je servo za kojeg člana obitelji) i okrenuti se rukama …

* Ovdje sam pronašao najveći problem koji još nisam u potpunosti riješio. Mjedene cijevi bile su 1/4 ", 7/32", 3/16 ", 5/32". No, stezaljke su bile metričke (osim jedne koja je bila 1/4 "). Pretvarajući cijevi u metričke bile su 6,35 mm, 5,56 mm, 4,76 mm 3,97 mm. Preostale stezaljke bile su provrta 4 mm, 5 mm i 6 mm. Najmanje 2 i najveći su u redu, ali očito je da je 0,44 mm preveliki hod za stezaljku pa sam ga morao obložiti papirom. Pokušao sam ovo nekoliko puta i neko vrijeme radi u redu, a zatim se opet olabavi. Dakle, drugi najveći ruka ne radi ispravno. Bilo je dobro oko 6 mjeseci, pa je vrijeme provedeno u ovom poslu bilo dobro uloženo vrijeme. Ali da sam to radila ponovno, mogla bih otići 1 veličinu gore ili dolje, s razmakom u pokušaju da dobijem bolja spona na cijev, npr. idite na 9/32 ", 1/4", (razmak), 3/16 ", 5/32"

Korak 8: kazaljke na satu

Kazaljke na satu
Kazaljke na satu
Kazaljke na satu
Kazaljke na satu
Kazaljke na satu
Kazaljke na satu

Odlučio sam se za čelični lim jer sam htio nešto kruto, ali manje vjerojatno da će puknuti tijekom izrade. Također biti mršav značilo je da 4 ruke nisu bile problem.

  • Prvo sam skicirao oblik.
  • Zatim sam ga prenio u čelik na vrhu neke maskirne trake.
  • Tada sam ih vrlo nestručno izrezao svojom ubodnom pilom. Bili su, i jesu, različiti, ali meni to ne smeta.
  • Tada mi je prijatelj predložio da posudim njegovu brusilicu za oblikovanje, što je bilo super. Preporučuje se. U protivnom podnošenje zahtjeva traje.
  • Trebalo je još nešto uložiti, a zatim brusiti kako bi se osiguralo da nema oštrih rubova, a također i lijep završetak.
  • Morao sam izbušiti rupe koje odgovaraju odgovarajućim mjedenim cijevima (za provjeru koristite odrezane cijevi, a ne montirane na satu).
  • Otkrio sam da je rupicama potrebno malo turpijanja kako bi dospjele na cijevi, no jednom su bile uske i nije im bilo potrebno ljepilo. Izuzetak je bila prednja ruka koju sam htio imati 'pokriće'. Tako sam izrezao (uglavnom) okrugli komad čelika, nakon što sam izbušio rupu i dobio je odgovarajuće veličine, te je superljepio sprijeda. možete vidjeti na posljednjoj slici. Povremeno bi prednjoj ruci trebao komadić ljepila da je učvrsti, ali nakon nekoliko pogrešnih pokreta ruke rade jako dobro.
  • Odbio sam ideju o fotografijama (jer bi se djeca brzo žalila na naše fotografije s datuma) pa sam se odlučio za slikanje na inicijalima akrilnom bojom.

Korak 9: Dovršite

Potpuno!
Potpuno!
Potpuno!
Potpuno!

Sve radi jako lijepo. Ruke su ponekad pomalo skinute, ovisno o tome odakle su došle, ali zapravo nije važno jer je svako mjesto odjeljak, a ne samo crta.

Ponekad, čudno, moj telefon odbija priznati da sam kod kuće. Jasno sam u radijusu Owntracksa kad je prikazano na karti, pa čak i kad je točnost dobra … Nemam pojma zašto. čini se da ne pogađa ostatak moje obitelji. ali postav je isti. To znači da Owntracks nikad ne šalje poruku, a ja zaglavim u 'Putovanju'. Ali obično se na kraju to samo po sebi riješi.

Bilo je super korisno imati ih u našoj kuhinji, uglavnom znati kada djevojke kreću kući iz škole, ili kućama svojih prijatelja, pa kada im treba pripremiti hranu/čaj.

Opet velika zahvalnost @ppeters0502 na sjajnim uputama koje morate slijediti. Nadajmo se da bi ovo moglo dodati nešto oko izrade sata sa 4 kazaljke.

Korak 10: Stvari koje sam naučio i koje bi stvari bile bolje/drugačije da to moram ponoviti

  • Fizičke konstrukcije zahtijevaju pokušaj i pogrešku. Ne postoji način predviđanja svemirskih problema, samo trebate zaroniti i pokušati.
  • Za kod, googling problemi su bitni
  • Započnite osnovno i nadogradite. Servomotori na drvetu za testne stolove značili su da bih većinu mogao raditi bez fizičke izrade
  • Možda sam laserski rezao ruke na CNC stroju. Ali nisam znao gdje je lokalni, i sviđa mi se kako je izrađen blagi čelik (bio je jeftin, a klupa za brušenje je mnogo olakšala)
  • koračni motor mogao bi biti moguć ako koristite zupčanik za 360 zavoja. ali možda ćete tada morati imati servo preblizu središnje osovine
  • Postoje 2 vrste servo servera (Futaba i HiTech). Provjerite jeste li ovo provjerili jer imaju različit broj zubaca na zubcu. I u početku sam kupio pogrešne …
  • Ne povezujte šešir s pogrešnim polaritetom;-)
  • Google i Stack Overflow vaši su prijatelji kad zaglavite. Ali morate koristiti dobre pojmove za pretraživanje …
  • Testna klupa zapravo je način na koji možete lakše dobiti jednostavniju, jeftiniju verziju. Većina komplikacija kod izrade dolazi zbog toga što se ruke moraju okretati oko iste osovine. Ako napravite kompromis oko toga, sve je puno lakše. I mislim da 4 može biti granica jedne osovine, osim ako vratilo ne postane mnogo duže. Pretpostavljam da biste mogli imati 3 na prednjoj ploči i tri na stražnjoj ploči da je osovina duža …

Korak 11: Moguća buduća proširenja …?

Ideje koje sam imao o sljedećim koracima su sljedeće.

  1. Htio bih ponovno namjestiti stari iPad kao sat. tj. napraviti digitalni sat. Moguće na temelju preglednika ili aplikacije. Budući da je fizički sat u biti bez državljanstva (tj. Ne zna gdje se trenutno nalazi, osim zbog kazaljki koje su u fizičkom položaju), morao bih imati stalnu pohranu podataka. Node Red može pisati u lokalni datotečni sustav, pa bih to vjerojatno učinio.
  2. Da sam to učinio, volio bih to vidjeti izvan kuće. Ali onda stvarno moramo riješiti sigurnost. Budući da je pristup unutar iste WiFi mreže jedno, pristup s interneta je drugo. Trenutno nemam pojma kako je najbolje to učiniti, ali sumnjam da bi pretplata na MQTT u drugom smjeru mogla funkcionirati (pi objavljuje trenutačni status i vanjski se uređaji pretplaćuju na nju) …?
  3. Volio bih jednu ruku za 'U inozemstvu'. ali to bi moglo biti složeno sa stajališta OwnTracks. Možda bi samo mogao koristiti long/lat u kombinaciji s nekim velikim radijusima?

Preporučeni: