- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Создаем робота-андроида своими руками - Джон Ловин
Шрифт:
Интервал:
Закладка:
Рис. 6.23. Схема чтения компаратора
Считывание данных резистивных датчиков
Микроконтроллер может непосредственно считывать данные резистивных датчиков в диапазоне от 5 до 50 кОм. К микроконтроллеру может быть подсоединен резистивный датчик любого типа: фоторезистор (элемент на основе сульфида кадмия CdS), термистор с положительным или отрицательным ТК, датчик наличия ядовитого газа, датчик изгиба или влажности. Микроконтроллер измеряет сопротивления по времени разряда конденсатора в RC цепочке (см. рис. 6.24).
Рис. 6.24. Схема команды РОТ
Командой для чтения данных резистивного датчика является:
Pot pin, scale, var
Pot представляет собой имя команды, а pin – номер шины, к которой подключен датчик. Переменная scale используется для задания времени RC цепочки. При большом времени RC цепочки значение scale должно быть низким, а для малого времени RC цепочки scale должно быть установлено на максимальное значение, составляющее 225. Если значение scale установлено правильно, то значение переменной var будет близким к нулю при минимальном сопротивлении и достигать 225 – при максимальном.
Значение переменной scale может быть определено экспериментально. Для того чтобы найти подходящее значение scale, необходимо определить максимальное рабочее сопротивление датчика и считать показания var при установке параметра scale равным 225. При этом условии значение переменной var будет представлять собой хорошее приближение значения scale.
Основная схема изображена на рис. 6.25. Для имитации резистивного датчика в схему включен переменный резистор 50 кОм. При изменении сопротивления переменного резистора в зависимости от значения переменной В0 будет загораться один из двух светодиодов. Если значение сопротивления превысит 125 – загорится светодиод 1, в противном случае будет гореть светодиод 2.
Рис. 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 С° уже жарко. Если рассмотреть этот пример шире, то люди, населяющие Аляску, будут иметь иной интервал температур для «теплых дней» в сравнении с жителями Нью-Йорка, и оба эти значения будут отличаться от соответствующих значений для жителей Флориды. При этом еще не нужно забывать о временах года. Теплый зимний день отличается по температуре от летнего. Все сводится к тому, что основой классификации (например, понятия «теплый день») может служить интервал температур, определенных мнением группы людей. Дальнейшая классификация может быть проведена сравнением мнений различных групп людей.
Для любой температуры мы можем найти группу, в температурный интервал которой она попадает. В некоторых случаях температура может попасть в две пересекающиеся группы. Четкая принадлежность к группе может быть определена по отклонению значения от среднего по группе.