Рубрики
Без рубрики

Код Морзе в Raspberry Pi

Небольшой учебник, чтобы узнать, как перевести человеческий язык в код Морзе, используя Raspberry Pi и светодиод. Tagged с Raspberrypi, Python, электроникой, оборудованием.

Я знаю, что это не самый удивительный проект в истории RPI, но этот проект предназначен для всех людей, как хочет начать использовать свой RPI в программировании электронных компонентов с нуля с их любимым языком, вы можете расшифровать этот проект к другому язык программирования Но здесь мы будем использовать Python в качестве удобного варианта. Некоторые образцы для контроллеров GPIO для RPIO в Элинукс Вики :

https://elinux.org/RPi_GPIO_Code_Samples

Что тебе понадобится?

  • Raspberry Pi с SD -картой и периферийными устройствами или SSH/последовательным соединением (необязательно).
  • Светодиод.
  • Протоборд.
  • 220 Ом резистор.

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

Небольшой пример «привет мира» в коде Морзе.

Для получения дополнительной информации и таблицы с кодированными буквами и цифрами. В этом пост в Википедия Анкет

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

Прежде всего, мы подготовим нашу связь RPI,

Я предпочитаю использовать свой RPI, подключенный через SSH или сериал и использую NEO Редактор VIM в моей оболочке, это необязательно, вы можете подключить HDMI и клавиатуру Но если вы предпочитаете эту опцию, как я, для подключения SSH вы можете увидеть этот пост из блога RPI, или см. это руководство для серийного соединения.

После этого мы установим наши кабели, вы можете скопировать эту схему.

В моем случае я использовал RPI 4B, но вы можете скопировать это соединение в RPI 3 или искать ту же конфигурацию в другой модели со следующей схемой.

Теперь мы будем зарегистрировать эти точки и линии как словарь Морса, как это:

После этого мы создадим еще один файл Python, назовуте его так, как вы предпочитаете, в моем случае я назову его main.py и первые строки имеют импорт двух библиотек, первые так важны.

import RPi.GPIO as GPIO
import time

Rpi.gpio является контроллером штифтов малинового пи. Время – это контроллер, чтобы держать наш светодиод в штате включенным или выключенным. Теперь мы будем импортировать словарь из Морс -конвенции.py файл:

from morse_coded_letters import letters

Теперь установите номер PIN, который отправит сигнал в светодиод.

PIN = 7

GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN, GPIO.OUT)

Gpio.setMode позволяет нам вызовать контакты в режиме платы, вы можете установить это в режиме BCM (в основном код для каждого вывода) или в режиме платы (в основном число для каждого вывода), см. Дополнительную информацию в после URL Анкет

Примечание. Если вы следуете схеме и предпочитаете использовать режим BSM, измените константу PIN -кода для номера 4, если вы следуете вышеуказанной схеме.

word = str(input("Write a word: "))
word = list(word.upper())

После этого мы получим слово и преобразуем его в список символов.

def led_control(time_sleep):
    GPIO.output(PIN, GPIO.HIGH)
    time.sleep(time_sleep)
    GPIO.output(PIN, GPIO.LOW)
    time.sleep(0.5)

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

for letter in word:
    time.sleep(2)
    bin_letter = letters[letter]
    print(bin_letter)
    for codes in bin_letter:
        if codes == "-":
            led_control(0.5)
        elif codes == ".":
            led_control(0.2)
        elif codes == "/":
            time.sleep(1)

Теперь это основная функция нашей микропрограммы.

Прежде всего, просмотрите все позиции в нашем списке Слово Затем найдите букву в словаре и определите бинарную конвенцию, для каждой «» светодиод будет оставаться на 0,5 секунды и 0,2 секунды для каждой точки. ´. * *ПРИМЕЧАНИЕ: Мы будем справляться с пространством с ´/´.

GPIO.cleanup()

Наконец, закройте соединение с очисткой для выключения светодиода.

ПРИМЕЧАНИЕ: Если вы предпочитаете двоичный код, например Для P вы можете увидеть такой код • • Но переведен на бинарный Вы можете увидеть этот код 0 1 1 0.

Если вы понимаете это соглашение, мы можем создать файл Python morse_binary_conventions.py с словарем со всеми конвенциями. Для получения дополнительных примеров увидеть эту суть

https://gist.github.com/halcolo/eafa6b8574bfda953bcc307fbe33060c#file-morse_binary_conventions-py И у вас есть код для обработчика: https://gist.github.com/halcolo/eafa6b8574bfda953bcc307fbe33060c#file-morse_code_binary_handler-py

Если вы хотите увидеть полный исходный код, см. Мой Гист в GitHub Анкет

Оригинал: “https://dev.to/halcolo/morse-code-in-raspberry-pi-1h9b”