Talaan ng mga Nilalaman:

Oras ng Lokasyon na 'Weasley' Na May 4 na Kamay: 11 Mga Hakbang (na may Mga Larawan)
Oras ng Lokasyon na 'Weasley' Na May 4 na Kamay: 11 Mga Hakbang (na may Mga Larawan)

Video: Oras ng Lokasyon na 'Weasley' Na May 4 na Kamay: 11 Mga Hakbang (na may Mga Larawan)

Video: Oras ng Lokasyon na 'Weasley' Na May 4 na Kamay: 11 Mga Hakbang (na may Mga Larawan)
Video: I BUILT THE BILLIONAIRE GANG MANSION AND STAYED FOR A NIGHT OF LUXURY 2024, Hulyo
Anonim
Oras ng Lokasyon na 'Weasley' Na May 4 na Kamay
Oras ng Lokasyon na 'Weasley' Na May 4 na Kamay

Kaya, sa isang Raspberry Pi na umiikot nang ilang sandali, nais kong makahanap ng isang magandang proyekto na magpapahintulot sa akin na magamit ito nang husto. Natagpuan ko ang mahusay na Instructable Build Your Own Weasley Location Clock na ito ni ppeters0502 at naisip kong makabubuting subukan.

Ang orasan ay karaniwang binubuo ng isang Raspberry Pi na kumokontrol sa mga servo upang i-on ang mga kamay ng orasan. Tulad ng sa bahay ng pamilya Weasley sa mga libro / pelikula ni Harry Potter, ang bawat miyembro ng pamilya ay may sariling kamay. Ang bawat kamay ay tumuturo sa kasalukuyang lokasyon ng miyembro ng pamilya na iyon. Nakamit ito ng orasan sa pamamagitan ng pagtanggap ng mga mensahe mula sa mga mobile phone ng pamilya tuwing pumapasok sila o umalis ng isang paunang natukoy na radius.

Ang mga pangunahing pagkakaiba sa nakaraang Maaaring Makatuturo ay kailangan kong magkaroon ng 4 na kamay, hindi 2 (kung hindi man ang aking mga anak na babae ay magreklamo) at nagpasya akong bumuo din ng frame, hindi makakuha ng isang lumang orasan upang magamit muli. Ito ay dahil nag-aalala ako na ang puwang ay magiging isang problema sa isang umiiral na kaso ng orasan, na may pangangailangan na magkasya sa 4 na mga servo atbp.

Ito ay tumagal ng mas matagal kaysa sa inaasahan ko, kahit na karamihan kung saan nahahanap ko ang mga fiddly na problema na kung saan ako stumped, at kung saan ay tila hindi sakop ng orihinal na post. Walang laban sa orihinal na Maaaring turuan, na sa pangkalahatan ay mahusay, ngunit ilang taon na ang lumipas at ang mga bersyon ng mga bagay ay nagbago … atbp. Gayundin, ang pagiging nasa UK ay nangangahulugang ang ilan sa mga elemento ng Imperyal / Sukatan ay nagdulot ng higit pang mga hamon kaysa sa inaasahan ko.

Gayundin, habang OK ako sa pag-coding, ang pisikal na paggawa ng orasan ay tiyak na nakaunat sa akin, at nangangailangan ng ilang mga karagdagang tool, na medyo pinabagal din ako.

Sa huli isasama ko ang isang seksyon sa "Mga bagay na gagawin ko nang iba / mas mahusay kung gagawin ko ito muli …"

Mga Pantustos:

Isa sa mga bagay na tumama sa akin ay ang mga mamahaling sangkap na dapat gawin sa mga kamay ng orasan. Ang 4 na kamay ay tiyak na mas mahal kaysa sa 2. Nagpasya akong maglagay ng ilang mga gastos upang mayroon kang ideya. Ito ang kauna-unahang pagkakataon na naidagdag ko ang lahat, at hindi pinapansin ang mga tool, sa palagay ko gumastos ako ng halos £ 200. Dagdag pa ang ilang mga bagay na hindi ko ginamit (at hindi isinama sa ibaba) kasama ang Pi, kasama ang supply ng kuryente na pareho ko na.

Pi atbp

  1. Raspberry Pi - hindi matandaan kung magkano ang orihinal na gastos ngunit ito ay isang Model 2B. Sa palagay ko na kung wala ka pa, kahit na kahit isang Pi Zero ay maaaring gawin. Nagdagdag ako ng isang wifi dongle at SD card kasama ang Raspbian. At mayroon akong isang lumang charger ng telepono sa Android na nakahiga.
  2. Adafruit Servohat para sa Pi - £ 16
  3. Suplay ng kuryente para sa Servohat - Pinilit talaga kong hanapin na ang lahat ng mga website ay itinuro lamang sa site ng adafruit na pagkatapos, malinaw na inirekomenda ang isang supply ng kuryente sa US. Pagkatapos napagtanto ko na mayroon akong isang lumang variable supply ng boltahe na may mapagpalit na mga tip kaya ginamit ko iyon. Ngunit ang US ay $ 8 kaya't iyon ang ballpark.
  4. Kaso para sa Pi, upang mailakip ko ito sa frame ng orasan. £ 5

Servo's at gears

Narito ko binabanggit ang presyo para sa lahat ng 4, kaya hatiin kung nais mo ng mas kaunting mga kamay (Ang pagdaragdag nito ay ~ £ 40 PER KAMAY = £ 160: -o

  1. 4 x Servos - Ginamit ko ang mga inirekomenda ng ppeters0502 - na matatagpuan sa ebay ng ~ £ 15 bawat = £ 60 - Hinanap ko ang sumusunod na teksto na "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-degree "ngunit kung minsan hindi sila magagamit
  2. 4 x mga tubo na tanso na kung saan eksaktong nilagyan ang bawat isa - ~ £ 3 bawat isa. Nakakuha ako ng 1 bawat isa sa 1/4 ", 7/32", 3/16 ", 5/32" = £ 11
  3. 4 x clamp kung aling clamp papunta sa mga tubo na tanso upang payagan kang maglakip ng mga gears. ~ £ 7 bawat isa = £ 28. Nakuha ko sila mula sa mga ActiveRobots na gumagawa ng regular na mga order mula sa Servocity sa US, na pinapayagan kang iwasan ang pang-internasyonal na pagpapadala. Maaari rin silang makakuha ng anumang bagay na mahahanap mo sa pangunahing site ng US ng Servocity. Napaka-madaling gamiting ito para sa susunod na 2 na item
  4. 4 x acetyl 0.770 "pattern gears para sa pag-mount sa mga clamping hub. ~ £ 6 bawat isa = £ 24
  5. 4 x acetyl spline-mount acetyl gears para sa pag-mount sa servos. ~ £ 6.50 bawat isa = £ 26
  6. 1 x pack ng hex nut sa mga nakakabit na gears sa clamping nut = £ 2.60
  7. 1 x 7/64 "hex key (allen key) dahil ang anumang nagmumula sa US ay imperyal, kaya't ang daan-daang mga allen key na mayroon ako ay walang silbi = £ 1

Para sa Physical build

Dito ko halos ginagamit ang mga offcut ng mga bagay-bagay na sinungaling ko

  1. 2 x mga parisukat ng playwud para sa plato na 'mukha' at 'likod'
  2. Pagkatapos ay pinutol ko ang 4x10cm na mga silindro mula sa isang lumang banister rail na mayroon ako, upang ikonekta ang likod sa mukha
  3. Ang ilang mga bloke upang mai-mount ang mga servo sa tamang offset - mga softwood offcuts lamang na pinutol ko sa laki.
  4. Iba't ibang mga tornilyo. mula sa napakaliit (upang ilakip ang Pi case sa frame) hanggang sa daluyan (upang magkabit ng frame)
  5. 0.75mm sheet ng banayad na bakal tungkol sa 50cm x 20cm (upang putulin ang mga kamay mula sa). Ito lang ang binili kong ~ £ 9 kay Wickes

Mga kasangkapan

Ang ilang mga bagay na mayroon ako at ang ilan ay hiniram ko o binili

  1. Soldering Iron + electrical solder - para sa paglakip ng mga konektor sa Adafruit Hat & Pi.
  2. Itinaas ng Jigsaw - para sa pagputol ng magaspang na hugis ng mga kamay
  3. Drill. isang normal na cordless 18V drill lamang
  4. Mga drill bits - Tandaan na kakailanganin mo ang mga imperyal na drill bit upang gumawa ng mga butas na tumutugma sa mga tubong tanso. Nagawa kong mangutang ng ilan.
  5. hacksaw - para sa pagputol ng mga tubong tanso. Huwag gawin ang ginawa ko at gumastos ng £ 3 sa pamutol ng tubo, gumagana ito sa pamamagitan ng presyon at nangangahulugan na ang loob ng mga tubo ay medyo maliit. kaya ang susunod na sukat-down na tubo ay hindi pagkatapos magkasya
  6. Bench grinder - Wala akong isa sa mga ito ngunit mayroon ang isang kaibigan at mas pinadali ang paghubog ng mga kamay. Hanggang doon gumagamit lang ako ng mga file. Hindi ako bibili ng isa para lamang sa proyektong ito, ngunit para sa mga kamay na metal ito ay mahusay.
  7. Bumili ako ng iba't ibang mga file ng iba't ibang mga brilyante (napakaliit). kapaki-pakinabang para sa mga kamay at tubo sa paligid ng £ 15
  8. magaspang at makinis na liha
  9. ang ilang maliliit na clamp ay nagtataglay ng mga bagay sa lugar kapag nag-drill.
  10. isang bisyo sa parehong dahilan.

Hakbang 1: Pagse-set up ng Iyong Mga Telepono upang Maipadala ang Kanilang Lokasyon sa Iyong Pi (Bahagi I MQTT Broker)

Ang bit na ito ay inilarawan nang mahusay ng ppeters0502 sa kanyang mahusay na Weasley Clock Instructable. Kakatwa, kahit na maaaring sumasalamin ng magkakaibang mga kahanas, nagsimula siya sa pagbuo at pagkatapos ay lumipat sa software, ginawa ko ito sa kabilang banda. Kaya, nagsimula ako sa telepono… hang on, no I did, nagsimula ako sa MQTT broker, na Hakbang 6 sa kanyang Instructable. Aalisin ko ang lahat ng mga piraso na mahusay niyang ginagawa at magtapon lamang ng ilang mga piraso na maaari kong idagdag. Nagpunta ako sa ruta ng CloudMQTT na nabanggit niya.

BUTas sinusulat ko ito, sinuri ko ang link sa mga plano at nalaman na wala nang isang libreng plano! Inilayo nila ito, para sa kung ano ang parang makatuwirang mga batayan. ibig sabihin, ang mga tao ay magse-set up ng isang libreng halimbawa at pagkatapos ay hindi kailanman gamitin ito. Hindi ko napansin dahil maaaring magpatuloy ang mga kasalukuyang pagkakataon. Kaya hindi ako magbabago. Ngunit ginagawa nitong medyo kalabisan ang mga tagubilin. Mukhang mayroong 3 mga pagpipilian.

  1. Bayaran ang $ 5 bawat buwan para sa Cloud MQTT (ngunit parang mahal ito para sa orasan sa isang patuloy na batayan).
  2. Pumunta sa ruta ng Mosquitto sa Pi tulad ng inilarawan sa unang Maituturo. Hindi ako maaaring magkomento doon, ngunit maaaring maging isang mahusay na pagpipilian.
  3. Mag-google lang ng "free MQTT cloud broker" at mukhang may ilan pa.

Kaya, sa palagay na mayroon kang isang gumaganang MQTT broker, kung ito ay anumang bagay tulad ng isa sa CloudMQTT pagkatapos ay magkakaroon ng isang Server, User, Password at Port na ipinakita. Kakailanganin mo ang lahat ng ito para sa pagse-set up ng iyong mga telepono upang maipadala sa broker ang iyong mga lokasyon / paggalaw.

Hakbang 2: Pagse-set up ng Iyong Mga Telepono upang Maipadala ang Kanilang Lokasyon sa Iyong Pi (Bahagi II Mga Owntrack)

Nababalot din ito nang maayos sa orihinal na Maituturo, sa Hakbang 7 (Android), 8 (iOS) at 9 (pagse-set up ng Mga Rehiyon).

Mayroon lamang akong mga iOS device kaya hindi sinubukan ang hakbang 7.

Ano ang idaragdag ko sa mga tagubiling iyon?

  1. Sa pag-set up mayroon ding mga patlang na TrackerID at DeviceID. Ang mga ito ay dapat na mayroon ka upang makilala ka sa loob ng iyong pamilya. Hal. Mayroon akong mga ito bilang R at RPhone ayon sa pagkakabanggit. Nangangahulugan ito na maaari kang dumaan sa orasan kung aling Servo at samakatuwid kung aling kamay ang liliko.
  2. Ang mga rehiyon ay ang pangalan para sa mga lokasyon na nais mong subaybayan.
  3. Ang bawat rehiyon ay tinukoy ng isang Pangalan, isang Latitude, isang Longitude at isang Radius.
  4. Dahil nais kong magkaroon ng isang bilang ng mga lokasyon bilang isang seksyon sa aking Orasan, gumamit ako ng isang kombensiyon sa pagpapangalan, na naging napaka kapaki-pakinabang. Posible ang iba pang mga pamamaraan ngunit gumana ito para sa akin.

    • Halimbawa, Para sa PAMILyang seksyon ng orasan nais kong magkaroon ng aking mga magulang at kapatid at mga magulang at kapatid ng aking asawa. Samakatuwid mayroon akong mga lokasyon tulad ng "Family Tom", "Family Dick", Family Harry "&" Family parentsR ". Nangangahulugan ito na maaaring malaman ng susunod na yugto kung ano ang ipapasa sa Clock.
    • Tandaan na ang mga tao ay maaaring magkaroon ng iba't ibang mga lokasyon. Ngunit hangga't sila ay pare-pareho sa pagbibigay ng pangalan na kombensiyon sa gayon ay mabuti. Hal. ang aking trabaho ay magiging iba sa rehiyon ng trabaho ng aking asawa at tatawaging iba. ngunit hangga't pareho silang nagsisimulang "Magtrabaho" pagkatapos ay ang lahat ay mabuti.
  5. Nais mong itakda ang mode sa 'Makabuluhang' sa screen ng Maps. Nangangahulugan ito na nakakakuha ka lamang (karamihan) ng mga mensahe kapag nagpasok ka o umalis sa mga rehiyon. Tila ito ang nai-update na bersyon ng tala na minarkahan MAHALAGA: sa pagtatapos ng Hakbang 8 sa orihinal na Maaaring turuan.
  6. Tulad ng nabanggit sa orihinal na Maaaring turuan, ang paggamit ng Google Maps ay isang mahusay na paraan upang malaman ang Lat / Long ng kung saan. Natagpuan ko itong mas mahusay na gawin ito nang maramihan, alamin ang lahat ng Lat / Longs ng aking lokasyon, pagkatapos ay na-paste ko ang mga ito sa Mga Tala (sa aking Mac) at sa pag-sync ng cloud, nangangahulugan ito na mahiwagang lumitaw ang mga ito sa aking iPhone sa Mga Tala at maaari kong kopyahin / i-paste ang mga ito sa Owntracks. Nangangahulugan din ito na maaari kong ipadala ang file sa mga telepono ng aking pamilya at lahat kami ay may pare-parehong lokasyon.
  7. Ang mga lokasyon na malapit na magkasama ay maaaring maging sanhi ng mga problema. Ang aking kapatid ay nakatira sa 2 kalye ang layo, at sa una ang aking telepono ay patuloy na iniisip na ako ay sabay-sabay sa rehiyon ng kanyang bahay pati na rin sa bahay. Sa paglaon kailangan kong maglagay ng karagdagang lohika sa Node Red upang mahuli at balewalain ang nangyayari.

Hakbang 3: Pag-set up ng Raspberry Pi

Pag-set up ng Raspberry Pi
Pag-set up ng Raspberry Pi

Kaya narito na ipinapalagay ko na mayroon kang isang base na naka-set up at sa wifi. Nagpapatakbo ako ng Raspbian ngunit hindi dapat maging mahalaga. Gumamit ng mga tagubilin sa raspberrypi.org upang ma-set up ang lahat.

Tandaan na ang isang Pi ay may mga port para maipakita sa isang monitor at keyboard / mouse atbp. PERO malinaw na sa sandaling mayroon ka nito sa orasan, ayaw mo ng anuman sa mga iyon. Kaya ang sagot, na iminungkahi ng isang tao sa Raspberry pi website, sa palagay ko, ay upang mag-set up ng isang koneksyon sa VNC. Pinapayagan kang kumonekta mula sa isa pang aparato sa Pi at kontrolin din ito. Ginagawa ko ito mula sa aking Mac ngunit nagawa ko rin ito mula sa isang iPad. Iminumungkahi kong gumamit ng isang bagay gamit ang isang keyboard para sa madaling paggamit.

Nalaman ko lang na parang pinadali nila mula nang kumonekta… tingnan dito

Mahalaga na kumonekta ka at makakuha ng isang window na kung saan ay ang karaniwang interface ng Pi.

Kaya, mayroon kang isang window sa iyong Pi mula sa iyong laptop o computer.

Ngayon kailangan mong ikonekta ang Mga Serbisyo.

Una kailangan mong gumawa ng ilang medyo pangunahing paghihinang upang makuha ang adafruit hat sa Pi. Ito ay isang maliit na fiddly, ngunit sa kabila ng hindi paghihinang sa loob ng 30-kakaibang mga taon, ayos lang. Tulad ng dati, nakakita ako ng isang kapaki-pakinabang na video sa YouTube na mailalakad ako dito, na isang malaking tulong.

Habang ang sumbrero ay maaaring magpatakbo ng 16 servos, kailangan ko lamang ng 4 at sa gayon ay nag-abala lang ako sa paghihinang sa unang hanay ng 4 na mga pin.

Pagkatapos ay itulak lamang ng mga servo ang mga pin. Ginawa ko muna ang isa upang suriin na maaari kong ilipat ang servo.

Dito ko na-hit ang aking unang pangunahing roadblock. Mayroon akong isang napaka-pangunahing script ng sawa upang ilipat ang mga servos at literal na walang nangyari. Gumugol ako ng halos isang linggo sa pagsubok ng mga bagong script atbp, at pagkatapos ay nagsimulang lumitaw ang usok sa sumbrero. Patayin ang lahat, sinuri ko ang eskematiko. Ito ay isang bahagi na pinoprotektahan laban sa pabalik na polarity. Dahil mayroon akong isang multi-tip, mapagkukunan ng multi-boltahe na mapagkukunan, napalampas ko ang katotohanan na maaari kang magkaroon ng output ng DC na pupunta sa parehong paraan sa pamamagitan ng pag-reverse ng tip. Nagkamali ako (50:50 pagkakataon) at sinunog lamang ang aking unang sumbrero ng adafruit

:-(Kaya't isang kaunting pagkaantala habang bumili ako ng bago, muling nag-solder at naitama ang tip. Mas mabuti.

Susunod na kailangan kong mag-ehersisyo kung paano ilipat ang mga servos sa tamang punto sa orasan. Darating iyon sa Hakbang 5, ngunit ang ginawa ko, na hindi naitayo ang aktwal na orasan, ay gaanong i-turnilyo ang mga servo sa isang random na piraso ng kahoy, at idikit ang ilang masking tape na may arrow sa kanila, tulad ng sa larawan. Nagbigay ito ng isang napaka-visual na feedback sa kung ano ang nai-coding ko.

Hakbang 4: Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)

Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)
Pag-install ng Node Red (Pagkuha ng Mga Mensahe Mula sa MQTT Server sa Iyong Python Script)

Ang Node-RED ay isang programa na na-install mo sa Pi, na nagbibigay sa iyo ng isang visual interface (sa iyong browser) upang makatanggap ng mga mensahe mula sa iyong MQTT Server at gamitin ito upang maipasa ang tamang impormasyon sa iyong script ng sawa (sakop sa susunod na hakbang (Hakbang 5). Medyo ginamit ko ang mga tagubilin ng ppeters0502 sa Hakbang 5. Mayroong lohika sa mga daloy na ito, at karagdagang lohika sa sawa, at maaari kang magkaroon ng higit pa o mas kaunti sa bawat isa, depende sa iyong kagustuhan. Talaga kailangan mong gawin ang mga sumusunod

  1. Ang pagtanggap ng mga node para sa mga mensahe sa MQTT - ang mga ito ay light purple at mayroon akong 1 bawat miyembro ng pamilya
  2. I-mapa iyon sa servo na nais mong ilipat (bilang 0, 1, 2, 3)
  3. Tukuyin kung papasok ka o umaalis sa isang radius sa OwnTracks
  4. Mag-ehersisyo kung aling lokasyon ang kailangang ituro sa servo

    Mayroong ilang mga pagbubukod sa mga pangunahing alituntunin na kailangan kong buuin

  5. Itakda nang tama ang anggulo

Mayroon akong Node-RED na ginagawa ang unang 4, at pinananatiling simple ang Python.

Maaari mong makita ang pangunahing daloy dito, at ang lahat ng daloy ay maaaring mai-export sa format dito, na nangangahulugang maaari mong mai-import ang pangunahing daloy na ito sa iyong Node-RED at pagkatapos ay umangkop. Tandaan na tinanggal ko ang lahat ng mga koneksyon mula sa mga lilang node upang hindi mo ma-access ang aking halimbawa ng MQTT. Inalis ko rin ang lahat ng mga test-node dahil naglalaman ang mga ito ng aktwal na data … maaaring kailanganin mong baguhin ang uri ng file na ito upang maging flow.json upang mai-import sa iyong Node-RED ngunit hindi ako pinayagan ng mga Instructable na i-upload iyon.

Ang mga berdeng node ay mga debugging node na pagkatapos ay nagpapakita ng output sa window ng pag-debug sa kanan ng screen (maaaring kailanganing palawakin - hanapin ang arrow sa kalahating pataas sa kanan)

Ang unang kaunting gagawin ay ang "Live - para sa pag-debug lamang" ng kaunti. Sinusuri nito na maaari mong matanggap ang mga mensahe sa MQTT at makita kung ano ang nasa kanila. Ang json ay isang mas nakabalangkas na bersyon ng mga mensahe na nagbibigay-daan sa iyo upang mabilis na mailabas ang data. Sa daloy na ito, kapag nakatira, ikinonekta ko ang mga lilang node sa kaliwang tuktok sa json node sa kanan ng mga ito.

Mga Node sa Pagsubok

Kapag alam mo kung paano ang hitsura ng mga mensahe sa live, napakasawa na maglakad palabas ng iyong bahay at sa kalsada at pabalik, upang makapagsimula lamang ng isang kaganapan. Kapag nagawa mo na iyon, maaari mong kopyahin ang mensahe sa isang pagsubok na TEST, at pagkatapos ay i-click lamang ito upang gayahin ang kaganapan. Maaari mo ring baguhin ang data, upang magpanggap para sa iba't ibang mga lokasyon (siguraduhin na tumutugma sila nang eksakto sa mga pangalan ng lokasyon sa Owntracks).

Maaari mong makita sa daloy na ang mga kaso ng pagsubok lahat ay papunta sa isang hiwalay na node at pagkatapos ay papunta sa json node. Ito ay pulos upang maayos ang screen.

Hindi ko mabibigyang diin nang sapat kung gaano kapaki-pakinabang ang mga node na ito, at ganun pa rin.

Tumatawag sa Python

Kaya't naabot ko ang susunod na roadblock. Ang isang ito ay kumuha ng maraming googling sa mga forum atbp. Ang aking daloy ay gagana nang perpekto, ngunit hindi nito maa-trigger ang aking script sa sawa. Hindi ko ito magawa, ngunit ilalayo ko sa iyo ang pagmumura atbp. Upang masabi lang iyon, tulad ng naka-highlight sa pangalawang screenshot, dapat mong tukuyin ang python3, tulad ng ipinapalagay ng Node-RED na python2, maliban kung tinukoy mo.

2 karagdagang komplikasyon - kung kinakailangan lamang

Nagkaroon ako ng isang bilang ng mga hamon kung saan ang lohika ay hindi masyadong gumana. Una ay ang Owntracks ay medyo napunta at, habang ang aking kapatid ay naninirahan sa 2 kalye ang layo, madalas na sinabi na nasa 2 lugar ako nang sabay-sabay, o patuloy na lumilipat. Ang tanging paraan lamang upang maiikot ko ito ay upang magdagdag sa isang kundisyon upang ihinto ang maling mga positibo. Kung inangkin na nasa bahay ako niya, pagkatapos ay dumaan ako at sinuri ang tunay na Longhitud / Latitude sa mensahe at pinalagpas ito kung sinabi kong nasa bahay talaga ako.

Ang iba pang problema ay iyon, kapag naglalakad ng aking aso hindi talaga ako nakakakuha ng isang mahusay na radius. Karaniwan akong naglalakad sa parehong lugar, kaya narito, sinabi ko "kung papasok ako sa lugar na ito, tiyak na nilalakad ko ang aso, at hanggang sa makauwi ako." nangangahulugan ito na hindi ito lilipat sa pub na nadaanan ko pauwi, o iba`t ibang mga lokal na lugar na maaaring magpalitaw habang naglalakad ng aso. Upang magawa ito kailangan ko upang mag-set up ng ilang mga paulit-ulit na variable ng Context (tingnan ang mga ito sa Node-RED. Tingnan ang screenshot. Nagpapatuloy ang mga variable na ito hanggang sa ma-restart ang Node-RED at sa gayon masasabi kong Kung sa isang paglalakad ng aso, itakda ang Context Variable sa "Aso". Pagkatapos ay huwag pansinin ang ANUMANG iba pa maliban kung 'Pumasok' Ako sa Tahanan.

Ang huling screenshot ay ang isa sa aking tunay na pangwakas na daloy, kasama ang lahat ng mga pagbubukod, para lamang sa iyong interes.

Hakbang 5: Talagang Paglipat ng Mga Serbisyo Sa Python sa Pi

Isang maikling paglilipat sa mga servo. Wala akong alam tungkol sa mga servo, ngunit maraming impormasyon sa online. Ang mga ginamit ko ay tuluy-tuloy na servos na maaaring lumipat sa 360 degree, at maayos. Ang iba pang pangunahing uri ay ang mga stepper servos na lumilipat sa mga chunks (mga hakbang) at tila umakyat lamang sa halos 180 degree (malinaw na hindi kapaki-pakinabang dito). Ang bentahe ng mga stepper servos ay maaari mo lamang ilagay sa isang anggulo at lumipat sila sa puntong iyon, at huminto. Ang lahat ng dokumentasyong nahanap ko ay nagsabi na ang tuluy-tuloy na servos ay gumagana sa pamamagitan ng pagbibigay ng isang bilis, at isang oras upang mapanatili ang bilis na iyon (hal. Buong bilis para sa 1s) at nagtatapos sila kung saan sila nagtatapos, ngunit ito ay kaugnay sa kanilang panimulang punto. Matapos ang maraming mga pagtatangka, hindi ko ito magawang gumana, ngunit nalaman, gamit ang bench ng pagsubok, na patuloy na ibinalik ang mga servos sa parehong punto na binigyan ng parehong anggulo. Alin ang mas kadali, kaya't ginawa ko lang iyon. Maaaring may ilang mga downside na hindi ko alam tungkol sa, ngunit ito ay gumagana para sa akin. Gayunpaman, tandaan na ang bawat servo ay natatangi, at sa gayon kailangan mong magkaroon ng isang natatanging hanay ng mga anggulo para sa bawat servo. Natagpuan ko ang pinakamadaling magkaroon ng isang 'pagkakalibrate' python script, kung saan maitatakda ko ang mga servos sa mga anggulo, pinipino ang mga ito hanggang sa maayos silang lahat. Ito ang unang script na naka-attach. I-comment mo lang ang mga servo na hindi mo sinusubukan, tumutok sa isa, at pagkatapos ay ayusin ang mga halagang kailangan mo. TANDAAN: ang pag-calibrate para sa test-bench ay simple at magaspang at handa na. Kakailanganin mong i-calibrate muli kapag ang orasan ay natipon, dahil ang mga gears atbp ay babaguhin ang lahat. Pagkatapos ang pangalawang script ay medyo batayan. Ginagawa ang sumusunod

  1. Mag-import ng ilang mga aklatan
  2. ilipat ang mga variable na nagmumula sa Node-RED sa mga variable sa script
  3. nai-mapa ang mga anggulo na tinukoy ng script ng pagkakalibrate sa mga lokasyon sa oras.
  4. suriin na ang lokasyon ay matatagpuan sa listahan, at kung hindi pagkatapos ay lumipat sa "Peril"
  5. isulat kung ano ang ginawa sa isang log-file
  6. ilipat ang kinakailangang servo sa kinakailangang anggulo
  7. Itigil ang isang servo mula sa 'buzzing' *

3 bagay na dapat tandaan.

Ang log-file ay sobrang kapaki-pakinabang para sa pag-debug. Nangangahulugan ito na maaari mong tingnan ang Node-RED debug ng isang mensahe, at pagkatapos ay makita kung ano ang nangyari sa script. ganito ang output. Ang unang 3 ay ang paglalakad sa aso, at pagkatapos ay ang Bata 1 na umaalis sa bahay at makakarating sa paaralan. Tandaan na suriin ang oras sa Pi. Maaari itong default sa UTC at hindi payagan ang mga pagbabago sa oras ng tag-init / taglamig. Hal. ang mga oras sa ibaba ay 1 oras na labas.

2020-12-07_05: 36: 03 Who = 0, loc = Travelling, detail = Home, Angle = 10, index = 8

2020-12-07_05: 36: 04 Sino = 0, loc = Aso, detalye = Astons, Angle = 86.5, index = 10

2020-12-07_06: 07: 49 Sino = 0, loc = Home, detalye = pagpasok, Angle = 75, index = 0

2020-12-07_06: 23: 53 Who = 2, loc = Travelling, detail = Home, Angle = 19, index = 8

2020-12-07_06: 30: 48 Sino = 2, loc = Paaralan, detalye = N, Angle = 60.5, index = 2

Servo-buzzing

Ang isa sa mga Servos (0) ay patuloy na naghihimok pagkatapos ng pagtatapos ng script. Tulad ng naiisip mo, ito ay sobrang nakakainis na magkaroon sa aming kusina. Natagpuan ko ang isang thread sa kung saan binanggit ang pagtatakda ng anggulo ng servo sa 'wala' na kahit papaano ay itinatakda ito upang maging idle. Gumana iyon nang napakatalino at makikita sa iskrip sa huli.

Mga oras

Tandaan kung gaano kababa ang kinakailangan ng isang kamay upang walisin ang orasan. Maaari mong makita sa script na mayroong oras. Tulog (4) na linya bago namin itakda ang servo upang ihinto ang paghiging. Iyon ay dahil kailangan mong payagan ang kamay na makarating sa patutunguhan nito bago mo ito itakda. Kung hindi man ay tumitigil lamang ito. Mahalaga rin ito kapag ini-calibrate ito, dahil gumagawa ka ng maraming mga galaw sa loob ng script. Itatakda ko itong tumatakbo upang lumipat sa lahat ng 12 mga lokasyon sa pagliko, upang masuri ko silang lahat. ngunit kailangan mo ng kaunting oras sa pagitan.

Hakbang 6: Pagtatapos sa Software - Mga Telepono sa Mga Serbisyo

Kapag mayroon ka ng pagsubok na bench at na-set up ang mga script, maaari mo itong patakbuhin nang 'live' nang kaunti at makita kung paano ito gumagana sa real time. Dito ko nahanap ang mga pagbubukod na kailangan kong idagdag sa aking daloy ng Node-RED.

Madali mong mai-disconnect at ikonekta ang mga miyembro ng pamilya sa daloy ng Node-RED kung nais mong pag-isiping mabuti sa isa. Halimbawa, kung ang dalawa ay nagdudulot ng mga problema ngunit nais mong ayusin nang paisa-isa. Kung hindi man, tandaan na patuloy kang makakatanggap ng mga mensahe mula sa anumang mga konektadong telepono.

Nabanggit ko ang problema sa paglalakad sa Aso at ang bahay ng aking kapatid na medyo malapit. Mayroon akong 2 iba pang mga hamon.

Una, ang mga lokasyon sa loob ng iba pang mga lokasyon. Ang aking asawa ay gumagawa ng kurso sa isang kolehiyo sa London. Nais naming magrehistro iyon bilang 'Paaralan', ngunit nasa 'London' din ito. Kaya kailangan naming muling gamitin ang konteksto upang masabi na kung aalis ka sa 'Paaralang' iyon pagkatapos ay lumipat sa 'London' hindi 'Paglalakbay'.

Pangalawa, mga kondisyon sa lahi. Tulad ng nabanggit, ang bahay ng aking kapatid ay 2 kalye ang layo, at malapit din sa aming paboritong pub / restawran. Nangangahulugan ito na minsan ang 2 signal ay natatanggap nang sabay, o napakalapit. Maaari itong mag-set up ng isang 'kundisyon ng lahi' kung saan makakakuha ka ng iba't ibang mga kinalabasan depende sa kung saan makakakuha ng pinakamabilis na lohika, na humahantong sa hindi mahuhulaan na mga kinalabasan. Upang makontra ito ay ginawa ko ang lahat ng 'pagpasok' na mga mensahe na magkaroon ng pagkaantala ng 1s sa lohika, na tila ayusin ang problema. Maaaring may mas mahusay, mas matikas, na mga paraan upang malutas ito, ngunit tila gumana ito.

Hakbang 7: Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle

Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle
Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle
Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle
Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle
Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle
Pagbuo ng Physical Clock - Bahagi I - ang servos & Axle

Ngayon ang kaunting hindi ako nagtitiwala tungkol sa, kung kaya't iniwan ko ito upang tumagal. Gusto ko ng disenteng mukha ng laki at madaling konstruksyon. Kinakabahan din ako tungkol sa pisikal na pagkuha ng 2 servos ikot sa gitnang ehe. Nangangahulugan ito na, pagtingin nang maikli sa ebay para sa mga lumang relo tulad ng itinuturo na sinusundan ko, napagpasyahan kong bigyan ang aking sarili ng mas maraming pagkakataon sa pamamagitan ng pagbuo nito sa aking sarili.

  • Kumuha ako ng 2 malalaking (~ 30cm) mga parisukat ng playwud na nakahiga ako (mga 9mm ang kapal).
  • Pagkatapos ay pinutol ko ang isang lumang bannister rail sa mga seksyon ng 4x10cm at pinagsama ang harap at backplates.
  • Na minarkahan ang butas sa gitna, binutas ko ito upang maging pareho ang laki ng pinakamalaking tubo ng tanso.
  • Pagkatapos ay pininturahan ko ito ng normal na puting pintura ng gloss.
  • Matapos ang ilang eksperimento napagtanto ko na maaaring hindi ako makakuha ng 4 na servo sa iisang ehe kung ang lahat ay nakakabit sa likod (o harap) na plato. Kaya't kailangan kong magkaroon ng alinman sa 3 + 1 o 2 + 2, sa bawat plato. Napunta ako sa 3 sa likod at 1 sa harap.
  • Ginawa ko ang mga offset na kinakailangan sa isang piraso ng papel at pagkatapos ay gupitin ang mga tubong tanso upang tumugma. Tandaan na ang pinakamakapal na tubo ay ang pinakamaikling, at ang pinakamayat ay dapat na pumunta sa likod ng plato. (Na-embed ko talaga ang pinakamaliit sa isang butas na bahagyang nag-drill ako sa likod ng plato, ngunit hindi sa lahat ng paraan upang ang ehe ay hindi gumalaw nang paatras).
  • Para sa mga tubo, bumili ako ng isang pamutol ng tubo, ngunit gumagamit iyon ng presyon upang i-cut ang mga ito at nangangahulugan ito na hindi mo makukuha ang mas maliit na tubo sa loob. Kaya gumamit ako ng isang hacksaw at pagkatapos ay kailangang gumawa ng isang patas na halaga ng pagsasampa upang sila ay gumana. Mahalaga rito ang mga point-file ng te brilyante.
  • Pagkatapos ay itinugma ko ang diagram sa aktwal na mga offset para sa mga clamp at cogs *.
  • Kapag nagkaroon ako ng mga offset, alam ko kung paano 'mataas' na gawin ang mga bloke upang mai-mount ang mga servos. Sinira ko ang isang pares ng mga bloke sa pamamagitan ng paglalagari sa mga ito masyadong manipis at din pagbabarena ng butas upang palabasin ang kawad.
  • Pagkatapos ay dumating ang fiddly na bahagi ng kung saan ilalagay ang mga bloke upang eksaktong matugunan nila ang mga cog sa ehe. Nag-screw ako sa isang bloke at pagkatapos ay maaaring paikutin ang servo upang matugunan ang ehe at pagkatapos ay i-tornilyo sa pangalawang bloke sa kabilang dulo ng servo. Nalaman ko din na kailangan kong mag-cut ng kaunti sa ilang mga bloke upang maiwasan ang pag-snag ng iba pang mga cogs. Medyo natagalan.
  • Sa sandaling natapos ko na ang lahat, nakuha ko ang aking kaso ng raspberry pi, nag-drill ng dalawang butas dito, at isinubo ito sa harap na plato. Pagkatapos ay maaari kong idagdag ang Pi sa, isara ang harap at likod ng mga plato (na konektado ang mga servos sa pi (naaalala kung aling servo ang para sa kung sinong miyembro ng pamilya) at lumipat sa mga kamay …

* Dito ko natagpuan ang pinakamalaking problema, na wala pa akong ganap na nalulutas. Ang mga tubo na tanso ay, 1/4 ", 7/32", 3/16 ", 5/32". Ngunit ang mga clamp ay sukatan (maliban sa isa na 1/4 "). Ang pag-convert sa mga tubo sa sukatan ay 6.35mm, 5.56mm, 4.76mm 3.97mm. Ang natitirang mga clamp ay 4mm, 5mm at 6mm bore. Ang pinakamaliit na 2 at ang ang pinakamalaking ay mainam. ngunit malinaw na ang 0.44mm ay masyadong maraming paglalakbay para sa clamp kaya kinailangan ko itong ilabas sa papel. Sinubukan ko ito ng maraming beses at gumagana itong OK nang ilang sandali at pagkatapos ay maluwag muli. Kaya ang ika-2 pinakamalaking Nabigo ang kamay upang gumana nang maayos. Mabuti para sa halos 6 na buwan, gayunpaman, kaya ang oras na ginugol sa paggawa nito nang maayos ay napamuhunan nang mabuti. Ngunit kung ginagawa ko ito muli ay maaari akong magkaroon ng 1 laki pataas o pababa, na may puwang upang subukan at makuha isang mas mahusay na clamp upang magkasya ang tubo. hal. pumunta para sa 9/32 ", 1/4", (gap), 3/16 ", 5/32"

Hakbang 8: Ang Mga Kamay ng Orasan

Ang Mga Kamay ng Orasan
Ang Mga Kamay ng Orasan
Ang Mga Kamay ng Orasan
Ang Mga Kamay ng Orasan
Ang Mga Kamay ng Orasan
Ang Mga Kamay ng Orasan

Nagpasya ako sa sheet steel na gusto ko ng isang bagay na matibay ngunit mas malamang na mag-snap habang ginagawa ko ito. Gayundin ang pagiging payat ay nangangahulugang ang 4 na mga kamay ay mas mababa sa isang isyu.

  • Una ay nag-sketch ako ng isang hugis.
  • Pagkatapos ay inilipat ko ito sa bakal sa tuktok ng ilang masking tape.
  • Pagkatapos ay napaka inexpertly ko ang mga ito sa aking jigsaw. Sila ay, at magkakaiba, lahat ay magkakaiba, ngunit hindi ko alintana iyon.
  • Pagkatapos ay iminungkahi ng isang kaibigan na hiramin ko ang kanyang gilingan ng bench upang hubugin ang mga ito, at mahusay ito. lubos na inirerekomenda. Kung hindi man tumatagal ang pag-file.
  • Mayroon pa ring pag-file na gagawin at pagkatapos ay sanding upang matiyak na walang matalim na mga gilid at isang magandang tapusin din.
  • Kailangan kong mag-drill ng mga butas upang tumugma sa kani-kanilang mga tubo na tanso (gumamit ng mga cut-off na tubo upang suriin, hindi ang mga naka-mount sa orasan).
  • Nalaman ko na ang mga butas ay nangangailangan ng kaunting pag-file upang makuha ang mga ito sa mga tubo, ngunit isang beses sa mga ito ay masikip at hindi kailangan ng pandikit. Ang pagbubukod ay ang harap na kamay na nais kong magkaroon ng isang 'takip'. Kaya't pinutol ko ang isang (karamihan) bilog na piraso ng bakal, pagkatapos na drill ang butas at nakuha ito sa tamang sukat, at superglued ito sa harap. makikita mo ito sa huling larawan. Paminsan-minsan sa harap ng kamay ay kailangan ng isang dab ng pandikit upang ma-secure ito ngunit pagkatapos ng isang pares ng maling pagsisimula ang mga kamay ay gumagana nang maayos.
  • Tinanggihan ko ang ideya ng mga larawan (dahil ang mga bata ay magreklamo sa aming mga larawan ng petsa nang mabilis) kaya't tumira ako para sa pagpipinta sa mga inisyal na may pinturang acrylic.

Hakbang 9: Kumpletuhin

Kumpleto!
Kumpleto!
Kumpleto!
Kumpleto!

Gumagana talaga ang lahat ng ito. Ang mga kamay kung minsan ay medyo naka-off, depende kung saan sila nanggaling, ngunit sa totoo lang hindi mahalaga dahil ang bawat lokasyon ay isang seksyon hindi lamang isang linya.

Minsan, kakatwa, ang aking telepono ay tumangging kilalanin na nasa bahay ako. Malinaw ako sa loob ng radius ng Owntracks kapag ipinakita sa mapa, at kahit na ang kawastuhan ay mabuti … Wala akong ideya kung bakit. tila hindi pinahihirapan ang natitirang pamilya ko. ngunit ang set-up ay pareho. Nangangahulugan ito na ang Owntracks ay hindi kailanman nagpapadala ng isang mensahe at natigil ako sa 'Paglalakbay'. Ngunit kadalasan ay napapaayos ito sa huli.

Napaka-kapaki-pakinabang na magkaroon sa aming kusina, karamihan ay upang malaman kung ang mga batang babae ay pauwi mula sa paaralan, o mga bahay ng kanilang mga kaibigan, at kung gayon kapag handa na ang pagkain / tsaa para sa kanila.

Muli, isang malaking hat-tip ng salamat kay @ ppeters0502 para sa mahusay na mga tagubiling susundan. Inaasahan kong ang mga ito ay maaaring magdagdag ng isang bagay sa paligid ng paggawa ng isang orasan na may 4 na mga kamay..

Hakbang 10: Mga Bagay na Natutuhan Ko, at Gagawin Nang Mas Mabuti / magkakaiba Kung Kinailangan Ko Bang Gawin Ito ulit

  • Ang mga pisikal na pagbuo ay nangangailangan ng pagsubok at error. Walang paraan upang mahulaan ang mga problema sa kalawakan, kailangan mo lamang sumisid at subukan.
  • Para sa code, mahalaga ang mga problema sa googling
  • Simulan ang pangunahing at bumuo. Ang mga servo sa kahoy na pagsubok ng bangko ay nangangahulugan na maaari kong makuha ang karamihan sa mga ito nang gumagana nang walang pisikal na pagbuo
  • Maaaring nakuha ko ang mga laser na putol ng kamay sa isang CNC machine. Ngunit hindi ko alam kung nasaan ang lokal, at gusto ko kung paano gumana ang banayad na bakal (mura ito at ginawang mas madali ng bench grinder)
  • maaaring maging posible ang isang stepper motor kung gagamitin mo ang gearing upang makakuha ng 360 turn. ngunit maaari mong magkaroon ng mga servos na masyadong malapit sa gitnang ehe
  • Mayroong 2 uri ng servo (Futaba & HiTech). Tiyaking nasuri mo ito dahil mayroon silang iba't ibang bilang ng mga ngipin sa spline. At binili ko ang mga mali sa una…
  • Huwag ikonekta ang sumbrero sa maling polarity;-)
  • Ang Google at Stack Overflow ay iyong mga kaibigan kapag natigil. Ngunit kailangan mong gumamit ng mahusay na mga term sa paghahanap …
  • Ang bench bench ay talagang isang paraan na maaari kang makakuha ng isang mas simple, mas murang bersyon nang mas madali. Karamihan sa mga komplikasyon sa pagbuo ay nagmula sa pagkakaroon ng pag-ikot ng mga kamay sa iisang ehe. Kung ikompromiso mo iyon, mas madali ang lahat. At sa palagay ko na ang 4 ay maaaring ang limitasyon ng solong axle maliban kung ang baras ay nakakakuha ng mas mahaba. Maaari mo, ipagpalagay ko na mayroong 3 sa harap na plato at tatlo sa likod na plato kung ang poste ay mas mahaba …

Hakbang 11: Posibleng Mga Extension sa Hinaharap…?

Ang mga ideya na mayroon ako tungkol sa mga susunod na hakbang ay ang mga sumusunod.

  1. Nais kong muling layunin ng isang lumang iPad bilang mukha ng orasan. ibig sabihin gumawa ng isang digital na orasan. Posibleng nakabase sa browser o isang app. Bilang isang pisikal na orasan ay mahalagang walang estado (ibig sabihin, hindi nito alam kung nasaan ito ngayon, maliban sa bisa ng mga kamay na nasa isang pisikal na posisyon) Kakailanganin kong magkaroon ng isang paulit-ulit na tindahan ng data. Maaaring isulat ng Node Red ang lokal na system ng file, kaya't malamang na gagawin ko iyon.
  2. Kung ginawa ko iyon kung gayon nais kong makita ito mula sa labas ng bahay. Ngunit kailangan talaga nating ayusin ang seguridad. Dahil ang pag-access sa loob ng parehong wifi network ay isang bagay, ang pag-access mula sa internet ay iba pa. Kasalukuyan akong walang ideya tungkol sa kung paano pinakamahusay na gawin ito, ngunit pinaghihinalaan kong ang isang subscription sa MQTT na papunta sa ibang paraan ay maaaring gumana (nai-publish ang kasalukuyang katayuan at mga panlabas na aparato ay nag-subscribe dito)?
  3. Gusto ko ng isang kamay para sa 'Abroad'. ngunit maaari itong maging kumplikado mula sa isang pananaw ng OwnTracks. Marahil ay maaaring gumamit lamang ng haba / lat na sinamahan ng ilang malaking radii?

Inirerekumendang: