Всем доброго времени суток. Я только недавно начал работать на ардуино и решил сделать, на мой взгляд, интересный проект.
Я решил создать передатчик данных с помощью светодиода и азбуки Морзе.
Разделил проект на две части.
Проект лежит на git хабе, доступно по ссылке: https://github.com/Direaper/arduino/blob/master/morze/morze.ino
Видео работы:
Первая часть:
Для удобства и вынесения управления светодиодом и парсинга был создан класс Morze.
Он имеет пять методов:
Код очень сырой, но рабочий. По сути, осталось только довести его до ума и реализовать вторую часть, чем я постараюсь заняться в ближайшее время.
Что хочу реализовать в коде:
Я решил создать передатчик данных с помощью светодиода и азбуки Морзе.
Разделил проект на две части.
Осторожно, зашкаливающее количество говнокода!
Видео работы:
Первая часть:
- Пользователь вводит текст в com порт
- Ардуино парсирует слова по буквам
- Переводит код морзе
- Отправляет буквы обратно в com порт
- Мигает светодиодом слова по буквам согласно коду Морзе
- Подключить к ардуино датчик освещенности (как пример).
- "Ловить" датчиком сигналы от светодиода
- Переводить их из кода Морзе и составить полностью слово.
- Передать данные по Морзе на разные платформы ардуино
- Заменить светодиоды на что-то более удобно и практичное и попробовать передать сигнал на большем расстоянии.
Для удобства и вынесения управления светодиодом и парсинга был создан класс Morze.
Он имеет пять методов:
- dash - Описывает поведение "тире".
- point - Описывает поведение "точки"
- parsing - Парсирует слова на буквы и выводит в консоль
- delayfunc - отдельно реализовал функцию задержки, чтобы потом было удобно ей управлять (пока сделал обычный delay).
- alphabethMorze - "Словарь" Морзе. Проверяет введенный в com порт символ по словарю и обращается к функции по индивидуальным правилам
Код очень сырой, но рабочий. По сути, осталось только довести его до ума и реализовать вторую часть, чем я постараюсь заняться в ближайшее время.
Что хочу реализовать в коде:
- Хочу внятно добавить кириллицу и нижний регистр. Пока не понимаю как это сделать правильным образом.
- Чувствую, что со словарь можно вынести на более высокий уровень абстракции и не заморачиваться с кодированием каждого отдельного символа... Получается что символы индивидуальны и программировать их надо отдельно, но не понимаю как. В упор не вижу как это сделать.
- Нужен совет по второй части проекта. Чем лучше считать данные со светодиода и передать их обратно на ардуино? Подойдет ли датчик освещенности или нужно сделать что-то другое?
- Прошу дать общие рекомендации по коду, что можно улучшить?
Вложения
-
79.8 KB Просмотры: 31
Изменено: