Spisu treści:

Obserwator maszyn budowlanych: 9 kroków
Obserwator maszyn budowlanych: 9 kroków

Wideo: Obserwator maszyn budowlanych: 9 kroków

Wideo: Obserwator maszyn budowlanych: 9 kroków
Wideo: Porady dla operatorów - instruktor Radek 2024, Listopad
Anonim
Obserwator maszyn budowlanych
Obserwator maszyn budowlanych
Obserwator maszyn budowlanych
Obserwator maszyn budowlanych

Punktem wyjścia do tego projektu była praca nad konkretnym projektem, aby dowiedzieć się kilku rzeczy o płytkach mikrokontrolerów.

Pierwotnym pomysłem było stworzenie fizycznego obiektu, który mógłby monitorować system ciągłej integracji (VSTS|Azure DevOps) i zgłaszać błędy kompilacji oprogramowania. Ze względu na kwestie bezpieczeństwa ze strony działu IT odmówiono mi podłączenia „niestandardowego” urządzenia bezpośrednio do sieci firmowej.

Skończyło się na architekturze pokazanej na powyższym obrazku. Przepływ pracy można podsumować jako:

Aplikacja komputerowa systemu Windows skanuje (wyciąga) definicje kompilacji VSTS. Analizuje wyniki kompilacji, a następnie wysyła polecenie do urządzenia fizycznego, które wykonuje małą animowaną sekwencję przed wyświetleniem czerwonej lub zielonej flagi.

Krok 1: Potrzebne części

Poniższa lista podsumowuje wszystkie potrzebne przedmioty:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Osłona na wydatki (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 moduły XBee S1 (https://www.adafruit.com/product/128).
  • 1 klucz sprzętowy eksploratora XBee (https://www.sparkfun.com/products/11697).
  • 2 serwosilniki ciągłe 5VDC z akcesoriami mocującymi (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 zasilacz 9VDC.
  • 3 diody LED.
  • 3 rezystory 220 Ohm.
  • termo chowany rękaw.
  • 1 przycisk.
  • Rezystor podciągający 10KΩ do podciągania.
  • Kondensator 100nF.
  • przewody elektryczne.
  • listwa (do montażu przycisku)
  • Drewno 5mm (50x50cm).
  • kij drewniany o przekroju kwadratowym 5x5 mm (1m).
  • karton.
  • 10 X śruba o średnicy 2 mm.
  • 4 śruby o średnicy 5mm.
  • silny magnes.
  • moduł obrotowy. Ponownie wykorzystałem wewnętrzną ruchomą część migającego światła. możesz umieścić co chcesz. Musisz tylko zadbać o to, aby 2 ruchome części mogły się swobodnie poruszać, nie stykając się ze sobą.

Krok 2: Budowanie pudełka

Budowanie pudełka
Budowanie pudełka

Właściwie możesz mieć pudełko o dowolnym kształcie. Najważniejszą rzeczą, o której należy pomyśleć przed rozpoczęciem, jest to, gdzie będą ruchome części i upewnienie się, że mogą się swobodnie poruszać, nie stykając się ze sobą. Innym punktem jest to, gdzie zamierzasz umieścić urządzenie? Skończyło się na magnesie (silnym), aby przykleić go do dowolnego metalowego wspornika. jeśli chcesz zbudować to samo pudełko, możesz postępować zgodnie z instrukcjami zawartymi w pliku box_drawings.pdf.

W takim przypadku wystarczy wyciąć wszystkie części, zrobić otwory na serwomotory, diody LED, przycisk i śruby, a na koniec skleić wszystkie części. Gdy wyschnie, trochę piaskowania i trochę koloru.

Dwie flagi zostały wykonane z czerwonego i zielonego kartonu. Do mocowania masztu flagowego na siłownikach można użyć elementów montażowych dostarczonych przy ich zakupie.

Krok 3: Konfiguracja Arduino

Konfiguracja Arduino
Konfiguracja Arduino

Elementy podłączone do płytki rozszerzeń Arduino to:

  • PIN D2: przycisk.
  • D4 PIN: dioda LED informująca, że system jest włączony.
  • D5 PIN: dioda LED informująca, że wykonujemy cykl.
  • D6 PIN: dioda LED informująca, że urządzenie otrzymało nową wiadomość.
  • D9 PIN: sygnał impulsowy PWM dla serwomotora obsługującego żyroskop.
  • PIN D10: sygnał impulsowy PWM dla siłownika obsługującego flagę.
  • Gniazdo XBee: jeden moduł ZigBee.

Powyższy schemat pokazuje, jak wszystkie elementy są połączone z płytą.

W przypadku diod LED rezystor i przewody są bezpośrednio do niego przyspawane (zwróć uwagę na polaryzację). Wszystko jest następnie pakowane w termo chowany rękaw.

W przypadku przycisku wszystkie części (przycisk, rezystor i kondensator) są bezpośrednio przyspawane do małej płytki satelitarnej. Listwa jest następnie mocowana bezpośrednio za pomocą dwóch śrub (2mm)

Serwomotory pracują z zasilaniem 5V, dzięki czemu można je podłączyć bezpośrednio do Arduino. Jeśli używasz tych o wyższym napięciu (12V) będziesz musiał dodać kolejną warstwę na zasilacz.

W przypadku modułów XBee, po ich skonfigurowaniu do komunikowania się ze sobą (patrz następna sekcja), można je podłączyć bezpośrednio do gniazd.

Uwagi: Diody LED i przycisk mogły być bezpośrednio podłączone do pinów Arduino, ponieważ mogą one implementować wewnętrznie potrzebne zabezpieczenia. Po prostu zrobiłem stary sposób, ponieważ ten aspekt nie był dla mnie zbyt jasny.

Krok 4: Oprogramowanie - XCTU

Oprogramowanie - XCTU
Oprogramowanie - XCTU

Jak wspomniano powyżej, dwa urządzenia XBee muszą być skonfigurowane do komunikowania się ze sobą. W tym celu należy skorzystać z dedykowanego oprogramowania X-CTU firmy DIGI. Ten krok konfiguracji musisz wykonać tylko raz. postępuj zgodnie z procedurą opisaną w pliku xbee_configuration.pdf.

Po zakończeniu konfiguracji możesz podłączyć każdy moduł do ich gniazda. Jeden na konwerterze USB/Serial i jeden na płytce rozszerzeń Arduino.

Konwerter USB/szeregowy powinien zostać automatycznie rozpoznany przez system Windows 10. Jeśli tak nie jest, konieczne może być ręczne zainstalowanie sterownika

Notatka:

Używanie modułów XBee do podstawowej komunikacji szeregowej to trochę przesada. W czasie, gdy zaczynałem projekt, nie udało mi się znaleźć prostych urządzeń do komunikacji szeregowej, które można łatwo wykorzystać w systemie Windows 10 (problemy ze sterownikami). Była to również okazja, aby dowiedzieć się kilku rzeczy o

Krok 5: Oprogramowanie - Arduino Sketch

Oprogramowanie - Arduino Sketch
Oprogramowanie - Arduino Sketch

Do programowania Arduino wykorzystujemy IDE dostępne z oficjalnej strony internetowej.

Logika programu jest dość prosta, po prostu nasłuchuje na domyślnym porcie szeregowym płyty dla pojedynczych liter („a”, „b”, …). Jeśli odebrany znak pasuje do znanego polecenia, podfunkcja odtwarza odpowiednią sekwencję.

Dwa główne przydatne polecenia to animacja sukcesu („a”) i animacja błędu („b”).

Aby móc grać (lub debugować) trochę więcej za pomocą tego pudełka, istnieje kilka dodatkowych poleceń, które można wykonać. Oni są:

  • „o”: wymuszenie włączenia diody ON
  • ‘p’: wymuś wyłączenie diody ON
  • „q”: wymuś włączenie diody LED nowej wiadomości
  • ‘r’: wymuś wyłączenie diody LED nowej wiadomości
  • „s”: wymuś włączenie diody LED cyklu
  • „t”: wymuś wyłączenie diody LED cyklu
  • „u”: aktywuj serwomotor żyroskopu
  • „v”: aktywuj serwomotor flagi.

Oprócz polecenia szeregowego istnieje podprogram (handlePushButton), który jest aktywowany po naciśnięciu przycisku na urządzeniu. W takim przypadku animacja błędu lub sukcesu jest odtwarzana automatycznie. Ta funkcja pozwala sprawdzić, czy fizyczne urządzenie zostało prawidłowo zamontowane.

Kod szkicu Arduino znajduje się w pojedynczym pliku bsldevice.ino. Możesz go przesłać bezpośrednio za pomocą IDE.

Krok 6: Oprogramowanie - aplikacja komputerowa

Oprogramowanie - aplikacja komputerowa
Oprogramowanie - aplikacja komputerowa

Celem aplikacji klasycznej jest monitorowanie witryny sieci Web Microsoft Azure DevOps (wcześniej VSTS) i wykrywanie, czy definicja kompilacji zakończyła się pomyślnie, czy jest błędna. Za każdym razem, gdy kompilacja jest zakończona, aplikacja komputerowa określa stan kompilacji i wysyła odpowiednie polecenie („a” lub „b”) do portu szeregowego (COMx).

Po uruchomieniu aplikacji pierwszą czynnością jest wybranie odpowiedniego portu COM, do którego podłączony jest moduł ZigBee. Aby określić port, możesz użyć Menedżera urządzeń systemu Windows (w sekcji Porty (sekcja COM i LPT)). Połączenie z usługą Azure DevOps odbywa się automatycznie podczas uruchamiania przy użyciu poświadczeń bieżącego użytkownika. Możesz także wysłać dowolne predefiniowane polecenie ręcznie, korzystając z pola kombi po prawej stronie.

Wszystkie źródła zostały wygenerowane za pomocą profesjonalnej edycji programu Visual Studio 2017. Wymaga. NET Framework 4.6.1. Ta wersja Framework jest preferowana, aby ułatwić połączenie/uwierzytelnianie z witryną sieci Web VSTS.

używać:

  • pobierz archiwum bslwatcher_sources.zip.
  • Wypakuj go na swój dysk.
  • Przeczytaj plik how_to_build.txt, aby poznać szczegóły kompilacji.

Krok 7: Pierwsze uruchomienie

Podczas uruchamiania pudełka należy pamiętać o dwóch głównych rzeczach:

1- Nie ma możliwości, aby system sam wiedział, gdzie są flagi. System zakłada, że przy starcie zielona flaga jest podniesiona.

2- Podczas uruchamiania płyty Arduino nic nie powinno się ruszać. Ponieważ używaliśmy serwomechanizmów ciągłych, pozycja zerowa jest domyślnie ustawiona na 90 w pliku szkicu. Serwomotor zaczyna się obracać lub hałasować. być może będziesz musiał ponownie zdefiniować jego pozycję zerową. W tym celu wystarczy nastroić potencjometr w małym otworze z boku serwomotoru.

www.arduino.cc/en/Reference/ServoWrite

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

Krok 8: Wniosek

To małe urządzenie będzie fizycznie zgłaszać stan systemu ciągłej integracji.

Ponieważ „inteligencja” znajduje się w aplikacji desktopowej, możesz wykorzystać skrzynkę do monitorowania dowolnego innego oprogramowania lub procesu (poczta, czujnik temperatury…). Wystarczy mieć dostęp do innego API i zdecydować, co jest „dobre”, a co „złe”. Jeśli nie używasz kolorów w konwencji czerwonej i zielonej, możesz nawet zmienić znaczenie „wiadomości”.

Ulepszenia można również wprowadzić do samego pudełka:

  • Użyj baterii.
  • Użyj innego protokołu komunikacyjnego.
  • Dodaj czujniki, aby wiedzieć, która flaga jest na górze.

Mam nadzieję, że uznałeś ten projekt za interesujący.

Dzięki do przeczytania do tej pory.

Krok 9: Aneks

Niektóre z linków użytych do stworzenia tego projektu:

Strona Arduino:

Strona internetowa DIGI:

Oprogramowanie XCTU:

Niektóre informacje wykorzystane od innych:

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

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

www.mon-club-elec.fr/pmwiki_reference_ardui… (w języku francuskim)

jeromeabel.net/

Witryna MSDN ogólnie:

docs.microsoft.com/en-us/dotnet/framework/…

Zalecana: