Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Zdefiniuj, jak to działa: Sygnalizacja świetlna dla pieszych
- Krok 2: Zbuduj obwód
- Krok 3: Tworzenie maszyny stanowej
- Krok 4: Uruchamianie przykładu
- Krok 5: Wygenerowany kod C++
- Krok 6: Zdobądź przykład
Wideo: State Machine na Arduino - sygnalizacja świetlna dla pieszych: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Hej! Pokażę ci, jak zaprogramować sygnalizację świetlną dla Arduino w C++ za pomocą maszyny skończonej za pomocą narzędzi YAKINDU Statechart Tools. To zademonstruje siłę maszyn państwowych i może posłużyć jako plan dla dalszych projektów.
Kieszonkowe dzieci
Potrzebujesz tylko Arduino, kilku przycisków, diod LED, zworki i rezystorów.
Sprzęt komputerowy
- 2x przycisk
- 2x sygnalizacja świetlna lub możesz użyć diod LED z rezystorami 220 Ohm
- Rezystory 2x 10k Ohm
- Deska do krojenia chleba
- Skoczek
- Arduino Uno/Mega (lub jakikolwiek inny, który ma co najmniej 8 GPIO)
Oprogramowanie
- Narzędzia wykresów stanu YAKINDU
- Eclipse C++ IDE dla Arduino
Krok 1: Zdefiniuj, jak to działa: Sygnalizacja świetlna dla pieszych
Najpierw musimy określić, jak powinna działać sygnalizacja świetlna dla pieszych. Spróbowałem podsumować punkty:
- Stosowane są dwie sygnalizacje świetlne - jedno dla samochodów, drugie dla pieszych
- Sygnalizację świetlną można włączyć za pomocą przycisku
- Pieszy może poprosić o przejście przez ulicę, naciskając przycisk
- Wyłączenie sygnalizacji świetlnej sygnalizowane jest miganiem obu żółtych diod LED
- Po włączeniu sygnalizacja świetlna czeka 10 sekund w trybie awaryjnym
- Po trybie awaryjnym samochody zawsze mają zieloną fazę, dopóki pieszy nie rozpocznie żądania
- Prośba pieszego o przejście jest sygnalizowana przez przełączanie żółtej diody LED
Dodatkowo istnieją pewne zdarzenia czasowe w zależności od sposobu działania sygnalizacji świetlnej.
Krok 2: Zbuduj obwód
Zacznijmy konfigurować obwód. W moim przykładzie, jak widać na obrazie podglądu, użyłem Arduino Mega 2560, ale każde inne Arduino z co najmniej ośmioma GPIO powinno być w porządku. Dodatkowo kupiłem trochę sygnalizacji świetlnej 5V w Amazon. Po prostu wyszukaj Traffic Light Arduino. W przeciwnym razie możesz po prostu użyć sześciu różnych diod LED. Ponadto potrzebne są dwa przyciski i dwa rezystory 10k Ohm.
Trzy lewe diody LED są używane do ruchu samochodowego, a trzy prawe diody LED dla pieszych, gdzie żółta może sygnalizować żądanie.
Krok 3: Tworzenie maszyny stanowej
Jak widać, istnieją dwa główne stany z elementami złożonymi - stan włączony i stan wyłączony. Możesz przełączać się między obydwoma stanami za pomocą zdarzenia onOff, które jest połączone z przyciskiem ON/OFF. W stanie początkowym, wyłączonym, obie żółte diody LED zaczynają migać co sekundę. Po włączeniu sygnalizacji świetlnej rozpoczyna się w Safestate. Po 10 sekundach zostanie przeanalizowane typowe zachowanie sygnalizacji świetlnej. Czerwona i żółta dioda LED zaświecą się w stanie StreetPrepare, a sygnalizacja świetlna zmieni kolor na zielony po kolejnych 2 sekundach. Od tej chwili automat stanu czeka na zdarzenie pieszychRequest, które jest podłączone do drugiego przycisku. Po wysłaniu zdarzenia żądanie zostanie zasygnalizowane przełączaniem żółtej diody LED co sekundę w stanie PedWating. 7 sekund później sygnalizacja świetlna zostanie najpierw zmieniona na żółty, a następnie na czerwony, aż piesi otrzymają sygnał, aby przejść w stanie Pieszy Zielony. Następnie aktywowany zostaje PedestrianRed i cykl się powtarza. Można to przerwać tylko przez ponowne wyłączenie świateł.
Krok 4: Uruchamianie przykładu
Krok 5: Wygenerowany kod C++
Wygenerowany kod C++ to klasyczny przypadek przełącznika do obsługi logiki maszyny stanów. To tylko fragment kodu, jak to wygląda:
void TrafficLightCtrl::runCycle(){ clearOutEvents(); for (stateConfVectorPosition = 0; stateConfVectorPosition < maxOrthogonalStates; stateConfVectorPosition++) { switch (stateConfVector[stateConfVectorPosition]) { case main_region_on_r1_StreetGreen: { main_region_on_r1_StreetGreen_react(true); przerwa; } case main_region_on_r1_PedWaiting_r1_waitOn: { main_region_on_r1_PedWaiting_r1_waitOn_react(true); przerwa; } domyślnie: przerwa; } clearInEvents(); }
Krok 6: Zdobądź przykład
Cały przykład jest gotowy do skompilowania i uruchomienia. Jest dostarczany z narzędziami YAKINDU Statechart Tools, które są bezpłatne do użytku niekomercyjnego. Po pobraniu możesz zaimportować przykład bezpośrednio do narzędzia:
Plik -> Nowy -> Przykład -> Przykłady schematów YAKINDU -> Dalej -> Sygnalizacja świetlna (C++) dla Arduino
> TUTAJ możesz pobrać narzędzia wykresów stanów YAKINDU <<
Możesz zacząć od 30-dniowego okresu próbnego. Następnie musisz uzyskać licencję, która jest bezpłatna do użytku niekomercyjnego!
Zalecana:
Arduino Jak kontrolować sygnalizację świetlną: 7 kroków
Arduino Jak kontrolować sygnalizację świetlną: W tym samouczku nauczymy się sterować sygnalizacją świetlną za pomocą arduino i Visuino. Ten samouczek jest świetny dla początkujących.Obejrzyj wideo
Projekt sygnalizacji świetlnej Arduino [z przejściem dla pieszych]: 3 kroki
Projekt sygnalizacji świetlnej Arduino [z przejściem dla pieszych]: Jeśli szukasz czegoś łatwego, prostego, a jednocześnie chcesz zaimponować wszystkim swoim Arduino, projekt sygnalizacji świetlnej jest prawdopodobnie najlepszym wyborem, zwłaszcza gdy jesteś początkującym na świecie Arduino. Najpierw zobaczymy, jak
Betonowa kostka świetlna LED: 12 kroków (ze zdjęciami)
Betonowa kostka świetlna LED: Ta betonowa kostka świetlna LED jest bardzo prosta, ale dość efektowna i myślę, że będzie idealnym akcentem lub lampką nocną. Beton jest tak fajny w użyciu i oczywiście możesz zmieniać projekt w zależności od swoich upodobań i dodawać kolor, zmieniać t
10 alternatyw dla majsterkowiczów dla gotowych komponentów elektronicznych: 11 kroków (ze zdjęciami)
10 alternatyw dla majsterkowiczów dla gotowych komponentów elektronicznych: witam w moim pierwszym instruktażu! Czy uważasz, że niektóre części od sprzedawców internetowych są zbyt drogie lub niskiej jakości? Potrzebujesz szybko przygotować i uruchomić prototyp i nie mogę się doczekać tygodni na wysyłkę? Brak lokalnych dystrybutorów elektroniki?
Komercyjna składana kaseta świetlna / lekki namiot o wartości 20 USD / 20 min: 7 kroków (ze zdjęciami)
Komercyjne składane pudełko oświetleniowe / lekki namiot o wartości 20 USD / 20 min: Jeśli szukałeś lekkiego pudełka do majsterkowania na produkt lub zbliżeń, wiesz już, że masz wiele możliwości. Od kartonowych pudełek po kosze na pranie, możesz pomyśleć, że projekt został zrobiony na śmierć. Ale poczekaj! Za 20 dolarów