Джон Ловин - Создаем робота-андроида своими руками
- Название:Создаем робота-андроида своими руками
- Автор:
- Жанр:
- Издательство:Литагент «ДМК»233a80b4-1212-102e-b479-a360f6b39df7
- Год:2007
- Город:Москва
- ISBN:5-9706-0032-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джон Ловин - Создаем робота-андроида своими руками краткое содержание
Эта книга – отличный подарок для тех, кто собирается строить робота в первый раз, а также будет полезна и более опытным «роботостроителям», которые хотят отточить свое мастерство. Базовых знаний в области радиоэлектроники окажется вполне достаточно, чтобы книга помогла вам осуществить 12 отличных робототехнических проектов с использованием как промышленных частей и деталей (полные списки прилагаются), так и различного домашнего хлама, вытащенного с антресолей.
Издание окажется крайне полезным для всех любителей электроники и телемеханики как классическое руководство по функционально-блочному построению робототехнических устройств.
Создаем робота-андроида своими руками - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:

Рис. 6.25. Схема команды РОТ
Программа на PICBASIC имеет следующий вид:
‘Компилятор PICBASIC ** считывание данных резистивных датчиков **
‘Тест программа для фотосопротивлений
‘Установка
start:
pot 2,255,b0 ‘Считать показания датчика на шине RB2
if b0 > 125 then l1 ‘Если значение больше 100, включить светодиод 1
if b0 <= 125 then l2 ‘Если значение меньше 100, включить светодиод 2
l1: ‘Процедура включения светодиода 1
high 0 ‘Включить светодиод 1
low 1 ‘Выключить светодиод 2
goto start ‘Повторение
l2: Процедура включения светодиода 2
high 1 ‘Включить светодиод 2
low 0 ‘Выключить светодиод 1
goto start ‘Повторение
Программу для компилятора PICBASIC Pro можно составить следующим образом:
‘Компилятор PICBASIC Pro ** считывание данных резистивных датчиков **
‘Тест программа для фотосопротивлений
‘Установка
output portb.0 ‘Установка шины RB0 как выходной
output portb.1 ‘Установка шины RB1 как выходной
b0 var byte
start:
portb.2,255,b0 ‘Считать показания датчика на шине RB2
if b0 > 125 then l1 ‘Если значение больше 100, включить светодиод 1
if b0 <= 125 then l2 ‘Если значение меньше 100, включить светодиод 2
l1: ‘Процедура включения светодиода 1
high 0 ‘Включить светодиод 1
low 1 ‘Выключить светодиод 2
goto start ‘Повторение
l2: Процедура включения светодиода 2
high 1 ‘Включить светодиод 2
low 0 ‘Выключить светодиод 1
goto start ‘Повторение
Можно сделать демонстрацию более интересной, заменив переменное сопротивление фоторезистором на основе CdS. При правильном подборе резистора, темновое сопротивление которого составляет от 50 до 100 кОм и сопротивление светового насыщения порядка 10 кОм или ниже, при закрывании резистора или в темноте будет зажигаться светодиод 1. На ярком свете будет гореть светодиод 2.
Возможен последовательный вывод численного значения переменной pot на ЖК дисплей, соединенный с микроконтроллером через последовательный порт, или в ПК через последовательный порт RS232. Для организации последовательного порта необходима команда:
Serout Pin, Mode, Var
Сейчас мы не будем рассматривать соединение через последовательный порт; важно то, что вы получили об этом представление.
Сервомоторы
Сервомоторы представляют собой двигатели постоянного тока с редуктором, снабженные системой обратной связи, которая позволяет позиционировать положение ротора сервомотора с высокой точностью. Вал большинства сервомоторов для любительского конструирования может быть позиционирован в интервале поворота не менее 90° (±45°). Сервомотор имеет три вывода. Два вывода подключаются к источнику питания, как правило, от 4,5 до 6 В и к земляному проводу. По третьему проводу подается сигнал обратной связи, позиционирующий ротор мотора. Сигнал позиционирования представляет собой цепочку импульсов переменной длительности. Обычно длительность импульсов варьирует в интервале от 1 до 2 мс. Своей длительностью импульсы управляют положением вала сервомотора.
Команда pulsout генерирует на заданной шине импульс заданной длительности с шагом 10 мкс. Таким образом, команда pulseout 1, 150 будет выдавать импульсы длиной 1,5 мс на шине 1. Импульс длиной 1,5 мс повернет вал сервомотора в среднее положение.
Программа качания сервомотора
Демонстрационная программа будет качать вал сервомотора из левого положения в правое и обратно аналогично качанию параболической антенны радара. Схема устройства приведена на рис. 6.26.

Рис. 6.26. Схема включения сервомотора
Ниже приведена программа для компилятора PICBASIC:
‘Программа качания сервомотора
‘Компилятор PICBASIC
‘Программа осуществляет качание из левого положения в правое и обратно
b0 = 100 ‘Инициализация левого положения
sweep: ‘Процедура прямого прохода
pulsout 0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
b0 = b0 + 1 ‘Увеличение длины импульса
if b0 > 200 then sweepback ‘Конец прямого хода?
goto sweep ‘Нет, продолжение прямого прохода
sweepback: ‘Процедура обратного прохода
b0 = b0 – 1 ‘Уменьшение длины импульса
pulsout 0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
if b0 < 100 then sweep ‘Конец обратного хода?
goto sweepback ‘Нет
Программа для компилятора PICBASIC Pro:
‘Программа качания сервомотора
‘Компилятор PICBASIC Pro
‘Программа осуществляет качание из левого положения в правое и обратно
b0 var byte
b0 = 100 ‘Инициализация левого положения
sweep: ‘Процедура прямого прохода
pulsout portb.0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
b0 = b0 + 1 ‘Увеличение длины импульса
if b0 > 200 then sweepback ‘Конец прямого хода?
goto sweep ‘Нет, продолжение прямого прохода
sweepback: ‘Процедура обратного прохода
b0 = b0 – 1 ‘Уменьшение длины импульса
pulsout portb.0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
if b0 < 100 then sweep ‘Конец обратного хода?
goto sweepback ‘Нет
Нечеткая логика и нейронные датчики
При интерпретации данных сенсорных датчиков можно воспользоваться некоторыми интересными возможностями. С помощью микроконтроллера мы можем имитировать работу нейронных сетей и/или устройств с нечеткой логикой.
Нечеткая логика
Первые работы по нечеткой логике были опубликованы в 1965 году профессором Калифорнийского университета в Беркли Лотфи Заде. С самого начала принципы нечеткой логики как усиленно рекламировались, так и подвергались критике.
В сущности нечеткая логика пытается имитировать подход человека к определению групп и классов явлений. Определение «нечеткости» можно пояснить некоторыми примерами. Например, на основе какого критерия теплый солнечный день может быть определен, не как «теплый», но как жаркий и кем? Основанием, на котором кто-то определяет теплый день как жаркий, может служить персональное ощущение тепла, которое в свою очередь зависит от его или ее окружения (см. рис. 6.27).

Рис. 6.27. Изменение температуры от теплой до жаркой: плавно или скачком
Не существует универсального термометра, который «утверждает», что 26,9 С° это тепло, а 27 С° уже жарко. Если рассмотреть этот пример шире, то люди, населяющие Аляску, будут иметь иной интервал температур для «теплых дней» в сравнении с жителями Нью-Йорка, и оба эти значения будут отличаться от соответствующих значений для жителей Флориды. При этом еще не нужно забывать о временах года. Теплый зимний день отличается по температуре от летнего. Все сводится к тому, что основой классификации (например, понятия «теплый день») может служить интервал температур, определенных мнением группы людей. Дальнейшая классификация может быть проведена сравнением мнений различных групп людей.
Читать дальшеИнтервал:
Закладка: