|
|
  |
Ультразвуковой термометр, Он же анемометр и указатель направления ветра |
|
|
Guest_orthodox_*
|
Aug 22 2009, 16:28
|
Guests

|
Цитата(Altair @ Aug 8 2009, 15:06)  До сих пор флюгер не сделал потому что в близкой доступности нет мех. обработки. Без нее нормальный флюгер не сделать. используйте покупные подшипники, фольгированный стеклотекстолит и пайку , легкие листовые пластики и полимерный клей. Подшипники тоже возможно крепить пайкой на самом деле для этой цели. Можно целиком взять компьютерный вентилятор, крыльчатку от него на оси... Короче, были бы руки...
|
|
|
|
|
Aug 23 2009, 00:32
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Цитата(orthodox @ Aug 22 2009, 19:28)  ... покупные подшипники, фольгированный стеклотекстолит и пайку , легкие листовые пластики и полимерный клей...компьютерный вентилятор... Это банально. А потому - неинтересно. Для меня это очень важный момент, потому как проект делается для собственного удовольствия. :-)
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Aug 24 2009, 03:29
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Вот так выглядит сигнал при небольшом изменении расстояния между датчиками. Сначала было около 20 см, потом 5 см и меньше. Если датчики неподвижны, а просто направить струю воздуха, то эффект примерно такой же. Видео с осциллографа
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Aug 25 2009, 10:45
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Вот так выглядит сигнал при небольшом изменении расстояния между датчиками. Вы бы не горячились про "гуанодатчики". Налицо большой оверхед в процедуре обработки прерывания по таймеру. С двух сторон от фронта/спада имеется мертвая зона, в которой значение пина, соответствующего компаратору не обновляется. Думаете, у меня зря там компаратор на ICP заведен? А так - все фурыкает. Хотя, сигнал малость слабоват (видно по тому, что меандр с компаратора не 50 на 50). Для компенсации нецентральности срабатывания компаратора надо щупать оба изменения - и фронт, и спад. Как-то этот момент я у себя упустил, надо будет внести, если руки дойдут довести свой до ума. Конечно, этот момент потребует манипуляций на ходу с битом ICES1 в регистрах таймера.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 25 2009, 16:07
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Мдя... Точняк. Заменил в прерывании возбуждения PORTC^=0b00000011; на: #asm("sbi 0x08,0") #asm("cbi 0x08,1")
Судя по асм листингу прерывание существенно сократилось.
Видео завтра выложу. Дрожание снизилось с 4 мкс до 2 мкс.... Явно это тормозит проц.
Так что надо мудрить все по настоящему - думаю в "тестовом" варианте более не увидеть, т.к. наблюдать сигнал достоверно не смогу из-за программного метода его получения. А вот капчится он должен хардварно, независимо от кода.
З.Ы. Датчики все же гуано. при 60* развороте друг друга чуют только на 2 см, а напрямую начинают примерно на 35 см. Так что, либо 4 датчика, либо усилять.
Сообщение отредактировал Altair - Aug 25 2009, 16:41
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Aug 25 2009, 17:36
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Судя по асм листингу прерывание существенно сократилось. Вам бы еще компилятор сменить на вменяемый, например, IAR. Цитата Так что, либо 4 датчика, либо усилять. Предлагаю 4 датчика и воспользоваться тем, что еще один датчик можно зацепить на порт D - на непосредственный вход компаратора - именно тот, который сидит на мультиплексоре. Второй - оставить на земле. А по чем датчики брали?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 26 2009, 04:37
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Вот так выглядит при оптимизированном обработчике прерывания (масштаб такой же как на предидущем видео): Видео с осциллографаНевооруженным глазом видно, что фронт стал меньше колебаться. Думаю что не бывает плохих компиляторов, быват плохие программисты. :-)) В крайнем случае напишу #asm... и, эх раззудись плечо, размахнись рука... :-)) Хотя и отвык от АСМа капитально. Цитата Предлагаю 4 датчика и воспользоваться тем, что еще один датчик можно зацепить на порт D - на непосредственный вход компаратора - именно тот, который сидит на мультиплексоре. Второй - оставить на земле. Тогда можно вобще все датчики одним концом на мультиплексор, вторым на другой порт. Никакой разницы. С датчиками оказалось сложно. Сначала хотел купить в Платане, но дешевых нет в наличии, а те которые есть предложили привезти по 500 р за шт. Я че то пожадничал. Негуманный ценник. И тогда заказал у китаезов вот такой парктроник. За 1000 р. я получил 4 датчика с комплектом электроники "для опытов". Правда пришлось месяц ждать доставки. Отдельно датчики от парктроников по вменяемой цене тож не нашел.
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Aug 26 2009, 04:52
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Тогда можно вобще все датчики одним концом на мультиплексор, вторым на другой порт. Никакой разницы. Неа. Разница есть. Надо драйвить сразу оба пина в противофазе. Значит, оба вывода датчика должны быть подключены к одному порту. Цитата Думаю что не бывает плохих компиляторов Бывают компиляторы, генерящие плохой код в не зависимости от мастерства программиста. ICC в их числе.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 27 2009, 01:21
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Цитата(Rst7 @ Aug 26 2009, 07:52)  Неа. Разница есть. Надо драйвить сразу оба пина в противофазе. Значит, оба вывода датчика должны быть подключены к одному порту. Пробовал и одновременно, и по очереди. Разницы не заметил. Цитата(Rst7 @ Aug 26 2009, 07:52)  Бывают компиляторы, генерящие плохой код в не зависимости от мастерства программиста. ICC в их числе. У меня CodeVision. Хотя думаю особой разницы нет. Но меня ПОКА устраивает. Вопрос еще такой. Интегратор это как? Мне представляется - сложить все измерения, например те же 1024 цкла, и по окончании поделить. Арифметическое среднее короче. Или принять первое значение, а потом в зависимости от значений следующих измерений либо прибавлять либо отнимать единичку к первому принятому?
Сообщение отредактировал Altair - Aug 27 2009, 01:29
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Aug 28 2009, 04:01
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Можно измерять в диапазоне -128 0 +128. Значение капчи присваивать переменной типа signed char и отнимать 128. А для усреднения использовать модуль. Тогда получиться как в коде Грея - на краях диапазона различие в один младший разряд. Только одновременно нужно считать количество положительных и отрицательных компонент при усреднении, что бы понимать в положительной или отрицательной половине остаемся.
Сообщение отредактировал Altair - Aug 28 2009, 04:07
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Aug 28 2009, 04:22
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
Ну например постоянно принимается 0-255-0-255. Мы это число переводим в знаковое и от каждого измерения отнимаем 128. ТОгда получается что на выходе то -1 то 0. Вот их и усредняем. О, даже и отнимать ничего не надо. В знаковом виде будет то -127 то +127. Таймер то считает от 0 до 255, а в знаковом виде - от -127 до +127. Т.е. когда он досчитал до +127, переполнился и начинается - 127. Или я что то неправильно понимаю?
--------------------
Время не придет. Время уходит.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|