Каталог статей

Главная » Все схемы » Радиосвязь » Радиопередатчики

Выбранная схема!!!


7489
Управление беспроводной игрушечной машинкой через ПК | Доступны полные инструкции

Управление беспроводной игрушечной машинкой через ПК | Доступны полные инструкции

Здесь мы покажем, как можно управлять беспроводной игрушечной машинкой через последовательный порт вашего ПК с помощью пары модулей передатчика и приемника ASK. Полученный сигнал декодируется микроконтроллером P89V51RD2 и подается в схему драйвера двигателя для перемещения игрушечной машинки вперед, назад, вправо или влево. Все сигналы находятся в радиочастотном диапазоне.

Управление беспроводной игрушечной машинкой

Блок-схема беспроводного управления игрушечной машинкой на базе ПК

Выше представлена блок-схема беспроводного управления игрушечной машинкой на базе ПК. Различные этапы беспроводного управления:

  • Передача управляющих сигналов из последовательного порта ПК
  • РЧ передатчик и приемник
  • Декодирование полученных сигналов с помощью микроконтроллера
  • Драйверы автомобилей
  • Между компьютером и микроконтроллером P89V51RD2 устанавливается асинхронная последовательная связь через беспроводную радиочастотную связь. Микроконтроллер и компьютер синхронизированы друг с другом. Скорость передачи данных составляет 1200 бод.

    Передача управляющего сигнала через последовательный порт ПК

    Первая часть проекта — передача управляющих сигналов через последовательный порт ПК. Управляющие сигналы: W, S, D, A, Q, E, C, Z и U для управления игрушечной машинкой вперед, назад, занос вправо, занос влево, резкий поворот вперед налево, резкий поворот вперед вправо, резкий поворот налево назад, резкий поворот направо назад и остановка соответственно. Каждый из сигналов управления подается с клавиатуры и передается через последовательный порт. Затем сигнал передается по беспроводной сети с помощью модуля передатчика ASK.

    Последовательный COM-порт ПК

    В основании вашего ПК имеется множество портов для отправки данных на подключенные периферийные устройства. Последовательный порт, параллельный порт и порт USB — это некоторые порты для подключения периферийных устройств.

    Последовательный порт данных передает или принимает данные последовательно (1 бит данных на каждый тактовый импульс TX или RX). Он основан на стандарте IEEE RS-232, который определяет напряжения и скорость передачи данных для последовательной связи между подключенными к нему устройствами. Большинство настольных компьютеров имеют последовательный порт RS-232, поскольку он имеет очень простую схему, дешев и прост в обращении.

    9-контактный разъем последовательного порта DB9 для Windows имеет конфигурацию, показанную здесь.

    Стандартный последовательный порт RS-232 имеет девять контактов, имеющих различные функции для передачи и приема данных. Из них только три контакта (контакты 2, 3 и 5) в основном используются для отправки и получения данных. В этом проекте используются только контакты 3 и 5. В стандарте RS-232 предусмотрены определенные уровни напряжения для логического 0 и логической 1 данных (от -3 до -15 В для логического 1 и от +3 до +15 В для логического 0). Но микроконтроллер определяет логический 0 и логическую 1 по уровням напряжения 0-0,5В и 4,5-5В соответственно. Поэтому вам необходимо преобразовать стандартный уровень сигнала RS-232 в уровень сигнала микроконтроллера. Для этой цели мы использовали преобразователь MAX232.

    Схема передатчика

    Для преобразования уровня сигнала MAX232 требуются четыре конденсатора (10 мкФ) и источник питания 5 В. Поскольку мы используем источник питания 9 В, для подачи питания на MAX232 требуется стабилизатор напряжения с одним источником напряжения IC 7805. Теперь сигнал последовательного порта, имеющий логику RS-232, может быть преобразован в сигнал уровня TTL 5 В.

    Схема передатчика

    Секция передатчика, построенная на базе MAX232, показана выше.

    РЧ-передача

    модулированный сигнал ASK

    Питание 5 В от стабилизатора напряжения 7805 IC питает модуль передатчика RF ASK через его контакт 3. Этот модуль фактически собирает двоичный сигнал с контакта данных (который подключен к MAX232) и модулирует этот двоичный сигнал с помощью амплитудной манипуляции. (ASK) использует схему цифровой модуляции на несущей частоте 434 МГц и передает данные через антенну. Здесь показана концепция сигнала ASK.

    РЧ-прием

    Приемный модуль ASK (рис. 4) принимает сигнал частотой 434 МГц и демодулирует его. Сигнал основной полосы представляет собой 10-битный цифровой сигнал, в котором первый бит является стартовым битом, следующие восемь битов – битами данных, а последние биты – стоповым битом. Полученные данные передаются в микроконтроллер. Вывод RXD (p3.0) микроконтроллера P89V51RD2 подключен к выводу данных приемника модуля ASK 434 МГц. Таким образом, P89V51RD2 обнаруживает передаваемые данные на своем выводе 10 (RXD).

    Схема приемника

    Декодирование принятого сигнала с помощью P89V51RD2

    P89V51RD2 — это микроконтроллер 80C51 с флэш-памятью 64 КБ, 1024 байтами данных RAM, 32 портами ввода/вывода (I/O), тремя 16-разрядными таймерами/счетчиками и двумя контактами для последовательной передачи и приема данных. Таймер 1 используется для последовательной связи. Он работает на кристалле 11,0592 МГц.

    Ключевой особенностью P89V51RD2 является опция режима X2. Вы можете запустить приложение с обычной тактовой частотой 80C51 (12 тактов за машинный цикл) или выбрать режим X2 (шесть тактов за машинный цикл), чтобы добиться удвоенной пропускной способности при той же тактовой частоте.

    Память программ Flash поддерживает как параллельное, так и последовательное внутрисистемное программирование (ISP). Его также можно программировать внутри приложения (IAP), что позволяет переконфигурировать программную память Flash даже во время работы приложения.

    В этом проекте таймер 1 (TH1) используется в режиме 2 (8-битная автоматическая перезагрузка). Он используется для установки скорости передачи данных. Здесь в него загружается шестнадцатеричное значение E8 (или -24), поэтому скорость передачи данных устанавливается равной 1200. В регистр SCON загружается шестнадцатеричное значение 50, что указывает на последовательный режим 1, где 8-битные данные оформляются стартовым битом и стоповым битом.

    После установки таймера TH1 он начинает работать до тех пор, пока микроконтроллер P89V51RD2 не отключится. P89V51RD2 ждет, пока не получит стартовый бит. После получения стартового бита он получает 8-битные данные и помещает их в регистр SBUF. Затем проверяется ошибка кадрирования. Если есть ошибка кадрирования, полученный байт отбрасывается. В противном случае содержимое SBUF сравнивается с кодом ASCII алфавитов W, S, D, A, Q, E, C, Z и U. Когда совпадение найдено, выполняется операция, относящаяся к каждому алфавиту. Затем игрушечная машинка останавливается или движется в определенном направлении в соответствии с этим значением.

    Управление двигателями постоянного тока

    Выводы портов с p1.1 по p1.4 микроконтроллера управляют четырьмя реле через схему драйвера реле, содержащую транзисторы с T1 по T4. Четыре реле, в свою очередь, управляют четырьмя моторами игрушечной машинки (рис.5). Два реле управляют прямым и обратным вращением двигателя. Два левых двигателя подключены параллельно, как и два двигателя справа. Таким образом, два двигателя управляются одновременно с помощью двух реле.

    Каждое из четырех реле однопереключающего электромагнитного типа на 12 В для управления двигателем с постоянным током (12 В, 50 об/мин). Реле играют важную роль в изоляции цепи управления и двигателей PMDC для защиты микроконтроллера и других слаботочных устройств от двигателей с относительно большим током. По сути, это переключатели, которые подключают или отключают двигатели от источника питания 12 В. Управляющие сигналы микроконтроллера включают или обесточивают реле. То есть, когда управляющий сигнал подает на вывод P89V51RD2 высокий уровень, подключенный к нему транзистор проводит питание на соответствующее реле.

    Здесь клемма +12 В аккумулятора подключена к нормально разомкнутым (НО) контактам всех реле, а клемма заземления подключена к нормально замкнутым (Н/З) контактам реле.

    Это означает, что когда все реле не находятся под напряжением, положительные и отрицательные клеммы всех двигателей подключаются к клемме заземления аккумулятора, поэтому двигатели не будут вращаться. Если на все реле подается напряжение, концы двигателей подключаются к +12 В, и двигатели не вращаются. Если на какое-либо из реле подается напряжение, один конец соответствующего двигателя подключается к +12 В, а другой конец — к земле. Это заставляет двигатель вращаться. Подача напряжения на реле определяет движение двигателя по часовой стрелке или против часовой стрелки.

    Выход Q1 микроконтроллера подается на базу транзистора Т1. Когда на Q1 высокий уровень, транзистор T1 проводит ток, и на реле RL1 подается питание, вызывая сдвиг полюса (P) в сторону замыкающего контакта. Он подключает +12 В к положительной клемме двигателя M1 в передней левой части игрушечной машинки.

    Релейные соединения

    Релейные соединения с двигателями

    Когда на выходе Q2 высокий уровень, транзистор T2 проводит ток и реле RL2 активируется, переключая P в сторону замыкающего контакта. Это подключает +12 В к положительной клемме двигателя M2 на левой задней части автомобиля.

    Когда на выходе Q3 высокий уровень, транзистор T3 проводит ток и реле RL3 подает питание, заставляя P сдвигаться в сторону замыкающего контакта. Это подключает +12 В к положительной клемме двигателя M3 спереди справа. Когда на выходе Q4 высокий уровень, транзистор T4 проводит ток и на реле RL4 подается питание, заставляя P смещаться в сторону замыкающего контакта. Он подключает +12 В к положительной клемме двигателя M4 спереди справа.

    Когда на выходе Q4 высокий уровень, транзистор T4 проводит ток и реле RL4 подает питание, заставляя P сдвигаться в сторону замыкающего контакта. Он подключает +12 В к положительной клемме двигателя M4 сзади справа.

    Управление игрушечной машинкой

    Движение вперед «W» (Q1=1, Q2=0, Q3=1, Q4=0). Игрушечная машинка движется вперед, когда все моторы вращаются по часовой стрелке. Для достижения этого выходная логика на Q1, Q2, Q3 и Q4 должна быть высокого уровня (1), низкого уровня (0), высокого уровня (1) и низкого уровня (0) соответственно. Символ «W» определен в коде для получения 1010 бит на выходе. То есть, когда вы вводите символ «W» с клавиатуры, микроконтроллер генерирует 1010 бит на выводах своего порта от p1.1 до p1.4. Этот сигнал отправляется в секции драйвера реле с Т1 по Т4.

    S-движение назад (Q1=0, Q2=1, Q3=0, Q4=1). Движение назад происходит, когда все двигатели движутся против часовой стрелки. Таким образом, сигнал 0101 отправляется в секции драйвера реле с Т1 по Т4. Символ «s» определен в коде для получения бита 0101 на выходе.

    Дрейф вправо «D» (Q1=1, Q2=0, Q3=1, Q4=0 (в течение 54 мс) и Q1=1, Q2=0, Q3=0, Q4=0 (в течение 108 мс)). Дрейф вправо возможен при вращении левых двигателей на высокой скорости и правых двигателей на низкой скорости. Это возможно с помощью широтно-модулированного (PWM) импульса, подаваемого на правые двигатели. Правым двигателям подается серия импульсов с рабочим циклом 33 процента, так что они вращаются со скоростью, составляющей одну треть скорости левых двигателей. Автомобиль поворачивает направо вперед, что приводит к заносу. Таким образом, сигнал 1010 отправляется в течение 54 мс, а сигнал 1000 в течение следующих 108 мс на транзисторы с Т1 по Т4. Символ «D» определен в коде для генерации сигналов 1010 и 1000 с задержкой 54 мс и 108 мс соответственно.

    Дрейф влево ‘A’ (Q1=1, Q2=0, Q3=1, Q4=0 (в течение 54 мс) и Q1=0, Q2=0, Q3=1, Q4=0 (в течение 108 мс)). Дрейф влево возможен при вращении правых двигателей на высокой скорости и левых двигателей на низкой скорости. Это возможно с помощью импульса PWM, подаваемого на левые двигатели. Левым двигателям подается серия импульсов с рабочим циклом 33 процента, так что они вращаются со скоростью, составляющей одну треть скорости правых двигателей. Автомобиль поворачивает налево вперед, что приводит к заносу. Таким образом, сигнал 1010 отправляется в течение 54 мс, а сигнал 0010 в течение следующих 108 мс на транзисторы с Т1 по Т4. Символ «A» определен в коде для генерации сигналов 1010 и 0010 с задержкой 54 мс и 108 мс соответственно.

    Резкий поворот налево «Q» (Q1=0, Q2=0, Q3=1, Q4=0). Игрушечная машинка резко движется влево и вперед, когда левые моторы неподвижны, а правые моторы движутся по часовой стрелке. Таким образом, сигнал 0010 отправляется на транзисторы с Т1 по Т4. Символ «Q» определен в коде для генерации битов 0010 на выходе.

    Резкий поворот вправо «E» (Q1=1, Q2=0, Q3=0, Q4=0). Автомобиль резко движется вправо в прямом направлении, когда левые моторы вращаются по часовой стрелке, а правые моторы неподвижны. Таким образом, сигнал 1000 отправляется на транзисторы с Т1 по Т4. Символ «E» определен в коде для генерации 1000 бит выходных данных.

    C резкий поворот влево назад (Q1=0, Q2=0, Q3=0, Q4=1). Резкий поворот влево происходит, когда левые моторы неподвижны, а правые моторы движутся против часовой стрелки. Автомобиль резко съезжает влево и назад. Таким образом, сигнал 0001 отправляется на транзисторы с Т1 по Т4. Символ «C» определен в коде для генерации битов 0001 на выходе.

    Резкий поворот вправо вправо по букве Z (Q1=0, Q2=1, Q3=0, Q4=0). Автомобиль резко движется вправо в обратном направлении, когда левые моторы вращаются против часовой стрелки, а правые моторы неподвижны. Таким образом, сигнал 0100 подается на транзисторы с Т1 по Т4. Символ «z» определен в коде для генерации битов 0100 на выходе.

    U-стоп (Q1=0, Q2=0, Q3=0, Q4=0). Чтобы остановить автомобиль, все двигатели должны быть статичными. Это достигается путем подачи сигнала 0000 на выход микроконтроллера на его портах с p1.1 по p1.4. Символ «u» определен в коде для генерации 0000 бит на выходе, чтобы остановить игрушечную машинку.

    Программное обеспечение

    Схема работы программы

    Вот блок-схема программы. Программа написана на языке C и скомпилирована с использованием программного обеспечения Keil C. Шестнадцатеричный код, сгенерированный с помощью программного обеспечения Keil, записывается в чип с помощью программного обеспечения Flash Magic от NXP (Philips) Semiconductors.

    Операции Keil C μVision3

  • Запустите приложение Keil μVision3 с рабочего стола. В меню «Проект» выберите опцию «Новый проект». Назовите проект «efytoy.uv2» и сохраните его.
  • Выберите микроконтроллер P89V51RD2 из базы данных в разделе NXP (Philips).
  • Щелкните правой кнопкой мыши параметр «Исходная группа 1» в окне «Рабочая область проекта» в левой части экрана. Нажмите «Добавить файлы в исходную группу 1», чтобы добавить файл toycar.c.
  • Щелкните правой кнопкой мыши параметр «Цель 1» в «Рабочой области проекта» и выберите «Параметры для цели 1». Появится окно, как показано ниже.

    Параметры для цели 1

  • Измените значение Xtal (МГц) на 11,0592, как оно используется в проекте. Откройте меню «Вывод» и отметьте кнопку «Создать HEX-файл».
  • Теперь закройте окно и перейдите в главное окно. Скомпилируйте проект, нажав опцию «Build Target». Программа будет скомпилирована с сообщением, как показано здесь.
  • Экран вывода компиляции программы

    Теперь код efytoy.hex будет сгенерирован в каталоге, где находится файл проекта efytoy.uv2. Этот шестнадцатеричный код используется для программирования чипа.

    Программирование чипа с помощью Flash Magic

    Flash Волшебное окно
  • Запустите программное обеспечение Flash Magic, выберите устройство как P89V51RD2 и выберите «Стереть все Flash», как показано выше.
  • В разделе «Дополнительные параметры» снимите флажки «Использовать DTR для управления RST» и «Утверждать dtr и первый while com-порт открытым».
  • Просмотрите файл efytoy.hex на своем компьютере и загрузите его на главный экран. Нажмите кнопку «Пуск», чтобы запрограммировать чип.
  • Создание и тестирование

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

    Запишите код в P89V51RD2 и смонтируйте компоненты на приемнике PCB.

    Установите заполненную PCB батарею 12 В и четыре двигателя на подходящее шасси, предпочтительно металлическое шасси 20×15 см2. Используйте подходящие гайки и болты, чтобы надежно закрепить их на шасси. Четыре колеса диаметром 7 см каждое прикреплены к валам соответствующих двигателей.

    После установки компонентов на передатчик PCB подключите схему к последовательному порту компьютера с помощью последовательного кабеля. Если на вашем компьютере есть только порт USB, вы можете использовать преобразователь USB в последовательный порт. Теперь switch подается на источник питания 9 В, используя switch S1.

    Перед отправкой данных с компьютера проверьте, какой порт подключен к цепи. Установите скорость передачи данных на 1200, стоповый бит на 1 и биты данных на 8. Перейдите в «Диспетчер устройств» на рабочем столе, чтобы выполнить эти настройки. Теперь запустите программу последовательной связи, например Terminal v1.9b, выберите COM-порт и выполните вышеупомянутые настройки. После завершения всех настроек и сборки компонентов switch подайте питание на цепи передатчика и приемника.

    Запустите программное обеспечение Terminal v1.9b и активируйте соединение, нажав кнопку «Подключиться», а затем клавиши W, S, D, A, Q, E, C, Z или U на клавиатуре. Код ASCII, соответствующий этому ключу, будет передаваться последовательно в 10-битном потоке двоичных данных (1 стартовый бит + 8 бит данных для кода ASCII + 1 стоповый бит). Игрушечная машинка будет двигаться в соответствии с вводом с клавиатуры.

    Исходный код

    Исходный код этого проекта доступен здесь.


    Категория: Радиопередатчики | Добавил: Администратор (19.05.2026)
    Просмотров: 94 | Рейтинг: 0.0/0


    Всего комментариев: 0

    Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
    Жалоба

    ьте свои комментарии !!!!

    Имя *:
    Email:
    Код *:

    Copyright Zloy Soft (Company) © 2008 - 2026