roboforum.ru

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

робот балансер, кто уже сделал?

Обсуждение и примеры готовых и самосборных компонент для построения роботов.

Re: робот балансер, кто уже сделал?

Сообщение craft » 29 июн 2008, 03:03

EdGull писал(а):плату с АРМом бери готовую олимексовксую
питается и программится сразу через усб


По поводу усб полностью поддерживаю, это существенно упростит для меня "процесс". А на плату можно ссылку и где брать?

Качнул кстати Keil 3.23 (без лекарства к сожалению), смотрю, изучаю замечательные примеры по этой ссылке:

avr123.nm.ru писал(а):ARM LPC2xxx SuperPak.rar
http://stream.ifolder.ru/6989907 Размер: 7.60 Мб


Если кто поможет собрать стенд под задачу, буду очень благодарен (разумеется не только под "спасибо"). Можно стыковаться в Москве и во Владимире.
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение EdGull » 29 июн 2008, 10:16

http://www.terraelectronica.ru/catalog.php

Добавлено спустя 11 минут 30 секунд:
кстати, вот неплохой вариант http://www.radioradar.net/news/electron ... h2888.html
но дороговато 4863.50р.
зато какая махонькая
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: робот балансер, кто уже сделал?

Сообщение hudbrog » 29 июн 2008, 11:16

Полностью согласен насчет олимексовой платы, только не согласен по поводу usb. Отладка без JTAG - сущий ад. Каким я был дураком, когда не понимал этого и жалел потратить 1000руб (!!!копейки!!) на простой JTAG-программатор/отладчик. Если пользовать бесплатные компиляторы(arm-gcc+eclipse+openocd) то расскажу как это все собрать и настроить.
Эд, а нафига с 28м lpc? На мой взгляд основательный перебор. Он таких денег стоит потому что у него приделаны несколько лишних DMA, LCD-контроллер и MCU, которые в данном случае вообще-то нафиг не нужны имхо.
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: робот балансер, кто уже сделал?

Сообщение EdGull » 29 июн 2008, 11:22

1. на вырост
2. размеры
3. изначально для мобильного применения

ЗЫ но я не настаиваю.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: робот балансер, кто уже сделал?

Сообщение hudbrog » 29 июн 2008, 11:32

Ок, но сразу читываем что все платы серии Hxxxx от olimex имеют подобный форм-фактор и не имеют всякой лишней бни. Pxxxx - имеют на борту кучку всего в общем-то не слишком нужного для конечного применения, зато крайне полезного на этапе освоения.
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: робот балансер, кто уже сделал?

Сообщение craft » 29 июн 2008, 14:06

EdGull писал(а):кстати, вот неплохой вариант http://www.radioradar.net/news/electron ... h2888.html
но дороговато 4863.50р. зато какая махонькая


Большое спасибо за помощь. Впринцпе размер платы сейчас не является узким местом, нужно чтобы было удобно программить и дебажить наверное в большей степени. Еще будут варианты? а то куплю ж, обидно будет, если на следующий день найдется более подходящее решение :wink:

Добавлено спустя 5 минут 5 секунд:
hudbrog писал(а):Полностью согласен насчет олимексовой платы, только не согласен по поводу usb. Отладка без JTAG - сущий ад. Каким я был дураком, когда не понимал этого и жалел потратить 1000руб (!!!копейки!!) на простой JTAG-программатор/отладчик. Если пользовать бесплатные компиляторы(arm-gcc+eclipse+openocd) то расскажу как это все собрать и настроить.
Эд, а нафига с 28м lpc? На мой взгляд основательный перебор. Он таких денег стоит потому что у него приделаны несколько лишних DMA, LCD-контроллер и MCU, которые в данном случае вообще-то нафиг не нужны имхо.


А какой вариант предложили бы Вы? Впринципе у LPC-H2888 есть: JTAG-коннектор 2x10 пин, ARM-JTAG (Wiggler), J-LINK и ULINK2 совместимый. Это "оно"? По поводу связки бесплатного софта, не знаю, насколько там все удобно? Думаете от Keil перестать искать лекарство, или все же полноценнный рабочий Keil стоит того?

Добавлено спустя 51 минуту 37 секунд:
Ну вот например, ARM-EVAL-LPC2919, дороже LPC-H2888 на 330 руб, но зато:

  • установленный микроконтроллер на базе ядра ARM968E-S LPC2919: 16/32-разрядное ARM-ядро, 80МГц, 768кБ Flash-памяти программ, 80кБ ОЗУ, внешняя шина данных (32 бита), два UART-порта, два CAN-порта, два LIN-порта, три Q-SPI, четыре 32-битных таймера, два 8-канальных 10-битных АЦП, четыре ШИМ (шесть каналов), "WatchDogTimer", сто восемь входов/выходов;
  • интерфейс USB 2.0 Full Speed на базе LPC2141;
  • два интерфейса RS-232;
  • два интерфейса CAN;
  • отладочный интерфейс JTAG;
  • внешняя ОЗУ 512кx16;
  • периферия пользователя: два 7-сегментных светодиодных индикатора, три кнопки;
  • часовой кварц 32,768kHz и рабочий кварц 16MHz;
  • 2x24 выв. разъем для дочерней платы BLDC мотора;
  • стабилизаторы напряжения +1,8В и +3,3В;
  • питание платы осуществляется от USB-интерфейса;
  • три светодиода состояния платы;
  • габаритные размеры: 100х100мм.

На данный момент это выглядит для меня так, что если уж выбирать между LPC2919 и LPC-H2888, то 6% цены дадут горазго больше преимуществ (да и 330 руб погоды не сыграют). Если я не прав в плане преимуществ, поправьте меня пожалуйста. С др. стороны вероятность спалить плату тоже имеется, а это означает выброшенные деньги.

А вообще я планировал на плату потратить тыс 3-4 :) но не в ущерб удобству программирования. Просто частенько бывает так, что не все то золото, что блестит.

Добавлено спустя 11 минут 18 секунд:
При подключении ARM-EVAL-LPC2919 к ПК через USB-плата определяется как Flash-накопитель (mass storage device). Это что значит, можно прошифку просто так залить или ... ?
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение hudbrog » 29 июн 2008, 14:51

Охх... начну по-порядку.
Значит первое. Почти любой ARM имеет на борту JTAG и, имхо, 99% плат имеют порт выведеным. Просто к нему надо покупать еще и аппаратный программатор-отладчик.
Насчет удобства.. Я лично Keil не видел, сравнивать потому не могу, но eclipse сейчас считается уже вполне себе промышленным решением, и у меня с ним после настройки никаких проблем не возникало. По удобству редактирования кода вполне себе приближается к вижуал-студии, отладка конечно менее удобна, но это скорее особенности jtag'а - есть ограничения по количеству breakpoint'ов, watch'ей и т.п. Так что если собираетесь серьезно программировать, возможно имеет смысл тратить деньги не на мощную плату, а на нормальный отладчик (все же, 60-80% времени уходит именно на отладку).
По поводу платы. Насколько я вижу себе применение в сегвей-подобной фиговине, будет эта плата размером 3х4 см или 10х15 - не принципиально. Потому размеры пока убираем из уравнения (да и олимекс выпускает для всех процессоров платы в двух форм-факторах). Какой выбрать камень?
То что вы сравнивали - это две разных архитектуры - ARM7 и ARM9. На последнем, например, можно запустить полноценный линукс, и писать уже для него(хотя это неправильный подход, ибо real-time линуксов пока еще нету нормальных). Преимуществ у девятых армов конечно много, это и большая частота, и наличие более серьезной обвязки, и MMU нормальный. Но я бы для первых попыток брал все же ARM7. Какой именно?
Выбор процессора, имхо, самое последнее дело вообще. До этого надо определиться с электронникой всего оставшегося устройства. Из оной можно будет понять какая переферия нужна, и, соответственно, какой камень брать. Просто как я вижу себе требования к вашему устройству, вам абсолютно не нужна внешняя память (и соответственно MCU/MMU), нормальные контроллеры LCD дисплеев, USB-хост, CAN-порты, LIN-порты и куча всего еще, что основательно удорожает процессоры. При этом, прошу заметить, разницы производительности между LPC23xx и LPC28xx нет никакой (не учитывая DMA всякие, которые позволяют оптимизировать иногда задачи).
Так что со спокойной совестью можно брать абсолютно любую железку ARM'овую, и вам максимум чего не хватит в ней - так это производительности вычислений, и то вряд=ли. Я бы брал для этой задачи LPC210x какой-нить и не парился. Ибо 2000 руб сэкономленые можно будет потратить на что-нить еще потом.
Или попробовал вообще AVR32, но это уже мои тараканы. Просто хочу им памацать, а подходящего проекта пока нет =)
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: робот балансер, кто уже сделал?

Сообщение avr123.nm.ru » 29 июн 2008, 15:03

http://www.hjtag.com/ - бесплатный JTAG для ARM у меня работал с LPC2138
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: робот балансер, кто уже сделал?

Сообщение hudbrog » 29 июн 2008, 15:21

А вообще, как бы я стал решать такую задачу (при условии что у меня нет никакого изначального инструментария).
Вообще, я на редкость ленивый человек, и понял такую простую вещь, что когда изделие не серийное(а это абсолютное большинство роботов, в том числе и этот), я в большинстве случаев не буду делать электронику сам, а куплю все готовое. Вот и в данном случае, что нам нужно? В базовом варианте, как я вижу эту задачу, нужны:
1) Контроллер, управляющий всем
2) 3х осевой акселерометр (возможно две штуки, но в базовом варианте хвтит одного)
3) Гироскоп
4) Контроллер для управления двигателями, 2шт
5) Два мотора.
6) Два колеса
7) Платформа, на которую это все приделать.

Это, вообще говоря, для экспериментального образца - все. Причем на этапе отладки можно использовать маленькие моторчики, колесики и платформочку, т.е. делать это все настольным.
Потом иду на сайт терры и ищу что мне нужно:
1) LPC-H2103, в терре 1000 руб., ARM-USB-TINY, 1700 руб
2) ME-ACCELEROMETER BOARD платка с распаяным ADXL330 и ОУ, примерно 800 руб
3) Гироскоп в любом магазине радиоуправляемых игрушек. Около 2500
4) Контроллер для двигателей, берем от INNOVATIVE EXPERIMENT IE-ZX-DCM2 за 300 рублей, тока на время тестов
5) от тех же INNOVATIVE EXPERIMENT с редукторами по 150 рублей за двигатель
6) на любом рынке, или опять INNOVATIVE EXPERIMENT, копейки
7) виртуально бесплатно, кусок фанеры

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

Чтобы оно работало, лично я бы поискал в ближайшем книжном учебник по теории управления, ибо со времени сего курса в институте помню, что мы рассматривали там как раз задачу балансера, я ее даже на симулинке решал вроде как.
Вот примерно так =)
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: робот балансер, кто уже сделал?

Сообщение craft » 29 июн 2008, 16:15

Пока писал сообщение, появилось Ваше, но думаю они друг друга дополнят.

hudbrog писал(а):... Просто к нему надо покупать еще и аппаратный программатор-отладчик.
... Так что если собираетесь серьезно программировать, возможно имеет смысл тратить деньги не на мощную плату, а на нормальный отладчик
... Насколько я вижу себе применение в сегвей-подобной фиговине, будет эта плата размером 3х4 см или 10х15 - не принципиально.
... можно запустить полноценный линукс, и писать уже для него(хотя это неправильный подход
... До этого надо определиться с электронникой всего оставшегося устройства.


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

Периферия: 2d акселерометр, гироскоп + два контролера на моторы. У меня есть основания предпологать, что нужно закладывать производительность системы на обработку от 1000 раз в секунду показателей акселя, гиры и руление моторами через контролеры (todo: думаете нужен один контролер?). Уверен это наложет свой отпечаток на выбор платы.

Еще нужно определится как брать показания акселерометра, можно, например, в аналоговом или цифровом режиме, а это повлечет за собой разную нагрузку на проц. Я ошибаюсь? Возможно нужно заложится на определенное количество аппаратных АЦП достаточного разрешения.

Вообще хотелось бы иметь API для акселерометра и гироскопа для считывание показателей, такое вообще существует в природе? :)

С удовольствием посмотрел бы исходники Инклинометра, думаю не один я, написал сообщение автору в личку, но он кажется не появляется на сайте :(

Думаю контролеры для моторов нужны управляемые ШИМ, т.е. наверное следует заложить два аппаратных генератора ШИМ в систему, как минимум.

hudbrog писал(а):... можно брать абсолютно любую железку ARM'овую, и вам максимум чего не хватит в ней - так это производительности вычислений, и то вряд=ли. Я бы брал для этой задачи LPC210x какой-нить и не парился. Ибо 2000 руб сэкономленые можно будет потратить на что-нить еще потом.
Или попробовал вообще AVR32, но это уже мои тараканы. Просто хочу им памацать, а подходящего проекта пока нет =)


По поводу производительности на мой взгляд лучше перебредь чем недобдеть :) 2000 руб куда потратить найдем - полностью согласен. А чем этот не подходящий проект? :)

Итого: какую плату берем и где? :) желательно чтобы не под заказ на 2-3 недели, а сразу. Не забываем про необходимость наличие нормального способа отладки.

Добавлено спустя 15 минут 4 секунды:
hudbrog писал(а):Причем на этапе отладки можно использовать маленькие моторчики, колесики и платформочку, т.е. делать это все настольным.


Боюсь на создание игрушки и переделывание в полномастабный вариант меня одного не хватит, ибо когда модель готова к ней теряется интерес и дальше дело не идет, поэтому буду закладываться на полномасштабный варинт сразу.
Последний раз редактировалось craft 29 июн 2008, 17:14, всего редактировалось 1 раз.
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение Alex Gritsenko » 29 июн 2008, 16:35

У меня есть основания предпологать, что нужно закладывать производительность системы на обработку от 1000 раз в секунду показателей акселя, гиры и руление моторами через контролеры.


Гироскоп ADXRS300 имеет полосу пропускания 40 герц, акселерометр MMA7260Q по осям X и Y - 350 герц и по оси Z - 150 герц.
Правильно ли я считаю, что гироскоп нет смысла опрашивать чаще 40 раз в секунду?
Аватара пользователя
Alex Gritsenko
 
Сообщения: 150
Зарегистрирован: 12 июл 2005, 16:10
Откуда: Харьков
прог. языки: Lua, C, JS

Re: робот балансер, кто уже сделал?

Сообщение craft » 29 июн 2008, 16:55

Alex Gritsenko писал(а):
У меня есть основания предпологать, что нужно закладывать производительность системы на обработку от 1000 раз в секунду показателей акселя, гиры и руление моторами через контролеры.


Гироскоп ADXRS300 имеет полосу пропускания 40 герц, акселерометр MMA7260Q по осям X и Y - 350 герц и по оси Z - 150 герц.
Правильно ли я считаю, что гироскоп нет смысла опрашивать чаще 40 раз в секунду?


Кажетя да в приведенном случае. А у меня опечатка, от 100 раз в секунду. Но! всегда есть но :)

Некий Trevor Blackwell о своем балансере (аналоге segway) пишет:

Trevor Blackwell писал(а):The torque generated by the motor is directly related to the current flowing through the motor. The current is controlled by alternately switching the motor across the full battery voltage, then short circuiting it. If it did this slowly it would do just what you'd think: alternate full speed, then full stop. But it alternates very fast, about 4000 times per second, and this produces a smooth output from the motor.

But dual-channel RoboteQ motor controller uses of a 9600 baud serial link for control added too much delay to the feedback loop for good performance.

I replaced it with two OSMC controllers. The OSMC controllers take a PWM signal directly from the microcontroller. I also get more precision in the PWM control: 9 bits instead of 7. In the new system an analog-digital converter in the microcontroller measures battery voltage 2000 times per second...


ну т.е. скорость управления контролерами очень высокая нужна - это тысячи раз в секунду, как я понимаю.
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение hudbrog » 29 июн 2008, 17:18

В этом кусочке говорится лишь то, что моторы управляется с помощью PWM, и чтобы иметь разрешение управления скоростью, достаточное для нормальной работы, надо ставить частоту PWM в килогерцы, и контроллер мотора это должен поддерживать. Многие контроллеры просто будут не успевать открываться полностью на таких частотах, что приведет к замедленной работе мотора.
Например тот контроллер, что приводил как пример раньше (до 1.2 А в пике), может переключаться со скоростью до 5кГц, чего имхо вполне достаточно.
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: робот балансер, кто уже сделал?

Сообщение craft » 29 июн 2008, 17:49

Ок. Идея собрать стенд без пайки - заманчивая идея, но давайте попробуем двигаться последовательными шашками. На данном этапе покупать все сразу наверное не стоит. У меня в голове рисуется такой план:

Нужна плата, аксель и гиро и собрать из этого стенд, чтобы можно было прошивать и пробывать работать.

С узлами периферии (пока без конкретных наименования) вроде понятно. Для выбора платы наверное лучше сразу определиться:

  • сколько нам нужно аппаратных ШИМ (я думаю два, LPC-P2103 кажется имеет один ШИМ);
  • сколько АЦП (я пока не знаю). Наверное для этого нужно понять каким способом считывать показания с акселя и гиры (для начала в аналоге или в цифре). Кто это уже делал, было бы интересно услышать Ваше мнение? А также есть ли API для ARM по считыванию показателей с акселя и гиры?
Ко всему этому добавить возможность человеческой отладки и получить название итоговой платы.

Кажется даже используемый Trevor Blackwell дорогущий (12 тыр) гиро CRS-03-02 имеет полосу 85 Гц, т.е. в нашем случае гиро будет намного хуже. Настоящий segway "тикает" 100 раз в секунду по данным разведки. Теоретически производительности любого ARM7 должно хватить для решения задачи по данной теме.

После того, как система будет живая (будет стенд, будут считваться данные акселя и гиры) можно идти дальше.

Мне подсказывает чутье, что вот этот первый этап самый сложен, помогайте ребят.
Аватара пользователя
craft
 
Сообщения: 16
Зарегистрирован: 14 июн 2008, 19:08
Откуда: Москва
прог. языки: C++, C#, Java, PHP, Object Pascal

Re: робот балансер, кто уже сделал?

Сообщение hudbrog » 29 июн 2008, 21:15

Собственно, ты сам назвал все что нужно тебе. Соответственно, осталось зайти на сайт NXP и выбрать нужную модель.
Смотрим 2103 - нет PWM
Смотрим 2106 - 6 PWM, нет ADC
Смотрим 2124 - подходит, но нет в терре
Смотрим 2138 - подходит - 10 АЦП и 6 ШИМ, в терре стоит около 2000 рублей, есть в наличии.
Подбор закончен =)
Далее берем по средствам JTAG-отладчик. Я лично предпочитаю USB'шные, ибо на ноуте LPT нету =) У меня работает с атмеловыми камнями ARM_USB_TINY, он же будет работать с NXP'шными.

Далее с API акселерометра. Я думаю, если поискать чуть дольше, то можно найти что-нить более интересное, но я не думая зашел на сайт производителя платы ME-ACCELEROMETER BOARD и нашел там полметра примеров его использования. Почти сразу случайно наткнулся на пример использования другого акселерометра прямо для арма - http://www.terraelectronica.ru/pdf/OLIM ... MA7260.RAR

С гироскопами никогда не работал, так что хз.. как будет время, почитаю теорию...
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Пред.След.

Вернуться в Готовые модули

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 11