[image]

Кобра III

 
1 36 37 38 39 40 78
UA Ckona #12.02.2012 13:33  @Non-conformist#12.02.2012 10:37
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> Опиши подробнее, интересно же!

Ckona> Кобра затаилась, но не исчезла.

Электронное оборудование ракет - БРЭО,часть XIV [Ckona#27.09.10 23:23]

Принцип действия макета восходит к исследованию, опубликованному здесь.
Светодиоды с двухслойным пластиковым корпусом обладают выраженной диаграммой направленности, «условно» ширина ее составляет составляет 15-20 градусов. Обозначив значения фототоков для двух разведенных на 20 градусов светодиодов как Т1 и Т2, для разностного сигнала получим S-образную зависимость – т.н. «дискриминационную характеристику».
Чтобы устранить влияние уровня сигнала на коэфиициент преобразования, необходимо нормировать разностный сигнал по суммарному, т.е. e=(T1-T2)/(T1+T2).

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

В макете использованы синие (какие были) светодиоды с преобразователями фотоТОКА на сдвоенном ОУ со входным током 4 пА (AD8542), плата АRDUINO UNO c контроллером ATMEGA-328 и сервопривод SANWA SRM-102 в дедушкиных тисках.
Первоначально планировалась обработка на аналоговых узлах, но «приход» АРДУИНа существенно изменил расстановку возможностей и сократил время изготовления макета на два порядка.

Программа обработки в действующем макете включает блок обнуления малых сигналов, предохранитель деления на ноль, суммарно-разностную обработку (T1-T2)/(T1+T2), формирователь зоны нечувствительности, простейшее интегрирующее звено автоматического управления, блок нормирования сигнала управления сервоприводов, программный ШИМ с шагом перестройки 1 мкС.

При освещении фотодиодов Солнцем через три оконных стекла максимальный сигнал 1024 двоичных единицы соответствует углу рассогласования ~5 градусов, цена младшего значащего разряда составляет 0,3 минуты. Эта цифра подтверждается монотонным изменением отсчетов на 1 МЗР за одну-две секунды за счет движения Солнца.
Максимальный диапазон угловых положений сервопривода составляет порядка 100 градусов, при изменении длительности управляющих импульсов от 1 до 2 мС. Поскольку АРДУИН может управлять ШИМ с минимальным шагом в 1 мкС, дискретность позиционирования сервопривода получается не лучше 6 угловых минут.

Пока что реализован действующий макет, и то лишь по одной координате.

Основной проблемой для дальнейшей отработки является оптимизация дискретного (цифрового) звена управления, в условиях конечной скорости вращения сервопривода (60 градусов в секунду) и необходимости управлять ШИМ 40-50 раз в секунду. Классическая аналоговая теория и простейшее пропорциональное звено управления не подходят – сервопривод проскакивает равносигнальное положение. Также требует согласования постоянная времени преобразователей на ОУ и периода повторения импульсов ШИМ.
Прикреплённые файлы:
 
   
UA Ckona #12.02.2012 13:50  @Non-conformist#12.02.2012 10:37
+
-
edit
 

Ckona

опытный
★☆
Non-conformist>> А чего кина так мало?
Вот более длинная запись (1MB). Все то же самое - "оно" ходит за источником света.
http://ckona.rocketworkshop.net/Videos/SunSensor.mpg
   
UA Non-conformist #12.02.2012 15:18  @Ckona#12.02.2012 13:33
+
-
edit
 

Non-conformist

аксакал

Ckona> Чтобы устранить влияние уровня сигнала на коэфиициент преобразования, необходимо нормировать разностный сигнал по суммарному, т.е. e=(T1-T2)/(T1+T2).
Xan советовал в светодиодный мост вместо резисторов поставить сдвоенный диод в прямом включении. Тогда получается логарифмический выход, т.е. нечувствительный к уровню освещения.

Ckona> ... дискретность позиционирования сервопривода получается не лучше 6 угловых минут.
А лучше и не надо имхо. Вполне приемлемый вариант, даже с изрядным перебором.

Ckona> ... 60 градусов в секунду ...
Вот это слабо. Для ракеты метровой длины имхо нормально, а для настольного пендулума - имхо мало. Но надо пробовать.

Ckona> ... и необходимости управлять ШИМ 40-50 раз в секунду.
Микрочиповский маятник (апноут Microchip AN964) обновляется вроде как с частотой 20 Гц, и не то что не падает, а красиво стоит. Зачем грузить систему ненужными вычислениями? Хотя, если есть запас по быстродействию - он спину не тянет...

Ckona> Классическая аналоговая теория и простейшее пропорциональное звено управления не подходят – сервопривод проскакивает равносигнальное положение.
У тебя интересная терминология, никак не привыкну. Что такое "звено управления"? )) "П" не пойдёт, нужно "ПИ" как минимум.

Ckona> Также требует согласования постоянная времени преобразователей на ОУ...
А если напрямую к АЦП антипару подключить? Не пробовал?


***
Спасибо за рассказ. Но меня интересует управление не сервой, а актуаторами автомобильного центрального замка. Механика готова на 95%, дело за управлением. А из датчиков - прежде всего гироскоп L3G4200D. Светодиоды - в далёкой и туманной перспективе (миномётный старт с разворотом на Солнце в воздухе).
   
UA Ckona #12.02.2012 19:32  @Non-conformist#12.02.2012 15:18
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> логарифмический выход, т.е. нечувствительный к уровню освещения.
Возможно. Но если информационный сигнал - переменный, то он засветкой будет гробиться. Кроме того, насыщение фотогенерированными носителями может аукнуться неизвестно какой постоянной времени. Как ярый ретроград, ограничился линейной (по мощности) схемой датчика. Хотя все зависит от задачи.
Представляешь, какие моральные мучения пришлость пережить, перейдя от аналоговой управлялки к этому Ардуину ?

Non-conformist> У тебя интересная терминология, никак не привыкну. Что такое "звено управления"?
Это классика из ТАУ. Теоретическая. Некий ящик между датчиком и сервоприводом, с частотной характеристикой, позволяющей исключить автоколебания и минимизировать время "отслеживания". Можно сказать, ПИД-регулятор. С учетом того, что моторчик - это интегратор, а датчик - инерционное звено.

С актуаторами, может, еще проще будет - при наличии данных об угловом положении. Где б поиметь для попробовать ?
   
UA Non-conformist #12.02.2012 20:14  @Ckona#12.02.2012 19:32
+
-
edit
 

Non-conformist

аксакал

Non-conformist>> логарифмический выход, т.е. нечувствительный к уровню освещения.
Ckona> Возможно. Но если информационный сигнал - переменный, то он засветкой будет гробиться.
Ты имеешь в виду лампу накаливания, для макетирования? Пульсирующий сигнал? Если логарифм сулит какие-то реальные выгоды (упрощение, етс.) то имхо можно взять двенадцативольтовую галогенку и питать её от компьютерного БП, или чего-то в этом роде...

Ckona> Представляешь, какие моральные мучения пришлость пережить, перейдя от аналоговой управлялки к этому Ардуину ?
Не представляю. )) Ты уже перешёл, тебе легче. А для меня всё это - чёрный ящик. Я имею в виду программирование.

Ckona> С актуаторами, может, еще проще будет - при наличии данных об угловом положении. Где б поиметь для попробовать ?
Что, прислать, что ли? Учти, если получится кино с непадающим маятником, управляемым актуаторами - кином не отделаешься, в гости приеду.
   
UA Ckona #12.02.2012 22:23  @Non-conformist#12.02.2012 20:14
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> Что, прислать, что ли? Учти, если получится кино с непадающим маятником, управляемым актуаторами - кином не отделаешься, в гости приеду.
Сначала сфотографируй. Я этих актуаторов никогда не видел. Все равно быстро не получится. А к приезду и запускать чего-нибудь сообразим !

О "переменном" сигнале: позволяет существенно увеличить дальность действия "оптического локатора", в том числе в условиях внешней засветки. Держу в уме, но пока еще рано.
   
UA Non-conformist #13.02.2012 13:44  @Ckona#12.02.2012 22:23
+
-
edit
 

Non-conformist

аксакал

Ладно, не будем всё в кучу валить. Узел актуаторов я уже фотографировал многократно, и ролики снимал. Если есть желание - посмотри выше по тексту.
   
UA Ckona #13.02.2012 15:19  @Non-conformist#13.02.2012 13:44
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> не будем всё в кучу валить.
Согласен. На эмоциях тут далеко не уедешь. Галочку поставил.
   
UA Non-conformist #13.02.2012 16:01  @Ckona#13.02.2012 15:19
+
-
edit
 

Non-conformist

аксакал

Кстати, я через пару недель, на выходных (скорее всего в субботу), должен буду в Киев поехать. Дочка со своим хором на какой-то конкурс едет. Район ст.ст.м. "Университет", "Золотые ворота", "Театральная". Если не будет весёлых минусов, как сейчас, то имхо можно будет сманеврировать...
   

Ckona

опытный
★☆
Ckona> Кобра затаилась, но не исчезла.

Повозился со светодиодным датчиком направления на свет.
Результаты совсем не оптимистические, но и не разгромные.

Поскольку Ардуин+сервопривод позволяет задавать угол ориентации датчика,
а программа КОМПОрТ гениального Ксаныча записывает все данные,
я крутил датчик с шагом 0,5 градуса и представляю данные на графиках.

Первый график - просто две диаграммы направленности, они разнесены на 22 градуса.
Представлены два независимых измерения, крутил по азимуту, некоторые различия графиков - изменение угла места.
Плоские вершины - ограничения в операционных усилителях.

Вообще-то, картина ужасная.
Никакой "плавной" диаграммы направленности нет.
Как китайский робот посадил кристалл, "плюнул" эпоксидкой и т.д. - такая и диаграмма.
Ну, ясный перец - сетодиодик не есть измерительный прибор ! его задача - светиться.

Тем не менее (см. второй график, желтая кривая), "разностная" диаграмма направленности имеет однозначный характер и вполне пригодна для детектирования направления - хотя и получилась "случайным образом".
Кроме того, никто не запрещает подбирать светодиоды (фу, гадость) или комбинировать одну ДН из двух-трех (что предпочтительнее).

Общий вывод: не настолько плохо, чтобы отказываться.
 
   
Это сообщение редактировалось 19.02.2012 в 14:27

Serge77

модератор

Ckona> Первый график - просто две диаграммы направленности, они разнесены на 22 градуса.

Думаю, нужно уменьшить угол и главное уменьшить усиление ОУ. Сейчас ты работаешь на слишком сильно усиленных боковых хвостах, а в районе вершины диаграмма должна быть гораздо более плавная, а ты эту вершину отрезаешь.
   10.0.210.0.2

Xan

координатор

Serge77> Думаю, нужно уменьшить угол и главное уменьшить усиление ОУ.

Не поможет. Такие кривульки у всех оптических приборов "бытового" назначения. Достаточно посветить светодиодом на стену и посмотреть на разводы. Ещё повезло, что кривулька не многогорбая получилась.

Бороться за плавность можно также, как и "за дополнительные биты АЦП" — размазывая сигнал.
Можно, например, спилить у фотодатчика часть пластика вместе с "линзой". Чтоб торец получился матовый и совершенно не направленный.
А свет от источника пропускать через диафрагму на рассеивающий экран, а потом на этот экран смотреть пилеными датчиками.
   9.09.0

Serge77

модератор

Xan> Достаточно посветить светодиодом на стену и посмотреть на разводы.

Действительно, я же сам смотрел. В центре обычно пятно темнее, потом идёт светлый круг.
Значит вместо одного диода на каждую сторону ставить штуки 3-4, с разным наклоном, например на 5, 10, 15 и 20 градусов.
   10.0.210.0.2
UA Non-conformist #19.02.2012 15:03  @Xan#19.02.2012 14:51
+
-
edit
 

Non-conformist

аксакал

Имхо решение совершенно очевидно - спилить линзу в плоскость. И в случае необходимости делать общую оптическую систему. Полностью поддерживаю. Но.

Всё это фигня. Перевёрнутому маятнику абсолютно наплевать на диаграммы направленности. Это просто пустая трата времени. Когда держишь в руках работающее устройство, понимание физической значимости того или иного обстоятельства приходит очень быстро, естественным путём. Это я про личный опыт общения со своим "гелиостатическим" пендулумом. Время балансирования вообще никак не зависит от оптики, вплоть до того - есть она вообще или нет её совсем (просто четыре голые фототранзистора с окошечками, запаянными кривыми даже на глаз стекляшками).

Не заморачивайся. Не в этом проблема.
   
UA Serge77 #19.02.2012 15:06  @Non-conformist#19.02.2012 15:03
+
-
edit
 

Serge77

модератор

Спиливать не нужно, есть светодиоды с плоскими вершинами.
   10.0.210.0.2

Ckona

опытный
★☆
Serge77> Спиливать не нужно, есть светодиоды с плоскими вершинами.

Не то. Затеяна игра именно на "собственных" диаграммах направленности, чтобы исключить все другие элементы оптического тракта (экраны, линзы).
Примечательно, что "плавная" кривая получилась "на окно", (распределенный источник света).
При этом "разностный" сигнал показал точно на середину окна.
Полагаю, ближе всего Ксаныч - слегка матируя поверхность светодиодной "сферы", может быть, удастся сгладить скачки диаграммы направленности.
Либо городить ежика из нескольких светодиодов на каждый канал.

На данный момент бОльший дьявол находится в сервоприводе. Сервопривод нагружен платой, подставкой и источником питания моторчика. Рывок этого груза при остановке подвигает сервопривод за заданное положение, сам сервопривод неточный (дешевенький!). До конца еще не разобрался, что там доминирует - люфты, инерция, брехливый потенциометр...

Методом подбора убедился, что эта система спокойно и четко перестраивается при минимальном шаге 5 микросекунд (полный диапазон 1000 мкС ~~100 градусов).
5 микросекунд - это полградуса.

Чтобы "полазить" в окрестности "нуля", пришлось отключить сервопривод и крутиться вместе с Землей, за 8 минут поворот 2 градуса.
Нелинейность "прямого" измерения составила 9 угловых минут - из-за "кривизны" ДН. И 2-3 угловых минуты - случайные флуктуации.

Если программно вводить "зону нечувствительности" плюс-минус 1-2 градуса, то можно ни на что не обращать внимания. По "датчику нуля" остановится, за "ноль" не проскочит.
   
UA Non-conformist #21.02.2012 14:08  @Non-conformist#19.02.2012 15:03
+
-
edit
 

Non-conformist

аксакал

Build a (simple) balancing robot | Member Robot Tutorials

Everyone wants to build a balancing robot. But it's complicated, involves heavy math and knowledge of a sensor fusion algorithm called Kalman Filter. What if you can build a simpler version, even transform your $50 robot into a balancing robot?   Well, some guys on the Parallax forums did it with a BasicStamp2sx. Oh, but that is Stamp and Basic. What about AVR and C? Can it be done? Sure it can! This paper will describe a simple balancing robot using 2 continuous rotation servos and a Ping))) ultrasonic sensor on a $50 robot or an Arduino compatible board, with a Mega168 microcontroller. // Дальше — www.societyofrobots.com
 

Оптический (подстилающая поверхность) балансер на Баскоме и Ардуино. Вообще готовый код - паяй и пробуй с солнечным датчиком...
   
UA Non-conformist #25.02.2012 19:51  @Non-conformist#21.02.2012 14:08
+
-
edit
 

Non-conformist

аксакал

ГОГИ, ты IAR занимаешься - есть ли что-нибудь попроще почитать про эту среду, "для самых маленьких"? Как начать работать, простенький проект какой-нибудь... Посмотрел ардуинские видеоуроки - может и с ИАР примерно так же можно сработаться?
   
RU GOGI #25.02.2012 20:12  @Non-conformist#25.02.2012 19:51
+
-
edit
 
Я в IAR пользуюсь кнопкой F7 - скомпилировать проект, и пунктом меню project/options. Все, больше ничем. Отладку я или в АВР студио или в Протеус делаю. А в IAR все стандартно, пишешь, компилируешь (пытаешься компилировать - смотришь ошибки - исправляешь - компилируешь). Никакими руководствами не пользовался, только по компилятору руководство пролистал, чтобы чисто IARовские штучки посмотреть.
Самый быстрый способ освоится - найди проект под CodeVision или GCC, который ты полностью сможешь промоделировать в Proteus (чтобы все компоненты проекта в протеусе были). И пытайся его исправлять под IAR. А потом промоделировать в Proteus.
Я могу и свое что-нибудь небольшое дать посмотреть, правда, у меня с комментариями не густо. Например, есть мост UART-I2C, загрузив его в ардуину можно с компьютера ручками в терминале пообщаться с I2C переферией на плате: памятью, гироскопом и прочим. Проект очень маленький - своих там буквально строчек сто, остальное это атмеловские апноуты по общению с UART и I2C.
   10.0.210.0.2
UA Non-conformist #26.02.2012 14:58  @GOGI#25.02.2012 20:12
+
-
edit
 

Non-conformist

аксакал

Я просто интересуюсь - ты ведь с чего-то начинал в смысле микроконтроллеров? Были ведь какие-то затруднения, сомнения, переживания? Говоришь, BASCOM проходил, к IAR пришёл... А чего в БАСКОМ-то пошёл? Неспроста, наверно? Описал бы вкратце свои мытарства?

Твой текст выше не будит воображение, от его прочтения скорее в уныние впадёшь, чем ощутишь зуд первооткрывателя... Надеюсь, ты улавливаешь, о чём я.

Вот Ардуино... Идём на Ютуб, смотрим ролик, идём туда - покупаем Ардуино, идём сюда - покупаем I2C термометр, тяп-ляп... Смотришь - уже какие-то строчки пишешь (едва поспевая за бойким рассказчиком), глядь - уже данные в мониторе пляшут... Вот в чём её прикол! Ты говоришь - кривой путь. Наверное, я с тобой согласен. Но подскажи прямой?

Почему у тебя такое обилие инструментов? Proteus, IAR, GCC, AVR studio... Да нифига се... А вот мне к Меге32 надо I2C термометр приделать и данные с него посмотреть в мониторе. Для начала. Что для этого нужно, в смысле программирования? Где можно посмотреть аналог ардуинских видеоуроков по Си - пусть в печатном виде? В термометре ведь какие-то регистры есть, их имена надо в программе писать, считывать данные с них. А может даже и писать в них что-то (калибровать, например). Как это сделать практически, где почитать про всё это?

Пример: компилятор знает Мегу32; очень хорошо. Но зато не знает приобретённый термосенсор. Что делать? Другой компилятор искать? Или изначально искать готовый проект, покупать под него детали и прошивать МК готовой прошивкой? Так это не то, совсем тупо как-то...

Что-то кажется мне, что в моём случае надо начинать Си учить. Только, наверное, не весь и не что попало, а именно те его команды и выражения, которые непосредственно относятся к МК... Не посоветуешь книжку или может чей-то сайт, блог? Тяжело ведь правильно сориентироваться! Помоги?
   
RU GOGI #26.02.2012 16:31  @Non-conformist#26.02.2012 14:58
+
-
edit
 
Non-conformist> Твой текст выше не будит воображение, от его прочтения скорее в уныние впадёшь, чем ощутишь зуд первооткрывателя... Надеюсь, ты улавливаешь, о чём я.
Я не рекламу толкаю. Мне-то, по большому счету, без разницы, на чем ты начнешь.
Non-conformist> Почему у тебя такое обилие инструментов? Proteus, IAR, GCC, AVR studio... Да нифига се...
Протеус уникальный (не в смысле единственности, а в смысле крайней полезности) инструмент, он позволяет тебе прогнать твою программу с виртуальным железом ничего не паяет. Ты можешь подключить к МК память, клавиатуру, еще чего-нибудь и все это проэмулировать, ищя баги.
Эмулирует, кстати, весьма точно.
>Как это сделать практически, где почитать про всё это?
Надо просто понять протокол I2C. И понять как работать с ним на МК. Самое правильное - читать апноуты Атмел на эту тему, там же и примеры кода
Non-conformist> Пример: компилятор знает Мегу32; очень хорошо. Но зато не знает приобретённый термосенсор. Что делать? Другой компилятор искать?
Прежде всего тебе надо будет отучится от того, что компилятор знает что-то о железе вообще. Он управляет только МК, все остальное ты реализовываешь сам (или тыришь у других).
Non-conformist> Что-то кажется мне, что в моём случае надо начинать Си учить. Только, наверное, не весь и не что попало, а именно те его команды и выражения, которые непосредственно относятся к МК... Не посоветуешь книжку или может чей-то сайт, блог? Тяжело ведь правильно сориентироваться! Помоги?
Си в азах очень примитивный язык. Берешь любую Си программу, справочник по Си и с помощью него расшифровываешь. Самое противное с точки зрения нормального человека, а не программиста - изучить операторы, вернее как они могут сочетатся и как такие сочетания читать. Тут только практика поможет.
   10.0.210.0.2
UA Non-conformist #26.02.2012 19:10  @GOGI#26.02.2012 16:31
+
-
edit
 

Non-conformist

аксакал

Понятно. Буду учить Си и делать UART-USB мост/адаптер. Спасибо за ответ.
   
RU GOGI #26.02.2012 19:49  @Non-conformist#26.02.2012 19:10
+
-
edit
 
Non-conformist> Понятно. Буду учить Си и делать UART-USB мост/адаптер. Спасибо за ответ.
УАРТ-USB стоит доллара 2.5 готовый с двумя питаниями на выходе (3.3 и 5 В) на ebay и Dealextreme
И говорю, не пытайся заранее выучить язык, прямо сразу начинай смотреть чужую программу и по ней разбираться, что делает каждая строчка. Выйдет много быстрее. Достаточно сначала просто прочитать краткий справочник страницы на три-четыре, про синтаксис, типы данных, операторы и циклы.
   10.0.210.0.2
AD Реклама Google — средство выживания форумов :)
UA Non-conformist #26.02.2012 21:11  @GOGI#26.02.2012 19:49
+
-
edit
 

Non-conformist

аксакал

GOGI> УАРТ-USB стоит доллара 2.5 готовый с двумя питаниями на выходе (3.3 и 5 В) на ebay и Dealextreme
О, спасибо... Но на ебае их туча целая - не поможешь определиться?



Это адаптеры для программирования, или мосты для общения с ПК? Или это одно и то же? Наверное, лучше два в одном (если такое бывает)?

GOGI> Достаточно сначала просто прочитать краткий справочник страницы на три-четыре, про синтаксис, типы данных, операторы и циклы.
Какой порекомендуешь?
   
1 36 37 38 39 40 78

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru