Оглавление:

Arduino Hangman in Morse: 9 шагов
Arduino Hangman in Morse: 9 шагов

Видео: Arduino Hangman in Morse: 9 шагов

Видео: Arduino Hangman in Morse: 9 шагов
Видео: Arduino based Morse Code tutor - Ham radio projects. 2024, Июнь
Anonim
Ардуино Палач в Морзе
Ардуино Палач в Морзе

В этом уроке я покажу вам, как настроить свой собственный Arduino для игры в Hangman, отправив код Морзе с помощью простого фонарика или функции фонарика с вашего телефона.

Все, что вам нужно сделать, это: Плата Arduino, 10 светодиодных ламп, Провода для соединения всего этого. Дополнительно: Пьезоэлемент (для добавления звука).

Шаг 1: Настройка светодиодной подсветки

Настройка светодиодной подсветки
Настройка светодиодной подсветки

Эта игра в Морзе будет использовать 4 световых индикатора, чтобы обозначить 4 буквы в слове, которые необходимо угадать, и 5 световых индикаторов, чтобы указать, сколько жизней игроку осталось угадывать, поэтому прежде всего вам нужно будет подключить 9 светодиодов. -светится обычным образом, как видно на картинке.

Шаг 2. Добавьте временный датчик освещенности

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

Все, что вам нужно сделать, это подключить положительную сторону светодиодной лампы к одному из аналоговых портов (в моем случае A0), а отрицательную сторону - к заземлению.

Шаг 3. Добавьте свой словарь

Добавьте свой словарь
Добавьте свой словарь

Прежде всего, давайте начнем с добавления своего рода словаря для перевода букв в соответствующие коды Морзе. Для этого мы просто создаем массив размером 26 на 5, причем первый слот каждого вторичного массива имеет букву, а 4 следующих слота имеют соответствующий код Морзе или пробел, если кода не осталось. Так, например, с буквой s в первом слоте есть «s», а во втором, третьем и четвертом слотах - «.» и последний слот есть ''.

Шаг 4. Включите свет по умолчанию

Сделайте так, чтобы огни горели по умолчанию
Сделайте так, чтобы огни горели по умолчанию
Заставить свет загораться по умолчанию
Заставить свет загораться по умолчанию

На этом шаге мы убеждаемся, что индикаторы горят после запуска программы, а азбука Морзе буквы, которую они представляют, когда пользователь правильно их угадал (код для этого будет написан на шаге 6). Мы также следим за тем, чтобы световых индикаторов для жизней было столько, сколько жизней осталось у игрока.

Перед этим убедитесь, что у вас есть массив с номерами портов и целыми числами, установленными на 0, чтобы представить время, в которое свет должен включаться, выключаться и какая часть Морзе светится светодиодом.

Шаг 5: Добавление ввода

Добавление ввода
Добавление ввода

Теперь мы напишем код, чтобы проверить, светит ли проигрыватель светодиодным индикатором, подключенным к нашему аналоговому порту A0, и должны ли они переводить его на правильную букву.

Чтобы убедиться, что показания верны, мы усредняем каждые 20 показаний светодиодной лампы и используем это число, чтобы отслеживать, включен или выключен свет. Для этого в начале программы мы устанавливаем NUM_AVG на количество раз, которое мы хотим, чтобы он проверял свет перед его усреднением. Чем выше это число, тем точнее показания, но это также может вызвать задержки.

msBtnPushing представляет количество времени, в течение которого свет был включен. lastPressed - это логическое значение, которое отслеживает, был ли свет в предыдущем цикле включен.

Шаг 6: обработка ввода

Обработка ввода
Обработка ввода
Обработка ввода
Обработка ввода

На этом шаге мы посмотрим, что делать, когда пройдет достаточно времени, чтобы предположить, что больше не будет добавляться Морс, и нам нужно проверить, отправил ли Морс в форме письмо и правильное ли это письмо.

Для этого нам нужно установить в строке wordToGuess слово, которое игроки должны угадать. У меня лично есть генератор случайных чисел, который вначале устанавливает случайное слово, но вы также можете просто установить его на одно слово.

Нам также нужно следить за тем, чтобы счетчик увеличивался на единицу в каждом цикле, иначе вся программа ничего не сделает. Кроме того, я добавил функцию задержки, чтобы гарантировать цикл каждую миллисекунду.

PS: Все функции Serial.println предназначены только для тестирования. По завершении они могут быть удалены.

GoodTimer и badTimer - это просто значения, если вы планируете использовать элемент Piezo для добавления звука. Если вы хотите сделать это, вы также должны добавить код на втором рисунке, который воспроизводит звуки.

Шаг 7: забывая о правильно угаданных буквах

Забывая о правильно угаданных письмах
Забывая о правильно угаданных письмах

Как и было обещано ранее, на этом этапе мы сделаем огни, которые представляют буквы, которые были угаданы правильно, Морзе их буквы.

Для этого я написал две функции: morseThis и nextLetter. Она использует числа, которые мы ранее установили в нашем массиве таймеров, и изменяет их в зависимости от того, какая часть кода Морзе светится в данный момент.

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

Шаг 8: проверка нашей настройки и сброса

Обзор нашей настройки и сброса
Обзор нашей настройки и сброса

Конечно, программа не запустится, если индикаторы не настроены на вывод и ввод. Я также добавляю генератор случайных чисел, чтобы добавить слово из списка слов, которые я поместил в массив с именем wordsToGuess.

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

Шаг 9: все переменные в одном изображении

Все переменные в одном изображении
Все переменные в одном изображении

Наконец, вы можете использовать это, чтобы проверить, правильно ли настроены все необходимые переменные.

Теперь наслаждайтесь игрой в палача в Морзе!

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