Spisu treści:
- Krok 1: Potrzebne części
- Krok 2: Budowanie pudełka
- Krok 3: Konfiguracja Arduino
- Krok 4: Oprogramowanie - XCTU
- Krok 5: Oprogramowanie - Arduino Sketch
- Krok 6: Oprogramowanie - aplikacja komputerowa
- Krok 7: Pierwsze uruchomienie
- Krok 8: Wniosek
- Krok 9: Aneks
Wideo: Obserwator maszyn budowlanych: 9 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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
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
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
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
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:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
Obserwator wilgotności i temperatury używający Raspberry Pi z SHT25 w Pythonie: 6 kroków
Obserwator wilgotności i temperatury używający Raspberry Pi z SHT25 w Pythonie: Będąc entuzjastami Raspberry Pi, pomyśleliśmy o kilku bardziej spektakularnych eksperymentach z nim. W tej kampanii stworzymy obserwatora wilgotności i temperatury, który mierzy wilgotność względną i temperaturę za pomocą Raspberry Pi i SHT25, Humid
Arduino HMI przy użyciu maszyn stanowych: 9 kroków
Arduino HMI przy użyciu maszyn stanowych: W tej instrukcji pokażę, jak używać narzędzi YAKINDU Statechart Tools do realizacji prostego i rozszerzalnego interfejsu HMI za pomocą osłony klawiatury LCD 16x2 dla Arduino. Maszyny skończone (FSM) to potężny wzorzec projektowy do opracowania złożona Człowiek-Maszyna
Obserwator linii BrickPi3: 4 kroki
BrickPi3 Line Follower: Oto projekt demonstrujący, w jaki sposób Dexter Industries Line Follower może być użyty, aby robot BrickPi3 podążał za linią
Predykcyjna konserwacja maszyn wirujących za pomocą wibracji i szczytu rzeczy: 8 kroków
Predykcyjna konserwacja maszyn wirujących za pomocą wibracji i szczytu rzeczy: Maszyny wirujące, takie jak turbiny wiatrowe, turbiny wodne, silniki indukcyjne itp., Zmagają się z różnego rodzaju zużyciem i rozdarciem. Większość z tych usterek i zużycia spowodowanych nienormalnymi wibracjami w urządzeniu. Maszyny te są często eksploatowane w ciężkich warunkach