Мазмуну:

"Уизлинин" жайгашуу сааты 4 кол менен: 11 кадам (сүрөттөр менен)
"Уизлинин" жайгашуу сааты 4 кол менен: 11 кадам (сүрөттөр менен)

Video: "Уизлинин" жайгашуу сааты 4 кол менен: 11 кадам (сүрөттөр менен)

Video:
Video: Рецепты из Гарри Поттера / Лимонный пирог миссис Уизли 2024, Июнь
Anonim
"Уизли" жайгашкан жер сааты 4 кол менен
"Уизли" жайгашкан жер сааты 4 кол менен

Ошентип, бир аз убакыттан бери тепкилеп келе жаткан Raspberry Pi менен, мен аны мыкты колдонууга мүмкүндүк бере турган жакшы долбоорду тапкым келди. Мен бул улуу Instructable Build Your Own Weasley жайгашуу саатын ppeters0502 аркылуу көрдүм жана аракет кылсам жакшы болот деп ойлодум.

Саат негизинен Raspberry Piден турат, ал сааттын колун буруш үчүн серволорду башкарат. Гарри Поттердин китептериндеги/фильмдериндеги Уизлинин үй -бүлөсүндөгүдөй эле, ар бир үй -бүлө мүчөсүнүн өз колу бар. Ар бир кол ошол үй -бүлө мүчөсүнүн учурдагы жайгашкан жерин көрсөтөт. Саат буга үй-бүлөнүн уюлдук телефондорунан алар алдын ала аныкталган радиуста киргенде же кеткенде билдирүүлөрдү алуу менен жетишет.

Мурунку Нускаманын негизги айырмачылыктары менде 2 эмес, 4 колум болушу керек болчу (антпесе кыздарым нааразы болмок) жана мен дагы колдонууга эски саатты албай, рамканы курууну чечтим. Мунун себеби, 4 сервопрошкага ж.б.у.с.

Бул мен ойлогондон алда канча көп убакытты талап кылды, бирок көбүнчө мени таң калтырган жана оригиналдуу постто камтылбаган көрүнгөн көйгөйлөргө туш болдум. Оригиналдуу Instructableге каршы эч нерсе жок, жалпысынан сонун болчу, бирок бир нече жылдар өттү жана нерселердин версиялары өзгөрдү… Жана ошондой эле Улуу Британияда болуу Императордук/Метрикалык элементтердин кээ бирлери мен күткөндөн да көп кыйынчылыктарды пайда кылды.

Ошондой эле, мен кодировкадан баш тартпай турганымда, сааттын физикалык жасалышы мени созуп жиберди жана кээ бир кошумча шаймандарды талап кылды, бул мени бир аз жайлады.

Акырында мен "Мен башкача кылсам, башка нерселерди кылмакмын/эгер мен аны кайра кайталасам …" деген бөлүмдү кошом.

Берилиштер:

Мени таң калтырган нерселердин бири - кымбат компоненттердин сааттын колу менен жасалышы. 4 кол, албетте, 2ден алда канча кымбат. Мен сизде кандайдыр бир түшүнүк болушу үчүн кээ бир чыгымдарды киргизүүнү чечтим. Бул биринчи жолу мен баарын коштум, жана инструменттерди карабай, мен 200 фунт стерлинг короттум деп ойлойм. Плюс кээ бир нерселерди мен колдонгон жокмун (жана төмөндө камтылган эмес), Пи, плюс менде болгон электр энергиясы.

Пи ж

  1. Raspberry Pi - анын баасы канча экенин эстей албайм, бирок бул модель 2B болчу. Менимче, эгерде сизде жок болсо, анда Pi Zero да жасайт окшойт. Мен Wi -Fi түйүнү менен Raspbian менен SD картаны коштум. Менде эски Android телефон зарядкасы бар болчу.
  2. Pi үчүн Adafruit Servohat - £ 16
  3. Сервохаттын электр менен камсыздалышы - Мен таппай койдум, анткени бардык веб -сайттар адафрут сайтына багытталган, ал жерде, албетте, АКШга электр энергиясын сунуштайт. Анан менде эски өзгөрүлмө чыңалуу бар экенин түшүндүм, ошондуктан мен аны колдондум. Бирок АКШнын баасы 8 доллар, андыктан бул - парк.
  4. Пи үчүн корпус, ошондо мен аны саат алкагына тиркей алам. £ 5

Серво жана редуктор

Бул жерде мен баарына 4 бааны айтып жатам, андыктан сиз азыраак колду кааласаңыз бөлүңүз (аны кошуу ~ КОЛДОН 40 фунт = £ 160: -o

  1. 4 x Servos-Мен ppeters0502 тарабынан сунушталганды колдондум-ebayде ~ 15 фунт = 60 фунт үчүн табылды-Мен төмөнкү текстти издедим "GWS-Digital-Servo-Sail-Winch-S125-1T-2BB-360-градус "Бирок кээде алар жеткиликсиз болгон
  2. Бири -бирине дал келген 4 х жез түтүк - ар бири ~ 3 фунт. Мен 1/4 ", 7/32", 3/16 ", 5/32" = 11 фунт 1ден алдым
  3. Жез түтүктөргө кысылган 4 х кыскыч, тиштүү тетиктерди бекитүүгө мүмкүндүк берет. ~ 7 фунт = 28 фунт. Мен аларды ActiveRobotsтон алдым, алар АКШдагы Servocity компаниясынан заказдарды аткарышат, бул эл аралык жеткирүүдөн качууга мүмкүндүк берет. Алар ошондой эле Servocity'дин АКШдагы негизги сайтынан таба турган башка нерселерди ала алышат. Бул кийинки 2 пункт үчүн абдан ыңгайлуу болду
  4. 4 х ацетил 0,770 дюймдук тиштүү кысуучу борборлорго орнотуу үчүн. ~ 6 фунт = 24 фунт
  5. 4 х ацетил сплайнга орнотулган ацетил тиштүү машиналар. ~ 6,50 фунт = 26 фунт
  6. 1 x пакет гекс жаңгактарды тиркелген тиштүү гайкаларга кысуу үчүн = £ 2.60
  7. 1 x 7/64 "алты бурчтуу ачкыч (аллен ачкычы), анткени АКШдан келген нерсенин баары империялык, андыктан менде болгон жүздөгөн аллен ачкычтары пайдасыз = £ 1

Физикалык түзүлүш үчүн

Бул жерде мен көбүнчө калп айткан нерселеримди колдондум

  1. "Бет" жана "арткы" табак үчүн фанердин 2 х чарчы
  2. Мен андан кийин 4х10 см цилиндрлерди колдо болгон эски банистер рельсинен кесип, арканы бетке туташтыруу үчүн
  3. Серволорду туура жылдырууга орнотуу үчүн кээ бир блоктор - жөн гана жумшак жыгачтан жасалган кесимдер.
  4. Түрдүү бурамалар. өтө кичинеден (Pi корпусун кадрга тиркөө үчүн) орточо чейин (кадрды бириктирүү үчүн)
  5. 0.75мм жумшак болоттон 50см х 20смдей барак (колду кесип алуу үчүн). Бул Wickesтен £ 9 сатып алган жалгыз нерсе болчу

Куралдар

Кээ бир нерселерим бар, кээ бирөөлөрүн карызга же сатып алдым

  1. Soldering Iron + электрдик ширетүүчү - Adafruit Hat & Pi коннекторлорун бекитүү үчүн.
  2. Jigsaw - колдун орой формасын кесүү үчүн
  3. Бургулоо. жөн эле зымсыз 18В бургу
  4. Бургулоо биттери - жез түтүктөргө дал келген тешиктерди жасоо үчүн империялык бургулоо учтары керек болорун унутпаңыз. Бир аз карызга алганга жетиштим.
  5. темир уста - жез түтүктөрдү кесүү үчүн. Мен кылганды кылба жана түтүк кескичке 3 фунт жумшаба, ал басым менен иштейт жана түтүктөрдүн ичи бир аз кичирейет дегенди билдирет. андыктан кийинки өлчөмдөгү ылдый түтүкчөгө туура келбейт
  6. Скамейка тегирмени - Менде алардын бири жок болчу, бирок менин досум колду калыптандырууну бир топ жеңилдетти. Ага чейин мен жөн эле файлдарды колдончумун. Мен бул проекти үчүн бирөөнү сатып албайт элем, бирок металл колдору үчүн бул сонун болчу.
  7. Мен алмаз чекитинин ар кандай файлдарын сатып алдым (өтө кичине). 15 фунт стерлингге чейин колдор жана түтүктөр үчүн пайдалуу
  8. одоно жана жылмакай кагаз
  9. кээ бир кичине кыскычтар бургулоодо нерселерди ордунда кармап турат.
  10. ошол эле себептен улам вице.

1 -кадам: Телефондоруңузду жайгашуусун Пиңизге жөнөтүү үчүн орнотуу (I бөлүк MQTT Брокери)

Бул битти ppeters0502 эң сонун Уизли саатынын көрсөтмөсүндө сүрөттөгөн. Кызык, балким ар кандай көндүмдөрдү чагылдырса да, ал курууну баштап, андан кийин программалык камсыздоого өттү, мен муну башка жол менен жасадым. Ошентип, мен телефондон баштадым … илип кой, жок, мен MQTT брокери менен баштадым, анын инструкциясында 6 -кадам. Мен анын эң жакшы кылган биттерин калтырам жана мен кошо турган кээ бир биттерди ыргытып жиберем. Мен айткан CloudMQTT маршрутуна бардым.

БИРОК мен муну жазып жатып, пландардын шилтемесин текшерип көрдүм, бекер план жок болуп калды! Алар муну акылга сыярлык негиз катары көрүнгөн үчүн алып коюшту. башкача айтканда, адамдар бекер инстанцияны орнотуп, анан аны эч качан колдонушпайт. Мен байкаган жокмун, анткени учурдагы инстанциялар улана берет. Андыктан мен өзгөрбөйм. Бирок ал көрсөтмөлөрдү бир аз ашыкча кылат. 3 вариант бар окшойт.

  1. Cloud MQTT үчүн айына $ 5 төлөңүз (бирок бул саат үчүн туруктуу түрдө кымбат угулат).
  2. Биринчи Инструкцияда сүрөттөлгөндөй, чиркейлердин Pi жолуна түшүңүз. Мен бул боюнча комментарий бере албайм, бирок жакшы вариант болушу мүмкүн.
  3. Жөн гана Google "бекер MQTT булут брокери" жана башкалар бар окшойт.

Ошентип, сизде иштеп жаткан MQTT брокери бар деген божомол боюнча, эгер бул CloudMQTT сыяктуу болсо, анда Сервер, Колдонуучу, Сырсөз жана Порт көрсөтүлөт. Брокерге жайгашкан жериңизди/кыймылыңызды жөнөтүү үчүн телефонуңузду орнотуу үчүн булардын баары керек болот.

2 -кадам: Телефондоруңузду жайгашууңузду Pi'ге жөнөтүү үчүн орнотуу (II бөлүктүн тректери)

Бул ошондой эле баштапкы Instructableде, 7 -кадамдарда (Android), 8 (iOS) & 9да (Региондорду орнотуу) абдан жакшы камтылган.

Менде iOS түзмөктөрү гана бар болчу, ошондуктан 7 -кадамга аракет кылбадым.

Мен ал көрсөтмөлөргө эмнени кошот элем?

  1. Орнотууда TrackerID жана DeviceID талаалары да бар. Булар сизди үй -бүлөңүздүн ичинде аныктай алгыдай болушу керек. Мисалы Мен аларды R жана RPhone катары колдоном. Бул сиз Серво, демек, кайсы колуңузду буруш керек экениңизге өтүүгө болот дегенди билдирет.
  2. Аймактар - бул көз салгыңыз келген жерлердин аталышы.
  3. Ар бир аймак Ат, Кеңдик, Узундук жана Радиус менен аныкталат.
  4. Мен саатымдын бир бөлүмү катары бир нече жерлерге ээ болгум келгендиктен, аталыш конвенциясын колдондум, ал абдан пайдалуу болуп чыкты. Башка ыкмалар мүмкүн, бирок бул мен үчүн иштеди.

    • Мисалы, сааттын ҮЙ -БҮЛӨ бөлүмүндө мен ата -энемди, бир туугандарымды жана аялымдын ата -энесин жана бир туугандарын болгум келди. Ошондуктан менде "Үй -бүлөлүк Том", "Үй -бүлөлүк Дик", Үй -бүлөлүк Гарри "жана" Үй -бүлөлүк Ата -энелерR "сыяктуу жерлер бар болчу. Бул кийинки этап Саатка эмне берүү керектигин билиши мүмкүн экенин билдирет.
    • Эсиңизде болсун, адамдар ар кайсы жерге жайгашышы мүмкүн. Бирок алар ат коюу конвенциясына шайкеш келсе, анда бул жакшы. Мисалы менин жумушум аялым иштеген аймактан башкача болмок жана башкача чакырылган. бирок экөө тең "Ишти" баштаганда баары жакшы болот.
  5. Сиз режимди Карталар экранында "Маанилүү" деп коюңуз. Бул сиз (көбүнчө) региондорго киргенде же кеткенде гана билдирүүлөрдү аласыз дегенди билдирет. Бул МААНИЛҮҮ деп белгиленген эскертменин жаңыртылган версиясы окшойт: 8 -кадамдын аягында Инструктивдүү.
  6. Баштапкы Нускамада айтылгандай, Google Карталарды колдонуу - бир жерден Лат/Узакты табуунун эң сонун жолу. Мен муну дүңүнөн жасоону эффективдүү деп таптым, жайгашкан жеримдин бардык Лат/Лонгдорун билип, анан аларды Notes'ке чаптадым (менин Mac компьютеримде) жана булуттун синхрондошуусу менен алар менин сыйкырдуу түрдө iPhone'умда пайда болду дегенди билдирет. Эскертмелерде мен аларды Owntracksке көчүрүп/чаптай алмакмын. Бул ошондой эле мен файлды үй -бүлөмдүн телефондоруна жөнөтө алаарымды жана бардыгыбыздын ырааттуу жайгашкан жерлерибиз бар экенин билдирет.
  7. Бири -бирине жакын жайгашкан жерлер көйгөйлөрдү жаратышы мүмкүн. Иним 2 көчөдө жашайт, адегенде менин телефонум бир убакта анын үйүнүн аймагында, ошондой эле үйдөмүн деп ойлоп жатты. Акыры мен Node Redге кошумча логиканы киргизип, бул болуп жаткан нерсеге көңүл бурбай койдум.

3 -кадам: Raspberry Pi орнотуу

Raspberry Pi орнотуу
Raspberry Pi орнотуу

Ошентип, бул жерде сизде Wi орнотулган жана Pi базасы бар деп ойлойм. Мен Raspbian менен иштечүмүн, бирок бул маанилүү эмес. Баарын жөндөө үчүн raspberrypi.org сайтындагы нускамаларды колдонуңуз.

Пи мониторго жана клавиатурага/чычканга ж.б. көрсөтүү үчүн портторго ээ экенин эске алыңыз, бирок саат ичинде болгондон кийин, анын бирин каалабаңыз. Ошентип, Raspberry pi веб -сайтында кимдир бирөө сунуштаган жооп, менимче, VNC байланышын орнотуу болду. Бул башка түзмөктөн Piге туташууга жана аны көзөмөлдөөгө мүмкүнчүлүк берет. Мен муну Macтан жасайм, бирок аны iPadтан да кылдым. Мен колдонууну оңой кылуу үчүн клавиатура менен бир нерсе колдонууну сунуштайм.

Мен жөн гана туташкандан бери алар жеңилдеткен окшойт … бул жерден караңыз

Негизи сиз туташасыз жана стандарттык Pi интерфейси болгон терезени аласыз.

Ошентип, сизде ноутбуктан же компьютерден Пиңизге терезе бар.

Эми сиз серверлерди туташтырышыңыз керек.

Биринчиден, адафрут шляпасын Piге алуу үчүн бир аз негизги ширетүүнү жасашыңыз керек. Бул бир аз күлкүлүү, бирок 30-жылдар бою ширетилбегенине карабай, баары жакшы болчу. Адаттагыдай эле, мен аркылуу өтүү үчүн пайдалуу YouTube видеосун таптым, бул чоң жардам болду.

Шляпа 16 сервону иштете алат, мага болгону 4 керек болчу, ошондуктан мен 4 казыктын биринчи топтомун ширетүү менен гана алек болдум.

Андан кийин серволор казыктарга гана түртүлөт. Мен биринчиден, мен чындыгында сервону кыймылдата алаарымды текшердим.

Бул жерде мен биринчи чоң жол тосууга туш болдум. Менде сервистерди жылдыруу үчүн эң негизги python скрипти бар болчу жана эч нерсе болгон жок. Мен бир жумага жакын жаңы скрипттерди сынап көрдүм, анан баш кийимде түтүн пайда боло баштады. Баарын өчүрүп, схеманы текшердим. Бул тескери полярдуулуктан коргой турган компонент болчу. Менде көп учтуу, көп вольттуу электр булагы болгондуктан, учту артка кайтаруу менен DC чыгышы эки жакка кетиши мүмкүн экенин сагындым. Мен туура эмес түшүндүм (50:50 кокустук) жана жөн эле биринчи адафрут шляпамды өрттөп жибердим

:-(Ошентип, бир аз кечигип, жаңысын сатып алып, кайра ширетип, учун оңдодум. Өтө жакшы.

Андан кийин мен серверлерди сааттын туура чекитине кантип жылдыруу керек экенин ойлонушум керек болчу. Бул 5 -кадамда болот, бирок мен жасаганым, чыныгы саатты кура албагандыктан, servoлорду туш келди жыгачка бурап, сүрөттөгүдөй жебе менен кээ бир маска скотчун жабыштыруу болчу. Бул мен коддогондорго абдан визуалдуу жооп берди.

4 -кадам: Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)

Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)
Кызыл түйүндү орнотуу (MQTT серверинен Python скриптине билдирүүлөрдү алуу)

Node-RED-бул Pi'ге орнотулган программа, ал сизге MQTT Serverден билдирүүлөрдү алуу үчүн визуалдык интерфейсти (браузериңизде) берет жана аны python скриптиңизге туура маалыматты берүү үчүн колдонот (кийинки кадамда камтылган (5 -кадам). Мен 5 -кадамдагы ppeters0502 көрсөтмөлөрүн дээрлик колдондум. Бул агымдарда логика бар, жана питондо кошумча логика бар, жана сиз каалаганыңызга жараша ар биринде көп же азыраак болушу мүмкүн. Негизи сиз кылышыңыз керек кийинки

  1. MQTT билдирүүлөрү үчүн түйүндөр бар - бул ачык кызгылт көк түстө, менде 1 үй -бүлө мүчөсүнө туура келген
  2. Муну сиз жылдыргыңыз келген сервого картаңыз (0, 1, 2, 3 номурлуу)
  3. OwnTracks радиусуна кирип же кетип жатканыңызды аныктаңыз
  4. Серво кайсы жерди көрсөтүшү керек экенин билип алыңыз

    Мен курушум керек болгон негизги эрежелерден айрым өзгөчөлүктөр бар болчу

  5. Бурчту туура коюңуз

Менде Node-RED биринчи 4тү аткарды жана Python салыштырмалуу жөнөкөй бойдон калды.

Бул жерде сиз негизги агымды көрө аласыз жана бардык агымдарды бул жердеги форматка экспорттоого болот, демек сиз бул негизги агымды Node-REDге импорттоп, анан ылайыкташа аласыз. Менин MQTT инстанцияма кире албашыңыз үчүн, кызгылт көк түйүндөрдөн бардык байланыштарды алып салганымды эске алыңыз. Мен ошондой эле бардык тест-түйүндөрдү алып салдым, анткени аларда чыныгы маалыматтар бар … сиз Node-REDге импорттоо үчүн, файлдын түрүн flows.json деп өзгөртүшүңүз керек болушу мүмкүн, бирок Instructables мага аны жүктөөгө уруксат берген жок.

Жашыл түйүндөр мүчүлүштүктөрдү оңдоо түйүндөрү болуп саналат, андан кийин экрандын оң жагындагы мүчүлүштүктөрдү оңдоо терезесинде көрсөтүлөт (кеңейтүү керек болушу мүмкүн - жебени оң жагынын жарымында табыңыз)

Эң биринчи бит "Live - мүчүлүштүктөрдү оңдоо үчүн" бит. Бул MQTT билдирүүлөрүн кабыл ала аларыңызды жана анда эмне бар экенин текшерет. json - бул билдирүүлөрдүн структураланган версиясы, бул маалыматты оңой чыгарууга мүмкүндүк берет. Бул агымда, тирүү болгондо, мен кызгылт көк түстөгү түйүндөрдү сол жсндин оң жагына туташтырам.

Сыноо түйүндөрү

Билдирүүлөрдүн түз эфирде кандай болорун билгенден кийин, бир окуяны баштоо үчүн, үйүңүздөн чыгып, жолдон жана артка чуркоо абдан кызыксыз болуп калат. Муну кылгандан кийин, сиз билдирүүнү TEST триггерине көчүрүп, андан кийин окуяны окшоштуруу үчүн чыкылдатыңыз. Сиз ошондой эле маалыматтарды ар кандай жерлерге окшоштуруп өзгөртө аласыз (алар Owntracksтеги жайгашкан жердин аталыштарына дал келгенин текшериңиз).

Агымдан сиз тест учурлары өзүнчө түйүнгө кирип, андан кийин json түйүнүнө кирип кеткенин көрө аласыз. Бул экранды иретке келтирүү үчүн гана.

Мен бул түйүндөрдүн канчалык пайдалуу болгонун баса белгилей албайм жана азыр да бар.

Python чалуу

Ошентип, мен кийинки жол тосууну басып калдым. Бул форумдарда көп гуглингди талап кылды, ж. Мен муну чече алган жокмун, бирок мен ант берүүнү ж.б. аяйм. Экинчи скриншотто баса белгиленгендей, сиз көрсөтпөсөңүз, Node-RED python2 деп ойлогондой python3 көрсөтүшүңүз керек.

2 кошумча кыйынчылыктар - керек болгон учурда гана

Менде логика такыр иштебеген бир катар кыйынчылыктар болду. Биринчиден, Owntracks бир аз кызыктай болуп кетти жана менин агам 2 көчөдө жашагандыктан, көп учурда мен бир убакта 2 жерде болчумун же алмашып жүрө берчүмүн. Жалгыз жол - бул жалган позитивдерди токтотуу үчүн шарттарды кошуу. Эгерде ал менин үйүмдө экенимди ырастаса, анда мен билдирүүдөгү узундукту/кеңдикти текшерип көрдүм жана эгер үйдө экенимди айтсам, аны токтотуп койдум.

Дагы бир көйгөй, менин итим менен жүргөндө, мен жакшы радиусту ала албадым. Мен көбүнчө ошол эле аймакта жүрөм, ошондуктан бул жерде мен "эгер бул аймакка кирсем, мен, албетте, ит менен сейилдеп жүрөм жана үйгө келгенче болом" дедим. Бул мен үйгө баратып бараткан пабга, же ит жөө басканда башка жерлерге өтпөйт дегенди билдирет. Муну жасоо үчүн, мен контексттин туруктуу өзгөрмөлөрүн орнотушум керек болчу (аларды Node-REDден издеңиз. Скриншотту караңыз. Бул өзгөрмөлөр Node-RED кайра күйгүзүлгөнгө чейин сакталып турат, ошондуктан мен ит ит сейилдеп жүрсө, контекст өзгөрмөсүн коюңуз деп айта алам. "Итке". Анан мен үйгө "кирмейинче" ЭЧ НЕРСЕГЕ көңүл бурбаңыз.

Акыркы скриншот - бул сиздин акыркы кызыгууңуз үчүн, бардык учурларды эске албаганда.

5 -кадам: Чындыгында Pi боюнча Python менен серверлерди жылдыруу

Серволорго кыскача бурулуу. Мен серво жөнүндө эч нерсе билген эмесмин, бирок интернетте көп маалымат бар. Мен колдонгондор 360 градусту оодара ала турган үзгүлтүксүз серверлер. Башка негизги сорттор - бул бөлүктөрдө (кадамдарда) жылуучу жана болжол менен 180 градуска чейин көтөрүлүүчү тепкич серверлер (бул жерде пайдалуу эмес). Stepper servosтун артыкчылыгы - сиз жөн гана бурчка салып койсоңуз болот жана алар ошол чекитке жылып, токтоп калышат. Мен тапкан бардык документтерде тынымсыз серволор ылдамдык менен иштээри жана ошол ылдамдыкты сактоо убактысы (мисалы, 1 сек. Үчүн толук ылдамдык) жана алар аяктаган жерге чейин жетээри айтылат, бирок бул алардын башталыш чекитине салыштырмалуу. Көптөгөн аракеттерден кийин, мен муну ишке ашыра алган жокмун, бирок тест столунун жардамы менен серволор дайыма бир эле бурчка кайтып келгенин билдим. Кайсынысы алда канча оңой, ошондуктан мен муну кылдым. Мен билбеген кээ бир терс жактары болушу мүмкүн, бирок бул мен үчүн иштейт. Эскертүү, бирок ар бир серво уникалдуу, ошондуктан ар бир серво үчүн уникалдуу бурчтар топтому болушу керек. Мен питондун "калибрлөө" сценарийине ээ болууну эң оңой таптым, мында серволорду бурчтарга коюп, баары туура көрүнмөйүнчө тазалап койчумун. Бул тиркелген биринчи сценарий. Сиз жөн гана сынабаган серволорду комментарийлеп, бирөөнө топтолуп, анан керектүү маанилерди тууралаңыз. ЭСКЕРТҮҮ: тестирлөө үчүн калибрлөө жөнөкөй жана орой жана даяр. Саатты чогултканда кайра калибрлөө керек болот, анткени тиштүү тетиктер баарын өзгөртөт. Андан кийин экинчи скрипт абдан жөнөкөй. Ал төмөнкүлөрдү кылат

  1. Бир нече китепканаларды импорттоо
  2. Node-REDден келген өзгөрмөлөрдү скрипттеги өзгөрмөлөргө жылдырыңыз
  3. калибрлөө сценарийи боюнча аныкталган бурчтарды саат боюнча жайгашкан жерлерге картага түшүрөт.
  4. тизмеде жайгашкан жерди текшериңиз, эгер андай болбосо "Коркунучка" өтүңүз
  5. журнал файлына эмне кылынганын жазыңыз
  6. керектүү бурчту керектүү сервону жылдырыңыз
  7. Бир сервону "ызылдатууну" токтотуңуз *

3 нерсени белгилей кетүү керек.

Журнал-файл мүчүлүштүктөрдү оңдоо үчүн абдан пайдалуу. Бул билдирүүнүн Node-RED мүчүлүштүктөрүн карап, анан скриптте эмне болгонун көрө аласыз дегенди билдирет. чыгаруу ушундай көрүнөт. Биринчи 3 - бул мен итти сейилдетүү үчүн алып бара жатам, андан кийин 1 -бала үйдөн чыгып, мектепке келет. Пи боюнча убакытты текшерүү үчүн эскертүү. Бул UTC үчүн демейки жана жайкы/кышкы убакыттын өзгөрүшүнө жол бербеши мүмкүн. Мисалы Төмөнкү убакыт 1 сааттан ашат.

2020-12-07_05: 36: 03 Ким = 0, лок = Саякат, детал = Үй, Бурч = 10, индекс = 8

2020-12-07_05: 36: 04 Ким = 0, лок = Ит, деталь = Астондор, Бурч = 86.5, индекс = 10

2020-12-07_06: 07: 49 Ким = 0, лок = Үй, деталь = кирүү, Бурч = 75, индекс = 0

2020-12-07_06: 23: 53 Ким = 2, лок = Саякат, детал = Үй, Бурч = 19, индекс = 8

2020-12-07_06: 30: 48 Ким = 2, лок = Мектеп, деталь = N, Бурч = 60,5, индекс = 2

Servo-vızıltı

Серводордун бири (0) сценарий аяктагандан кийин ызылдай берди. Сиз элестеткендей, бул биздин ашканада болушуңуз абдан жагымсыз. Мен бир жерден жип таптым, ал servo бурчун "эч кимге" орнотуп, аны кандайдыр бир жол менен бош деп коёт. Бул эң сонун иштеген жана аягында сценарийден көрүнүп турат.

Убакыттар

Колуңуздун күнү бою шыпыруу үчүн канчалык төмөн экенин эстен чыгарбаңыз. Сценарийде сервону ызы -чууну токтотуу үчүн жөнгө салардан мурун time.sleep (4) линиясы бар экенин көрө аласыз. Себеби, колуңузду бош турганга чейин, көздөгөн жерине жетүүсүнө уруксат беришиңиз керек. Болбосо жөн эле токтойт. Бул калибрлөөдө да маанилүү, анткени сиз сценарийдин ичинде бир нече кадамдарды жасап жатасыз. Мен алардын баарын кайра текшерүү үчүн, кезек менен бардык 12 жерге көчүп кетүүнү чечтим. бирок ортосунда бир аз убакыт керек.

6 -кадам: Программаны аяктоо - Телефондор Сервого

Сынак стенди жана скрипттер орнотулгандан кийин, аны бир аз "жандуу" иштетип, анын реалдуу убакытта кантип иштээрин көрө аласыз. Бул жерде мен Node-RED агымына кошуум керек болгон өзгөчөлүктөрдү таптым.

Сиз үй-бүлө мүчөлөрүн Node-RED агымында оңой ажыратып, туташтырсаңыз болот. Мисалы, эгер экөө көйгөй жаратып жатса, бирок сиз аларды бир убакта оңдоону каалайсыз. Болбосо, туташкан телефондордон билдирүүлөрдү алууну уланта берээриңизди унутпаңыз.

Мен Dog-сейилдөө жана инимдин үйү абдан жакын болуу көйгөйүн айттым. Менде дагы 2 кыйынчылык болгон.

Биринчиден, башка жерлерде жайгашкан. Жубайым Лондондогу колледжде курс окуп жаткан. Биз муну "Мектеп" деп каттоону каалаганбыз, бирок ал дагы "Лондондо". Андыктан контекстти кайра колдонуу керек, эгер сиз ошол "Мектептен" кетип жатсаңыз, анда "Саякатка" эмес, "Лондонго" көчүңүз.

Экинчиден, жарыш шарттары. Жогоруда айтылгандай, инимдин үйү 2 көчөдө, ошондой эле биздин сүйүктүү паб/рестораныбыздын жанында. Бул кээде 2 сигнал бир убакта же бири -бирине абдан жакын кабыл алынат дегенди билдирет. Бул "расалык шартты" орното алат, анда сиз логиканы тезирээк кабыл алып, күтүлбөгөн натыйжаларга алып келгенге жараша ар кандай жыйынтыктарды аласыз. Буга каршы туруу үчүн, мен бардык "кирүү" билдирүүлөрүндө логикада 1s кечигүү пайда кылдым, бул көйгөйдү чечкендей болду. Муну чечүүнүн жакшыраак, көрктүү жолдору болушу мүмкүн, бирок ал иштегендей болду.

7 -кадам: Физикалык саатты куруу - I бөлүк - Сервалар жана Окс

Физикалык саатты куруу - I бөлүк - Сервалар жана Окс
Физикалык саатты куруу - I бөлүк - Сервалар жана Окс
Физикалык саатты куруу - I бөлүк - Сервалар жана Окс
Физикалык саатты куруу - I бөлүк - Сервалар жана Окс
Физикалык саатты куруу - I бөлүк - Сервалар жана Окс
Физикалык саатты куруу - I бөлүк - Сервалар жана Окс

Эми мен анча ишене албадым, ошондуктан аны аягына чейин калтырдым. Мен татыктуу өлчөмдөгү жүздү жана оңой курууну кааладым. Мен дагы борбордук огунун тегерегине 2 сервос алуу боюнча нерв болчумун. Бул эбегейсиз эски сааттарга кыскача карап, мен ээрчип жүргөн инструкциядагыдай эле, мен өзүмдү куруу менен көбүрөөк мүмкүнчүлүк берүүнү чечтим.

  • Менде 2 чоң (~ 30см) фанердин төрт бурчу бар (калыңдыгы 9 мм).
  • Анан мен эски баннистер рельсин 4х10 см бөлүктөргө кесип, алдыңкы жана арткы плиталарды бириктирдим.
  • Ортоңку тешикти белгилеп, мен аны эң чоң жез түтүкчөдөй кылып бургуладым.
  • Анан мен аны кадимки ак жылтырак боек менен боёгом.
  • Кээ бир эксперименттерден кийин, мен алардын артына (же алдыңкы) пластинкасына тиркелгенде, бир эле огунда 4 сервос ала албасымды түшүндүм. Ошентип, мен ар бир табакта 3 + 1 же 2 + 2 болушу керек эле. Мен артта 3 жана алдыда 1 менен аяктадым.
  • Мен кагазга керектүү болгон жылыштарды иштеп чыгып, жез түтүктөрдү дал келтирүү үчүн кесип алдым. Көңүл буруңуз, эң калың түтүк эң кыска, ал эми эң ичке арткы табакка чейин барышы керек. (Мен чындыгында кичинекейин арткы табакка жарым -жартылай тешкен тешикке кыстарып койгом, бирок огу артка жылбай тургандай эмес).
  • Түтүктөр үчүн мен трубка кескичти сатып алдым, бирок бул кысым үчүн аларды кесет жана кичинекей түтүктү ичине ала албайсыз. Ошентип, мен темир устаканы колдондум, анан аларды иштетүү үчүн адилеттүү түрдө документтерди толтурууга туура келди. Бул жерде алмаз чекит файлдары баа жеткис болгон.
  • Анан диаграмманы кыскычтар менен тиштер үчүн иш жүзүндөгү жылыштарга дал келтирдим *.
  • Мен офсеттерге ээ болгондон кийин, блокторду servoго орнотуу үчүн канчалык "бийик" экенин билчүмүн. Мен бир нече блокторду жука кылып көрүп, зымды чыгарыш үчүн тешип койгом.
  • Андан кийин блокторду кайда жайгаштыруу керек экендиги келип чыкты, ошондо алар тиштерин огунда так тосуп алышты. Мен бир блокту бурап койдум, андан кийин сервону айлантып, огу менен жолугушуп, экинчи сервону экинчи четине бурап койчумун. Мен дагы башка тиштерди кармап калбоо үчүн кээ бир блокторду бир аз кесүүм керек экенин түшүндүм. Бир топ убакыт өттү.
  • Мунун баарын жасап бүткөндөн кийин, мен малина пи коробкамды алдым, анын ичинде эки тешик бургулап, алдыңкы табакка бурап койдум. Андан кийин мен Пиди кошуп, алдыңкы жана арткы плиталарды жаап (серволорду пи менен туташтырып (кайсы серво кайсы үй -бүлө мүчөсү үчүн болгонун эстеп), колго кайрыла алам …

* Бул жерде мен эң чоң көйгөйдү таптым, аны мен азырынча толук чече элекмин. Жез түтүктөр 1/4 ", 7/32", 3/16 ", 5/32" болгон. Бирок кыскычтар метрикалык болчу (1/4 дюймдан башкасы). Түтүктөрдү метрикага айландыруу 6,35мм, 5,56мм, 4,76мм 3.97мм. Калган кыскычтар 4мм, 5мм жана 6мм тешик. Эң кичинеси 2 жана эң чоңу жакшы, бирок 0,44 мм кысуучу үчүн өтө көп саякат, ошондуктан мен аны кагаз менен толтурууга туура келди. Мен муну бир нече жолу сынап көрдүм, ал бир азга жакшы иштейт, анан кайра бошоп калат. Ошентип, 2 -чоң Кол туура иштебей жатат. Бул болжол менен 6 айга созулган, бирок муну жакшы өткөргөн убакыт жакшы инвестицияланган убакыт болчу. Бирок эгер мен дагы бир жолу жасасам, анда 1 өлчөмдү өйдө же ылдый түшүрүшүм керек болчу. түтүктү орнотуу үчүн жакшыраак кыскыч. мис. 9/32 ", 1/4", (боштук), 3/16 ", 5/32"

8 -кадам: Сааттардын Колу

Сааттардын Колу
Сааттардын Колу
Сааттардын Колу
Сааттардын Колу
Сааттардын Колу
Сааттардын Колу

Мен катмарлуу темирди чечтим, анткени мен каттуу нерсени каалап жаттым, бирок мен аны жасап жатканда жарылып кетүү ыктымалдыгы аз болчу. Ошондой эле арык болуу 4 колдун көйгөйү аз экенин билдирет.

  • Алгач фигуранын эскизин түздүм.
  • Анан мен аны кандайдыр бир маскировкалык лентанын үстүнө болотко котордум.
  • Анан мен аларды өтө тажрыйбасыз кылып, паззагым менен кесип салдым. Алар баары башка болчу, бирок мен буга каршы эмесмин.
  • Анан бир досум аларды калыптандыруу үчүн анын стенд жаргылчасын карызга алууну сунуштады жана бул сонун болду. абдан сунушталат. Болбосо, арыз берүү көп жылдарга созулат.
  • Дагы эле толтура турган иштер бар болчу, андан кийин курч четтери жоктугун жана жакшы бүтүшүн камсыз кылуу үчүн тегиздөө.
  • Тиешелүү жез түтүктөргө дал келүүчү тешиктерди бурушум керек болчу (текшерүү үчүн кесилген түтүктөрдү колдонуңуз, саатка орнотулганын эмес).
  • Мен тешиктерге аларды түтүктөргө түшүрүү үчүн бир аз толтуруу керек экенин көрдүм, бирок бир жолу алар тыгыз жана желимге муктаж эмес болчу. Өзгөчө нерсе, мен "капкакты" алгым келген алдыңкы колум болчу. Ошентип, мен (көбүнчө) тегерек болотту кесип алдым, тешикти бургулап, керектүү өлчөмгө жеткирип, алдыга супер жабыштырдым. сиз аны акыркы сүрөттө көрө аласыз. Кээде алдыңкы колго аны бекитүү үчүн желим керек болот, бирок жалган башталгандан кийин колдор абдан жакшы иштейт.
  • Мен сүрөттөрдүн идеясын четке кагып койгом (анткени балдар биздин күндөрдөгү сүрөттөрүбүзгө тез эле нааразы болушат), ошондуктан акрил боек менен баш тамгаларга сүрөт тартууну чечтим.

9 -кадам: Толук

Толук!
Толук!
Толук!
Толук!

Мунун баары чындыгында сонун иштейт. Колдор кээде бир аз алыстап калат, бирок алар мааниге ээ эмес, анткени ар бир жайгашкан жер жөн эле сызык эмес.

Кээде, таң калычтуусу, телефонум үйдө экенимди моюнга алуудан баш тартат. Мен Owntracks радиусунда экенимди картада көрсөткөндө жана тактыгы жакшы болгондо да … Эмне үчүн экенин билбейм. менин калган үй -бүлөмдү кыйнабайт окшойт. бирок орнотуу бирдей. Бул Owntracks эч качан билдирүү жөнөтпөйт жана мен "Саякатта" тыгылып калам дегенди билдирет. Бирок, адатта, акыры өзүн өзү чечет.

Биздин ашканада болуу абдан пайдалуу болду, негизинен кыздар мектептен үйгө качан баратканын, же досторунун үйлөрүн билүү, ошондо аларга тамак/чай даяр болгондо.

Дагы, чоң шляпа-Tip @ppeters0502ге улуу көрсөтмөлөрдү ээрчүү үчүн. Булар 4 кол менен саат жасоодо бир нерсе кошо алат деп үмүттөнөбүз.

10 -кадам: Мен үйрөнгөн нерселер жана мен дагы кайталашым керек болсо, жакшыраак/башкача болмок

  • Физикалык түзүлүштөр сыноого жана катага муктаж. Космостун көйгөйлөрүн алдын ала айтууга мүмкүнчүлүк жок, жөн гана чумкуп, аракет кылуу керек.
  • Код үчүн googling көйгөйлөрү абдан маанилүү
  • Негизги нерсени баштаңыз жана түзүңүз. Сыноочу отургучтун жыгачындагы серволор мен анын көпчүлүгүн физикалык түзүлүшсүз иштей алам дегенди билдирет
  • Мен колумду CNC станогунда лазер менен кесип алмакмын. Бирок мен ал жердин кайда экенин билбедим жана мага жумшак болоттун кантип иштээри жагат (арзан жана стенд жаргылчасы аны бир топ жеңилдеткен)
  • Эгер 360 бурулуш үчүн редукторду колдонсоңуз, тепкичтүү мотор болушу мүмкүн. бирок, анда сервистер борбордук огко өтө жакын болушу керек болушу мүмкүн
  • Сервонун 2 түрү бар (Futaba & HiTech). Муну текшергениңизди текшериңиз, анткени аларда ар кандай тиштер бар. Мен адегенде туура эмес нерселерди сатып алдым …
  • Шляпаны туура эмес полярдык менен туташтырбаңыз;-)
  • Тыгылып калганда Google жана Stack Overflow сиздин досторуңуз. Бирок сиз жакшы издөө терминдерин колдонушуңуз керек …
  • Сынак столу - бул чындыгында жөнөкөй, арзан версиясын алда канча оңой алуунун жолу. Курулуштагы татаалдыктын көбү колдордун бир эле огунун айланасында айлануусунан келип чыгат. Эгер муну компромисске келтирсеңиз, анда баары бир топ оңой. Менин оюмча, эгер шахта бир топ узарып кетпесе, 4 бир октун чеги болушу мүмкүн. Эгер шахта узунураак болсо, алдыңкы табакта 3, арткы табакта үчөө болушу мүмкүн деп ойлойм …

11 -кадам: Келечектеги мүмкүн болгон кеңейтүүлөр …?

Кийинки кадамдар тууралуу ойлорум төмөнкүчө.

  1. Мен эски iPadны сааттын фронту катары кайра иштетүүнү каалайм. башкача айтканда санариптик саат жасоо. Мүмкүн браузерге негизделген же колдонмо. Физикалык саат негизинен жарандыгы жок болгондуктан (б.а. ал азыр кайда экенин билбейт, колунун физикалык абалда болушун эске албаганда), мага туруктуу маалымат кампасы керек болот. Red Node жергиликтүү файл тутумуна жаза алат, ошондуктан мен муну кылмакмын.
  2. Эгер мен андай кылсам, анда мен аны үйдүн сыртынан көргүм келет. Бирок анда биз чындап эле коопсуздукту чечишибиз керек. Ошол эле Wi -Fi тармагына кирүү бир нерсе болсо, интернеттен кирүү башка. Муну кантип жасоо керектиги жөнүндө азырынча эч кандай түшүнүгүм жок, бирок мен башка жол менен бараткан MQTT жазылуусу иштей алат деп шектенип жатам (pi учурдагы абалын жарыялайт жана тышкы түзмөктөр ага жазылат) …?
  3. Мен бир колумду "Чет өлкөдө" болгум келет. бирок бул OwnTracks көз карашынан татаал болушу мүмкүн. Балким, чоң/радиусту кээ бир чоң радиустар менен бирге колдонсо болмок?

Сунушталууда: