Оглавление:
- Запасы
- Шаг 1. Определите, как это работает: пешеходный светофор
- Шаг 2: Постройте схему
- Шаг 3: Создание конечного автомата
- Шаг 4: Запуск примера
- Шаг 5: Сгенерированный код C ++
- Шаг 6. Получите пример
![Конечный автомат на Arduino - пешеходный светофор: 6 шагов (с изображениями) Конечный автомат на Arduino - пешеходный светофор: 6 шагов (с изображениями)](https://i.howwhatproduce.com/images/001/image-298-39-j.webp)
Видео: Конечный автомат на Arduino - пешеходный светофор: 6 шагов (с изображениями)
![Видео: Конечный автомат на Arduino - пешеходный светофор: 6 шагов (с изображениями) Видео: Конечный автомат на Arduino - пешеходный светофор: 6 шагов (с изображениями)](https://i.ytimg.com/vi/ewnC2Fq6Z0A/hqdefault.jpg)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
![Конечный автомат на Arduino - пешеходный светофор Конечный автомат на Arduino - пешеходный светофор](https://i.howwhatproduce.com/images/001/image-298-40-j.webp)
Привет! Я собираюсь показать вам, как запрограммировать пешеходный светофор для Arduino на C ++ с конечным автоматом с помощью YAKINDU Statechart Tools. Это продемонстрирует мощь конечных автоматов и может быть использовано в качестве образца для дальнейших проектов.
Запасы
Вам понадобится только Arduino, несколько кнопок, светодиоды, перемычка и резисторы.
Аппаратное обеспечение
- 2x кнопки
- 2 светофора или светодиоды с резисторами 220 Ом
- 2 резистора по 10 кОм
- Макетная плата
- Джемпер
- Arduino Uno / Mega (или любой другой, имеющий не менее 8 GPIO)
Программное обеспечение
- Инструменты диаграммы состояний YAKINDU
- Eclipse C ++ IDE для Arduino
Шаг 1. Определите, как это работает: пешеходный светофор
Для начала нам нужно указать, как должен работать пешеходный светофор. Я попытался резюмировать пункты списка:
- Используются два светофора - один для автомобилей, другой для пешеходов.
- Светофор можно включить кнопкой
- Пешеход может запросить переход улицы, нажав кнопку
- Выключенный светофор отображается миганием обоих желтых светодиодов.
- После включения светофор ждет 10 секунд в безопасном режиме
- После безопасного режима у автомобилей всегда будет зеленая фаза, пока пешеход не начнет запрос.
- Запрос пешехода на переход отображается мигающим желтым светодиодом.
Кроме того, существуют некоторые временные события в зависимости от того, как работает светофор.
Шаг 2: Постройте схему
![Постройте схему Постройте схему](https://i.howwhatproduce.com/images/001/image-298-41-j.webp)
Приступим к настройке схемы. В моем примере, как вы можете видеть на изображении предварительного просмотра, я использовал Arduino Mega 2560, но любой другой Arduino с как минимум восемью GPIO должен подойти. Кроме того, я купил на Amazon несколько светофоров 5V. Просто ищите светофор Arduino. В противном случае вы можете просто использовать шесть разных светодиодов. Кроме того, вам понадобятся две кнопки и два резистора 10 кОм.
Три левых светодиода используются для автомобильного движения и три правых светодиода для пешеходов, а желтый может указывать на запрос.
Шаг 3: Создание конечного автомата
![Создание конечного автомата Создание конечного автомата](https://i.howwhatproduce.com/images/001/image-298-42-j.webp)
Итак, как вы можете видеть, есть два основных состояния с составными членами - состояние включено и состояние выключено. Вы можете переключаться между обоими состояниями, используя событие onOff, которое связано с кнопкой ON / OFF. В исходном состоянии, выключенном, оба желтых светодиода начинают мигать каждую секунду. После включения светофора он включается в Safeestate. Через 10 секунд типичное поведение светофора будет устранено. Красный и желтый светодиоды будут включены в состоянии StreetPrepare, а светофор станет зеленым еще через 2 секунды. С этого момента конечный автомат ожидает события pedestrianRequest, которое связано со второй кнопкой. После отправки события запрос будет обозначаться переключением желтого светодиода каждую секунду в состоянии PedWating. Через 7 секунд светофор будет переключаться сначала на желтый, а затем на красный, пока пешеходы не получат сигнал о переходе в состояние PedestrianGreen. После этого активируется PedestrianRed, и цикл повторяется. Это можно прервать, только снова выключив светофор.
Шаг 4: Запуск примера
![](https://i.ytimg.com/vi/u5mszmWjVoU/hqdefault.jpg)
Шаг 5: Сгенерированный код C ++
Сгенерированный код C ++ представляет собой классический случай переключения для обработки логики конечного автомата. Это всего лишь фрагмент кода, как это выглядит:
void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen); перерыв; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); перерыв; } по умолчанию: перерыв; } clearInEvents (); }
Шаг 6. Получите пример
Весь пример готов к компиляции и запуску. Он поставляется с инструментами YAKINDU Statechart Tools, которые бесплатны для некоммерческого использования. После загрузки вы можете импортировать пример прямо в инструмент:
Файл -> Создать -> Пример -> Примеры диаграмм состояний YAKINDU -> Далее -> Светофор (C ++) для Arduino
> ЗДЕСЬ вы можете скачать YAKINDU Statechart Tools <<
Вы можете начать с 30-дневной пробной версии. После этого вы должны получить лицензию, которая бесплатна для некоммерческого использования!
Рекомендуемые:
Светодиодный звуковой реактивный бесконечный кубический конечный стол: 6 шагов (с изображениями)
![Светодиодный звуковой реактивный бесконечный кубический конечный стол: 6 шагов (с изображениями) Светодиодный звуковой реактивный бесконечный кубический конечный стол: 6 шагов (с изображениями)](https://i.howwhatproduce.com/images/001/image-1348-25-j.webp)
Светодиодный звуковой реактивный бесконечный кубический торцевой стол: Вау! Ого! Какой классный эффект! - Вот некоторые вещи, которые вы услышите после завершения работы с руководством. Совершенно умопомрачительный, красивый, гипнотический, реагирующий на звук бесконечный куб. Это скромно продвинутый проект по пайке, на который у меня ушло около 12 человек
Конечный автомат на MSP430: 6 шагов
![Конечный автомат на MSP430: 6 шагов Конечный автомат на MSP430: 6 шагов](https://i.howwhatproduce.com/images/011/image-31343-j.webp)
Конечный автомат на MSP430: я собираюсь показать вам, как программировать стартовую панель MSP430G2 с конечными автоматами (FSM), используя инструменты диаграммы состояний YAKINDU непосредственно в Texas Instruments Code Composer Studio. Это руководство состоит из шести шагов: Установка инструментов диаграммы состояний YAKINDU как
Эффектор гибки: Роботизированный конечный эффект для гибки пластин: 6 шагов
![Эффектор гибки: Роботизированный конечный эффект для гибки пластин: 6 шагов Эффектор гибки: Роботизированный конечный эффект для гибки пластин: 6 шагов](https://i.howwhatproduce.com/images/012/image-33364-j.webp)
Изгибающий эффект: Роботизированный оконечный эффектор для изгибающих пластин: Цель: формирование и фиксация активных элементов третичного изгиба на первичном / вторичном структурном элементе / раме. Члены группы: Бабасола Томас, Нилофар Имани, Завод Сонгкхро
Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага
![Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага](https://i.howwhatproduce.com/images/003/image-7721-14-j.webp)
Конечный автомат и многозадачность на Arduino с помощью расширителей SPI: На прошлой неделе я просил создать систему для пилотирования фейерверков с помощью Arduino. Для борьбы с пожарами требовалось около 64 выходов. Один из способов сделать это - использовать расширители IC. Итак, доступны 2 решения: - расширитель I2C, но ему нужен инвертор, когда вы
ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов
![ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов ПЛК Arduino 32 ввода-вывода + конечный автомат + SCADA или HMI: 8 шагов](https://i.howwhatproduce.com/images/002/image-5415-22-j.webp)
ПЛК Arduino 32 ввода / вывода + конечный автомат + SCADA или HMI: множество способов программирования, управления и наблюдения за промышленной системой с помощью arduino