Tartalomjegyzék:
- 1. lépés: Állítsa be telefonjait, hogy elküldje helyét a Pi -nek (I. rész MQTT Broker)
- 2. lépés: Állítsa be telefonjait, hogy elküldje helyét a Pi -nek (II. Rész Owntracks)
- 3. lépés: A Raspberry Pi beállítása
- 4. lépés: A piros csomópont telepítése (Az üzenetek átvitele az MQTT kiszolgálóról a Python -szkriptbe)
- 5. lépés: A szervók tényleges mozgatása Python segítségével a Pi -n
- 6. lépés: A szoftver véglegesítése - Telefonok szervóként
- 7. lépés: A fizikai óra építése - I. rész - a szervók és tengely
- 8. lépés: Az óra mutatói
- 9. lépés: Végezze el
- 10. lépés: Azok a dolgok, amelyeket megtanultam, és jobban/másként tennék, ha újra kellene tennem
- 11. lépés: Lehetséges jövőbeni kiterjesztések…?
Videó: „Weasley” helymeghatározó óra 4 kézzel: 11 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Tehát egy Raspberry Pi -vel, amely már egy ideje rúgott, szerettem volna találni egy szép projektet, amely lehetővé teszi számomra, hogy a lehető legjobban kihasználjam. Rátaláltam erre a nagyszerű Instructable Build Your Own Weasley Location Clock -ra, amelyet a ppeters0502 készített, és úgy gondoltam, hogy jó lenne kipróbálni.
Az óra alapvetően egy Raspberry Pi -ből áll, amely a szervókat vezérli az óra mutatójának forgatása érdekében. Mint a Weasley család házában a Harry Potter könyvekben/filmekben, minden családtagnak saját keze van. Mindegyik kéz az adott családtag aktuális tartózkodási helyére mutat. Az óra ezt úgy éri el, hogy üzeneteket fogad a család mobiltelefonjairól, amikor belépnek vagy elhagynak egy előre meghatározott sugarat.
A fő különbség az előző Instructable -hoz képest az volt, hogy 4 kezem kellett, nem pedig 2 (különben a lányaim panaszkodtak volna), és úgy döntöttem, hogy megépítem a keretet is, és nem veszek egy régi órát újrafelhasználásra. Ennek az volt az oka, hogy aggódtam, hogy a hely problémát okoz egy meglévő óraházban, és szükség van 4 szervó stb.
Sokkal tovább tartott, mint vártam, bár főleg ott találkoztam olyan furcsa problémákkal, amelyek megbotránkoztattak, és amelyeket úgy tűnik, nem fedett le az eredeti bejegyzés. Semmi sem az eredeti Instructable ellen, amely általában nagyszerű volt, de néhány év eltelt, és a dolgok változásai megváltoztak … stb. Az Egyesült Királyságban való tartózkodás azt jelentette, hogy az Imperial/Metric elemek némelyike több kihívást okozott, mint vártam.
Továbbá, bár jól vagyok a kódolásban, az óra fizikai gyártása határozottan megfeszített, és további eszközökre volt szükség, ami szintén lelassított.
A végén egy részt fogok írni: "A dolgok, amelyeket másként/jobban tennék, ha újra csinálnám …"
Kellékek:
Az egyik dolog, ami megdöbbentett, az volt, hogy a drága alkatrészek az óra mutatóival voltak kapcsolatosak. A 4 kéz kétségtelenül sokkal drágább, mint a 2. Úgy döntöttem, hogy beleteszek néhány költséget, hogy legyen valami ötleted. Ez az első alkalom, hogy összeadom az egészet, és figyelmen kívül hagyva az eszközöket, azt hiszem, körülbelül 200 fontot költöttem. Plusz néhány dolog, amit nem használtam (és az alábbiakban nem vettem fel), valamint a Pi, valamint a tápegység, mindkettő már megvolt.
Pi stb
- Raspberry Pi - nem emlékszem, hogy mennyibe került eredetileg, de ez egy 2B modell volt. Azt hiszem, ha még nincs, akkor valószínűleg egy Pi Zero is megtenné. Hozzáadtam egy wifi -kulcsot és SD -kártyát a Raspbian segítségével. És egy régi Android telefon töltő hevert.
- Adafruit Servohat a Pi számára - 16 font
- Tápegység a Servohat számára - Ezt nagyon nehezen találtam meg, mivel minden webhely csak az adafruit webhelyre mutatott, amely nyilvánvalóan egy amerikai tápegységet ajánl. Aztán rájöttem, hogy van egy régi változó feszültségű tápegységem cserélhető csúcsokkal, ezért ezt használtam. De az USA ára 8 dollár, tehát ez a labda.
- Tok a Pi -hez, hogy aztán az óra keretéhez rögzíthessem. £ 5
Szervó és fogaskerekek
Itt idézem az árat mind a 4-re, ezért oszd meg, ha kevesebb leosztást akarsz
- 4 x szervó-a ppeters0502 által ajánlottakat használtam-az eBay-en ~ £ 15-ért = 60 £-kerestem a következő szöveget "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-fok "de néha elérhetetlenek voltak
- 4 x sárgaréz cső, amelyek pontosan egymásba illeszkednek - egyenként ~ 3 font. 1/4 ", 7/32", 3/16 ", 5/32" = 11 fontot kaptam
- 4 x bilincs, amely a sárgaréz csövekhez rögzíthető, lehetővé téve a fogaskerekek rögzítését. ~ 7 font egyenként = 28 font. Az ActiveRobotoktól kaptam őket, akik rendszeresen rendelnek a Servocity -től az Egyesült Államokban, így elkerülheti a nemzetközi szállítást. Ezen kívül bármit megszerezhetnek, amit a Servocity fő amerikai oldalán találhat. Ez nagyon hasznos volt a következő 2 tételnél
- 4 x acetil 0,770 "mintás fogaskerék a szorító agyakra szereléshez. ~ £ 6 = 24 £
- 4 x acetyl spline szerelt acetil fogaskerék a szervókra szereléshez. ~ 6,50 £ egyenként = 26 £
- 1 x hatszögletű anyacsomag a szorítóanyákhoz rögzített fogaskerekekhez = 2,60 £
- 1 x 7/64 hüvelykes hatlapfejű kulcs (imbuszkulcs), mert bármi, ami az USA -ból származik, birodalmi, így a már meglévő több száz imbuszkulcs haszontalan = £ 1
A fizikai felépítéshez
Itt többnyire olyan dolgokat használtam, amelyekről hazudtam
- 2 x négyzet rétegelt lemez az "arc" és a "hátsó" lemezhez
- Ezután levágtam 4x10 cm -es hengereket egy régi korlátról, amellyel rendelkeztem, hogy a hátát az archoz csatlakoztassam
- Néhány blokk a szervók megfelelő eltoláshoz való rögzítéséhez - csak puhafa kivágások, amelyeket méretre vágtam.
- Vegyes csavarok. nagyon kicsi (a Pi tok rögzítéséhez a kerethez) közepes (a keret összeillesztéséhez)
- 0,75 mm -es lágy acéllemez, körülbelül 50 x 20 cm (a kezek kivágásához). Ez volt az egyetlen dolog, amit ~ 9 fontot vettem a Wickes -től
Eszközök
Néhány dolog megvolt, néhány pedig kölcsön vagy vásárolt
- Forrasztópáka + elektromos forrasztópáka - a csatlakozók csatlakoztatásához az Adafruit Hat & Pi -hez.
- Jigsaw - a kezek durva alakjának kivágásához
- Fúró. csak egy normál akkus 18V -os fúró
- Fúrószárak - Ne feledje, hogy a sárgaréz csövekhez illeszkedő lyukak készítéséhez császári fúrókra lesz szüksége. Sikerült kölcsönkérnem néhányat.
- fémfűrész - a sárgaréz csövek vágásához. Ne tegye azt, amit én, és költsön 3 fontot a csővágóra, nyomás hatására működik, és azt jelenti, hogy a csövek belseje egy kicsit kisebb lesz. így a következő méretű cső nem illeszkedik át
- Padcsiszoló - nekem nem volt ilyenem, de egy barátomnak igen, és ez sokkal könnyebbé tette a kéz formázását. Addig csak fájlokat használtam. Nem vásárolnék egyet csak ehhez a projekthez, de a fém kezek számára nagyszerű volt.
- Vettem néhány (nagyon kicsi) gyémánt hegyes reszelőt. kézre és csövekre hasznos 15 font körül
- durva és sima csiszolópapír
- néhány kis bilincs tartja a dolgokat a fúrás során.
- bűn ugyanazon okból.
1. lépés: Állítsa be telefonjait, hogy elküldje helyét a Pi -nek (I. rész MQTT Broker)
Ezt a bitet ppeters0502 nagyon jól leírja kiváló Weasley Clock Instructable című művében. Furcsa módon, bár talán az eltérő készségeket tükrözi, az építéssel kezdte, majd áttért a szoftverre, én fordítva csináltam. Szóval, kezdtem a telefonnal… várj, nem, nem, én az MQTT brókerrel kezdtem, ami az Instructable 6. lépése. Kihagyom az összes olyan részt, amit nagyon jól csinál, és csak bedobok néhány részletet, amelyeket esetleg hozzáteszek. Az általam említett CloudMQTT útvonalon jártam.
DE mivel ezt írtam, megnéztem a tervek linkjét, és megállapítottam, hogy már nincs ingyenes terv! Ésszerű okokból visszavonták. vagyis hogy az emberek létrehoznának egy ingyenes példányt, majd soha nem használnák azt. Nem vettem észre, mert a jelenlegi példák folytatódhatnak. Szóval nem változtatok. De ez kissé feleslegessé teszi az utasításokat. Úgy tűnik, hogy 3 lehetőség van.
- Fizesse havi 5 dollárért a Cloud MQTT -t (de ez drágán hangzik az óra számára folyamatosan).
- Menjen a Mosquitto on Pi útvonalon, amint azt az első Instructable leírja. Erről nem tudok nyilatkozni, de jó megoldás lehet.
- Csak google "ingyenes MQTT felhő bróker", és úgy tűnik, hogy vannak mások.
Tehát feltételezve, hogy van egy működő MQTT brókere, és ha valami hasonló a CloudMQTT -hez, akkor megjelenik a szerver, a felhasználó, a jelszó és a port. Mindezekre szüksége lesz a telefonok beállításához, hogy elküldje a brókernek a tartózkodási helyét/mozgását.
2. lépés: Állítsa be telefonjait, hogy elküldje helyét a Pi -nek (II. Rész Owntracks)
Ezt az eredeti Instructable is nagyon jól lefedi, a 7. (Android), 8. (iOS) és 9. (Régiók beállítása) lépésekben.
Csak iOS -eszközeim voltak, így nem próbáltam a 7. lépést.
Mit fűznék ezekhez az utasításokhoz?
- A beállításban megtalálhatók a TrackerID és DeviceID mezők is. Ezeket képesnek kell lennie arra, hogy azonosítani tudja Önt a családjában. Például. Nekem R és RPhone volt. Ez azt jelenti, hogy át lehet lépni az órára, amelyik szervó, és ezért melyik mutatót kell forgatni.
- A régiók a nyomon követni kívánt helyek neve.
- Minden régiót egy név, egy szélesség, egy hosszúság és egy sugár határoz meg.
-
Mivel azt szerettem volna, hogy az Óra egy része több hely legyen, elnevezési módszert alkalmaztam, ami nagyon hasznosnak bizonyult. Más módszerek is lehetségesek, de ez nekem bevált.
- Például az óra CSALÁD részéhez a szüleimet és testvéreimet, valamint a feleségem szüleit és testvéreit szerettem volna. Ezért rendelkeztem olyan helyszínekkel, mint a „Family Tom”, a „Family Dick”, a „Family Harry” és a „Family ParentsR”.
- Ne feledje, hogy az emberek különböző helyeken tartózkodhatnak. De amíg összhangban vannak a névadási egyezménnyel, addig rendben van. Például. a munkám más lenne, mint a feleségem munkaterülete, és másképp neveznék. de amíg mindketten elkezdik a "munkát", addig minden rendben van.
- Azt szeretné, hogy az üzemmód „Jelentős” legyen a Térképek képernyőn. Ez azt jelenti, hogy (többnyire) csak akkor kap üzeneteket, amikor belép vagy elhagyja a régiókat. Úgy tűnik, hogy ez a megjegyzés frissített változata a FONTOS: az eredeti Instructable 8. lépésének végén.
- Amint azt az eredeti Instructable is említette, a Google Térkép használata nagyszerű módja annak, hogy megtudja valahol a szélességet/hosszúságot. Hatékonyabbnak találtam ezt tömegesen megtenni, megtudva a tartózkodási helyem összes szélességét/hosszúságát, majd beillesztettem őket a Notes-ba (a Mac gépemen), és a felhőszinkronizálással azt jelentette, hogy varázslatosan megjelentek az iPhone-on a Notes -ban, és másolhatom/beilleszthetem őket az Owntracks -be. Ez azt is jelentette, hogy elküldhettem a fájlt a családom telefonjaira, és mindannyian következetes helyeket kaptunk.
- A közelben lévő helyek problémákat okozhatnak. A bátyám 2 utcával arrébb lakik, és kezdetben a telefonom azt gondolta, hogy egyszerre vagyok a házában, valamint otthon. Végül további logikát kellett bevezetnem a Node Red -be, hogy elkapjam és figyelmen kívül hagyjam ezt.
3. lépés: A Raspberry Pi beállítása
Tehát itt feltételezem, hogy van egy alap Pi beállítása és wifi. A Raspbian -t futtattam, de nem számít. Használja a raspberrypi.org oldalon található utasításokat az összes beállításához.
Ne feledje, hogy a Pi rendelkezik portokkal a monitor és a billentyűzet/egér stb. Tehát a válasz, amit valaki javasolt a Raspberry pi webhelyen, szerintem az volt, hogy hozzon létre egy VNC kapcsolatot. Ez lehetővé teszi, hogy egy másik eszközről csatlakozzon a Pi -hez, és vezérelje azt is. Mac -ről csinálom, de iPad -ről is. Azt javaslom, hogy használjon valamit billentyűzettel a könnyebb használat érdekében.
Csak azt tapasztaltam, hogy úgy tűnik, hogy megkönnyítették, mióta csatlakoztam… lásd itt
Lényegében csatlakozik, és kap egy ablakot, amely a szabványos Pi interfész.
Tehát van egy ablaka a Pi -hez laptopjáról vagy számítógépről.
Most csatlakoztatnia kell a szervókat.
Először el kell végeznie egy meglehetősen egyszerű forrasztást, hogy az adafruit kalap felkerüljön a Pi -re. Kicsit furcsa, de annak ellenére, hogy harminc évig nem forrasztott, rendben volt. Mint mindig, találtam egy hasznos YouTube -videót, amely végigvezetett rajta, ami nagy segítség volt.
Míg a kalap 16 szervót képes üzemeltetni, nekem csak 4 -re volt szükségem, így csak az első 4 tűs szett forrasztásával foglalkoztam.
Ezután a szervók csak nyomják a csapokat. Először csináltam egyet, hogy ellenőrizzem, hogy valóban el tudom -e mozgatni a szervót.
Itt értem el az első nagyobb akadályt. Volt egy nagyon egyszerű python szkriptem a szervók mozgatására, és szó szerint semmi sem történt. Körülbelül egy hetet töltöttem új forgatókönyvek kipróbálásával stb., Majd füst kezdett megjelenni a kalapon. Mindent kikapcsolva megnéztem a vázlatot. Ez egy olyan alkatrész volt, amely megvédi a fordított polaritást. Mivel többhegyes, többfeszültségű áramforrásom volt, hiányoltam azt a tényt, hogy az egyenáramú kimenet mindkét irányba fordulhat a csúcs megfordításával. Tévedtem (50:50 esély), és csak kiégettem az első adafruit kalapomat
:-(Tehát egy kis késés, amikor vettem egy újat, újra forrasztottam és kijavítottam a borravalót. Sokkal jobb.
Ezután ki kellett dolgoznom, hogyan kell a szervókat az óra megfelelő pontjára helyezni. Ez az 5. lépésben fog megtörténni, de amit tettem, nem építettem fel a tényleges órát, az volt, hogy enyhén csavartam a szervókat egy véletlenszerű fához, és ragasztószalagot ragasztottam rájuk, mint a képen. Ez nagyon vizuális visszajelzést adott arról, amit kódoltam.
4. lépés: A piros csomópont telepítése (Az üzenetek átvitele az MQTT kiszolgálóról a Python -szkriptbe)
A Node-RED egy olyan program, amelyet a Pi-re telepít, és amely vizuális felületet biztosít (a böngészőben) az MQTT szerverről érkező üzenetek fogadására, és ennek segítségével adja át a helyes információkat a python szkriptjének (a következő lépésben (5. lépés). Nagyjából felhasználtam a ppeters0502 utasításait az 5. lépésben. Ezekben a folyamatokban van logika, és a pythonban további logika, és mindegyikben több vagy kevesebb lehet, a preferenciáitól függően. Alapvetően meg kell tennie a következő
- Vannak fogadó csomópontjai az MQTT üzenetekhez - ezek halványlila színűek, és családonként 1 volt
- Térképezze le azt a szervót, amelyet át szeretne helyezni (0, 1, 2, 3 számozással)
- Határozza meg, hogy egy sugarat ad meg vagy hagy el a OwnTracks -on
- Döntse el, hogy a szervónak melyik helyre kell mutatnia
Néhány kivétel volt az alapvető szabályok alól, amelyeket be kellett építenem
- Állítsa be a szöget helyesen
Node-RED-t csináltam az első 4-ben, és viszonylag egyszerűnek tartottam a Python-ot.
Itt láthatja az alapvető folyamatot, és az összes folyamat exportálható az itt található formátumba, ami azt jelenti, hogy importálhatja ezt az alapvető folyamatot a Node-RED-be, majd alkalmazkodhat. Ne feledje, hogy az összes kapcsolatot eltávolítottam a lila csomópontoktól, így nem férhet hozzá az MQTT példányhoz. Az összes tesztcsomópontot is eltávolítottam, mivel azok tényleges adatokat tartalmaznak … előfordulhat, hogy ezt a fájltípust flow.json formátumra kell módosítania ahhoz, hogy a Node-RED-be importáljon, de az Instructables nem engedélyezte a feltöltést.
A zöld csomópontok hibakeresési csomópontok, amelyek megjelenítik a kimenetet a képernyő jobb oldalán található hibakereső ablakban (esetleg bővítésre van szükség - keresse meg a nyilat a jobb oldalon)
Az első bit az "Élő - csak hibakereséshez" bit. Ez ellenőrzi, hogy megkaphatja -e az MQTT üzeneteket, és megnézheti, mi van bennük. A json csak az üzenetek strukturáltabb változata, amely lehetővé teszi az adatok könnyebb kihozását. Ebben a folyamatban élőben a bal felső sarokban lévő lila csomópontokat a tőlük jobbra lévő json csomóponthoz kötöm.
Tesztelési csomópontok
Ha már tudod, hogyan fognak élőben megjelenni az üzenetek, nagyon unalmassá válik, hogy ki kell menned a házból, az úton és vissza, csak hogy kiválthass egy eseményt. Miután ezt megtette, másolja az üzenetet egy TEST triggerbe, majd kattintson rá, hogy szimulálja az eseményt. Megváltoztathatja az adatokat is, hogy úgy tegyen, mintha különböző helyekhez tartozna (győződjön meg arról, hogy pontosan megfelelnek az Owntracks helyneveknek).
Látható a folyamatban, hogy a tesztesetek mindegyike egy külön csomópontba megy, majd ez a json csomópontba. Ez pusztán a képernyő rendbetételére szolgál.
Nem tudom elégszer hangsúlyozni, hogy ezek a csomópontok mennyire hasznosak voltak, és még mindig vannak.
Python hívása
Így aztán elértem a következő útlezárást. Ez rengeteg googlizást igényelt a fórumokon stb. Ezt nem tudtam megoldani, de kímélem a káromkodástól stb. Csak annyit mondok, hogy-amint azt a második képernyőkép is kiemeli-meg kell adnia a python3-at, ahogy a Node-RED nyilvánvalóan a python2-t feltételezi, hacsak nem adja meg.
2 további komplikáció - csak szükség esetén
Ezután számos olyan kihívásom volt, ahol a logika nem egészen működött. Az első az volt, hogy az Owntracks kissé furcsa volt, és mivel a bátyám 2 utcával arrébb lakik, gyakran azt mondták, hogy egyszerre 2 helyen vagyok, vagy folyamatosan váltottam. Az egyetlen módja, hogy megkerüljem, ha feltételt adok hozzá a hamis pozitív eredmények leállításához. Ha azt állították, hogy a házánál vagyok, akkor átirányítottam és megnéztem az aktuális hosszúsági/szélességi fokot az üzenetben, és megszakítottam, ha azt írták, hogy valóban otthon vagyok.
A másik probléma az volt, hogy amikor sétáltam a kutyámmal, nem tudtam jó sugarat kapni. Általában ugyanazon a területen járok, ezért itt azt mondtam, hogy "ha belépek erre a területre, határozottan sétálok a kutyával, és addig leszek, amíg haza nem értem". ez azt jelentette, hogy nem vált át a kocsmába, amelyet hazautazok, vagy más helyi helyekre, amelyek kutyasétáltatás közben kiválthatják. Ennek érdekében néhány állandó környezeti változót kellett beállítanom (keresse meg őket a Node-RED-en. Lásd a képernyőképet. Ezek a változók a Node-RED újraindításáig megmaradnak, és így azt mondhatom, hogy ha kutyasétáltatáskor állítsa be a Context Változót "Kutya". Ezután hagyjon figyelmen kívül bármi mást, hacsak nem lépek haza.
Az utolsó képernyőkép a tényleges végső folyamatom, az összes kivételtől eltekintve, csak az Ön érdeke szerint.
5. lépés: A szervók tényleges mozgatása Python segítségével a Pi -n
Rövid kitérő szervókba. Nem tudtam semmit a szervókról, de sok információ található az interneten. Az általam használt folyamatos szervók, amelyek 360 fokos fordulatot tudnak végezni, és simán. A másik fő típus a léptető szervók, amelyek darabokban (lépésekben) mozognak, és láthatóan csak körülbelül 180 fokosra emelkednek (itt nyilvánvalóan nem hasznos). A léptető szervók előnye, hogy csak szögbe lehet állítani, és elmozdulnak arra a pontra, és megállnak. Az összes dokumentáció, amelyet találtam, azt mondta, hogy a folyamatos szervók úgy működnek, hogy sebességet kapnak, és van idő a sebesség fenntartására (pl. Teljes sebesség 1 másodpercig), és ott végzik, ahol végződnek, de ez a kezdőpontjukhoz képest. Sok próbálkozás után nem tudtam ezt működésbe hozni, de a próbapad segítségével megállapítottam, hogy a szervók következetesen visszatértek ugyanahhoz a ponthoz ugyanazon szög mellett. Ami sokkal könnyebb, ezért csak ezt tettem. Lehet valami hátránya, amiről nem tudok, de nekem bevált. Ne feledje azonban, hogy minden szervó egyedi, és ezért minden szervóhoz egyedi szögekkel kell rendelkeznie. A legegyszerűbbnek azt találtam, hogy van egy „kalibrációs” python -szkriptünk, ahol sorra állíthatom a szervókat, és addig finomíthatom őket, amíg minden rendben van. Ez az első mellékelt forgatókönyv. Csak megjegyzi a szervókat, amelyeket nem tesztel, koncentráljon egyre, majd állítsa be az értékeket, ahogy szükséges. MEGJEGYZÉS: a próbapad kalibrálása egyszerű, durva és kész. Az óra összeszerelésekor újra kell kalibrálni, mert a fogaskerekek stb mindent megváltoztatnak. Ezután a második szkript meglehetősen alapvető. A következőket teszi
- Importáljon néhány könyvtárat
- mozgassa a Node-RED-ből érkező változókat a script változóiba
- leképezi a kalibrációs szkript által meghatározott szögeket az óra helyeihez.
- ellenőrizze, hogy a hely megtalálható -e a listában, és ha nem, akkor lépjen a "Veszély" oldalra
- írja le, mi történt a naplófájllal
- mozgassa a szükséges szervót a kívánt szögbe
- Állítsa le az egyik szervót a zümmögéstől *
3 dolog, amit meg kell jegyezni.
A naplófájl rendkívül hasznos a hibakereséshez. Ez azt jelenti, hogy megnézheti az üzenet Node-RED hibakeresését, majd megnézheti, mi történt a szkriptben. a kimenet így néz ki. Az első 3 az, hogy elviszem sétálni a kutyát, majd az első gyermek elhagyja a házat és megérkezik az iskolába. Ne feledje, hogy ellenőrizze az időt a Pi -n. Lehet, hogy alapértelmezés szerint UTC, és nem teszi lehetővé a nyári/téli időszámítás módosítását. Például. az alábbi időpontok 1 óra kint vannak.
2020-12-07_05: 36: 03 Ki = 0, hely = Utazás, részlet = Otthon, Szög = 10, index = 8
2020-12-07_05: 36: 04 Ki = 0, hely = kutya, részlet = Astons, szög = 86,5, index = 10
2020-12-07_06: 07: 49 Ki = 0, hely = Otthon, részlet = belépés, Szög = 75, index = 0
2020-12-07_06: 23: 53 Ki = 2, hely = Utazás, részlet = Otthon, Szög = 19, index = 8
2020-12-07_06: 30: 48 Ki = 2, hely = iskola, részlet = N, szög = 60,5, index = 2
Szervo-zümmögés
Az egyik szervó (0) folyamatosan zümmögött a forgatókönyv vége után. Ahogy el tudod képzelni, ez rendkívül bosszantó a konyhánkban. Találtam egy szálat valahol, amely megemlítette, hogy a szervo szögét "nincs" -re állítja, ami valahogy tétlenre állítja. Ez remekül sikerült, és a végén látható a forgatókönyvben.
Időzítések
Ne feledje, milyen alacsony a kéz, hogy éjjel -nappal söpörjön. A szkriptben látható, hogy van egy time.sleep (4) sor, mielőtt beállítottuk a szervót a zümmögés leállítására. Ennek az az oka, hogy engedélyeznie kell a kéznek, hogy elérje célját, mielőtt tétlen állapotba állítja. Ellenkező esetben csak leáll. Ez a kalibráláskor is fontos, mert több mozdulatot hajt végre a szkripten belül. Beállítanám, hogy mind a 12 helyre átköltözzön, hogy újra ellenőrizhessem őket. de kell egy kis idő a kettő között.
6. lépés: A szoftver véglegesítése - Telefonok szervóként
Miután beállította a tesztpadot és a szkripteket, futtathatja egy ideig élőben, és megtekintheti, hogyan működik valós időben. Itt találtam azokat a kivételeket, amelyeket hozzá kellett adnom a Node-RED folyamathoz.
Könnyen lekapcsolhatja és csatlakoztathatja családtagjait a Node-RED folyamatban, ha egyre szeretne koncentrálni. Például, ha kettő problémát okoz, de egyszerre egyet szeretne javítani. Ellenkező esetben ne feledje, hogy továbbra is üzeneteket kap minden csatlakoztatott telefonról.
Említettem a problémát, hogy a kutyasétáltatás és a bátyám háza elég közel van. 2 másik kihívásom volt.
Először is, más helyeken belüli helyek. A feleségem tanfolyamot végzett egy londoni főiskolán. Azt szerettük volna, hogy regisztrálják „iskolának”, de ez is „Londonban” van. Tehát újra fel kellett használnunk a kontextust, hogy azt mondjuk, hogy ha elhagyja ezt az „iskolát”, akkor lépjen át „Londonba”, ne pedig „Utazásba”.
Másodszor, a verseny körülményei. Mint említettük, a bátyám háza 2 utcával arrébb van, és a kedvenc kocsmánk/éttermünk közelében. Ez azt jelenti, hogy néha 2 jel érkezik egyszerre, vagy nagyon közel egymáshoz. Ez létrehozhat egy „versenyfeltételt”, ahol különböző eredményeket érhet el attól függően, hogy melyik jut el a leggyorsabban a logikáig, ami kiszámíthatatlan eredményekhez vezet. Ennek kiküszöbölése érdekében az összes „belépő” üzenetben 1 másodperces késleltetés történt a logikában, ami látszólag megoldotta a problémát. Lehet, hogy vannak jobb, elegánsabb módszerek ennek megoldására, de úgy tűnt, működik.
7. lépés: A fizikai óra építése - I. rész - a szervók és tengely
Most az a rész, amelyben a legkevésbé bíztam, ezért hagytam a végsőkig. Megfelelő méretű arcot és könnyű konstrukciót akartam. Én is izgultam, hogy fizikailag 2 szervót kerítsek a központi tengelyre. Ez azt jelentette, hogy miután röviden megnéztem az ebay -en a régi órákat, mint az utasításban, amit követek, úgy döntöttem, hogy több esélyt adok magamnak, ha magam építem.
- Kaptam 2 nagy (~ 30 cm) négyzet rétegelt lemezt, amiket hevertem (kb. 9 mm vastag).
- Ezután egy régi korlátot vágtam 4x10 cm -es részekre, és összecsavartam az elülső és a hátlapot.
- Miután megjelöltem a középső lyukat, úgy fúrtam, hogy akkora legyen, mint a legnagyobb sárgaréz cső.
- Aztán normál fehér fényes festékkel festettem.
- Némi kísérletezés után rájöttem, hogy valószínűleg nem szerezhetnék 4 szervót ugyanazon a tengelyen, ha mind a hátsó (vagy elülső) lemezhez vannak rögzítve. Tehát kellett, hogy 3 + 1 vagy 2 + 2 legyen minden tányéron. Végül 3 -at kaptam hátul és 1 -et elöl.
- Papíron kidolgoztam a szükséges eltolásokat, majd a sárgaréz csöveket megfeleltettem. Ne feledje, hogy a legvastagabb cső a legrövidebb, és a legvékonyabbnak egészen a hátlapig kell mennie. (Valójában a legkisebbet egy lyukba ágyaztam, amelyet részben a hátlapba fúrtam, de nem egészen úgy, hogy a tengely ne mozduljon hátra).
- A csövekhez vettem egy csővágót, de ez nyomással vágja le őket, és ez azt jelenti, hogy a kisebb csövet nem lehet behelyezni. Tehát fémfűrészt használtam, majd elég sok iratot kellett készítenem, hogy működésbe léphessenek. A gyémánt pontfájlok itt felbecsülhetetlen értékűek voltak.
- Ezután illesztettem a diagramot a bilincsek és fogaskerekek tényleges eltolásához *.
- Miután megvolt az eltolás, tudtam, hogy milyen magasra kell tenni a blokkokat a szervók felszerelésére. Pár tömböt összetörtem azzal, hogy túl vékonyra fűrészeltem őket, és fúrtam is a lyukat, hogy kiengedjem a vezetéket.
- Aztán jött az izgalmas rész, hogy hová tegyük a tömböket, hogy azok pontosan találkozzanak a tengelyen lévő fogaskerekekkel. Becsavartam az egyik blokkot, majd el tudtam forgatni a szervót, hogy megfeleljen a tengelynek, majd a második blokkba csavarom be a szervó másik végét. Azt is megállapítottam, hogy néhány blokkot ki kell vágnom, hogy elkerüljem a többi fogaskerék beragadását. Elég sokáig tartott.
- Miután mindezt elvégeztem, előkaptam a málna pi tokomat, két lyukat fúrtam bele, és az előlaphoz csavartam. Ezután hozzáadhatom a Pi -t, bezárhatom az elülső és a hátsó lemezt (miután összekötöttem a szervókat a pi -vel (emlékezve arra, hogy melyik szervó melyik családtaghoz tartozott), és a kezek felé fordulhatok…
* Itt találtam meg a legnagyobb problémát, amelyet még nem kell teljesen megoldanom. A sárgaréz csövek 1/4 ", 7/32", 3/16 ", 5/32" méretűek voltak. De a bilincsek metrikusak voltak (kivéve az 1/4 hüvelykeseket). A csöveket metrikusra alakítva 6,35 mm, 5,56 mm, 4,76 mm 3,97 mm volt. A többi bilincs 4 mm, 5 mm és 6 mm furatú volt. A legkisebb 2 és a a legnagyobbak rendben vannak, de egyértelmű, hogy a 0,44 mm túl nagy út a szorítóhoz, ezért ki kellett papírozni. Ezt többször kipróbáltam, és egy ideig rendben működik, majd újra lazul. Tehát a második legnagyobb a kéz nem működik megfelelően. Körülbelül 6 hónapig rendben volt, így az ezzel a jó idővel eltöltött idő jó befektetés volt. De ha ismét megtenném, lehet, hogy 1 mérettel feljebb vagy lejjebb mentem volna, egy kis különbséggel jobb szorító a csőhöz. pl. 9/32 ", 1/4", (rés), 3/16 ", 5/32"
8. lépés: Az óra mutatói
Az acéllemez mellett döntöttem, mert szeretnék valami merev, de kevésbé valószínű, hogy bepattan a készítés során. A vékonyság azt is jelentette, hogy a 4 leosztás kevésbé jelentett problémát.
- Először felvázoltam egy alakzatot.
- Ezután áttettem az acélra valamilyen maszkolószalag tetejére.
- Aztán nagyon hozzáértően vágtam ki őket a kirakósommal. Mind különbözőek voltak és vannak, de nem bánom.
- Aztán egy barátom azt javasolta, hogy kölcsönkérjem a padlóköszörűjét, hogy megformálja őket, és ez nagyszerű volt. Nagyon ajánlott. Ellenkező esetben a bejelentés hosszú ideig tart.
- Még volt némi reszelés, majd csiszolás, hogy ne legyen éles széle és szép legyen a felület.
- Furatokat kellett fúrnom a megfelelő sárgaréz csövekhez (ellenőrizze a levágott csöveket, ne az órára szerelt csöveket).
- Azt tapasztaltam, hogy a lyukaknak egy kis reszelésre van szükségük, hogy a csövekre kerüljenek, de egyszer már szorosak voltak, és nem kellett ragasztó. A kivétel az elülső kéz volt, amelyre „borítást” szerettem volna kapni. Így kivágtam egy (többnyire) kerek acéldarabot, miután megfúrtam a lyukat, és megfelelő méretűre kaptam, és elülsőre ragasztottam. az utolsó képen láthatod. Időnként az elülső kéznek szüksége van egy ragasztóra, hogy rögzítse, de néhány hamis indítás után a kezek nagyon jól működnek.
- Elutasítottam a fényképek ötletét (mert a gyerekek gyorsan panaszkodnak a dátumfotóinkra), ezért elhatároztam, hogy akrilfestékkel festem a kezdőbetűket.
9. lépés: Végezze el
Minden nagyon szépen működik. A kezek néha kissé ki vannak kapcsolva, attól függően, hogy honnan jöttek, de valójában mindegy, mert minden hely egy szakasz, nem csak egy vonal.
Néha furcsa módon a telefonom nem hajlandó tudomásul venni, hogy otthon vagyok. A térképen láthatóan az Owntracks sugarán belül vagyok, és még akkor is, ha jó a pontosság … fogalmam sincs, miért. úgy tűnik, nem sújtja a családom többi tagját. de a beállítás ugyanaz. Ez azt jelenti, hogy az Owntracks soha nem küld üzenetet, és elakadok az „Utazás” -ban. De általában végül rendeződik.
Nagyon hasznos volt a konyhánkban lenni, főleg tudni, hogy mikor indulnak haza a lányok az iskolából, vagy a barátaik házából, és hogy mikor kell készíteni nekik ételt/teát.
Ismét egy nagy kalapos tipp, köszönet a @ppeters0502-nek a követendő nagyszerű utasításokért. Remélhetőleg ezek hozzáadhatnak valamit az óra négy kézzel történő elkészítéséhez.
10. lépés: Azok a dolgok, amelyeket megtanultam, és jobban/másként tennék, ha újra kellene tennem
- A fizikai felépítésekhez próba és hiba kell. Az űr problémáit nem lehet előre megjósolni, csak bele kell merülni és megpróbálni.
- A kódok esetében elengedhetetlenek a Google -keresési problémák
- Kezdje az alapot és építse fel. A szervógépek a próbapad fán azt jelentették, hogy a legtöbbet fizikai felépítés nélkül tudtam működni
- Lehet, hogy a kezemet lézerrel vágtam egy CNC gépen. De nem tudtam, hol van a helyi, és szeretem az enyhe acél működését (olcsó volt, és az asztali daráló sokkal könnyebbé tette)
- léptetőmotor lehetséges, ha a hajtóművet 360 fokos fordulathoz használja. de előfordulhat, hogy a szervókat túl közel kell elhelyezni a központi tengelyhez
- Kétféle szervó létezik (Futaba és HiTech). Győződjön meg arról, hogy ezt ellenőrizte, mivel különböző számú foga van a résen. És először rosszat vettem …
- Ne kösse össze a kalapot rossz polaritással;-)
- A Google és a Stack Overflow barátai, ha elakadnak. De jó keresési kifejezéseket kell használnia…
- A tesztpad valójában egy módja annak, hogy sokkal egyszerűbben szerezzen be egy egyszerűbb, olcsóbb verziót. A felépítéssel járó komplikációk nagy része abból adódik, hogy a kezeket ugyanazon tengely körül kell forgatni. Ha ebben kompromisszumot köt, akkor minden sokkal könnyebb. És azt hiszem, hogy a 4 lehet az egyetlen tengely határa, kivéve, ha a tengely sokkal hosszabb lesz. Gondolom lehet 3 az elülső lemezen és három a hátlapon, ha a tengely hosszabb lenne…
11. lépés: Lehetséges jövőbeni kiterjesztések…?
A következő lépésekkel kapcsolatos elképzeléseim a következők.
- Szeretnék egy régi iPad-et órajelként használni. azaz készítsen digitális órát. Esetleg böngészőalapú vagy alkalmazás. Mivel a fizikai óra lényegében hontalan (azaz nem tudja, hol van jelenleg, kivéve, ha a kezek fizikai helyzetben vannak), szükségem lesz egy állandó adattárolásra. A Node Red ki tud írni a helyi fájlrendszerbe, így valószínűleg ezt tenném.
- Ha ezt megtenném, szeretném, ha otthonról is láthatnám. De akkor tényleg rendeznünk kell a biztonságot. Mivel ugyanaz a wifi -hálózaton belüli hozzáférés egy dolog, az internetről való hozzáférés más. Jelenleg fogalmam sincs, hogyan lehet ezt a legjobban megtenni, de gyanítom, hogy az MQTT előfizetés más irányban működhet (a pi közzéteszi az aktuális állapotot, és külső eszközök előfizetnek rá)…?
- Nagyon szeretném az egyik kezemet a „Külföld” című filmhez. de ez bonyolult lehet OwnTracks szempontból. Lehet, hogy csak a long/latot használná néhány hatalmas sugárral kombinálva?
Ajánlott:
Készítse el saját kézzel forgatott vészhelyzeti Powerbankját: 4 lépés (képekkel)
Készítse el saját kézzel forgatott vészhelyzeti Powerbankját: Ebben a projektben megmutatom, hogyan lehet kézi forgatású generátort létrehozni egy módosított powerbankkal együtt. Így vészhelyzetben töltheti fel powerbankját konnektor nélkül. Útközben elmondom azt is, hogy miért a BLDC mot
"Resys" ellenállástároló helymeghatározó rendszer: 7 lépés (képekkel)
Ellenállástároló helymeghatározó rendszer "Resys": Ez egy olyan rendszer, amely megkönnyíti az ellenállások megtalálását. Keresse meg a kívánt értéket, és a megfelelő fiók világít. Ez a rendszer kiterjeszthető a kívánt fiókszámra
ESP8266 Hálózati óra RTC nélkül - Nodemcu NTP óra Nem RTC - INTERNET ÓRA PROJEKT: 4 lépés
ESP8266 Hálózati óra RTC nélkül | Nodemcu NTP óra Nem RTC | INTERNET ÓRA PROJEKT: A projektben óra projektet készítenek RTC nélkül, időbe telik az internet az wifi használatával, és megjeleníti az st7735 kijelzőn
Helymeghatározó NodeMCU ESP8266 segítségével: 10 lépés
Helymeghatározó a NodeMCU ESP8266 segítségével: Kíváncsi vagy, hogyan tudja a NodeMCU nyomon követni a tartózkodási helyét? GPS modul és kijelző nélkül is lehetséges. A kimenet koordinátái lesznek az Ön helyén, és látni fogja őket a soros monitoron. A következő beállítás volt
Egyéni óra fényképes kézzel: 5 lépés (képekkel)
Egyéni óra fényképes kézzel: Vannak, akik órát figyelnek. Most mindenki lehet az óra. Más projektek személyre szabják az óra számlapját. Ez testre szabja az óra mutatóit. Drágának tűnik, de kevesebb, mint 5 dollár, és körülbelül 30 perc óránként. Chr -hez tökéletes