Съдържание:

Изграждане на машинен наблюдател: 9 стъпки
Изграждане на машинен наблюдател: 9 стъпки

Видео: Изграждане на машинен наблюдател: 9 стъпки

Видео: Изграждане на машинен наблюдател: 9 стъпки
Видео: Мутра показва как се става БОРЕЦ в Сливен на младеж 2024, Ноември
Anonim
Изградете машинен наблюдател
Изградете машинен наблюдател
Изградете машинен наблюдател
Изградете машинен наблюдател

Отправната точка за този проект беше да работи върху конкретен проект, за да научи няколко неща за платките за микроконтролер.

Първоначалната идея беше да се създаде физически обект, който да може да наблюдава система за непрекъсната интеграция (VSTS | Azure DevOps) и да съобщава за грешки при изграждането на софтуер. Поради опасения за сигурността от ИТ отдела ми беше отказано да свържа „нестандартно“устройство директно към корпоративната мрежа.

В крайна сметка получих архитектура, показана на горната снимка. Работният процес на изпълнение може да се обобщи като:

Десктоп приложение на Windows сканира (издърпайте) VSTS Build Definitions. Той анализира резултатите от компилацията и след това изпраща команда до физическото устройство, която изпълнява малка анимирана последователност, преди да покаже червения или зеления флаг.

Стъпка 1: Необходими части

Следният списък обобщава всички необходими елементи:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Разширителен щит (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 модула XBee S1 (https://www.adafruit.com/product/128).
  • 1 ключ за XBee explorer (https://www.sparkfun.com/products/11697).
  • 2 непрекъснати серво мотора 5VDC с фиксиращи аксесоари (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC захранване.
  • 3 светодиода.
  • 3 резистора 220 ома.
  • термо прибираща се втулка.
  • 1 бутон за натискане.
  • 10KΩ резистор за издърпване.
  • 100nF кондензатор.
  • електрически проводници.
  • лента (за монтиране на бутона)
  • 5 мм дърво (50х50 см).
  • дървена пръчка квадратно сечение 5x5 mm (1m).
  • картон.
  • 10 X винт с диаметър 2 мм.
  • 4 винта с диаметър 5 мм.
  • силен магнит.
  • модул за завъртане. Използвах повторно вътрешната подвижна част на мигаща светлина. можете да сложите каквото искате. Просто трябва да се погрижите двете мобилни части да могат да се движат свободно, без да се допират заедно.

Стъпка 2: Изграждане на кутията

Изграждане на кутията
Изграждане на кутията

Всъщност можете да имате кутия с каквато форма искате. Основните неща, върху които трябва да помислите, преди да започнете, е къде ще бъдат движещите се части и да се гарантира, че те могат да се движат свободно, без да се допират заедно. Друг момент е къде ще поставите устройството? В крайна сметка получих магнит (силен), за да го залепя за всяка метална опора. ако искате да изградите една и съща кутия, можете да следвате инструкциите във файла box_drawings.pdf.

В този случай просто трябва да изрежете всички различни парчета, да направите дупките за серводвигателите, светодиодите, бутона и винтовете и накрая да залепите всички части заедно. След като изсъхне, малко шлайфане и малко цвят.

Двата знамена са направени с помощта на червен и зелен картон. За да фиксирате мачтата на флага върху сервомоторите, можете да използвате предоставените монтажни части, когато ги купувате.

Стъпка 3: Настройка на Arduino

Настройка на Arduino
Настройка на Arduino

Елементите, свързани към разширената платка Arduino, са:

  • D2 PIN: бутонът за натискане.
  • D4 PIN: Светодиодът, който показва, че системата е ВКЛЮЧЕНА.
  • D5 PIN: Светодиодът, който казва, че изпълняваме цикъл.
  • D6 PIN: Светодиодът, който казва, че устройството е получило ново съобщение.
  • D9 PIN: PWM импулсен сигнал за сервомотора, управляващ жироскопа.
  • D10 PIN: PWM импулсен сигнал за сервомотора, управляващ флага.
  • Сокет XBee: един модул ZigBee.

Схемата по -горе показва как всички елементи са свързани към дъската.

За светодиодите резисторът и проводниците са директно заварени върху него (внимавайте за полярността). След това всичко е опаковано в някаква термо прибираща се втулка.

За бутон, всички части (бутон, резистор и кондензатор) са директно заварени върху малка сателитна лента. След това лентата се фиксира директно с два винта (2 мм)

Сервомоторите работят с мощност 5V, поради което могат да бъдат свързани директно към Arduino. Ако използвате такива с по -високо напрежение (12V), ще трябва да добавите още един слой за захранването.

За модулите XBee, след като са конфигурирани да говорят заедно (вижте следващия раздел), те могат да бъдат включени директно към гнездата.

Забележки: Светодиодите и бутонът за натискане може да са били директно свързани към щифтовете на Arduino, тъй като могат да внедрят вътрешно необходимите ценни книжа. Просто направих по стария начин, тъй като този аспект не беше много ясен за мен.

Стъпка 4: Софтуер - XCTU

Софтуер - XCTU
Софтуер - XCTU

Както бе споменато по -горе, двете устройства XBee трябва да бъдат конфигурирани да говорят заедно. За да направите това, трябва да използвате специалния софтуер X-CTU от DIGI. Трябва да направите тази стъпка за конфигуриране само веднъж. моля, следвайте процедурата, описана във файла xbee_configuration.pdf.

След като конфигурирането приключи, можете да свържете всеки модул към гнездото им. Един на USB/серийния конвертор и един на разширението Arduino.

USB/серийният конвертор трябва да бъде разпознат автоматично от windows 10. Ако не е, може да се наложи да инсталирате ръчно драйвера

Забележка:

Използването на XBee модули за извършване на основна серийна комуникация е малко пресилено. По времето, когато стартирах проекта, не успях да намеря прости серийни комуникационни устройства, които лесно да се използват в Windows 10 (проблеми с драйверите). Това беше и възможност да научите няколко неща за

Стъпка 5: Софтуер - Arduino Sketch

Софтуер - Arduino Sketch
Софтуер - Arduino Sketch

За програмиране на Arduino използваме IDE, достъпна от официалния уебсайт.

Логиката на програмата е доста проста, тя просто слуша на серийния порт по подразбиране на платката за единични букви („a“, „b“,…). Ако полученият знак съответства на известна команда, тогава подфункция възпроизвежда съответната последователност.

Двете основни полезни команди са анимацията за успех (‘a’) и анимацията за грешка (‘b’).

За да можете да играете (или отстранявате грешки) още малко с кутията, има някои допълнителни команди, които могат да бъдат изпълнени. Те са:

  • ‘O’: принудително включване на светодиода ON
  • ‘P’: принудително изключване на светодиода за включване
  • ‘Q’: принудете светодиода за ново съобщение да свети
  • ‘R’: принуди светодиода за ново съобщение да е ИЗКЛЮЧЕН
  • ‘S’: заставете светодиода за цикъл да свети
  • „T“: принудете светодиода за цикъл да е изключен
  • „U“: активирайте сервомотора на жироскопа
  • „V“: активирайте сервомотора на флага.

В допълнение към серийната команда има подпрограма (handlePushButton), която се активира, когато бутонът е натиснат на устройството. В този случай анимацията за грешка или успех се възпроизвежда автоматично. Тази функция позволява да се провери дали физическото устройство е монтирано правилно.

Кодът на скицата на Arduino е в единния файл bsldevice.ino. Можете да го качите директно с помощта на IDE.

Стъпка 6: Софтуер - настолно приложение

Софтуер - настолно приложение
Софтуер - настолно приложение

Целта на настолното приложение е да наблюдава уеб сайта на Microsoft Azure DevOps (по -рано VSTS) и да открива дали определението за компилация е успешно или погрешно. Всеки път, когато изграждането приключи, настолното приложение определя състоянието на компилацията и изпраща съответната команда (‘a’ или ‘b’) до серийния порт (COMx).

След стартиране на приложението първото действие е да изберете правилния com порт, към който е свързан модулът ZigBee. За да определите порта, можете да използвате Windows Device Manager (под Портове (раздел COM и LPT)). Връзката с Azure DevOps се извършва автоматично при стартиране, като се използват идентификационните данни на текущия потребител. Можете също така да изпратите всяка предварително зададена команда ръчно, като използвате полето вдясно.

Всички източници са генерирани с професионално издание Visual Studio 2017. Той изисква. NET Framework 4.6.1. Тази версия на Framework е за предпочитане, за да улесни връзката/удостоверяването на уеб сайта на VSTS.

да използвам:

  • изтеглете архива bslwatcher_sources.zip.
  • Извлечете го на вашия диск.
  • Прочетете файла how_to_build.txt за подробности за изграждането.

Стъпка 7: Първо стартиране

Има две основни неща, които трябва да имате предвид, когато стартирате кутията:

1- Няма начин системата да разбере сама къде са флаговете. Системата приема, че при стартиране зеленият флаг е включен.

2- При включване на дъската на Arduino нищо не трябва да се движи. Тъй като използвахме непрекъснати сервомотори, нулевата позиция е зададена на 90 по подразбиране във файла за скициране. Ако сервомотор започне да се върти или да вдига шум. може да се наложи да дефинирате отново нейната нулева позиция. За да направите това, просто трябва да настроите потенциометъра в малкия отвор отстрани на сервомотора.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Стъпка 8: Заключение

Това малко устройство ще докладва физически за състоянието на вашата система за непрекъсната интеграция.

Тъй като "интелигентността" е в настолното приложение, можете да използвате полето за наблюдение на всеки друг софтуер или процес (поща, температурен сензор …). Просто трябва да имате достъп до друг API и да решите кое е "добро" или "лошо". Ако не използвате червени и зелени цветове, можете дори да промените значението на „съобщението“.

Подобрения могат да бъдат внесени и в самата кутия:

  • Използвайте батерия.
  • Използвайте друг комуникационен протокол.
  • Добавете сензори, за да знаете кое знаме е в горната част.

Надявам се този проект да ви е бил интересен.

Благодаря, че прочетохте до тук.

Стъпка 9: Приложение

Някои от връзките, използвани за създаването на този проект:

Уеб сайт на Arduino:

Уеб сайт на DIGI:

Софтуер на XCTU:

Някои данни, използвани от други:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (на френски)

jeromeabel.net/

Уеб сайтът на MSDN като цяло:

docs.microsoft.com/bg-bg/dotnet/framework/…

Препоръчано: