Jeffrey Cross
Jeffrey Cross

МакерБот + РаспберриПи + Гоогле Цхроме = ХаппиМакер!

Недавно смо набавили МакерБот Реплицатор 2 овде у Трутх Лабс. Он је од миља познат као Арнолд Вилланова ИИ (скраћено Арнолд). У духу произвођача направили смо сопствени кромирани наставак како бисмо знали шта Арнолд ради. Користили смо неке цоол тецх - с3г протокол, Распберри Пи, Ноде.јс и наравно, Гоогле Цхроме Ектенсионс. Ево како смо то урадили.

Тхе Проблем: Лоцатион Лоцатион Лоцатион

Арнолд није централно лоциран, што захтијева од нас да одемо на пут да провјеримо статус посла за штампање, и много пута, на нашу узнемиреност, сматрамо да је Арнолд погрешио у гомили властитог филамента. Послови штампања трају од 30 минута за једноставне моделе па све до неколико сати за сложене, тако да хода до и од Арнолда током читавог дана постаје заморно.

Решење: Селф-Аваре МакерБотс

Па, није баш самосвестан МакерБотс, али то је почетак. Конвенционални МакерБот Реплицатор 2 нема могућност повезивања на интернет, али уз малу помоћ од Распберри Пи, све су могуће. Узимајући страницу из књиге ствари интернета, кренуо сам да повежем Арнолда на интернет и да покренем једноставан систем за обавештавање. Постоји неколико делова слагалице, објаснићу како се уклапају испод. Такодје мозете да преузмете репо рецензента макербот-статуса на пример код да би сте поцели. Репо вам показује како да користите с3г протокол за тражење информација од МакерБот-а повезаног преко УСБ-а.

Пиецес оф тхе Пуззле

МакерБот Реплицатор 2 - Покретање фирмвера способног за серијску комуникацију преко УСБ конектора.

Распберри Пи - Покретање једноставне Ноде.јс апликације која је одговорна за комуникацију са МакерБот-ом преко с3г протокола.

Пидора 18 (Распберри Пи Федора Ремик) - Линук Дистро доступан за Пи. Заснован је на Федори, мојој дистро избора.

Ноде.јс (компајлиран из извора) - Компајлирати Ноде.јс из извора како би се осигурало да је ноде-гип исправно радио на Распберри Пи, и играо се лепо са ноде-сериалпорт пакетом.

Виндовс Азуре - Креирана је крајња тачка базирана на облаку за коју Арнолд шаље информације. Азуре вебсајт такође хостује Баиеук сервер за управљање свим клијентима који слушају нове информације.

Гоогле Цхроме (проширења) - Цхроме, преко својих проширења, лако повезује обавијести на радној површини.

Тхе Хигхлигхтс

Ова специфична комбинација технологије понудила је неке јединствене изазове. Ево најважнијих делова:

Изградња Ноде.јс из извора на Распберри Пи

Због потребе за ноде-гип-ом и комуникација ниског нивоа преко серијских драјвера морао сам да направим чвор од извора на Распберри Пи. То је једноставан процес све док је ваше окружење исправно подешено. Прво ћете морати да инсталирате линук дистро, можете их пронаћи на веб страници Распберри Пи. Такође имајте на уму да су доле наведена упутства извршена помоћу Пидоре. Милаге може варирати.

Буилд Енвиронмент Сетуп

Постоји неколико ствари које морате да урадите пре него што изградите Ноде.јс из извора. Такође имајте на уму да неке команде захтевају повишене привилегије, ау зависности од вашег дистроа, можда ћете морати да користите су или судо команде.

Прва ствар коју ћемо урадити је да поставимо системски сат. Неке чудне грешке при изградњи настају када је системски сат погрешан.

$ дате --сет = "18 НОВ 2013 18:00:00"

Када су датум и време тачни, мораћете да ажурирате и менаџер пакета, и сви инсталирани пакети, Иум Пацкаге Манагер је менаџер пакета инсталиран на Пидори. Потпуно ажурирање система може се извршити извршавањем следећег:

$ иум упдате

Када ваш систем буде ажуран, потребно је да проверите да ли су инсталирани Питхон (2.6 или 2.7), ГЦЦ 4.2 или новији и ГНУ Маке 3.81 или новији. Питхон већ треба да буде инсталиран, да би се инсталирала гцц и извршила наредба испод:

$ иум инсталирати гцц-ц ++. армв6хл $ иум инсталирати маке.армв6хл

Преузмите и направите Ноде.јс

Сада када смо спремни за изградњу, морамо преузети, изградити и инсталирати Ноде.јс. Пратите следеће кораке:

  1. Преузмите изворне датотеке ноде-в0.10.18.тар.гз или еквивалент
  2. Извуците датотеке у директоријум, а затим промените директоријум у издвојени директоријум

    $ тар квфз ноде-в0.10.18.тар.гз $ цд ноде-в0.10.18

  3. Покрените скрипту ./цонфигуре

    $ ./цонфигуре

  4. Изврши наредбу маке (ово ће потрајати неко вријеме)

    $ маке

  5. Изврши наредбу маке инсталл (ово ће такође потрајати)

    $ маке инсталл

  6. Завршено - Ако све прође како треба, моћи ћете да извршите следећу команду:

    $ ноде --версион

Разговор са Арнолдом преко с3г протокола користећи Ноде.јс

С3г протокол је серијски протокол који користи МакерВаре и сличан софтвер за комуникацију са МакерБотс-ом. МакерБот Индустриес пружа Питхон имплементацију протокола овде. Користећи Питхон протокол као референцу, имплементирао сам мали подскуп протокола у Ноде.јс, можете пронаћи извор на гитхуб-у.

с3г протокол упита Користећи АрраиБуффер и Буффер објекте, имплементирао сам једноставан градитељ упита који ствара добро формиране с3г пакете за слање МакерБот-у преко серијског порта. Интерфејс тренутно подржава три с3г упита:

  • Гет Буилд Наме
  • Гет Буилд Статс
  • Набавите Темп за главу алата

Серијска комуникација преко ноде-сериалпорт Пакет ноде-сериалпорт пружа једноставан серијски интерфејс за комуникацију са МакерБот-ом. Написао сам омотач око серијског интерфејса да бих подржао парсирање команде / одговора.

Статус емитовања на Азуре

Апликација чвора на Распберри Пи упитима МакерБот сваких 20 секунди. Када се открије промена статуса, извршава се ПОСТ за услугу Виндовс Азуре Ноде.јс. Виндовс Азуре се користи да би се избегла потреба да се обезбеди екстерно доступна ИП адреса за Распберри Пи и да се пребаци одговорност сервисирања клијената.

Цхроме проширења и обавештења

Цхроме подржава делове стандарда за В3Ц Веб Нотифицатионс. Прво сам погледао имплементацију обавештења користећи стандард, али сам сматрао да још увек постоје недостаци. Конкретно, корисник мора дати дозволу за обавештења, а ви бисте морали да идете до локације да бисте примали обавештења. Да бисте заобишли ова ограничења, одлучио сам да имплементирам Цхроме проширење. Направио сам једноставан попуп који показује тренутни статус МакерБота, Слика 5. је екран проширења у акцији. Да бисте дозволили обавештења када је попуп био неактиван, користио сам позадинску страницу, која ће бити објашњена у наставку.

Позадинске странице Позадинска страница је збирка скрипти које имају дужи животни циклус од скочног прозора који се приказује када кликнете на икону проширења. Ово омогућава примање ажурирања и приказивање обавештења када се хром покрене. Да бисте дефинисали позадинску страницу, морате додати унос у датотеку манифеста вашег проширења. Такође треба да садржи све зависности које ће користити ваша позадинска страница.

"бацкгроунд": {"сцриптс": ["јкуери.мин.1.10.2.јс", "фаие-бровсер-мин.јс", "бацкгроунд.јс"]}, "цонтент_сецурити_полици": "сцрипт-срц" 'хттпс://макерстатус.азуревебситес.нет;

Фаие Публисх-Субсцрибе Мессагинг Систем Приметићете да унос позадинске странице у манифесту укључује фаие-бровсер-мин.јс. Користимо Фаие да успоставимо везу са Виндовс Азуре Ноде.јс услугом. Фаие се користи за емитовање ажурирања од Арнолда. Да би Фаие функционисао у сандбоку проширења, потребно је да унесемо унос да бисмо ослободили безбедносне смернице садржаја проширења. Ово омогућава ЈСОН-П позивање-повратно позивање, које је транспортни механизам који користи Фаие. Овде је потребно јер проширење и Азуре сервис нису на истом домену.

Обавештења Да бисте омогућили обавештења, неопходно је да укључите линију у одељак дозволе датотеке манифеста. Будући да користимо икону са нашим обавештењем, такође морамо да је додамо као веб приступ.

"дозволе": ["нотифицатионс"], "веб_аццессибле_ресоурцес": ["макербот.лого.нотифи.пнг"]

Када све скрипте буду постављене, а остатак манифеста ће се појавити, када примимо ажурирање, креирамо једноставну обавијест попут оне приказане испод.

Све то замотајте

У овом посту смо прошли неке кораке да повежемо МакерБот на интервебс. Сада када имамо базу имплементирану, неке занимљиве допуне могу укључивати додавање комплетног процента изградње, или чак ток уживо градње кроз ВебРТЦ.

Хаппи Макинг!

@аовола

Удео

Оставите Коментар