Разработка Open Robotics: Датчик линии

Правила форума
Правила раздела OpenRobotics

Re: Разработка Open Robotics: Датчик линии

Сообщение Zeus » 23 июн 2010, 11:52

Спасибо :)
Вроде по расчетам проходит и 250 Ом при 5В, только ток будет больше, примерно 15мА.
«Сон разума рождает чудовищ»
Аватара пользователя
Zeus
 
Сообщения: 862
Зарегистрирован: 28 июл 2009, 10:02
Откуда: Самара
ФИО: Павел Сергеевич

Re: Разработка Open Robotics: Датчик линии

Сообщение Vooon » 07 дек 2010, 19:25

Собрал бету I2C версии.

Небольшой багрепорт по плате:
нужно чуть развести площадки KTIR'а, центровка верная, но площадка коротковата.
Вложения
PICT0017.JPG
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Разработка Open Robotics: Датчик линии

Сообщение Vooon » 09 дек 2010, 01:33

Собрал i2c bootloader и написал uploader для него.

Bootloader из OpenServo, но только он не ждет 5 секунд,
а проверяет соединены ли MISO и MOSI перемычкой.

Интерфейс у него очень прост:
Во фрейме записи устанавливается адрес (2-а байта) буфера r/w, если далее идут данные, то они будут записаны по указанному адресу.
В фрейме чтения идет чтение буфера r/w.
Адрес до 0x2000 — flash, после — EEPROM, бут защищен от перезаписи.
Спец. адрес 0xffff — старт прошивки.
Бут занимает 512 слов, стартовый адрес 0x1c00.


Приступаю к прошивке.
Будет ли удобно такое распределение регистров http://hg.vehq.ru/or-linesens-fw/file/a ... regmap.txt ?

Легенда:
- RO только чтение, запись не влияет;
- RW чтение/запись;
- RW FN чтение/запись спец функции.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Разработка Open Robotics: Датчик линии

Сообщение =DeaD= » 09 дек 2010, 01:45

Точно везде 16-битовые значения надо? 8-битов не хватает?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка Open Robotics: Датчик линии

Сообщение Vooon » 09 дек 2010, 02:42

Для калибровки не хватит.
Хотя из вех регистров пожалуй только LINE POSITION будет читаться...

Калибровка будет сохраняться в EEPROM, как и I2C-ADDRESS.

Вообще думаю процесс настройки после включения такой:

1. Почитать DEVICE TYPE/SUBTYPE (регистры совпадают с OpenServo), проверить;
2. Подать команду LOAD CALIBRATION (записать не 0 в регистр)
3. Включить модуль ENABLED =!0

Добавлено спустя 1 минуту 32 секунды:
Хм, пожалуй нужно еще регистр LINE COLOR (Black 0/ White !0) и его тоже держать в EEPROM
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Разработка Open Robotics: Датчик линии

Сообщение Vooon » 10 дек 2010, 08:02

Написал основной кусок прошивки.

Сейчас читает все датчики, но пока нет калибровки и положения линии.
Но пока не отловил глюк — если все датчики над отражающей поверхностью — начинает мусор писать, сбои чтения.
Если хоть один датчик не принимает — все нормально.

Кстати посмотрев осциллограмму уменьшил задержку на зарядку до 5 мс (было 10)
и думаю вообще можно сократить до 2-х.

Еще один баг — адрес i2c меняется только посте ресета, онлайном не хочет.

-------------------------------------------------------------------------

В проекте 4-е подпроекта:
1. src — firmware
2. bootloader — i2c bootloader
3. uploader — fw uploader (pc side for boot)
4. status — status GUI (+ modify RW)

uploader & status написаны на Python и требуют liborfa для работы.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Разработка Open Robotics: Датчик линии

Сообщение Vooon » 21 дек 2010, 23:16

Много времени убил на отлов просадки питания.
Дроссель заменил на BLM (FB) и все нормально.
До этого думал что у меня программный баг, посмотреть питание не догадывался.
Вложения
qstatus.png
настройка
ADS00006.PNG
бесконечность :)
ADS00006.PNG (4.6 КиБ) Просмотров: 2915
ADS00005.PNG
палец рядом с датчиком
ADS00005.PNG (4.01 КиБ) Просмотров: 2907
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Разработка Open Robotics: Датчик линии

Сообщение Michael_K » 22 дек 2010, 00:58

Vooon писал(а):До этого думал что у меня программный баг, посмотреть питание не догадывался.


Да у вас там аппаратный баг... даже не баг, а схемотехническая ошибка. причем дурная.
Представьте, я свечу лампой в морду фототранзистору. Фототранзистор замыкает коллектор на землю, и тут вы пытаетесь ногой проца поднять этот коллектор с земли...

Кто сильнее открытый фототранзистор или нога проца? разрядится ли кондер в такой ситуации? Ничего ли не сгорит? Я не знаю.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Разработка Open Robotics: Датчик линии

Сообщение Vooon » 22 дек 2010, 05:11

А почему ты думаешь что я не отключаю Led?

Дописал интерфейс, дописал прошивку.
Вроде все работает.

Начал доку писать, но чувствю что с этим могу не справиться.
Вложения
manual.pdf
таблица регистров
(101.93 КиБ) Скачиваний: 0
qstatus2.png
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Разработка Open Robotics: Датчик линии

Сообщение Michael_K » 22 дек 2010, 05:50

Я про лед ничего не думаю
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Разработка Open Robotics: Датчик линии

Сообщение =DeaD= » 22 дек 2010, 08:56

А надо бы, потому что именно лед открывает фототранзистор.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка Open Robotics: Датчик линии

Сообщение Michael_K » 22 дек 2010, 09:58

Тогда в инструкции надо написать: включать только в темноте, иначе сгорит :)))
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Разработка Open Robotics: Датчик линии

Сообщение =DeaD= » 22 дек 2010, 10:19

Pololu сто тыщ лет так делает и ничего.
А у нас сгорит, да.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка Open Robotics: Датчик линии

Сообщение Michael_K » 22 дек 2010, 10:22

это не оправдание уродливости схемы.
нагружать ногу проца на емкость - это уже криво, а тем более на коллектор.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Разработка Open Robotics: Датчик линии

Сообщение =DeaD= » 22 дек 2010, 10:37

Проверил схему, согласен, надо токоограничительный резистор поставить. Спасибо за совет! :crazy:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Разработка модулей

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7