roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 08:41

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




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 10 мар 2011, 16:49 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Dmitri Vladimirovich писал(а):
А если несколько программых И2Ц взять?

Фишка в том, что i2c это открытый коллектор, это надо железо городить, а не только программно пинами дергать.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 10 мар 2011, 17:17 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
но ведь в аврлибе есть программная реализациия?

или я чего то непонимаю

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 09:37 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Только не ОК а ОС.
И много где это можно эмулировать.
У авра PORTxy = 0, DDRxy = 0 | 1;
Некоторые другие так вообще имеют режим OD.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 09:43 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Vooon писал(а):
У авра PORTxy = 0, DDRxy = 0 | 1;

Вот блин :) и правда ведь!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 09:47 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
=DeaD= писал(а):
Dmitri Vladimirovich писал(а):
А если несколько программых И2Ц взять?

Фишка в том, что i2c это открытый коллектор, это надо железо городить, а не только программно пинами дергать.


Можно и пинами эмулировать ОК. Это как раз не большая проблема.

Основная проблема в том, что если делать правильно (по спецификации I2C),
то необходимо отслеживать готовность слейва на каждом бите. По спецификации слейв может зажать клоки в любой момент, и мастер должен ждать, пока слейв их не отпустит.

Часто (но не всегда) этим можно пренебречь, но тогда говорить об I2C несколько некорректно.
То есть стандартный I2C, вообще говоря, не может гарантировать стабильное время обмена. И для реалтайм систем это плохо.

И еще неудобно то, что в I2C веревки двунаправленные. Это сразу превращается в геморрой, как только встают задачи согласования уровней, гальваноразвязки и т.п.

Программно делать слейв крайне неудобно (хотя тоже можно).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 10:00 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 10:06 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Это как повезет. Например, у LSM303 уровни 1.8 вольт.
Я обычно делаю I2C программно, НО... я не мог бы гарантировать, что оно работоспособно с любым I2C девайсом.

Вот, например, стоят у меня на плате проц и два LSM303 - все работает (совершенно не по спецификации, но работает). И я могу это проверить!!!

Но если бы я делал девайс, типа, "вот вам I2C, подключайте что хотите", то я не смог бы проверить работоспособность с каждым конкретным датчиком.
Я был бы обязан строго следовать спецификации.

Как-то так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 10:23 
Не в сети
Аватара пользователя

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

Ну понятно что это можно не делать, а в чем серьезная проблема это сделать?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 10:31 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
В непредсказуемости.
Обычно есть прерывания, какие-то временнЫе константы и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 11:07 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
1. Если делать по спецификации, то примерно половина даташита на любой пик занимает вопрос разруливания коллизий ХАРДОВЫМ модулем i2c - да ну его к черту, по спецификации :-)
2. Согласовать уровни элементарно - по полевому транзистору с низким порогом открывания на линию. Главное, чтобы они были.
3. Главная проблема - ограниченное адресное пространство, пересекающиеся адреса и т.д. Т.е. чем более распространено i2c, тем шире проблема.
4. А вообще штука удобная. Вот например, я сейчас делаю драйвер двигателей, совместимый с OR. Но вчера почти что решил делать с управлением не по RoboMD2, а по i2c. МК с i2c и нужным количеством портов (да, а мне надо много -я делаю на Н-мостах, которые просят 8 пинов на управление каждым, т.е. 2 совершенно свободных порта.) МК стоит 50-70 рублей. Если все-таки не выводить всевозможные дисейблы и енейблы и оставить регистры управления только ШИМ, Направление, Фейл-статус и обратка по току, то МК обойдется в 45 рублей в тритоне. Один МК, два моста, коннектор на подключение двигателей, питания двигателей, питания МК (можно запитать от движков же, кстати, так и надо сделать), а дальше выводи куда хошь - УАРТ, i2C, SPI...

Поленился что-то за МК бегать (опять надо Анатолия просить закупку делать, ехать ему, ехать мне и все из-за 100 руб), да прошивку писать - но, черт побери, пока эти буквы написал, опять захотелось. Кинул два байтика на движки - поехали. Кинул еще два - встали. Первый байт - номер движка, направления вращения, младшие биты ПВМ, второй байт - старшие биты ПВМ. Если нужны статусы - один байт прочитал. Старший байт - статус, младшие - ток.

ВСЕ!!!!!

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 11:11 
Не в сети
Аватара пользователя

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

Тогда вешайте туда еще и 2 разъема энкодеров сдвоенных в распиновке GND,VCC,SIG1,SIG2.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 11:17 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
=DeaD= писал(а):
dccharacter писал(а):
Вот например, я сейчас делаю драйвер двигателей, совместимый с OR. Но вчера почти что решил делать с управлением не по RoboMD2, а по i2c.

Тогда вешайте туда еще и 2 разъема энкодеров сдвоенных в распиновке GND,VCC,SIG1,SIG2.

Кстати да, забыл вот... А если делать все-таки с i2c, как опрашивать энкодеры? Как аксель? Т.е. делать пин прерывания, регистр прерывания и отдельные регистры на каждый энкодер со значением скорости???

П.С. мне можно тыкать

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 11:28 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 11:46 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
=DeaD= писал(а):
На каждом энкодере SIG1 (или на каждом - SIG2) надо завести на прерывание по изменению уровня.

Не, ты не понял. Я про то, как вовне отдавать. Это же все еще можно отдавать по i2c, но чтобы постоянно не оправшивать, делается пятый пин INT. Вообще i2c очень много разъемов. Вон вы на ОР пишете, что у вас совместимо с какими-то устройствами. Часть устройств имеют SDA и SDL по краям. Часть - шестипиновая (даже читал где-то что это "стандарт"), там еще INT и AUX

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RGB Color Light Sensor и Arduino
СообщениеДобавлено: 11 мар 2011, 11:55 
Не в сети
Аватара пользователя

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

У тебя же на ДД контроллер стоит - нафига сурово дергать по прерыванию вышестоящий контроллер из-за энкодеров? Это же не катастрофа какая-то случилась непредвиденная :)

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


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

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


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

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


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

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