roboforum.ru

Технический форум по робототехнике.

 

Оптический энкодер.

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Оптический энкодер.

Сообщение dabo » 06 апр 2010, 13:58

Люди местные, Здравствуйте.
Есть у меня вот такой вот датчик. (см фото) (контроллер Mega32)
Работает сейчас это так:
Выставляю датчик в положение 1. Нажимаю кнопку запоминаю позицию 1. Выставляю датчик во второе положение (строго по часовой стрелке). Нажимаю кнопку запоминаю позицию 2. Нажимаю кнопку старт, двигатель начинает крутить датчик против часовой стрелки доходит до позиции 1 и движется к позиции 2, и так от одной точки к другой.

Помогите разобраться с ним более доскональна...
Есть несколько вопросов:
Нужно разобраться с кодом с датчика. Возможно ли такое что последовательности кода нет?
Сейчас все 15 выходов привязаны к портам С и А
Как мне вывести все данные с датчика (чтоб посмотреть последовательность) не потеряв какое нибудь из них и последовательность?
Датчик много оборотный.В датчике два диска.Даже если учесть что с первого диск 10 бит а со второго диска 5. Минимальный угол получается 360/1024=0,35 градуса.
Просто есть мысли что так неправильно получится ptintf("A0=%d A1=%d .....",PINA.0,PINA.1......); К тому же если я чуть двину вал датчика в обратную сторону то опять же косяк.

Сразу ещё вопрос, возможно ли измерять скорость?
Вложения
16032010016.jpg
Датчик и двигатель
16032010012.jpg
Датчик
dabo
 
Сообщения: 22
Зарегистрирован: 06 апр 2010, 13:44

Re: Оптический энкодер.

Сообщение zubr » 06 апр 2010, 14:33

почитай про код грея http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%93%D1%80%D0%B5%D1%8F

если есть таймер в контроллере - можно мерить скорость
За здравый смысл у нас принимается мнение большинства.
zubr
 
Сообщения: 431
Зарегистрирован: 20 ноя 2008, 19:31
Откуда: Чернобыль
прог. языки: асмемблер
ФИО: Валентин Семенович

Re: Оптический энкодер.

Сообщение dabo » 06 апр 2010, 17:16

Про вариант того что на выходе может быть код Грея знаю
Даже пробовал переводить, Но опять же ерунда какая то получилась
Вопрос в том может не все получается увидеть? что то пропускается
dabo
 
Сообщения: 22
Зарегистрирован: 06 апр 2010, 13:44

Re: Оптический энкодер.

Сообщение D1mcon » 06 апр 2010, 17:47

ИМХО, тема не соответствует разделу. :)
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники
Аватара пользователя
D1mcon
 
Сообщения: 700
Зарегистрирован: 08 фев 2009, 10:13
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий

Re: Оптический энкодер.

Сообщение dabo » 06 апр 2010, 18:30

Это я тоже думал, что не соответствует. Извините
А как перекинуть и куда?
dabo
 
Сообщения: 22
Зарегистрирован: 06 апр 2010, 13:44

Re: Оптический энкодер.

Сообщение zubr » 06 апр 2010, 19:54

Проверить код грея просто - в переходах меняется только один бит.
Крути энкодер и смотри битики.

А ерунда может быть на выходе потому что, например, если энкодер сломан :)))
За здравый смысл у нас принимается мнение большинства.
zubr
 
Сообщения: 431
Зарегистрирован: 20 ноя 2008, 19:31
Откуда: Чернобыль
прог. языки: асмемблер
ФИО: Валентин Семенович

Re: Оптический энкодер.

Сообщение dabo » 06 апр 2010, 20:27

Энкодеров у меня несколько)))

Так вопрос в том, как правильно посмотреть битики?

То что по порядку они выстроены я проверял.
dabo
 
Сообщения: 22
Зарегистрирован: 06 апр 2010, 13:44

Re: Оптический энкодер.

Сообщение zubr » 06 апр 2010, 22:42

короче далай так:
читай первый бит. если не знаешь кто из них первый - возми первый попавшийся и назови его первым :)
если он высокого уровня, печатай в последовательный порт "1"
если он низкого уровня, печатай в последовательный порт "0"

теперь возми второй бит. ....

так пока все биты не кончатся.
В конце передай в порт "\n"

И в любой терминалке красиво увидешь все свои битики :beer:
За здравый смысл у нас принимается мнение большинства.
zubr
 
Сообщения: 431
Зарегистрирован: 20 ноя 2008, 19:31
Откуда: Чернобыль
прог. языки: асмемблер
ФИО: Валентин Семенович

Re: Оптический энкодер.

Сообщение vadinator » 06 апр 2010, 23:34

zubr+1...
dabo, если логического анализатора нет, то читай биты по прерыванию последовательного порта (с макс. скоростью) и передавай в комп... а энкодер крути очень медленно, возможно лучше моторчиком с регулятором скорости... :good:
Можно кстати и не битики передавать, а шестнадцатеричные представления, во многих программах для работы с последовательным портом, есть преобразование типов принятых данных...
Если есть LPT, то можно и с помощью него попробовать...правда там не больше 12 входов получается вроде...
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)
Аватара пользователя
vadinator
 
Сообщения: 979
Зарегистрирован: 19 янв 2010, 14:51
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим

Re: Оптический энкодер.

Сообщение SMT » 07 апр 2010, 09:02

Smartcoder не подходит?
SMT
 
Сообщения: 1158
Зарегистрирован: 23 авг 2008, 22:28
Откуда: Санкт-Петербург
ФИО: Сергей

Re: Оптический энкодер.

Сообщение dabo » 07 апр 2010, 09:33

zubr

Знаю я кто первый кто последний)
Не проще тогда так:
printf("C0=%d,C1=%d,C2=%d,C3=%d,C4=%d,C5=%d,C6=%d,C7=%d,A0=%d,A1=%d,A2=%d,A3=%d,A4=%d,A5=%d,A6=%d,A7=%d\n",PINC.0,PINC.1,PINC.2,PINC.3,PINC.4,PINC.5,PINC.6,PINC.7,PINA.0,PINA.1,PINA.2,PINA.3,PINA.4,PINA.5,PINA.6,PINA.7);


vadinator

А можно поподробнее про прерывания? Не разу не пользовался.


Какие есть предложения о том как угол мерить?

Добавлено спустя 1 минуту 41 секунду:
SMT писал(а):Smartcoder не подходит?



Что это?
dabo
 
Сообщения: 22
Зарегистрирован: 06 апр 2010, 13:44

Re: Оптический энкодер.

Сообщение SMT » 07 апр 2010, 10:04

Smartcoder

http://tamagawa-seiki.com/english/products/sensor.html - в pdf-е упоминается такой
Advanced-rotary-sensors-extract.JPG
SMT
 
Сообщения: 1158
Зарегистрирован: 23 авг 2008, 22:28
Откуда: Санкт-Петербург
ФИО: Сергей

Re: Оптический энкодер.

Сообщение vadinator » 07 апр 2010, 17:21

dabo писал(а):А можно поподробнее про прерывания? Не разу не пользовался.

В микроконтроллерах как правило существуют прерывания возникающие как при приёме байта из uart-а, так и при окончании передачи...в большинстве сред программирования, можно использовать мастер конфигуратор, который автоматически создаёт подпрограммы обработки этих прерываний...в них вы уже и добавляете собственный код, который будет например помещать следующее значение в регистр uart-а, и когда передача байта завершилась, автоматически вызывается эта процедура... нужно только на начальном этапе, при инициализации МК положить в регистр первое значение...а дальше всё будет происходить автоматом, так вы сможете обеспечить максимальную скорость передачи данных, при выбранной скорости последовательного порта. Последнее время мало занимаюсь МК, но в основном пользовался ICC... боюсь пример из одной среды, мало поможет пользователю другой. Попробуйте сами познакомиться поближе с системой прерываний для АВР...в выбранной вами среде. Очень пригодится в будущем...а так-же посмотрите на прерывания по таймеру счётчику, это позволит чётко формировать временные отрезки в ваших программах.
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)
Аватара пользователя
vadinator
 
Сообщения: 979
Зарегистрирован: 19 янв 2010, 14:51
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим

Re: Оптический энкодер.

Сообщение dabo » 11 апр 2010, 22:57

SMT
так и не понял

vadinator
интересно

Народ почему не работает на Си в кодвизионе двойное условие?
если одно=порту1 и другое=порту2 то ...
dabo
 
Сообщения: 22
Зарегистрирован: 06 апр 2010, 13:44

Re: Оптический энкодер.

Сообщение Angel71 » 11 апр 2010, 23:30

потому, что оно работает :) перефразирую. чтобы получить правильный ответ, нужно задать правильный вопрос. или так: чтобы программа работала так как надо, нужно правильно её написать. ещё перефразирую. потому, что у вас не выполняется одно из условий.
ПС :pardon: лирические вопросы:
- вы вообще в своём условии сравниваете или присваиваете?
- вы вообще уверены, что у вас в "порт1" или "порт2" именн то, что вы думаете?
Аватара пользователя
Angel71
 
Сообщения: 9227
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

След.

Вернуться в Наши проекты

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

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

Mail.ru counter