Понедельник, 25.11.2024, 09:32
Роботы как хобби. Главная
Меню сайта
 Дневник 
Главная » 2008 » Май » 11 » Как управлять с компьютера роботом по RS232. Небольшое описание для начинающих.
Как управлять с компьютера роботом по RS232. Небольшое описание для начинающих.
02:13
Среди кучи интерфейсов СОМ наилучшим образом подходит для коммуникации с
удалёнными устройствами автоматики. Например роботами. Причины опустим.
 
 
В компе обычно есть 1 или 2 СОМ порта, в ноутах бывает нет, но есть куча разных
переходников, самый распространённый USB-COM, так, что если USB есть, то
это значит, что СОМ есть! В разъёмах 9 ножек (25 уже не существует :) ). Нам
надо всего 3. В следущий раз об остальных ногах, они не очень важны.
 
Нас интересует нога 5, 2 и 3. 5 - это земля.
2 - это вход последовательных данных.
3 - выход данных.
Напряжения в СОМ порте имеют значения от +12 до -12 :)
Что от +3 до +12 - это логическая единица.
От -12 до -3 - логический ноль.
Если ваш микроконтроллер работает от 5 вольт, то в принципе можно
пренебречь на этом этапе преобразователем уровней. Это который из
+-12 делает 0 или +5 и наоборот! Но для начала можете присоединить
микроконтроллер напрямую через сопротивления 5-10к.
 
Подключаем прямо в комп два провода, к 5-му и 3-му. Далее 5-ый к
общему проводу вашей схемы с контроллером. 3-й, через сопротивление
10к к любому I/O входу контроллера если вы используйте контроллер
без встроенного RS232 модуля, и к ноге RX контроллера, если этот
модуль есть :) (прим. 16F84a не имеет, а 16F877a имеет RS232 модуль)
 
Обвесте микроконтроллер всем, чем надо (минимум питание, кварц и
сопротивление от ПЛЮСА к MCLR) и коммуникация настроена!
 
Теперь надо написать две программы. Для компа и контроллера.
 
Для микроконтроллера:
 
INCLUDE "bs2defs.bas"
b3 VAR byte
loop:
  SERIN porta.4, N9600, ["A"], b3
 
  IF b3 =  "X"  THEN porta.0 = 0
  IF b3 =  "W"  THEN porta.0 = 1
GOTO loop

 
По программе, подключаем 3-ий от компа провод к 4 ноге порта А. В pic
16F84a это нога номер 3. Смотрите мануал. N9600 означает, что мы хотим
принимать данные на скорости 9600кбит в секунду. Для начала вполне
приличная скорость :) Далее А означает, что контроллер сначала ждёт
букву А от компа, как бы ключ, разрешающий принимание одного
следующего символа и сразу за ней ждёт этот один символ, числовое
значение которого он даст переменной b3. И сразу контроллер начнёт
проверять, что делать с этой переменной. Если это была буква X, тогда
напряжение на ноге 0 порта А становится 0 вольт, относительно земли
контроллера. (читай: становится минусом). Если буква была W, то эта
же нога станет плюсом. (логическая единица - напряжение не ноге равно
напряжению питания контроллера). Далее на эту ногу можно подключить
светодиод - для визуального представления что на ней происходит. Если
контроллер с железным блоком RS232 то прога выглядит так:
 
INCLUDE "bs2defs.bas"
DEFINE OSC 4                       ' квац на 4мГц
DEFINE HSER_RCSTA 90h      ' включаем RS232 приёмник
DEFINE HSER_BAUD 9600
b3 VAR byte
loop:
  HSERIN [wait ("A"),b3]         ' ждём А и следующую букву кладём в b3
  IF b3 =  "X"  THEN porta.0 = 0
  IF b3 =  "W"  THEN porta.0 = 1
GOTO loop
 
От компа провод в данном случае подключается к RX контроллера.
(прим. N26 в 16F877a)

 
 
 
 
 
Теперь о проге для компа.
 
В Visual Basic-е добавляем на форму COMM Control и пару кнопок, Command1
и Command2. Теперь в код.
 

Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True                  ' открываем порт!
End Sub


Private Sub Command1_Click()
MSComm1.Output = "A"
MSComm1.Output = "X"
End Sub

Private Sub Command2_Click()
MSComm1.Output = "A"
MSComm1.Output = "W"
End Sub

Запускаем. Две кнопки. Нажатием одной шлём A и X, другой A и W. Далее вы
видели уже что контроллер с этими буквами делает (А - ключ :) ).
Программа подразумевает, что тот разъём, куда вы подключили микроконтроллер
называется COM с номером 1. Скорость в 9600 можно изменить, не забыв сделать
то же и в контроллере!
Связь налажена! Далее эксперементируйте!
Просмотров: 11313 | Добавил: Airrr | Рейтинг: 4.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyleft (c)Airrr(r) © 2024 Используются технологии uCoz