roboforum.ru

Технический форум по робототехнике.
Текущее время: 05 май 2025, 02:18

Часовой пояс: UTC + 4 часа


Правила форума


Правила раздела OpenRobotics



Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 13:10 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
По поводу I2C - ясно.

1. Из вики - mediawiki/images/4/4a/Orfa-manual.pdf
2. да там перлы на каждом шагу... Типичная фраза (орфография и пунктуация сохранена):
Цитата:
Процедура чтения регистра: сначала нужно записать адрес регистра, а за тем прочитать N байт. Пример чтение из регистра 0x20 3 байта на устройстве 0x10 – S 10 20 S 11 03 P


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 14:00 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ясно, я могу полностью отвечать только за инструкцию к нашим модулям, там могу всё сделать красиво :)

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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 14:05 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Понятно. Я то полез в общую, потому что пытался вообще понять, используется ли для I2C какой-то "специфический" протокол, или можно как попало разговаривать, не вмешиваясь в фирмварь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 18:06 
Не в сети
Аватара пользователя

Зарегистрирован: 16 май 2009, 12:50
Сообщения: 1530
Откуда: Россия
прог. языки: Java, C
Michael_K писал(а):
Или тот же вопрос с другой стороны - допустим, я хочу сделать I2C датчик. Что мне нужно знать, чтобы ОРФЕ было хорошо?

Тоже интересен ответ на данный вопрос :)

_________________
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 21:19 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Вообще орфе пофиг, делайте обычную поддержку i2c-протокола, только очень длинные запросы не делайте и всё.

Т.е. ORFA может делать сколь угодно длинные запросы с множественными рестартами и переключением между read\write режимами. Всё ограничено только буфером команды внутри ORFA, сейчас он вроде 65 символов, можно увеличить.

Добавлено спустя 2 часа 53 минуты 32 секунды:
Какие команды сделать для GPIO и АЦП?

Вот накидал эскиз:

АЦП:
AS=(Int|AVCC|Ext) - определить источник опорного напряжения
AP=(8|10) - выбрать нужную точность 8 или 10 бит
AM=(0|1)*8 - определить какие каналы АЦП включены (7..0)
AR(0..7) - прочитать значение канала АЦП 0..7 если он включен

GPIO:
GD(A..F)=(0|1)*8 - побитовая маска направления ввода-вывода порта A..F
GO(A..F)=(0|1)*8 - байт который надо вывести в порт A..F
GI(A..F) - прочитать байт из порта A..F

BD(A..F)(0..7)=(In|Out) - установить режим линии порта
BO(A..F)(0..7)=(0|1) - вывести бит в порт
BI(A..F)(0..7) - прочитать бит из порта

Кто что скажет?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 21:36 
Не в сети
Аватара пользователя

Зарегистрирован: 16 май 2009, 12:50
Сообщения: 1530
Откуда: Россия
прог. языки: Java, C
Это, например, #AP 0А ?

_________________
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 21:44 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Нет :) это, например:

AS=AVCC //опорное - AVCC
AP=8 //8 бит
AM=00000001 //включить АЦП на 0 линии
AR0 //прочитать 0 линию АЦП

BDA0=Out //выставить линию PORTA.0 как выход
BOA0=1 //выставить линию PORTA.0 которая выход в высокий уровень (1)

BDA1=In //выставить линию PORTA.1 как вход
BOA1=1 //выставить линию PORTA.1 которая вход в режим включения (1) подтягивающего резистора
BIA1 //прочитать линию PORTA.1

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 21:52 
Не в сети
Аватара пользователя

Зарегистрирован: 16 май 2009, 12:50
Сообщения: 1530
Откуда: Россия
прог. языки: Java, C
Конечно понятнее будет, чем S 40 0D S 41 04 P, но мне старый вариант парсера ИзбыORFA по нраву.

_________________
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 21:58 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ладно, вариант 2, он же сокращенный через @ и еще через @ что происходит:

PinModeA0=In @ PMA0I @ выставляем порт A линию 0 в режим цифрового входа
PinModeA0=Out @ PMA0O @ выставляем порт A линию 0 в режим цифрового выхода
PinModeF0=ADC @ PMF0A @ выставляем порт F линию 0 в режим АЦП
PinGetA0 @ PGA0 @ читаем значение на линии 0 порта A
PinSetA0=1 @ PSA01 @ пишем значение в линию 0 порта A (если она настроена как вход - 1 включает подтяжку)
PinAdcRef=(Int|Ext|AVCC) @ PR(I|E|A) @ выставить источник опорного напряжения для АЦП - внутренний, питание, внешний
PinAdcBits=(8|10) @ PB(8|A) @ выбрать режим работы АЦП - 8 или 10 бит

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 22:08 
Не в сети
Аватара пользователя

Зарегистрирован: 16 май 2009, 12:50
Сообщения: 1530
Откуда: Россия
прог. языки: Java, C
Вот этот уже на порядок лучше.

_________________
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 01 окт 2010, 22:26 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Вот так тогда еще более улучшено и с группен-командами для дальнейшей реализации:

PinModeA0=In @ PMA0I @ выставляем порт A линию 0 в режим цифрового входа
PinModeA0=Out @ PMA0O @ выставляем порт A линию 0 в режим цифрового выхода
PinModeF0=ADC @ PMF0A @ выставляем порт F линию 0 в режим АЦП
PinGetA0 @ PGA0 @ читаем значение на линии 0 порта A
PinSetA0=1 @ PSA01 @ пишем значение в линию 0 порта A (если она настроена как вход - 1 включает подтяжку)

AdcRef=(Int|Ext|AVCC) @ AR(I|E|A) @ выставить источник опорного напряжения для АЦП - внутренний, питание, внешний
AdcBits=(8|10) @ AB(8|A) @ выбрать режим работы АЦП - 8 или 10 бит

PortModeF=I*O*AIOA @ OMF=I*O*AIOA @ выставляем режим работы порта F - биты 2,7 вход, биты 1,5 выход, биты 0,3 вход ацп, биты 4,6 без изменения
PortSetF=0011**01 @ OSF=0011**01 @ выставить у порта F линии 0,4,5 в высокий уровень, линии 1, 6 и 7 в низкий уровень, линии 2 и 3 оставить без изменения
PortGetF @ OGF @ получить побитовые значения со входа порта F

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 05 окт 2010, 00:19 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Пишу сейчас парсер, ответы будут типа:

AdcRef:AVCC
AdcBits:8
ModeF0:ADC
F0:2.43
A0:0

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 05 окт 2010, 00:42 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Если уж вот настолько от железа абстрагироваться:
Цитата:
PortModeF=I*O*AIOA @ OMF=I*O*AIOA @ выставляем режим работы порта F - биты 2,7 вход, биты 1,5 выход, биты 0,3 вход ацп, биты 4,6 без изменения

...то какой смысл вообще говорить о каких-то "портах", буковках каких-то.
Сделайте один большой порт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 05 окт 2010, 00:44 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Спокойствие, только спокойствие. Это вообще пока опция которую может и не будем делать.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый протокол под ORFA
СообщениеДобавлено: 05 окт 2010, 01:05 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Вообще идея не плоха.
Сделать как в ардуине.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO