ELEMENTUS.RU | ROBOPIC

Posts tagged ROBOPIC

PIC Bootloader для PIC18F45K22 от www.mikroe.com

0
Всем привет.
Продолжаю рассказывать про развитие моей идеи с PIC18F45K22 и дешевыми цифровыми передатчиками NRF24L01.  Существует программа загрузчик от компании mikroe.com .
Если присутствует загрузчик в процессоре , то не требуется программатор для перепрограммирование данного устройства , то есть идет удешевлении самого устройства.
pic_bootloader_v102.zip

PIC CHIP Robot Tank

0

Наткнулся тут на одну поделку, блин я тоже хочу так сделать.

И скоро руки у меня дойдут до неё.

Выменял серво привод у DI HALT не давно .

 

Подключение GP2D120 к PIСBOT *ПРОДОЛЖЕНИЕ*

0

Подключение GP2D120 к PIСBOT.

Программное обеспечение взято из фирмы Mikroelektronika  mikroPascal PRO for PIC 2009.

http://www.mikroe.com/en/compilers/mikropascal/pro/pic/

Для того чтоб подключить дальномер нам потребуется найти АЦП вход у  микроконтроллера  PIC 16F887.

Они у контролера PIC 16F887 обозначены (AN – номер входа), их присутствует четырнадцать входов , длина АЦП десять бит.

На схеме они показаны.

Далее нам нужно выбрать вход и сконфигурировать как АЦП.

Для этого нам нужны регистры ADCON0, ADCON1.

Регистр ADCON0 предназначен для управления АЦП

Детальное описание каждого бита регистра ADCON0 показано ниже:

  • 7-6 биты для выбора частоты преобразования

00=FOSC/2

01=FOSC/8

10=FOSC/32

11= FRC (частота, получаемая от специализированного внутреннего генератора = 500 kHz максимум)

  • 5-2  биты для выбора аналогового канала

0000=AN0 (вывод RA0)

0001=AN1 (вывод RA1)

0010=AN2 (вывод RA2)

0011=AN3 (вывод RA3)

0100=AN4 (вывод RA5)

0101=AN5 (вывод RE0)

0110=AN6 (вывод RE1)

0111=AN7 (вывод RE2)

1000=AN8 (вывод RB2)

1001=AN9 (выход RB3)

1010=AN10 (вывод RB1)

1011=AN11 (вывод RB4)

1100=AN12 (вывод RB0)

1101=AN13 (вывод RB5)

  • 1 бит  состояния АЦП

1= чикл аналого-цифрового преобразования в процессе выполнения. Установка этого бита запускает цикл аналого-цифрового преобразования. Этот бит автоматически очищается микроконтроллером после окончания цикла аналого-цифрового преобразования.

0= цикл аналого-цифрового преобразования / не запущен

  • 0 бит разрешения работы АЦП

1=работа АЦП разрешена

0=работа АЦП не разрешена

Регистр ADCON1 предназначен для управления АЦП

Детальное описание каждого бита регистра ADCON1 показано ниже:

  • Бит 7 = бит выбора формата результата преобразования АЦП

1=Правое выравнивании

0=Левое выравнивание

  • Бит 6 = не задействован
  • Бит 5: бит выбора источника опорного напряжения

1=вывод VREF —  (RA2)

0= напряжение питания Vss

  • Бит 4: бит выбора источника опорного напряжения

1=вывод VREF+

0=общий провод VDD

  • Биты от 3 до 0 – Не задействованы

Конфигурирование АЦП.

Для использования модуля, АЦП микроконтроллера PIC16F887 необходимо рассмотреть следующие действия:

  • Конфигурирование порта
  • Выбор канала
  • Выбор источника опорного напряжения для АЦП
  • Выбор источника частоты преобразования
  • Выбор способа форматирования результата преобразования

Конфигурирование порта.

АЦП можно использовать для преобразования как аналоговых, так и цифровых сигналов. При преобразовании аналоговых сигналов, линии ввода/Вывода необходимо сконфигурировать как аналоговые входы, установив соответствующие биты регистра TRIS.

Выбор канала

Биты регистра ADCON0 определяют какой из каналов будет подключен ко входу

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

Выбор источника опорного напряжения для АЦП.

Биты 4,5 регистра ADCON1 обеспечивают независимое управление источниками

положительного и отрицательного опорного напряжения. В качестве источника положи-

тельного опорного напряжения можно использовать либо напряжение источника питания

Vdd, либо внешний источник стабильного напряжения. Точно так же, в качестве источника

отрицательного опорного напряжения, можно использовать напряжение источника пита-

ния Vss, либо внешний источник стабильного напряжения.

Для платы управления Роботом PICBOT будет выбрано напряжение питания +5 В

в качестве источника положительного опорного напряжения и напряжение Vss или общая

шина устройства в качестве источника отрицательного опорного напряжения.

Выбор источника частоты преобразования.

Источник частоты преобразования выбирается программно посредством c 6-7 бит

регистра ADCON0. Существует 4 варианта такого выбора:

•• FOSC/2: для тактовой частоты 20 МГц, TAD = 100 нсек

•• FOSC/8: для тактовой частоты 20 МГц, TAD = 400 нсек

•• FOSC/32: для тактовой частоты 20 МГц, TAD = 1,6 мксек

•• FRC (специальный внутренний генератор): TAD = 2…6 мксек

Время, необходимое для получения одного разряда преобразования, обозначено как

TAD. На один полный цикл 10-разрядного преобразования требуется 11 TAD периодов.

Форматирование результата преобразования

Результат аналого-цифрового преобразования возвращается процедурой

ADC_read(). Форма размещения результата преобразования будет зависеть от установки бита c 6-7

регистра ADCON0.

Процедура Аналого-Цифрового преобразования.

Рассмотрим пример процедуры использования АЦП для выполнения аналого-цифрового

преобразования микроконтроллером PIC16F887:

1. Конфигурирование порта:

•• Отключить выходной драйвер вывода

•• Сконфигурировать вывод как аналоговый вход, записав необходимое значение в

регистр ADCON1.

2. Конфигурирование модуля АЦП (используя регистр ADCON0):

••Выбрать частоту преобразования АЦП

••Сконфигурировать источник опорного напряжения

••Выбрать входной канал АЦП

••Выбрать формат результата преобразования, используя регистр ADCON1

••Включить модуль АЦП

Приступаем к практике.

Общий план что сейчас есть из модулей

Подключаем дальномер ко входу AN2 (выход RA2).

Питание подключаем k модулю питания.

Продолжение следует.

Подключил GP2D120.

2


Ну вот, наконец-то я сделал, то что хотел, подключил GP2D120.

Пока только выкладываю видеоролик, вроде получилось неплохо, робот переведён в режим одной команды, поясню, я даю команду роботу ехать вперёд,  и дальше он сам определяет препятствие, и определяет, остановиться ему  или нет.

Всё остальное как я написал программу и подключил, я пока делаю.

Добавлено управление по радиоканалу.

1

Ну вот на конец то я добрался до сайта, день назад разбирался с кодом передачи данных по радиоканалу на своих модулях. Выбрал UART , только я сигнал перевернул. Если   UART(а) начинается байт с высокого сигнала, то у меня с нулевого уровня. В общем у фирмы Mikroelektronika я взял паскаль под пик контроллеры (http://www.mikroe.com/en/compilers/mikropascal/pro/pic/) и использовал библиотеки которые называются SOFT_UART. Они используют UART систему и в добавок его можно перевернуть. Среда программирования прекрасная. Перед тем как выбрать систему передачи данных, я проверил на шум свою квартиру. Железобетонные стены ничего не пропускали, шумов минимум. Я не стал мудрить и просто использовал один байт для управления роботом, пока только в одну сторону на управление. Видеоролик готов ниже.

Исправил несколько косяков в своём пульте и вот что получилось.

Ну вот, долгожданный тест PICBOT.

0

Собрал всё сегодня вечером, написал программку на паскале.

Ошибки есть, немного перепутал светодиоды на модуле управления двигателями,  первый блин всегда комом.

PICBOT пока бегает просто по программе, радиоуправление пока не доделал, осталось только до радио-пульта   добраться и запрограммировать его.

Из чего собрал.

Платформа от фирмы TAMIYAПлатформа от фирмы TAMIYA

Power module.

1

PWM Step−up DC−DC Controller NCP1450ASN50t1G.

Нашел готовую схему в конструкторе «ROBOPIC», для питания своих модулей. Она сделана на PWM Повышающем  DC-DC контроллере NCP1450ASN50t1G. Серия NCP1450A является повышающим DC-DC ШИМ-контроллер который специально предназначен для питания портативной техники из одного или двух элементов батареи.

Когда собрал модуль, начал тестировать, напряжение на входе повышал от 1,5 воль до 6 вольт, на выходе было стабильное 5 вольт.

Ивените за страшную пайку , собираю только вечером уже уставший.

Схему выкладываю.

Фото тоже есть .

Go to Top