Sisällysluettelo:

Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)
Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)

Video: Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)

Video: Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)
Video: HARRY POTTER STUDIO TOUR LONDON | COMPLETE WALK THROUGH 2024, Heinäkuu
Anonim
Weasleyn sijaintikello 4 kädellä
Weasleyn sijaintikello 4 kädellä

Joten Raspberry Pi: n kanssa, joka oli pyörinyt jonkin aikaa, halusin löytää mukavan projektin, jonka avulla voisin hyödyntää sitä parhaalla mahdollisella tavalla. Löysin ppeters0502: n tämän suuren Instructable Build Your Own Weasley -kellon ja ajattelin, että olisi hyvä kokeilla.

Kello koostuu pohjimmiltaan Raspberry Pi: stä, joka ohjaa servoja kellon osoittimien kääntämiseksi. Kuten Weasley -perheen talossa Harry Potter -kirjoissa/elokuvissa, jokaisella perheenjäsenellä on oma käsi. Jokainen käsi osoittaa kyseisen perheenjäsenen nykyisen sijainnin. Kello saavuttaa tämän vastaanottamalla viestejä perheen matkapuhelimista aina, kun ne tulevat tai poistuvat ennalta määritellyltä säteeltä.

Suurimmat erot edelliseen Instructableen olivat, että minulla oli oltava 4 kättä, ei 2 (muuten tyttäreni olisivat valittaneet), ja päätin rakentaa myös kehyksen, enkä hankkia vanhaa kelloa uudelleen käytettäväksi. Tämä johtui siitä, että olin huolissani siitä, että tila olisi ongelma olemassa olevassa kellokotelossa ja tarve mahtua 4 servoon jne.

Se kesti paljon kauemmin kuin odotin, vaikka enimmäkseen siellä, missä törmäsin hämmentäviin ongelmiin, jotka järkyttivät minua ja joita ei näyttänyt kattavan alkuperäinen viesti. Ei mitään alkuperäistä Instructablea vastaan, joka oli yleensä loistava, mutta joitakin vuosia oli kulunut ja versiot asioista muuttuneet … jne. Myös Yhdistyneessä kuningaskunnassa oleminen merkitsi sitä, että jotkut Imperial/Metric -elementit aiheuttivat enemmän haasteita kuin odotin.

Lisäksi, vaikka koodaukseni on kunnossa, kellon fyysinen valmistus varmasti venytti minua ja vaati lisätyökaluja, mikä myös hidasti minua jonkin verran.

Lopuksi sisällytän osion "Asioista, jotka tekisin toisin/paremmin, jos tekisin sen uudelleen …"

Tarvikkeet:

Yksi asia, joka hämmästytti minua, oli se, että kalliiden komponenttien tarkoituksena oli tehdä kellon kädet. 4 kättä on ehdottomasti paljon kalliimpi kuin 2. Päätin laittaa joitakin kustannuksia, jotta sinulla on idea. Tämä on ensimmäinen kerta, kun olen lisännyt kaiken, ja välittämättä työkaluista, mielestäni käytin noin 200 puntaa. Lisäksi joitain tavaroita, joita en käyttänyt (enkä ole sisällyttänyt alla), sekä Pi, sekä virtalähde, jotka molemmat minulla oli jo.

Pi jne

  1. Raspberry Pi - en muista kuinka paljon se alun perin maksoi, mutta se oli malli 2B. Luulen, että jos sinulla ei vielä ole sellaista, niin jopa Pi Zero todennäköisesti tekisi. Olin lisännyt wifi -sovittimen ja SD -kortin Raspbianin kanssa. Ja minulla oli vanha Android -puhelinlaturi makaamassa.
  2. Adafruit Servohat Pi: lle - 16 puntaa
  3. Servohatin virtalähde - Tätä olen todella vaikeasti löytänyt, koska kaikki sivustot viittasivat vain adafruit -sivustoon, joka sitten tietysti suosittelee Yhdysvaltain virtalähdettä. Sitten tajusin, että minulla oli vanha vaihteleva jännitelähde, jossa oli vaihdettavat kärjet, joten käytin sitä. Mutta USA: n hinta on 8 dollaria, joten se on pallopeli.
  4. Kotelo Pi: lle, jotta voisin sitten kiinnittää sen kellokehykseen. 5 £

Servot ja vaihteet

Tässä lainaan kaikkien neljän hintaa, joten jaa, jos haluat vähemmän käsiä (sen lisääminen on ~ 40 € / käsi = 160 €: -o

  1. 4 x Servot-käytin ppeters0502: n suosittelemia-löytyi ebaystä ~ 15 € / kpl = 60 €-Etsin seuraavaa tekstiä "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-aste "mutta joskus ne eivät olleet tavoitettavissa
  2. 4 x messinkiputkea, jotka sopivat täsmälleen toisiinsa - kukin ~ £ 3. Sain yhden 1/4 ", 7/32", 3/16 ", 5/32" = 11 €
  3. 4 x puristinta, jotka kiinnittyvät messinkiputkiin, jotta voit kiinnittää hammaspyörät. ~ 7 € / kpl = 28 €. Sain ne ActiveRobotilta, jotka tekevät säännöllisiä tilauksia Servocityltä Yhdysvalloissa, joten voit välttää kansainvälisen toimituksen. He voivat myös saada mitä tahansa muuta Servocityn Yhdysvaltain pääsivustolta. Tämä oli erittäin kätevä seuraaville 2 kohteelle
  4. 4 x 0,770 "asetyylikuvioista hammaspyörät kiinnitykseen napoihin. ~ 6 € / kpl = 24 €
  5. 4 x asetyyliristiin asennetut asetyylivaihteet servoihin asennettavaksi. ~ 6,50 £ / 26 €
  6. 1 x kuusiomutteripakkaus kiinnitettyihin hammaspyöriin kiristysmuttereihin = 2,60 €
  7. 1 x 7/64 "kuusiokoloavain (kuusiokoloavain), koska kaikki Yhdysvalloista tuleva on keisarillista, joten sadat kuusiokoloavaimet, joita minulla on, ovat hyödyttömiä = 1 £

Fyysistä rakennetta varten

Täällä käytin enimmäkseen leikkauksia tavaroista, joista olin valehdellut

  1. 2 x neliö vaneria 'kasvot' ja 'taka' levylle
  2. Leikkasin sitten 4 x 10 cm: n sylinterit irti vanhasta kaide -kiskosta, jotta selkä voitaisiin yhdistää
  3. Jotkut lohkot servojen asentamiseksi oikeaan siirtymään - vain havupuun leikkaukset, jotka leikkasin kokoon.
  4. Erilaisia ruuveja. hyvin pienestä (Pi -kotelon kiinnittäminen runkoon) keskikokoiseen (kehyksen kiinnittäminen yhteen)
  5. 0,75 mm ohutlevy noin 50 cm x 20 cm (leikkaamaan kädet pois). Tämä oli ainoa asia, jonka ostin ~ 9 puntaa Wickesiltä

Työkalut

Jotkut asiat minulla oli ja jotkut lainasin tai ostin

  1. Juotin + sähköinen juote - liittimien kiinnittämiseen Adafruit Hat & Pi -laitteeseen.
  2. Pistosaha - käsien karkean muodon leikkaamiseen
  3. Porata. ihan tavallinen 18 V: n akkuporakone
  4. Poranterät - Muista, että tarvitset keisarillisia poranteriä, jotta voit tehdä reikiä, jotka sopivat messinkiputkiin. Onnistuin lainaamaan osan.
  5. rautasaha - messinkiputkien leikkaamiseen. Älä tee sitä, mitä tein, ja käytä 3 puntaa putkenleikkuriin, se toimii paineella ja tarkoittaa, että putkien sisätila pienenee hieman. joten seuraavan kokoa pienempi putki ei sitten sovi läpi
  6. Penkkihiomakone - Minulla ei ollut yhtä näistä, mutta kaverilla oli ja se helpotti käsien muotoilua PALJON. Siihen asti käytin vain tiedostoja. En ostaisi sellaista vain tähän projektiin, mutta metallikädille se oli hieno.
  7. Ostin valikoituja timanttipisteviivoja (hyvin pieniä). hyödyllinen käsille ja putkille noin 15 puntaa
  8. karkea ja sileä hiekkapaperi
  9. jotkut pienet puristimet pitävät asiat paikoillaan porauksen aikana.
  10. vika samasta syystä.

Vaihe 1: Aseta puhelimesi lähettämään sijaintisi Pi: lle (osa I MQTT Broker)

Ppeters0502 kuvaa tätä bittiä erittäin hyvin erinomaisessa Weasley Clock Instructable -kirjassaan. Kummallista kyllä, vaikka hän ehkä heijasti erilaisia taitoja, hän aloitti rakentamisen ja siirtyi sitten ohjelmistoon, tein sen toisinpäin. Joten aloitin puhelimella… odota, ei, en, aloitin MQTT -välittäjällä, joka on vaihe 6 hänen Instructable -ohjelmassaan. Jätän pois kaikki bitit, jotka hän tekee erittäin hyvin, ja heitän vain joitain bittejä, joita voisin lisätä. Menin hänen mainitsemaansa CloudMQTT -reittiä.

MUTTA kun kirjoitin tätä, tarkistin linkin suunnitelmiin ja huomasin, että ilmaista suunnitelmaa ei ole enää olemassa! He peruuttivat sen, mikä vaikuttaa järkevältä. eli ihmiset perustavat ilmaisen ilmentymän eivätkä koskaan käytä sitä. En huomannut, koska nykyiset tapaukset voivat jatkua. En siis muutu. Mutta se tekee ohjeista hieman tarpeettomia. Vaihtoehtoja näyttää olevan 3.

  1. Maksa 5 dollaria kuukaudessa Cloud MQTT: stä (mutta se kuulostaa jatkuvasti kalliilta kellolta).
  2. Siirry Mosquitto Pi -reitille ensimmäisessä Instructable -ohjeessa kuvatulla tavalla. En voi kommentoida, mutta voisi olla hyvä vaihtoehto.
  3. Googlaa "ilmainen MQTT -pilvivälittäjä", ja näyttää siltä, että niitä on muitakin.

Joten olettaen, että sinulla on toimiva MQTT -välittäjä, jos se on jotain CloudMQTT -välittäjää, palvelin, käyttäjä, salasana ja portti näytetään. Tarvitset nämä kaikki, jotta voit asettaa puhelimesi lähettämään välittäjälle sijaintisi/liikkeet.

Vaihe 2: Puhelimien määrittäminen lähettämään niiden sijainti Pi -laitteellesi (osa II Owntracks)

Tämä on myös käsitelty erittäin hyvin alkuperäisessä Instructable -ohjelmassa, vaiheissa 7 (Android), 8 (iOS) ja 9 (alueiden määrittäminen).

Minulla oli vain iOS -laitteet, joten en kokeillut vaihetta 7.

Mitä lisäisin näihin ohjeisiin?

  1. Asetuksissa on myös TrackerID- ja DeviceID-kentät. Näiden sinun pitäisi pystyä tunnistamaan sinut perheessäsi. Esim. Minulla oli ne R ja RPhone vastaavasti. Tämä tarkoittaa, että voit siirtyä kellon läpi, joka Servo ja siten mikä käsi kääntää.
  2. Alueet ovat niiden paikkojen nimi, joita haluat seurata.
  3. Jokainen alue määritellään nimellä, leveysasteella, pituusasteella ja säteellä.
  4. Koska halusin, että kelloni osana olisi useita paikkoja, käytin nimeämiskäytäntöä, joka osoittautui erittäin hyödylliseksi. Muut menetelmät ovat mahdollisia, mutta tämä toimi minulle.

    • Esimerkiksi kellon PERHE -osiossa halusin saada vanhempani ja sisarukseni ja vaimoni vanhemmat ja sisarukset. Siksi minulla oli paikkoja, kuten "Family Tom", "Family Dick", Family Harry "ja" Family ParentsR ". Tämä tarkoitti, että seuraava vaihe voisi tietää, mitä siirtää kellolle.
    • Muista, että ihmisillä voi olla erilaisia paikkoja. Mutta niin kauan kuin ne ovat yhdenmukaisia nimeämiskäytännön kanssa, se on hyvä. Esim. työni olisi erilainen kuin vaimoni työalue ja sitä kutsuttaisiin eri tavalla. mutta niin kauan kuin molemmat aloittavat "työn", kaikki on hyvin.
  5. Haluat tilan asetukseksi Merkittävä karttaruudulla. Tämä tarkoittaa, että saat (enimmäkseen) viestejä vain, kun tulet alueille tai poistut alueelta. Tämä näyttää olevan päivitetty versio muistiinpanosta, joka on merkitty TÄRKEÄÄ: alkuperäisen Instructable -ohjelman vaiheen 8 lopussa.
  6. Kuten alkuperäisessä Instructable -ohjelmassa mainittiin, Google Mapsin käyttäminen on loistava tapa selvittää jonnekin leveys/pituus. Huomasin, että oli tehokkaampaa tehdä tämä irtotavarana, selvittämällä kaikki sijaintini leveydet ja pituudet, ja sitten liitin ne Muistiinpanoihin (Macissa) ja pilvisynkronoinnin avulla se tarkoitti, että ne ilmestyivät maagisesti iPhonelle Notesissa ja voisin kopioida/liittää ne Owntracksiin. Se tarkoitti myös sitä, että voisin lähettää tiedoston perheeni puhelimiin ja meillä kaikilla oli yhdenmukaiset sijainnit.
  7. Lähellä sijaitsevat paikat voivat aiheuttaa ongelmia. Veljeni asuu 2 kadun päässä, ja aluksi puhelimeni ajatteli, että olin samanaikaisesti hänen talonsa alueella ja kotona. Lopulta jouduin lisäämään logiikkaa solmun punaiseen saadakseni tämän huomiotta.

Vaihe 3: Asenna Raspberry Pi

Raspberry Pi: n asentaminen
Raspberry Pi: n asentaminen

Joten tässä oletan, että sinulla on peruspiiri ja wifi. Käytin Raspbiania, mutta sen ei pitäisi olla väliä. Ota kaikki käyttöön käyttämällä raspberrypi.org -sivuston ohjeita.

Huomaa, että Pi: ssä on portit näytölle ja näppäimistölle/hiirelle jne. MUTTA ilmeisesti, kun sinulla on se kellossa, et halua mitään siitä. Joten vastaus, jota joku ehdotti Raspberry pi -verkkosivustolla, oli mielestäni VNC -yhteyden luominen. Tämän avulla voit muodostaa yhteyden toisesta laitteesta Pi: hen ja hallita sitä myös. Teen sen Macista, mutta olen tehnyt sen myös iPadista. Suosittelen käyttämään jotain näppäimistön kanssa käytön helpottamiseksi.

Huomasin juuri, että ne näyttivät helpottavan yhteyden muodostamista … katso täältä

Pohjimmiltaan muodostat yhteyden ja saat ikkunan, joka on Pi -vakioliitäntä.

Joten sinulla on ikkuna Pi: hen kannettavasta tietokoneesta tai tietokoneesta.

Nyt sinun on yhdistettävä Servot.

Ensin sinun on tehtävä melko yksinkertainen juotos saadaksesi adafruit -hatun Pi: lle. Se on hieman hämmentävää, mutta huolimatta siitä, että sitä ei ole juotettu 30 parittomana vuotena, se oli hieno. Kuten aina, löysin hyödyllisen YouTube -videon opastamaan sen läpi, mikä oli suuri apu.

Vaikka hattu voi ajaa 16 servoa, tarvitsin vain 4, joten vaivauduin vain juottamaan ensimmäisen 4 -nastaisen sarjan.

Sitten servot vain painavat tappeihin. Tein ensin yhden varmistaakseni, että saisin todella servon liikkumaan.

Täällä törmäsin ensimmäiseen suureen esteeni. Minulla oli hyvin yksinkertainen python -käsikirjoitus servojen siirtämiseksi ja kirjaimellisesti mitään ei tapahtunut. Vietin noin viikon kokeillessani uusia käsikirjoituksia jne., Ja sitten hattuun alkoi ilmestyä savua. Sammutin kaiken pois, tarkistin kaavion. Se oli komponentti, joka suojaa käänteiseltä napaisuudelta. Koska minulla oli monikärkinen, monijännitteinen virtalähde, olin unohtanut sen tosiasian, että DC-lähtö voisi mennä molempiin suuntiin kääntämällä kärkeä. Olin ymmärtänyt väärin (50:50 mahdollisuus) ja poltin juuri ensimmäisen adafruit -hatun

:-(Joten pieni viive, kun ostin uuden, juotin uudelleen ja korjasin kärjen. Paljon parempi.

Seuraavaksi minun piti selvittää, kuinka servot siirretään kellon oikeaan kohtaan. Se tulee vaiheessa 5, mutta mitä tein, kun en ollut rakentanut todellista kelloa, oli ruuvata servot kevyesti satunnaiseen puuhun ja kiinnittää niihin maalarinteippi, jossa oli nuoli, kuten kuvassa. Tämä antoi erittäin visuaalisen palautteen siitä, mitä koodaan.

Vaihe 4: Solmun punaisen asentaminen (Viestien saaminen MQTT -palvelimelta Python -komentosarjaan)

Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)
Solmun punaisen asentaminen (viestien saaminen MQTT -palvelimelta Python -komentosarjaan)

Node-RED on ohjelma, jonka asennat Pi: hen ja jonka avulla saat visuaalisen käyttöliittymän (selaimessasi) vastaanottamaan viestejä MQTT-palvelimeltasi ja käyttämään sitä välittämään oikeat tiedot python-skriptillesi (käsitellään seuraavassa vaiheessa (Vaihe 5). Käytin melko paljon ppeters0502: n ohjeita vaiheessa 5. Näissä virroissa on logiikkaa ja pythonissa lisää logiikkaa, ja jokaisessa voi olla enemmän tai vähemmän mieltymystesi mukaan. Periaatteessa sinun on tehtävä seuraavat

  1. Saada solmuja MQTT -viesteille - nämä ovat vaaleanpunaisia ja minulla oli yksi per perheenjäsen
  2. Yhdistä se servoon, jonka haluat siirtää (numeroitu 0, 1, 2, 3)
  3. Määritä, oletko syöttämässä vai jättämässä säteen OwnTracksiin
  4. Selvitä, mihin paikkaan servon on osoitettava

    Perussääntöihin oli joitain poikkeuksia, jotka minun täytyi rakentaa

  5. Aseta kulma oikein

Minulla oli Node-RED tekemässä neljä ensimmäistä ja pidin Pythonin suhteellisen yksinkertaisena.

Näet perusvirran täällä, ja kaikki virrat voidaan viedä tässä muodossa olevaan muotoon, mikä tarkoittaa, että voit tuoda tämän perusvirran solmu-PUNAISEEN ja mukauttaa sen sitten. Huomaa, että olen poistanut kaikki yhteydet purppuranvärisistä solmuista, jotta et voi käyttää MQTT -ilmentymääni. Poistin myös kaikki testisolmut, koska ne sisältävät todellisia tietoja … saatat joutua muuttamaan tämän tiedostotyypin muotoon flow.json, jotta voit tuoda sen Node-RED-laitteeseesi, mutta Instructables ei antanut minun ladata sitä.

Vihreät solmut ovat virheenkorjaussolmuja, jotka näyttävät sitten tuloksen näytön oikealla puolella olevassa virheenkorjausikkunassa (voi olla tarpeen laajentaa - etsi nuoli puolivälissä oikealta)

Ensimmäinen bitti on "Live - vain debugging" -bitti. Tämä tarkistaa, että voit vastaanottaa MQTT -viestit ja nähdä, mitä niissä on. json on vain jäsennellympi versio viesteistä, jonka avulla voit saada tiedot ulos helpommin. Tässä virtauksessa, kun olen live, liitän sitten violetit solmut ylhäältä vasemmalle json -solmuun niiden oikealla puolella.

Testaussolmut

Kun tiedät, miltä viestit näyttävät livenä, on hyvin tylsää joutua kävelemään ulos kotoasi ja tiellä ja takaisin vain tapahtuman käynnistämiseksi. Kun olet tehnyt sen, voit kopioida viestin TEST -laukaisimeen ja napsauttaa sitä vain simuloidaksesi tapahtuman. Voit myös muuttaa tietoja esittääksesi eri paikkoja (varmista, että ne vastaavat tarkasti Owntracksin sijaintien nimiä).

Voit nähdä kulussa, että kaikki testitapaukset menevät erilliseen solmuun ja sitten json -solmuun. Tämä on puhtaasti näytön siistimistä.

En voi korostaa tarpeeksi kuinka hyödyllisiä nämä solmut olivat ja ovat edelleen.

Soitetaan Pythonille

Sitten törmäsin seuraavaan estoon. Tämä kesti paljon googlaamista foorumeilla jne. Virtaukseni toimisi täydellisesti, mutta se ei käynnistäisi python -käsikirjoitustani. En voinut selvittää tätä, mutta säästän sinua kiroilulta jne. Sanon vain, että kuten toisessa kuvakaappauksessa korostetaan, sinun on määritettävä python3, kuten ilmeisesti Node-RED olettaa python2, ellet määrittele.

2 lisäkomplikaatiota - vain tarvittaessa

Sitten minulla oli useita haasteita, joissa logiikka ei aivan toiminut. Ensimmäinen oli se, että Owntracks meni hieman oudolle ja koska veljeni asuu 2 kadun päässä, sanottiin usein, että olin kahdessa paikassa kerralla tai vaihdoin välillä. Ainoa tapa, jolla voin kiertää sen, oli lisätä ehto väärien positiivisten lopettamiseksi. Jos se väitti olevani hänen talossaan, reititin viestin todellisen pituus-/leveysasteen ja keskeytin sen, jos sanoin olevani todella kotona.

Toinen ongelma oli se, että koiran kanssa kävellessäni en saanut oikeaa sädettä. Kävelen yleensä samalla alueella, joten sanoin täällä: "Jos tulen tälle alueelle, kävelen ehdottomasti koiraa ja tulen siihen asti, kunnes tulen kotiin." tämä tarkoitti sitä, että se ei siirtyisi pubiin, jonka kuljen kotimatkalla, tai moniin muihin paikallisiin paikkoihin, jotka voisivat laukaista koiran kävelyn aikana. Tätä varten minun oli määritettävä joitakin pysyviä kontekstimuuttujia (etsi ne Node-PUNAISESTA. Katso kuvakaappaus. Nämä muuttujat säilyvät, kunnes Node-RED käynnistetään uudelleen, ja voin sanoa, jos koiran kävelyllä, aseta kontekstimuuttuja "Koira". Ohita sitten MITÄÄN muuta, ellet "kirjoita" kotiin.

Viimeinen kuvakaappaus on todellinen lopullinen kulkuni, kaikki poikkeukset lukuun ottamatta, vain mielenkiinnon vuoksi.

Vaihe 5: Servojen siirtäminen Pythonilla Pi: llä

Lyhyt muutos servoihin. En tiennyt mitään servoista, mutta verkossa on paljon tietoa. Käytin jatkuvia servoja, jotka voivat kääntyä 360 astetta ja sujuvasti. Toinen päälaji on askel -servot, jotka liikkuvat paloina (askeleina) ja ilmeisesti vain noin 180 astetta (ei selvästikään ole hyödyllistä täällä). Stepper -servojen etuna on, että voit vain laittaa kulman ja ne siirtyvät siihen pisteeseen ja pysähtyvät. Kaikki asiakirjat, jotka löysin, sanoivat, että jatkuvat servot toimivat antamalla nopeutta ja aikaa ylläpitää tätä nopeutta (esim. Täysi nopeus 1 sekunnin ajan) ja ne päätyvät siihen, mihin ne päätyvät, mutta se on suhteessa niiden aloituspisteeseen. Monien yritysten jälkeen en saanut tätä toimimaan, mutta huomasin testipenkkiä käyttäen, että servot palasivat jatkuvasti samaan pisteeseen samalla kulmalla. Mikä on paljon helpompaa, joten tein sen juuri. Voi olla joitain haittapuolia, joista en tiedä, mutta se toimii minulle. Huomaa kuitenkin, että jokainen servo on ainutlaatuinen, joten jokaisella servolla on oltava yksilöllinen kulmasarja. Minusta oli helpointa saada "kalibrointi" python -skripti, jossa voisin asettaa servot vuorotellen kulmiin ja tarkentaa niitä, kunnes ne näyttivät oikeilta. Tämä on ensimmäinen käsikirjoitus liitteenä. Kommentoi vain servoja, joita et testaa, keskity yhteen ja säädä sitten arvoja tarpeen mukaan. HUOMAUTUS: testipenkin kalibrointi on yksinkertaista, karkeaa ja valmista. Sinun on kalibroitava uudelleen, kun kello on koottu, koska vaihteet jne. Muuttavat kaiken. Sitten toinen käsikirjoitus on melko yksinkertainen. Se tekee seuraavaa

  1. Tuo muutamia kirjastoja
  2. siirtää solmusta RED tulevat muuttujat komentosarjan muuttujiin
  3. kartoittaa kalibrointiskriptin määrittämät kulmat kellon paikkoihin.
  4. tarkista, että sijainti löytyy luettelosta, ja jos ei, siirry kohtaan "Vaara"
  5. kirjoittaa mitä lokitiedostolle tehtiin
  6. siirrä tarvittava servo haluttuun kulmaan
  7. Lopeta yhden servon "surina" *

3 huomioitavaa asiaa.

Lokitiedosto on erittäin hyödyllinen virheenkorjauksessa. Se tarkoittaa, että voit tarkastella viestin solmupunaista virheenkorjausta ja nähdä sitten, mitä komentosarjassa tapahtui. lähtö näyttää tältä. Kolme ensimmäistä ovat se, että vien koiran kävelylle ja sitten lapsi 1 lähtee talosta ja saapuu kouluun. Muista tarkistaa Pi: n aika. Se voi olla oletusarvoisesti UTC eikä salli kesä-/talviajan muutoksia. Esim. alla olevat ajat ovat 1 tunti poissa.

2020-12-07_05: 36: 03 Kuka = 0, paikallinen = matkustaminen, yksityiskohta = koti, kulma = 10, indeksi = 8

2020-12-07_05: 36: 04 Kuka = 0, lok = koira, yksityiskohta = Astons, kulma = 86,5, indeksi = 10

2020-12-07_06: 07: 49 Kuka = 0, paikka = koti, yksityiskohta = tulo, kulma = 75, indeksi = 0

2020-12-07_06: 23: 53 Kuka = 2, paikallinen = matkustaminen, yksityiskohta = koti, kulma = 19, indeksi = 8

2020-12-07_06: 30: 48 Kuka = 2, paikka = koulu, yksityiskohta = N, kulma = 60,5, indeksi = 2

Servo-surina

Yksi servoista (0) jatkoi surinaa käsikirjoituksen päättymisen jälkeen. Kuten voitte kuvitella, tämä on erittäin ärsyttävää olla keittiössämme. Löysin langan jostain, jossa mainittiin servokulman asettaminen "ei mitään", joka jotenkin asettaa sen käyttämättömäksi. Se toimi loistavasti ja näkyy lopussa olevasta käsikirjoituksesta.

Ajoitukset

Muista, kuinka alhaalla käsi vie lakaistaan ympäri vuorokauden. Voit nähdä skriptistä, että aika.unen (4) -rivi on juuri ennen kuin asetamme servon lopettamaan surina. Tämä johtuu siitä, että sinun on annettava käden päästä määränpäähän ennen kuin asetat sen joutokäynnille. Muuten se vain pysähtyy. Tämä on tärkeää myös kalibroitaessa sitä, koska teet useita liikkeitä komentosarjan sisällä. Asettaisin sen toimimaan siirtymään kaikkiin 12 paikkaan vuorotellen, jotta voisin tarkistaa ne kaikki uudelleen. mutta tarvitset vähän aikaa välissä.

Vaihe 6: Ohjelmiston viimeistely - puhelimet servoiksi

Kun sinulla on testipenkki ja komentosarjat, voit suorittaa sen hetken "live" -tilassa ja nähdä, miten se toimii reaaliajassa. Täältä löysin poikkeukset, jotka minun oli lisättävä Node-RED-kulkuun.

Voit helposti irrottaa ja yhdistää perheenjäseniä Node-RED-kulussa, jos haluat keskittyä yhteen. Jos esimerkiksi kaksi aiheuttaa ongelmia, mutta haluat korjata yhden kerrallaan. Muussa tapauksessa muista, että saat edelleen viestejä kaikista yhdistetyistä puhelimista.

Mainitsin ongelman koiran kävelystä ja veljeni talosta, joka oli melko lähellä. Minulla oli 2 muuta haastetta.

Ensinnäkin sijainnit muissa paikoissa. Vaimoni kävi kurssin Lontoon yliopistossa. Halusimme rekisteröidä sen kouluksi, mutta se on myös Lontoossa. Joten meidän piti käyttää kontekstia uudelleen sanoaksemme, että jos lähdit tuosta "koulusta", siirry "Lontooseen" eikä "matkustamiseen".

Toiseksi kilpailuolosuhteet. Kuten mainittiin, veljeni talo on 2 kadun päässä ja myös lähellä suosikki pubia/ravintolaa. Tämä tarkoittaa, että joskus vastaanotetaan 2 signaalia samanaikaisesti tai hyvin lähellä toisiaan. Tämä voi luoda "kilpailuolosuhteet", joissa saat erilaisia tuloksia sen mukaan, kumpi pääsee logiikan läpi nopeimmin, mikä johtaa arvaamattomiin tuloksiin. Tämän torjumiseksi tein kaikkien "saapuvien" viestien logiikassa 1 sekunnin viiveen, mikä näytti korjaavan ongelman. Voi olla parempia, tyylikkäämpiä tapoja ratkaista tämä, mutta se näytti toimivan.

Vaihe 7: Fyysisen kellon rakentaminen - Osa I - Servot ja akseli

Fyysisen kellon rakentaminen - Osa I - Servot ja akseli
Fyysisen kellon rakentaminen - Osa I - Servot ja akseli
Fyysisen kellon rakentaminen - Osa I - Servot ja akseli
Fyysisen kellon rakentaminen - Osa I - Servot ja akseli
Fyysisen kellon rakentaminen - Osa I - Servot ja akseli
Fyysisen kellon rakentaminen - Osa I - Servot ja akseli

Nyt se kohta, josta olin vähiten luottavainen, minkä vuoksi jätin sen kestämään. Halusin kunnon kokoiset kasvot ja helpon rakenteen. Olin myös hermostunut siitä, että saisin fyysisesti 2 servoa keskiakselin ympäri. Tämä tarkoitti sitä, että kun olin etsinyt lyhyesti ebaysta vanhoja kelloja kuten ohjeistuksessa, jota seurasin, päätin antaa itselleni enemmän mahdollisuuksia rakentamalla sen itse.

  • Sain kaksi suurta (~ 30 cm) neliömetriä vaneria, jotka minulla oli makaamassa (noin 9 mm paksu).
  • Sitten leikkasin vanhan kiskon 4x10 cm: n palasiksi ja ruuvasin etu- ja takalevyt yhteen.
  • Merkittyäni keskireiän porasin sen samankokoiseksi kuin suurin messinkiputki.
  • Sitten maalasin sen normaalilla kiiltävällä maalilla.
  • Kokeilun jälkeen tajusin, että en todennäköisesti saisi 4 servoa saman akselin ympäri, jos ne kaikki olisi kiinnitetty taka- (tai etulevyyn). Joten minun piti saada joko 3 + 1 tai 2 + 2 jokaiselle levylle. Lopulta sain 3 takana ja 1 edessä.
  • Laskin tarvittavat siirtymät paperille ja leikkasin sitten messinkiputket vastaaviksi. Huomaa, että paksuin putki on lyhin ja ohuimman on mentävä takalevyyn asti. (Itse asiassa upotin pienimmän reikään, jonka porasin osittain takalevyyn, mutta en kokonaan, jotta akseli ei liikkunut taaksepäin).
  • Putkia varten ostin putkileikkurin, mutta se käyttää painetta niiden leikkaamiseen ja se tarkoittaa, että et voi saada pienempää putkea sisälle. Joten käytin rautasahaa ja sitten piti tehdä kohtuullinen määrä arkistointia saadakseni ne toimimaan. Timanttikohdat olivat tässä korvaamattomia.
  • Sitten sovitin kaavion kiristimien ja hammaspyörien todellisiin poikkeamiin *.
  • Kun minulla oli siirtymät, tiesin kuinka "korkea" tehdä lohkot servojen asentamiseksi. Rikoin pari lohkoa sahaamalla ne liian ohuiksi ja poraamalla myös reiän, jotta lanka pääsee ulos.
  • Sitten tuli hämmentävä osa siitä, mihin lohkot sijoitettiin, jotta ne vastaisivat tarkasti akselin hampaita. Ruuvasin yhden lohkon sisään ja sitten pystyin kääntämään servoa akselin kohdalle ja ruuvaamaan sitten toisen lohkon kiinni servon toiseen päähän. Huomasin myös, että minun oli leikattava hiukan pois joistakin lohkoista, jotta vältytään muiden hampaiden tarttumiselta. Se kesti melko kauan.
  • Kun olin tehnyt kaiken tämän, sain vadelmapi -koteloni, porasin siihen kaksi reikää ja ruuvasin sen etulevyyn. Sitten voisin lisätä Pi: n sisään, sulkea etu- ja takalevyt (yhdistämällä servot pi: hen (muistaa mikä servo oli jollekin perheenjäsenelle) ja kääntyä käsien puoleen …

* Täältä löysin suurimman ongelman, jota en ole vielä täysin ratkaissut. Messinkiputket olivat 1/4 ", 7/32", 3/16 ", 5/32". Mutta kiinnikkeet olivat metrisiä (paitsi yksi, joka oli 1/4 tuumaa). Putkien muuntaminen metrisiksi ne olivat 6,35 mm, 5,56 mm, 4,76 mm 3,97 mm. Muut puristimet olivat 4 mm, 5 mm ja 6 mm reikä. Pienimmät 2 ja Suurimmat ovat kunnossa. mutta selvästi 0,44 mm on liikaa matkaa puristimelle, joten jouduin pehmustamaan sen paperilla. Olen kokeillut tätä useita kertoja ja se toimii jonkin aikaa OK ja sitten löystyy uudelleen. Joten toiseksi suurin käsi ei toimi kunnolla. Se oli kuitenkin hyvä noin 6 kuukautta, joten tähän hyvin käytetty aika oli hyvin sijoitettua aikaa. Mutta jos tekisin sen uudelleen, olisin saattanut mennä yhden koon ylös tai alas, ja välissä olisi väli parempi puristin putkeen. esim. 9/32 ", 1/4", (rako), 3/16 ", 5/32"

Vaihe 8: Kellon kädet

Kellon kädet
Kellon kädet
Kellon kädet
Kellon kädet
Kellon kädet
Kellon kädet

Päätin teräslevystä, koska halusin jotain jäykkää, mutta vähemmän todennäköisesti napsahtamaan sitä tehdessäni. Ohuus tarkoitti myös sitä, että 4 kättä oli vähemmän ongelma.

  • Ensin piirsin muodon.
  • Sitten siirrän sen teräkselle jonkin maalarinteipin päälle.
  • Sitten leikkasin ne erittäin ammattitaidottomasti palapelilläni. He olivat ja ovat kaikki erilaisia, mutta en välitä siitä.
  • Sitten ystävä ehdotti, että lainaan hänen penkkimyllynsä muotoilemaan niitä, ja tämä oli hienoa. erittäin suositeltavaa. Muuten hakemus kestää vuosia.
  • Vielä oli viilausta ja hiontaa, jotta teräviä reunoja ei syntyisi ja lopputulos olisi mukava.
  • Minun piti porata reikiä vastaavien messinkiputkien kanssa (käytä katkaistuja putkia tarkistaaksesi, ei kelloon asennettuja).
  • Huomasin, että reiät vaativat hieman viilausta saadakseen ne putkiin, mutta kerran ne olivat tiukkoja eivätkä tarvinneet liimaa. Poikkeus oli etukäsi, jonka halusin saada "kannen". Joten leikkasin (enimmäkseen) pyöreän teräskappaleen, kun olin porannut reiän ja saanut sen oikeaan kokoon, ja liimain sen eteen. näet sen viimeisessä kuvassa. Joskus etukäsi tarvitsee liiman sen kiinnittämiseksi, mutta parin väärän käynnistyksen jälkeen kädet toimivat todella hyvin.
  • Olin hylännyt ajatuksen valokuvista (koska lapset valittivat päivämääräkuvistamme nopeasti), joten päätin maalata nimikirjaimille akryylimaalilla.

Vaihe 9: Suorita loppuun

Saattaa loppuun!
Saattaa loppuun!
Saattaa loppuun!
Saattaa loppuun!

Kaikki toimii todella hienosti. Kädet ovat joskus hieman pois päältä riippuen siitä, mistä ne tulivat, mutta itse asiassa sillä ei ole väliä, koska jokainen sijainti on osa, ei vain viiva.

Joskus kummallisesti puhelimeni kieltäytyy tunnustamasta, että olen kotona. Olen selvästi Owntracksin säteellä, kun se näkyy kartalla, ja vaikka tarkkuus on hyvä … En tiedä miksi. ei näytä kärsivän muusta perheestäni. mutta kokoonpano on sama. Tämä tarkoittaa, että Owntracks ei koskaan lähetä viestiä ja jään "Matkustamiseen". Mutta yleensä se lopulta järjestyy.

On ollut erittäin hyödyllistä olla keittiössämme, enimmäkseen tietää, milloin tytöt ovat matkalla kotiin koulusta tai ystäviensä kotoa ja milloin he voivat saada ruokaa/teetä heille.

Jälleen suuri hattu-kärki, kiitos @ppeters0502 loistavista ohjeista. Toivottavasti nämä voivat lisätä jotain kellon tekemiseen neljällä kädellä.

Vaihe 10: Asiat, jotka olen oppinut, ja toimisivat paremmin/toisin, jos minun pitäisi tehdä se uudelleen

  • Fyysiset rakenteet tarvitsevat kokeiluja ja virheitä. Avaruusongelmia ei voi mitenkään ennustaa, sinun tarvitsee vain sukeltaa sisään ja yrittää.
  • Koodin kannalta googlausongelmat ovat välttämättömiä
  • Aloita perus ja rakenna. Testipenkin puun servot tarkoittivat, että saisin suurimman osan siitä toimimaan ilman fyysistä rakennetta
  • Olisin voinut leikata kädet laserilla CNC -koneella. Mutta en tiennyt, missä paikallinen oli, ja pidän siitä, kuinka pehmeä teräs toimi (se oli halpaa ja penkkihiomakone helpotti paljon)
  • askelmoottori voi olla mahdollista, jos käytät vaihteistoa 360 -kierroksen saamiseksi. mutta silloin servot saattavat joutua olemaan liian lähellä keskusakselia
  • Servoja on 2 tyyppiä (Futaba ja HiTech). Varmista, että olet tarkistanut tämän, koska niissä on eri määrä hampaita urassa. Ja alunperin ostin väärät …
  • Älä yhdistä hattua väärään napaisuuteen;-)
  • Google ja Stack Overflow ovat ystäväsi jumissa. Mutta sinun on käytettävä hyviä hakusanoja …
  • Testipenkki on itse asiassa tapa saada yksinkertaisempi ja halvempi versio paljon helpommin. Suurin osa rakenteesta aiheutuvista komplikaatioista johtuu siitä, että kädet on pyöritettävä saman akselin ympäri. Jos teet kompromisseja siitä, niin kaikki on paljon helpompaa. Ja luulen, että 4 voi olla yhden akselin raja, ellei akseli ole paljon pidempi. Sinulla voisi olla 3 etulevyssä ja kolme takalevyssä, jos akseli olisi pidempi …

Vaihe 11: Mahdolliset laajennukset tulevaisuudessa…?

Ajatukseni seuraavista vaiheista ovat seuraavat.

  1. Haluaisin käyttää vanhaa iPadia kellotauluksi. eli tee digitaalinen kello. Mahdollisesti selainpohjainen tai sovellus. Koska fyysinen kello on olennaisesti valtioton (eli se ei tiedä missä se on tällä hetkellä, paitsi että kädet ovat fyysisessä asennossa), minun pitäisi saada pysyvä tietovarasto. Solmu Red voi kirjoittaa paikalliselle tiedostojärjestelmälle, joten luultavasti tekisin niin.
  2. Jos tekisin niin, haluaisin nähdä sen kodin ulkopuolelta. Mutta sitten meidän on todella selvitettävä turvallisuus. Koska pääsy samaan wifi -verkkoon on yksi asia, pääsy Internetistä on toinen. Minulla ei tällä hetkellä ole aavistustakaan siitä, miten tämä olisi paras tehdä, mutta epäilen, että MQTT -tilaus, joka menee toiseen suuntaan, voisi toimia (pi julkaisee nykyisen tilan ja ulkoiset laitteet tilaavat sen)…?
  3. Haluaisin aivan toisen käden "ulkomaille". mutta se voi olla monimutkaista OwnTracks -näkökulmasta. Ehkä voisi vain käyttää pitkää/latia yhdistettynä valtaviin säteisiin?

Suositeltava: