Kazalo:
- 1. korak: Nastavitev telefonov za pošiljanje njihove lokacije na vaš Pi (posrednik MQTT I. dela)
- 2. korak: Nastavitev telefonov za pošiljanje njihove lokacije na vaš Pi (drugi del lastniške povezave)
- 3. korak: Nastavitev Raspberry Pi
- 4. korak: Namestitev vozlišča Red (Prenos sporočil s strežnika MQTT na skript Python)
- 5. korak: Dejansko premikanje servomotorjev s Pythonom na Pi
- 6. korak: Dokončanje programske opreme - telefoni do servomotorjev
- 7. korak: Izdelava fizične ure - I. del - servomotorji in osi
- 8. korak: Ročne ure
- 9. korak: Dokončajte
- 10. korak: stvari, ki sem se jih naučil, in bi storil bolje/drugače, če bi to moral ponoviti
- 11. korak: Možne prihodnje razširitve …?
Video: Lokacijska ura 'Weasley' s 4 rokami: 11 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Tako sem z Raspberry Pi, ki se je že nekaj časa vrtela, želel najti lep projekt, ki bi mi omogočil, da ga kar najbolje izkoristim. Naletel sem na to odlično uro za izdelavo lastne lokacije Weasley, ki jo je naredil ppeters0502 in mislil, da bi bilo dobro poskusiti.
Ura je v bistvu sestavljena iz Raspberry Pi, ki krmili servomotorje, da obrne kazalce ure. Tako kot v hiši družine Weasley v knjigah/filmih o Harryju Potterju ima vsak družinski član svojo roko. Vsaka roka kaže na trenutno lokacijo tega družinskega člana. Ura to doseže s sprejemom sporočil z mobilnih telefonov družine, kadar koli vstopijo ali zapustijo vnaprej določen polmer.
Glavne razlike v primerjavi s prejšnjim Instructable -om so bile, da sem moral imeti 4 roke, ne 2 (sicer bi se moje hčere pritožile) in odločil sem se, da bom zgradil tudi okvir, ne pa stare ure za ponovno uporabo. To je bilo zato, ker me je skrbelo, da bi bil prostor v obstoječem ohišju ure problem, saj bi ga bilo treba namestiti v 4 servomotorje itd.
Trajalo je veliko dlje, kot sem pričakoval, čeprav sem večinoma naletel na zapletene težave, ki so me spotaknile in za katere se zdi, da jih prvotna objava ne pokriva. Nič proti prvotnemu Instructable, ki je bil na splošno odličen, vendar je minilo nekaj let in različice stvari so se spremenile … itd. Poleg tega je bivanje v Združenem kraljestvu pomenilo, da so nekateri elementi Imperial/Metric povzročali več izzivov, kot sem pričakoval.
Medtem ko sem pri kodiranju v redu, me je fizična izdelava ure vsekakor raztegnila in zahtevala nekaj dodatnih orodij, kar me je tudi nekoliko upočasnilo.
Na koncu bom vključil razdelek "Stvari, ki bi jih naredil drugače/bolje, če bi to ponovil …"
Zaloge:
Ena izmed stvari, ki me je presenetila, je, da so drage komponente povezane s kazalci ure. 4 roke so vsekakor dražje od 2. Odločil sem se, da bom dal nekaj stroškov, da boste imeli kakšno idejo. To je prvič, da sem vse skupaj seštela in brez upoštevanja orodij mislim, da sem porabila približno 200 funtov. Pa še nekaj stvari, ki jih nisem uporabljal (in niso vključene spodaj) ter Pi, plus napajalnik, ki sem ga že imel.
Pi itd
- Raspberry Pi - ne spomnim se, koliko je prvotno stal, vendar je bil model 2B. Mislim, da bi, če ga še nimate, verjetno celo Pi Zero. Z Raspbian sem dodal ključek wifi in kartico SD. Naokoli sem imel star polnilec za telefon Android.
- Adafruit Servohat za Pi - 16 funtov
- Napajanje za Servohat - To sem res težko našel, saj so vsa spletna mesta samo pokazala na spletno mesto adafruit, ki potem očitno priporoča napajanje iz ZDA. Potem sem spoznal, da imam star napajalnik s spremenljivo napetostjo z zamenljivimi konicami, zato sem to uporabil. Toda ameriški je 8 dolarjev, zato je to merilo.
- Etui za Pi, da ga potem lahko pritrdim na okvir ure. 5 funtov
Servo in zobniki
Tukaj citiram ceno za vse 4, zato delite, če želite manj rok (seštevanje je ~ 40 € na roko = 160 £: -o
- 4 x servomotorji-uporabil sem tiste, ki jih priporoča ppeters0502-najdeni na ebayu za ~ 15 funtov = 60 funtov-iskal sem naslednje besedilo "GWS-digitalni-servo-jadro-vitlo-S125-1T-2BB-360 stopinj "včasih pa niso bili na voljo
- 4 x medeninaste cevi, nameščene točno ena v drugo - ~ 3 £ vsaka. Dobil sem 1 po 1/4 ", 7/32", 3/16 ", 5/32" = 11 £
- 4 x sponke, ki se pritrdijo na medeninaste cevi, da lahko pritrdite zobnike. ~ 7 £ vsak = 28 £. Dobil sem jih od ActiveRobotov, ki redno opravljajo naročila iz Servocityja v ZDA, kar vam omogoča, da se izognete mednarodnemu pošiljanju. Prav tako lahko dobijo karkoli drugega, kar najdete na glavnem spletnem mestu Servocity v ZDA. To je bilo zelo priročno za naslednja 2 predmeta
- 4 x zobniki z acetilnim 0,770 -palčnim vzorcem za montažo na vpenjalne pesto. ~ 6 £ vsak = 24 £
- 4 x acetilni zobniki z vgrajenim acetilnim zobnikom za montažo na servomotorje. ~ 6,50 £ = 26 £
- 1 x paket šesterokotnih matic na pritrjene zobnike na vpenjalne matice = 2,60 £
- 1 x 7/64 "šestkotni ključ (imbus ključ), ker je vse, kar prihaja iz ZDA, imperialno, zato je na stotine imbus ključev, ki jih že imam, neuporabnih = 1 £
Za fizično zgradbo
Tu sem večinoma uporabljal odrezke, o katerih sem lagal
- 2 x kvadrata vezanega lesa za ploščo za obraz in hrbet
- Nato sem izrezal jeklenke 4x10 cm s stare ograje, ki sem jo imel, da bi hrbet povezal z obrazom
- Nekaj blokov za namestitev servomotorjev s pravilnim odmikom - samo odrezki iz mehkega lesa, ki sem jih izrezal po velikosti.
- Različni vijaki. od zelo majhnega (za pritrditev ohišja Pi na okvir) do srednjega (za pritrditev okvirja skupaj)
- 0,75 mm pločevina iz mehkega jekla približno 50 cm x 20 cm (za rezanje rok). To je bilo edino, kar sem kupil ~ 9 £ pri Wickesu
Orodja
Nekatere stvari sem imel, nekatere pa sem si sposodil ali kupil
- Spajkalnik + električni spajkalnik - za pritrditev priključkov na Adafruit Hat & Pi.
- Vbodna žaga - za izrezovanje grobe oblike rok
- Vrtalnik. samo običajen brezžični vrtalnik 18V
- Vrtalniki - Upoštevajte, da boste za izdelavo lukenj, ki se ujemajo z medeninastimi cevmi, potrebovali imperialne svedre. Nekaj sem si jih uspel sposoditi.
- žaga - za rezanje medeninastih cevi. Ne delajte tega, kar sem jaz, in porabite 3 £ za rezalnik cevi, deluje s pritiskom in pomeni, da se notranjost cevi nekoliko zmanjša. tako da cev naslednje velikosti navzdol ne pride skozi
- Klopna brusilka - te nisem imel, prijatelj pa jo je naredil in je veliko olajšalo oblikovanje rok. Do takrat sem uporabljal samo datoteke. Ne bi ga kupil samo za ta projekt, ampak za kovinske roke je bil odličen.
- Kupil sem nekaj datotek z diamantnimi konicami (zelo majhne). uporabno za roke in cevi okoli 15 funtov
- grob in gladek brusni papir
- nekatere majhne sponke držijo stvari na mestu med vrtanjem.
- porok iz istega razloga.
1. korak: Nastavitev telefonov za pošiljanje njihove lokacije na vaš Pi (posrednik MQTT I. dela)
Ta del je zelo dobro opisal ppeters0502 v svojem odličnem Weasley Clock Instructable. Nenavadno, čeprav je morda odražalo različne sklope spretnosti, je začel z gradnjo in nato prešel na programsko opremo, jaz sem to storil obratno. Torej, začel sem s telefonom … počakaj, ne nisem, začel sem s posrednikom MQTT, ki je 6. korak v njegovem Instructable. Izpustil bom vse koščke, ki jih ima zelo dobro, in dodal nekaj kosov, ki bi jih lahko dodal. Šel sem po poti CloudMQTT, ki jo je omenil.
A ko sem to pisal, sem preveril povezavo do načrtov in ugotovil, da brezplačnega načrta ni več! Umaknili so jo iz utemeljenih razlogov. to pomeni, da bi ljudje nastavili brezplačen primerek in ga potem nikoli ne bi uporabljali. Nisem opazil, ker se lahko trenutni primeri nadaljujejo. Tako da se ne bom spreminjal. Vendar pa naredi navodila nekoliko odveč. Zdi se, da obstajajo 3 možnosti.
- Plačajte 5 USD na mesec za Cloud MQTT (vendar se to za uro stalno sliši drago).
- Pojdite po poti Mosquitto on Pi, kot je opisano v prvem Instructable. Tega ne morem komentirati, lahko pa je dobra izbira.
- Poiščite google "brezplačni posrednik v oblaku MQTT" in izgleda, da obstaja še nekaj drugih.
Torej, ob predpostavki, da imate delujočega posrednika MQTT, če je kaj podobnega CloudMQTT, bodo prikazani strežnik, uporabnik, geslo in vrata. Vse to boste potrebovali za nastavitev telefonov, da posredniku posredujete svoje lokacije/premike.
2. korak: Nastavitev telefonov za pošiljanje njihove lokacije na vaš Pi (drugi del lastniške povezave)
To je zelo dobro zajeto tudi v izvirniku Instructable, v korakih 7 (Android), 8 (iOS) in 9 (nastavitev regij).
Imel sem samo naprave iOS, zato nisem poskusil 7. koraka.
Kaj bi dodal tem navodilom?
- V nastavitvi sta tudi polja TrackerID in DeviceID. To bi morali imeti za prepoznavanje v družini. Npr. Imel sem jih kot R in RPhone. To pomeni, da lahko preidete na uro, kateri Servo in s tem katero roko obrnete.
- Regije so ime za lokacije, ki jim želite slediti.
- Vsaka regija je določena z imenom, zemljepisno širino, dolžino in polmerom.
-
Ker sem želel imeti več lokacij kot en razdelek na Uri, sem uporabil konvencijo poimenovanja, ki se je izkazala za zelo uporabno. Možne so tudi druge metode, vendar je to delovalo zame.
- Na primer, za del družine ure sem želel imeti svoje starše in brate in sestre ter starše in brate in sestre moje žene. Zato sem imel lokacije, kot so "Family Tom", "Family Dick", Family Harry "in" Family ParentsR ". To je pomenilo, da bo naslednja stopnja vedela, kaj naj preide na uro.
- Upoštevajte, da imajo ljudje lahko različne lokacije. Ampak dokler so v skladu s konvencijo o poimenovanju, je to v redu. Npr. moje delo bi se razlikovalo od delovnega območja moje žene in bi se drugače klicalo. ampak dokler oba začneta "Delo" potem je vse v redu.
- Želite, da je na zaslonu Zemljevidov način nastavljen na 'Pomemben'. To pomeni, da (večinoma) prejmete sporočila le, ko vstopite v regije ali jih zapustite. Zdi se, da je to posodobljena različica zapiska z oznako POMEMBNO: na koncu 8. koraka v izvirniku Instructable.
- Kot je omenjeno v izvirniku Instructable, je uporaba Google Zemljevidov odličen način, da ugotovite širino/dolžino nekje. Ugotovil sem, da je to učinkoviteje narediti v velikem obsegu, pri čemer sem izvedel vse zemljepisne širine/dolžine moje lokacije, nato sem jih prilepil v Notes (na svojem Macu) in s sinhronizacijo v oblaku je to pomenilo, da so se čarobno pojavile na mojem iPhoneu v Notes in jih lahko kopiram/prilepim v Owntracks. Pomenilo je tudi, da lahko datoteko pošljem na družinske telefone in vsi smo imeli dosledne lokacije.
- Bližnje lokacije lahko povzročijo težave. Moj brat živi 2 ulici stran in sprva je moj telefon ves čas mislil, da sem hkrati v njegovi hiši in tudi doma. Sčasoma sem moral v Node Red vnesti dodatno logiko, da sem ujel in prezrl to dogajanje.
3. korak: Nastavitev Raspberry Pi
Predvidevam, da imate nastavljeno osnovno Pi in wifi. Imel sem Raspbian, vendar to ne bi smelo biti pomembno. Za nastavitev uporabite navodila na spletnem mestu raspberrypi.org.
Upoštevajte, da ima Pi vrata za prikaz na monitorju, tipkovnici/miški itd. A očitno, ko ga imate v uri, ne želite ničesar od tega. Zato je bil odgovor, ki ga je predlagal nekdo na spletnem mestu Raspberry pi, vzpostavitev povezave VNC. To vam omogoča, da se povežete z drugo napravo na Pi in jo tudi nadzirate. To počnem iz svojega Mac -a, vendar sem to naredil tudi iz iPad -a. Za lažjo uporabo predlagam, da uporabite nekaj s tipkovnico.
Pravkar sem ugotovil, da so olajšali, odkar sem se povezal … glej tukaj
V bistvu se povežete in dobite okno, ki je standardni vmesnik Pi.
Torej, imate prenosnik ali računalnik okno za vaš Pi.
Zdaj morate povezati servomotorje.
Najprej morate narediti nekaj dokaj preprostega spajkanja, da Adapruit klobuk namestite na Pi. To je sicer malo zapleteno, a kljub temu, da 30 let ni bilo spajkano, je bilo v redu. Kot vedno sem našel uporaben videoposnetek v YouTubu, ki me je popeljal skozi to, kar mi je bilo v veliko pomoč.
Čeprav lahko klobuk poganja 16 servomotorjev, sem potreboval le 4, zato sem le motil spajkanje prvega kompleta 4 zatičev.
Nato servomotorji samo pritisnejo na zatiče. Najprej sem naredil eno, da sem preveril, ali lahko dejansko premaknem servo.
Tu sem naletel na svojo prvo veliko oviro. Imel sem zelo preprost python skript za premikanje servomotorjev in dobesedno se ni nič zgodilo. Približno teden dni sem preizkušal nove scenarije itd., Nato pa se je na klobuku začel pojavljati dim. Ko sem vse izklopil, sem preveril shemo. To je bil sestavni del, ki ščiti pred obratno polariteto. Ker sem imel večnapetostni, večnapetostni vir napajanja, sem zamudil dejstvo, da bi izhod DC lahko obračal v obe smeri, tako da bi obrnil konico. Napačno sem se zmotil (možnost 50:50) in pravkar sem zažgal svoj prvi klobuk iz adafruta
:-(Tako rahla zamuda, ko sem kupil novega, ponovno spajkal in popravil konico. Precej bolje.
Nato sem moral ugotoviti, kako premakniti servomotorje na pravo točko ure. To bo prišlo v 5. koraku, toda kaj sem naredil, ker nisem izdelal dejanske ure, sem rahlo privijal servomotorje na naključni košček lesa in na njih prilepil nekaj maskirnega traku s puščico, kot je na sliki. To je dalo zelo vizualne povratne informacije o tem, kar sem kodiral.
4. korak: Namestitev vozlišča Red (Prenos sporočil s strežnika MQTT na skript Python)
Node-RED je program, ki ga namestite na Pi, ki vam daje vizualni vmesnik (v brskalniku) za sprejemanje sporočil s strežnika MQTT in uporabo za posredovanje pravilnih podatkov v skript python (obravnavano v naslednjem koraku (Korak 5). Precej sem uporabil navodila ppeters0502 v 5. koraku. V teh tokovih je logika in dodatna logika v pythonu in v vsakem lahko imate več ali manj, odvisno od vaših želja. V bistvu morate narediti naslednji
- Imam sprejemna vozlišča za sporočila MQTT - ta so svetlo vijolična in imela sem 1 na družinskega člana
- Preslikajte to na servo, ki ga želite premakniti (oštevilčeno 0, 1, 2, 3)
- Ugotovite, ali vnesete ali zapustite polmer na OwnTracks
-
Ugotovite, na katero lokacijo mora biti usmerjen servo
Obstajajo nekatere izjeme od osnovnih pravil, ki sem jih moral vgraditi
- Pravilno nastavite kot
Node-RED je naredil prve 4, Python pa je bil relativno preprost.
Osnovni tok lahko vidite tukaj, vse tokove pa lahko izvozite v obliko tukaj, kar pomeni, da lahko ta osnovni tok uvozite v Node-RED in se nato prilagodite. Upoštevajte, da sem odstranil vse povezave iz vijoličnih vozlišč, tako da ne morete dostopati do mojega primerka MQTT. Odstranil sem tudi vsa testna vozlišča, saj vsebujejo dejanske podatke … boste morda morali to vrsto datoteke spremeniti v flows.json, če želite uvoziti v svoj Node-RED, vendar mi Instructables tega niso dovolili naložiti.
Zelena vozlišča so vozlišča za odpravljanje napak, ki nato prikažejo izhod v oknu za odpravljanje napak na desni strani zaslona (morda ga je treba razširiti - poiščite puščico do polovice navzgor na desni)
Prvi bit, ki ga morate narediti, je bit "V živo - samo za odpravljanje napak". To preverja, ali lahko prejemate sporočila MQTT in vidite, kaj je v njih. json je le bolj strukturirana različica sporočil, ki vam omogoča lažji dostop do podatkov. V tem toku, ko sem v živo, nato povežem vijolična vozlišča zgoraj levo z vozliščem json desno od njih.
Preskusna vozlišča
Ko veste, kako bodo sporočila izgledala v živo, postane zelo dolgočasno, da morate hoditi iz hiše, po cesti in nazaj, samo da sprožite dogodek. Ko to storite, lahko sporočilo kopirate v sprožilec TEST in ga nato preprosto kliknete, da simulirate dogodek. Podatke lahko tudi spremenite, če se pretvarjate, da so za različne lokacije (poskrbite, da bodo natančno ustrezali imenom lokacij v Owntracks).
V toku lahko vidite, da vsi preskusni primeri gredo v ločeno vozlišče, nato pa to v vozlišče json. To je zgolj za pospravljanje zaslona.
Ne morem dovolj poudariti, kako uporabna so bila ta vozlišča in so še vedno.
Klicanje Pythona
Tako sem prišel do naslednje zapore. Ta je veliko brskal po forumih itd. Moj tok bi deloval odlično, vendar ne bi sprožil mojega skripta python. Tega nisem mogel rešiti, vendar vam bom prihranil prisego itd. Če želite povedati, da morate, kot je poudarjeno na drugem posnetku zaslona, določiti python3, kot očitno Node-RED predvideva python2, razen če navedete.
2 dodatna zapleta - samo po potrebi
Nato sem imel številne izzive, pri katerih logika ni delovala. Prvič, Owntracks je bil nekoliko čuden in ker moj brat živi dve ulici stran, je pogosto rekel, da sem na dveh mestih hkrati ali pa sem neprestano preklapljal. Edini način, kako sem ga lahko zaobšel, je bil, da dodam stanje za ustavitev lažno pozitivnih rezultatov. Če je trdilo, da sem pri njem, sem preusmeril in preveril dejansko dolžino/širino v sporočilu in ga prekinil, če je pisalo, da sem doma.
Druga težava je bila v tem, da pri sprehodu psa nisem mogel doseči dobrega polmera. Ponavadi hodim na istem območju, zato sem tukaj rekel "če vstopim na to območje, vsekakor hodim s psom in bom, dokler ne pridem domov." to je pomenilo, da se ne bo preusmeril v pivnico, ki jo peljem na poti domov, ali v druge lokalne kraje, ki bi lahko sprožili med sprehodom psov. Za to sem moral nastaviti nekaj obstojnih spremenljivk konteksta (poiščite jih na Node-RED. Oglejte si posnetek zaslona. Te spremenljivke vztrajajo, dokler se Node-RED ne zažene znova, zato lahko rečem, če na sprehodu psa nastavite spremenljivko konteksta. na "Dog". Nato zanemarite NIČ drugega, razen če "vstopim" domov.
Zadnji posnetek zaslona je moj dejanski zadnji tok, z vsemi izjemami, samo za vaše zanimanje.
5. korak: Dejansko premikanje servomotorjev s Pythonom na Pi
Kratek preusmeritev na servomotorje. O servomotorjih nisem vedel nič, na spletu pa je veliko informacij. Uporabil sem neprekinjene servomotorje, ki se lahko obrnejo za 360 stopinj in gladko. Druga glavna vrsta so koračni servomotorji, ki se premikajo v kosih (korakih) in se očitno dvignejo le do približno 180 stopinj (tukaj očitno ni uporabno). Prednost koračnih servomotorjev je, da jih lahko preprosto postavite pod kotom in se premaknejo do te točke ter ustavijo. Vsa dokumentacija, ki sem jo našel, pravi, da neprekinjeni servomotorji delujejo tako, da dobijo hitrost in čas, da to hitrost vzdržujejo (na primer polna hitrost za 1 s), in končajo tam, kjer končajo, vendar je to relativno glede na njihovo začetno točko. Po veliko poskusih mi to ni uspelo, vendar sem s testno mizo ugotovil, da so se servomotorji ob istem kotu dosledno vračali na isto točko. Kar je veliko lažje, zato sem to tudi storil. Morda obstaja kakšna slaba stran, za katero ne vem, vendar mi deluje. Upoštevajte pa, da je vsak servo edinstven, zato morate imeti za vsak servo edinstven nabor kotov. Najlažje sem imel "kalibracijski" python skript, kjer sem lahko servomotorje po vrsti nastavil na kote in jih izpopolnil, dokler niso vsi videti pravilno. To je prvi priloženi skript. Komentirate samo servomotorje, ki jih ne preizkušate, se osredotočite na enega in nato prilagodite vrednosti, kot jih potrebujete. OPOMBA: umerjanje za testno mizo je preprosto, grobo in pripravljeno. Ko je ura sestavljena, jo boste morali znova umeriti, ker bodo prestave itd. Vse spremenile. Potem je drugi scenarij precej osnovni. Naredi naslednje
- Uvozi nekaj knjižnic
- premaknite spremenljivke, ki prihajajo iz Node-RED, v spremenljivke v skriptu
- preslika kote, ki jih določi kalibracijski skript, na lokacije na uri.
- preverite, ali je lokacija na seznamu, in če ne, se pomaknite na "nevarnost"
- zapisati, kaj je bilo storjeno, v datoteko dnevnika
- premaknite zahtevani servo v želeni kot
- Ustavite, da bi en servo "brenčal" *
3 stvari, ki jih je treba opozoriti.
Dnevnik je zelo uporaben za odpravljanje napak. To pomeni, da si lahko ogledate razhroščevanje sporočila Node-RED in nato vidite, kaj se je zgodilo v skriptu. izhod izgleda takole. Prvi trije peljem psa na sprehod, nato pa otrok 1 zapusti hišo in pride v šolo. Opomba, da preverite čas na Pi. Privzeto je lahko UTC in ne dovoljuje spreminjanja poletnega/zimskega časa. Npr. spodnji čas je 1 ura ven.
2020-12-07_05: 36: 03 Kdo = 0, loc = Potovanje, podrobnosti = Domov, Kot = 10, Indeks = 8
2020-12-07_05: 36: 04 Kdo = 0, loc = pes, detajl = Astons, kot = 86,5, indeks = 10
2020-12-07_06: 07: 49 Kdo = 0, loc = Domov, detajl = vnos, Kot = 75, indeks = 0
2020-12-07_06: 23: 53 Kdo = 2, loc = Potovanje, podrobnosti = Domov, Kot = 19, Indeks = 8
2020-12-07_06: 30: 48 Kdo = 2, lok = šola, detajl = N, kot = 60,5, indeks = 2
Servo-brenčanje
Eden od servomotorjev (0) je po koncu scenarija kar brenčal. Kot si lahko predstavljate, je to v naši kuhinji nadležno. Nekje sem našel nit, ki je omenjala nastavitev kota servo na "nič", zaradi česar je nekako v prostem teku. To je delovalo briljantno in na koncu je razvidno iz scenarija.
Časovna razporeditev
Imejte v mislih, kako nizko se roka pomeri celo uro. V skriptu lahko vidite, da je vrstica time.sleep (4) tik preden nastavimo servo, da preneha brenčati. To je zato, ker morate dovoliti roki, da pride do cilja, preden jo nastavite v mirovanje. V nasprotnem primeru se preprosto ustavi. To je pomembno tudi pri umerjanju, saj v skriptu delate več premikov. Nastavil bi, da se po vrsti premakne na vseh 12 lokacij, da jih lahko vse ponovno preverim. ampak vmes rabiš malo časa.
6. korak: Dokončanje programske opreme - telefoni do servomotorjev
Ko nastavite testno mizo in skripte, jo lahko za nekaj časa zaženete 'v živo' in si ogledate, kako deluje v realnem času. Tu sem našel izjeme, ki sem jih moral dodati v tok Node-RED.
Če se želite osredotočiti na enega, lahko preprosto odklopite in povežete družinske člane v toku Node-RED. Na primer, če dva povzročata težave, vendar želite odpraviti enega naenkrat. V nasprotnem primeru ne pozabite, da boste še naprej prejemali sporočila iz vseh povezanih telefonov.
Omenil sem težavo s sprehodom psov in hišo mojega brata precej blizu. Imel sem še 2 izziva.
Prvič, lokacije znotraj drugih lokacij. Moja žena je opravljala tečaj na univerzi v Londonu. Želeli smo, da se to registrira kot "šola", vendar je tudi v "Londonu". Zato smo morali znova uporabiti kontekst in povedati, da če zapuščate to "šolo", se premaknite v "London" in ne na "Potovanje".
Drugič, pogoji dirke. Kot že omenjeno, je hiša mojega brata oddaljena 2 ulici in tudi v bližini našega najljubšega lokala/restavracije. To pomeni, da včasih prejemata 2 signala hkrati ali zelo blizu. To lahko vzpostavi "pogoj dirke", kjer dobite različne rezultate, odvisno od tega, kaj najhitreje preide skozi logiko, kar vodi do nepredvidljivih rezultatov. V nasprotju s tem sem naredil, da imajo vsa "vstopna" sporočila zamudo v logiki 1 s, kar je zdelo, da odpravlja težavo. Morda obstajajo boljši, elegantnejši načini za rešitev tega, vendar se je zdelo, da deluje.
7. korak: Izdelava fizične ure - I. del - servomotorji in osi
Zdaj malo, o čemer sem bil najmanj prepričan, zato sem pustil, da traja. Želel sem spodobne velikosti obraza in enostavne konstrukcije. Prav tako sem bil nervozen, ker sem fizično dobil 2 servomotorja okoli osne osi. To je pomenilo, da sem se, ko sem na kratko pogledal stare ure na ebayu, kot v navodilih, ki sem jih upošteval, odločil, da si bom dal več priložnosti, tako da ga bom zgradil sam.
- Dobil sem 2 velika (~ 30 cm) kvadrata vezanega lesa, ki sem ga imel okoli (debeline približno 9 mm).
- Nato sem staro tračnico prerezal na odseke 4x10 cm in sprednjo in zadnjo ploščo privijal skupaj.
- Ko sem označil osrednjo luknjo, sem jo izvrtal enake velikosti kot največja medeninasta cev.
- Nato sem ga pobarval z običajno belo sijajno barvo.
- Po nekaj poskusih sem ugotovil, da verjetno ne bi mogel dobiti 4 servomotorjev na isti osi, če bi bili vsi pritrjeni na zadnjo (ali sprednjo) ploščo. Zato sem moral imeti na vsaki plošči 3 + 1 ali 2 + 2. Na koncu sem imel 3 na hrbtu in 1 spredaj.
- Na listu papirja sem izdelal odmike, ki so potrebni, nato pa medeninaste cevi odrezal tako, da se ujemajo. Upoštevajte, da je najdebelejša cev najkrajša in najtanjša mora iti vse do zadnje plošče. (Najmanjšo sem pravzaprav vstavil v luknjo, ki sem jo delno izvrtal v zadnji plošči, vendar ne do konca, da se os ne premakne nazaj).
- Za cevi sem kupil rezalnik cevi, ki pa za rezanje uporablja pritisk, kar pomeni, da manjše cevi ne morete dobiti noter. Zato sem uporabil žago, nato pa sem moral kar nekaj vložiti, da sem jih spravil v delo. Diamantne datoteke so bile tukaj neprecenljive.
- Nato sem diagram ujemal z dejanskim odmikom sponk in zobnikov *.
- Ko sem imel odmike, sem vedel, kako "visoko" narediti bloke za namestitev servomotorjev. Nekaj blokov sem razbil tako, da sem jih pretanko razrezal in tudi izvrtal luknjo, da je žica izstopila.
- Nato je prišel neroden del, kam postaviti bloke, da bodo natančno ustrezali zobnikom na osi. Privil sem en blok, nato pa sem lahko zavil servo v smeri osi, nato pa v drugi blok privil drugi konec servomotorja. Ugotovil sem tudi, da moram nekaj izrezati iz nekaterih blokov, da se ne izognem drugim zobnikom. Trajalo je kar nekaj časa.
- Ko sem vse to naredil, sem dobil kovček za malino pi, izvrtal sem dve luknji in ga privijal na sprednjo ploščo. Potem sem lahko dodal Pi, zaprl sprednjo in zadnjo ploščo (ko sem povezal servomotorje s pi (spomnim se, kateri servo je za katerega družinskega člana) in se obrnil na roke …
* Tu sem našel največji problem, ki ga še moram popolnoma rešiti. Medeninaste cevi so bile 1/4 ", 7/32", 3/16 ", 5/32". Toda objemke so bile metrične (razen ene, ki je bila 1/4 "). Če smo pretvorili cevi v metrične, so bile 6,35 mm, 5,56 mm, 4,76 mm 3,97 mm. Preostale sponke so imele izvrtino 4 mm, 5 mm in 6 mm. Najmanjša 2 in Največji so v redu, vendar je očitno, da je 0,44 mm prevelik potek za vpenjanje, zato sem ga moral obložiti s papirjem. To sem poskusil že večkrat in nekaj časa deluje v redu, nato pa se spet zrahlja. roka ne deluje pravilno. Kljub temu je bilo v redu približno 6 mesecev, zato je bil čas, ko sem to dobro opravil, dobro vložen čas. Če pa bi to počel znova, bi morda šel za 1 velikost navzgor ali navzdol, z vrzeljo, da bi poskušal dobiti boljša objemka za cev
8. korak: Ročne ure
Odločil sem se za jekleno pločevino, saj sem hotel nekaj trdega, vendar manj verjetno, da bi se med izdelavo zlomilo. Tudi tanek je pomenil, da 4 roke niso bile problem.
- Najprej sem narisal obliko.
- Nato sem ga prenesel na jeklo na vrhu lepilnega traku.
- Potem sem jih zelo nestrokovno izrezal s svojo sestavljanko. Bili so in so vsi različni, vendar me to ne moti.
- Potem mi je prijatelj predlagal, da si izposodim njegovo mizo za oblikovanje klopi, kar je bilo super. zelo priporočljivo. V nasprotnem primeru vložitev traja več let.
- Še nekaj je bilo vložitve in nato brušenja, da ne bi imeli ostrih robov in tudi lep zaključek.
- Moral sem izvrtati luknje, da se ujemajo z ustreznimi medeninastimi cevmi (za preverjanje uporabite odrezane cevi, ne nameščenih na uro).
- Ugotovil sem, da je treba luknje malo vložiti, da se nanesejo na cevi, vendar so bile enkrat tesne in niso potrebovale lepila. Izjema je bila sprednja roka, za katero sem želel imeti 'pokrov'. Tako sem izrezal (večinoma) okrogel kos jekla, potem ko sem izvrtal luknjo in jo dobil do prave velikosti ter jo zlepil spredaj. to lahko vidite na zadnji sliki. Občasno bi sprednja roka potrebovala nekaj lepila, da bi jo pritrdila, vendar po nekaj napačnih zagonih roke delujejo zelo dobro.
- Idejo o fotografijah sem zavrnil (ker bi se otroci hitro pritoževali nad našimi fotografijami zmenkov), zato sem se odločil za slikanje na začetnicah z akrilno barvo.
9. korak: Dokončajte
Vse res lepo deluje. Roke so včasih nekoliko odmaknjene, odvisno od kod so prišle, v resnici pa to ni pomembno, saj je vsaka lokacija odsek in ne le črta.
Včasih, čudno, moj telefon noče priznati, da sem doma. Jasno sem v radiju Owntracks, ko je prikazan na zemljevidu, in tudi če je natančnost dobra … Nimam pojma zakaj. Zdi se, da ne moti preostale družine. vendar je nastavitev enaka. To pomeni, da Owntracks nikoli ne pošlje sporočila in jaz se zataknem v 'Potujem'. Toda ponavadi se sčasoma uredi.
V naši kuhinji je bilo zelo koristno, predvsem vedeti, kdaj se dekleta odpravljajo domov iz šole ali v hiše svojih prijateljev, in kdaj jim je treba pripraviti hrano/čaj.
Še enkrat velika zahvala @ppeters0502 za odlična navodila, ki jih je treba upoštevati. Upajmo, da lahko ti kaj dodajo pri izdelavi ure s štirimi kazalci.
10. korak: stvari, ki sem se jih naučil, in bi storil bolje/drugače, če bi to moral ponoviti
- Fizične konstrukcije potrebujejo poskuse in napake. Težave s vesoljem ni mogoče napovedati, le potopiti se morate in poskusiti.
- Za kodo so težave pri googlingu bistvene
- Začnite osnovno in nadgradite. Servomotorji na lesu za testno mizo so pomenili, da sem lahko večino deloval brez fizične zgradbe
- Mogoče sem si lasersko odrezal roke na CNC stroju. Nisem pa vedel, kje je lokalni, in všeč mi je, kako se je izkazalo blago jeklo (bilo je poceni in mizica je olajšala delo)
- koračni motor je lahko možen, če z gonilom zavijete za 360. morda pa boste morali imeti servomotorje preblizu osrednje osi
- Obstajata dve vrsti servomotorjev (Futaba in HiTech). Prepričajte se, da ste to preverili, saj imajo na zobniku različno število zob. Na začetku sem kupil napačne …
- Ne povezujte klobuka z napačno polariteto;-)
- Google in Stack Overflow sta tvoja prijatelja, ko sta obtičala. Vendar morate uporabiti dobre iskalne izraze …
- Testna miza je pravzaprav način, da do enostavnejše in cenejše različice pridete veliko lažje. Večina zapletov pri gradnji je posledica tega, da se morajo roke vrteti okoli iste osi. Če s tem sklenete kompromis, je vse veliko lažje. In mislim, da je 4 lahko meja ene osi, razen če se gred podaljša. Predvidevam, da bi lahko imeli 3 na sprednji plošči in tri na zadnji plošči, če bi bila gred daljša …
11. korak: Možne prihodnje razširitve …?
Moje zamisli o naslednjih korakih so naslednje.
- Rad bi ponovno namestil stari iPad kot številčnico ure. izdelati digitalno uro. Morda v brskalniku ali v aplikaciji. Ker je fizična ura v bistvu brez državljanstva (torej ne ve, kje je trenutno, razen zaradi kazalcev, ki so v fizičnem položaju), bi moral imeti stalno shranjevanje podatkov. Node Red lahko zapiše v lokalni datotečni sistem, zato bi to verjetno storil.
- Če bi to storil, bi to rad videl zunaj doma. Potem pa moramo res urediti varnost. Ker je dostop v istem omrežju Wi -Fi eno, je dostop iz interneta drugo. Trenutno nimam pojma, kako bi bilo najbolje to narediti, vendar sumim, da bi naročništvo MQTT, ki bi šlo drugače, delovalo (pi objavi trenutno stanje in se nanj naročijo zunanje naprave) …?
- Želel bi si eno roko za "V tujini". vendar je to lahko z vidika OwnTracks zapleteno. Morda bi lahko uporabil samo long/lat v kombinaciji z nekaj velikimi polmeri?
Priporočena:
Robot brez glave s premikajočimi se rokami: 6 korakov (s slikami)
Robot brez glave s premikajočimi se rokami: Naslednji navodili so navdihnjeni iz bota Halloween Headless. Celotna navodila o tem, kako bota narediti iz kartona, najdete tukaj. Da bi bil bolj živ, imam idejo, da se roka, ki drži glavo, premakne
[15min] Ura Weasley / Kazalec kdo je doma - temelji na TR -064 (beta): 4 koraki (s slikami)
[15min] Ura Weasley / Kazalec Kdo je doma-temelji na TR-064 (beta): UPDATE: Glej korak 3. Dolga zgodba (TL; DR spodaj): Pred časom sem na svoj računalnik napisal majhen bash-skript poiščite omrežje za registrirane naprave in primerjajte njihova imena gostiteljev s seznamom s povezanimi imeni. Vsakič, ko bi se naprava prijavila
Mikroskop fotoaparata z lastnimi rokami: 5 korakov (s slikami)
DIY Camera Mikroskop: Hiiii Vrnil sem se z enostavnim in zanimivim projektnim mikroskopom kamere, s tem lahko opazujete številne predmete na zaslonu računalnika ali prenosnega računalnika. To sem naredil zaradi svoje radovednosti do znanstvenih projektov. Na trgu lahko najdete tudi te mikroskopske
Omegle lokacijska potegavščina z žičnim morskim psom: 4 koraki
Omegle Location Prank with Wire Shark: To so načini, kako lahko ugotovite lokacijo (verjetno) vsakogar, ki vas poveže prek omegle videoklepeta. Tukaj uporabljamo omrežni analizator Wire Shark, vendar obstaja tudi veliko drugih načinov za to. V videoposnetku omegle video paket vsebuje IP
Samodejno sejalnik za zalivanje, narejen z lastnimi rokami (3D natisnjeno): 14 korakov (s slikami)
Samodejno sejalnik za samostojno zalivanje (3D natisnjeno): Ta projekt je bil v celoti izdelan na TinkerCAD -u. To je zelo enostaven postopek za izdelavo prilagodljivega sadilnika s preprosto sliko! Sadilnik je tudi samo zalivajoč. Za ta projekt boste uporabljali TinkerCAD, brezplačno programsko opremo CAD, ki je zelo enostavna za uporabo