Оглавление:

Наблюдатель за сборкой машин: 9 шагов
Наблюдатель за сборкой машин: 9 шагов

Видео: Наблюдатель за сборкой машин: 9 шагов

Видео: Наблюдатель за сборкой машин: 9 шагов
Видео: запустил гаррисмод на движке half-life 1 2024, Июль
Anonim
Наблюдатель за сборкой машин
Наблюдатель за сборкой машин
Наблюдатель за сборкой машин
Наблюдатель за сборкой машин

Отправной точкой этого проекта была работа над конкретным проектом, чтобы узнать кое-что о платах микроконтроллеров.

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

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

Настольное приложение Windows сканирует (извлекает) определения сборки VSTS. Он анализирует результаты сборки, а затем отправляет команду на физическое устройство, которое выполняет небольшую анимированную последовательность перед отображением красного или зеленого флажка.

Шаг 1: Необходимые детали

В следующем списке перечислены все необходимые элементы:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Expension Shield (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 серводвигателя постоянного тока 5 В постоянного тока с крепежными принадлежностями (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 источник питания 9 В постоянного тока.
  • 3 светодиода.
  • 3 резистора 220 Ом.
  • термо-выдвижной рукав.
  • 1 кнопка.
  • Подтягивающий резистор 10 кОм для подтягивания.
  • Конденсатор 100 нФ.
  • электрические провода.
  • стрип-борд (для крепления кнопки)
  • Дерево 5мм (50х50см).
  • деревянная палка квадратного сечения 5х5 мм (1м).
  • картон.
  • 10 X винт диаметром 2 мм.
  • 4 винта диаметром 5 мм.
  • сильный магнит.
  • токарный модуль. Я повторно использовал внутреннюю подвижную часть проблескового маячка. можешь ставить все, что хочешь. Вам просто нужно позаботиться о том, чтобы 2 подвижные части могли свободно перемещаться, не соприкасаясь друг с другом.

Шаг 2: создание коробки

Создание коробки
Создание коробки

На самом деле вы можете получить коробку любой формы, какой захотите. Главное, о чем следует подумать перед запуском, - это где будут движущиеся части и убедиться, что они могут свободно перемещаться, не соприкасаясь друг с другом. Другой момент, куда вы собираетесь поставить девайс? В итоге у меня получился магнит (сильный), чтобы приклеить его к любой металлической опоре. если вы хотите построить такой же ящик, вы можете следовать инструкциям в файле box_drawings.pdf.

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

Два флага сделаны из красного и зеленого картона. Чтобы закрепить флагшток на серводвигателях, вы можете использовать монтажные детали, входящие в комплект поставки.

Шаг 3: Настройка Arduino

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

К плате расширения Arduino подключены следующие элементы:

  • D2 PIN: кнопка.
  • D4 PIN: светодиод, указывающий на то, что система включена.
  • D5 PIN: светодиод, показывающий, что мы выполняем цикл.
  • D6 PIN: светодиод, показывающий, что устройство получило новое сообщение.
  • D9 PIN: импульсный сигнал PWM для серводвигателя, управляющего гироскопом.
  • D10 PIN: импульсный сигнал PWM для серводвигателя, обрабатывающего флаг.
  • XBee Socket: один модуль ZigBee.

На схеме выше показано, как все элементы подключены к плате.

Для светодиодов резистор и провода привариваются непосредственно к нему (соблюдайте полярность). Затем все упаковывается в какой-то термо-убирающийся рукав.

Все части кнопки (кнопка, резистор и конденсатор) приварены непосредственно к небольшой плате-спутнику. Затем планка фиксируется двумя винтами (2 мм).

Серводвигатели работают от напряжения 5 В, поэтому их можно подключать напрямую к Arduino. Если вы используете устройства с более высоким напряжением (12 В), вам придется добавить еще один слой для блока питания.

Что касается модулей XBee, когда они настроены для совместной работы (см. Следующий раздел), их можно подключать к сокетам напрямую.

Примечания: светодиоды и кнопка могли быть напрямую подключены к контактам Arduino, поскольку это может обеспечить внутреннюю реализацию необходимых ценных бумаг. Я просто поступил по-старому, так как этот аспект был для меня не очень понятен.

Шаг 4: Программное обеспечение - XCTU

Программное обеспечение - XCTU
Программное обеспечение - XCTU

Как упоминалось выше, два устройства XBee должны быть настроены для совместной работы. Для этого вам нужно использовать специальное программное обеспечение X-CTU от DIGI. Вам нужно сделать этот шаг настройки только один раз. следуйте процедуре, описанной в файле xbee_configuration.pdf.

После завершения настройки вы можете подключить каждый модуль к своему разъему. Один на преобразователе USB / Serial и один на плате расширения Arduino.

Конвертер USB / Serial должен автоматически распознаваться Windows 10. Если это не так, возможно, вам придется установить драйвер вручную.

Примечание:

Использование модулей XBee для базовой последовательной связи - это немного излишне. В то время, когда я начал проект, мне не удалось найти простые устройства последовательной связи, которые можно было бы легко использовать в Windows 10 (проблемы с драйверами). Это также была возможность узнать кое-что о

Шаг 5: Программное обеспечение - Arduino Sketch

Программное обеспечение - Arduino Sketch
Программное обеспечение - Arduino Sketch

Для программирования Arduino мы используем IDE, доступную на официальном веб-сайте.

Логика программы довольно проста: она просто прослушивает последовательный порт платы по умолчанию на предмет отдельных букв («a», «b»,…). Если полученный символ соответствует известной команде, то подфункция воспроизводит соответствующую последовательность.

Две основные полезные команды - это анимация успеха («a») и анимация ошибки («b»).

Чтобы иметь возможность немного поиграть (или отладить) с коробкой, есть несколько дополнительных команд, которые могут быть выполнены. Они есть:

  • ‘O’: принудительное включение светодиода ON
  • ‘P’: принудительно выключить светодиод ON.
  • ‘Q’: принудительно включить индикатор нового сообщения
  • ‘R’: принудительное выключение светодиода нового сообщения.
  • ‘S’: включить светодиод цикла.
  • ‘T’: принудительно выключить светодиод цикла.
  • ‘U’: активировать серводвигатель гироскопа
  • ‘V’: активировать серводвигатель флажка.

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

Код скетча Arduino находится в единственном файле bsldevice.ino. Вы можете загрузить его напрямую с помощью IDE.

Шаг 6. Программное обеспечение - настольное приложение

Программное обеспечение - настольное приложение
Программное обеспечение - настольное приложение

Назначение настольного приложения - отслеживать веб-сайт Microsoft Azure DevOps (ранее VSTS) и определять, является ли определение сборки успешным или ошибочным. Каждый раз, когда сборка завершается, настольное приложение определяет статус сборки и отправляет соответствующую команду («a» или «b») на последовательный порт (COMx).

После запуска приложения первым делом необходимо выбрать правильный com-порт, к которому подключен модуль ZigBee. Чтобы определить порт, вы можете использовать Диспетчер устройств Windows (в разделе Порты (раздел 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/en-us/dotnet/framework/…

Рекомендуемые: