Кобра III

 
1 60 61 62 63 64 78
UA Non-conformist #25.01.2013 11:35  @Non-conformist#10.01.2013 21:58
+
-
edit
 

Non-conformist

аксакал

Вопрос возник. Мой молодой захотел купить у меня ранее приобретённую Мегу 32 (пятивольтовую), которую я планировал на борт.

Имеет ли смысл взять вместо неё 32L, под аккумулятор от мобилки + отсутствие необходимости в преобразователях уровня с трёхвольтовыми гироскопом и акселерометром? Есть ли разница в данном прикладном случае между 16 и 8 МГц такта?
Skype: a_schabanow  
RU GOGI #25.01.2013 11:48  @Non-conformist#25.01.2013 11:35
+
-
edit
 

GOGI

координатор
★★★
Можно. Есть конечно не нулевая вероятность, что ты во времени не уложишься, но она и на 16 МГц есть.
1  18.018.0
UA Non-conformist #25.01.2013 12:07  @GOGI#25.01.2013 11:48
+
-
edit
 

Non-conformist

аксакал

А в квадрокоптерах какой МК используется? Те маленькие китайские платы, на которых уже смонтированы гироскоп и акселерометр - они ведь идут с преобразователями уровня... Может лучше не рисковать?
Skype: a_schabanow  
UA Non-conformist #25.01.2013 14:46  @Non-conformist#25.01.2013 12:07
+
-
edit
 

Non-conformist

аксакал

Вопрос: а как это получается, что кварц на 16 МГц, а МК - ATmega32L:

New Minimum Development Board Core System Shield Board for Atmega32 Mega32 AVR

New Minimum Development Board Core System Shield Board for Atmega32 Mega32 AVR in Business & Industrial, Electrical & Test Equipment, Electronic Components | eBay // www.ebay.com
 
Skype: a_schabanow  
RU Бывший генералиссимус #25.01.2013 14:56  @Non-conformist#25.01.2013 14:46
+
-
edit
 
Non-conformist> Вопрос: а как это получается, что кварц на 16 МГц, а МК - ATmega32L:
Исключительно на авось - на чипе написано 8.
Но работает.
Я гоняю 16 МГц чипы на 18,432, а 20 МГц - на 24. Проблем ни разу не наблюдалось, правда, у меня допуск по питанию гораздо жёстче, чем в даташите.
 9.09.0
UA Non-conformist #02.02.2013 00:28  @Non-conformist#25.01.2013 14:46
+
-
edit
 

Non-conformist

аксакал

Залудил base-плату предполагаемого стенда сплавом Розе. Херовенько получается, мне не нравится. Остаются мелкие капельки, их убрать практически невозможно.

В эту base-плату входного усилителя будет втыкаться плата МК и памяти, по типу флешки (она уже собрана). С мех. точки зрения - как шилд на Ардуину, двумя рядами PLD/PBD по краям. На "флешке" будет сидеть и батарейка. Система запитывается при сочленении и обесточивается при извлечении, т.е. выключателя питания не предусмотрено.

Base-плата глухо сидит на съёмной раме стендового кардана, привинченная четырьмя винтами и припаянная пятью проводками к тензомосту. Расчленяемая конфигурация удобна зимой: при установке в станину стенда съёмной рамки кардана (и всей последующей настройки системы), элементы входного усилителя на base-плате термостабилизируются на уровне температуры окружающего воздуха. Плата памяти (с литиевой батарейкой на борту) всё это время находится в тёплом кармане.

Когда со стендом всё готово, плата МК втыкается в плату входного усилителя, и туда же втыкаются три разъёма - запал, УАРТ и пусковой кабель. После чего оператор уходит на дальний конец пускового кабеля и нажимает кнопку "ПУСК". В течение нескольких секунд происходят автоматические предстартовые проверки борта, после которых происходит воспламенение.

Такие вот пока планы.
Прикреплённые файлы:
1.JPG (скачать) [29,3 кбайт, 6 загрузок] [attach=317361]
 
11.JPG (скачать) [35,82 кбайт, 6 загрузок] [attach=317362]
 
 
Skype: a_schabanow  
UA Non-conformist #04.02.2013 11:15  @Non-conformist#02.02.2013 00:28
+
-
edit
 

Non-conformist

аксакал

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

Долго думал, что с этим делать, и надумал потереть залуженную плату чистящим порошком для посуды, тонким абразивом. Потёр тряпочкой, со средним нажимом, круговыми движениями. Получилась практически идеальная, блестящая белая поверхность. Из видимых дефектов остались только мелкие плоские капельки сплава, которые не удалось убрать ракелем.

В таком виде плата пролежала все выходные - пока ничем новым не покрылась. о_0
Skype: a_schabanow  
UA Non-conformist #05.02.2013 13:24  @Non-conformist#04.02.2013 11:15
+
-
edit
 

Non-conformist

аксакал

Вопрос - как можно прикинуть потребный Ку входного усилителя тензомоста? Предполагаемая нагрузка - до пяти килограмм, напряжение питания усилителя 5 В. Сколько мВ обычно выдаёт тензомост из напольных весов на такой нагрузке?
Skype: a_schabanow  
UA Serge77 #05.02.2013 13:32  @Non-conformist#05.02.2013 13:24
+
-
edit
 

Serge77

модератор

Я писал про это примерно год назад, приводил все цифры. Попробуй найти.
Но лучше просто измерь, что выдаёт мост при 5 кг, это же просто. Может твой мост отличается от моего.
RU Бывший генералиссимус #05.02.2013 13:34  @Non-conformist#05.02.2013 13:24
+
-
edit
 
Non-conformist> Вопрос - как можно прикинуть потребный Ку входного усилителя тензомоста? Предполагаемая нагрузка - до пяти килограмм, напряжение питания усилителя 5 В.

Тут важнее не напряжение питания усилителя, а диапазон входного напряжения АЦП :) делай сотню, обычно подходит.

Non-conformist> Сколько мВ обычно выдаёт тензомост из напольных весов на такой нагрузке?

разные попадались :) Мой нынешний датчик зашкаливает при коэффициенте усиления 128, диапазоне АЦП 2,5 вольта и нагрузке 45 кГ.
 9.09.0
UA Non-conformist #05.02.2013 13:48  @Бывший генералиссимус#05.02.2013 13:34
+
-
edit
 

Non-conformist

аксакал

Понял, спасибо... Я тут просто детали из закромов дёргаю, собираю комплект на плату, чтобы в процессе пайки уже не дёргаться. Смотрю, а делитель, который Ку определяет - не определён номиналами.

Сергей, я искал твой пост, но не помню ключевых слов, а те что предлагал - по тем не находит. Приду домой, измерю выход с моста, и определюсь. Меня просто перемкнуло, что тестер ничего не увидит.
Skype: a_schabanow  
UA Serge77 #05.02.2013 13:55  @Non-conformist#05.02.2013 13:48
+
-
edit
 

Serge77

модератор

Тестер видит, там единицы милливольт.
UA Non-conformist #05.02.2013 18:37  @Non-conformist#05.02.2013 13:48
+
-
edit
 

Non-conformist

аксакал

Собрал всё, кроме усилителя - пятивольтовый стабилизатор, ядерный взрыватель, гребёнки. Стабилизатор проверил - работает.

ВСЁ, последний раз лудил плату сплавом Розе! Параша редкая, никакой смачиваемости припоем, если слой полуды тонкий. А толстый меня не устраивает. Буду, наверное, переходить на металлургическое лужение на утюге.
Skype: a_schabanow  
UA Non-conformist #04.04.2013 16:20  @Non-conformist#05.02.2013 18:37
+
-
edit
 

Non-conformist

аксакал

Углы (Эйлера) из данных IMU (угловой скорости и линейного ускорения):

Углы Эйлера (понравилось про ворсинки в жидкости):

Углы Эйлера — Википедия

Углы Эйлера — углы, описывающие поворот абсолютно твердого тела в трёхмерном евклидовом пространстве. В сравнении с углами Эйлера, кватернионы позволяют проще комбинировать вращения, а также избежать проблемы, связанной с невозможностью поворота вокруг оси, независимо от совершённого вращения по другим осям (см. Кватернионы и вращение пространства). Углы Эйлера определяют три поворота системы, которые позволяют привести любое положение системы к текущему. Обозначим начальную систему координат как , конечную как . // Дальше — ru.wikipedia.org
 
Skype: a_schabanow  
UA Non-conformist #04.04.2013 16:25  @Non-conformist#04.04.2013 16:20
+
-
edit
 

Non-conformist

аксакал

code text
  1. //=====================================================================================================
  2. // IMU.c
  3. // S.O.H. Madgwick
  4. // 25th September 2010
  5. //=====================================================================================================
  6. // Description:
  7. //
  8. // Quaternion implementation of the 'DCM filter' [Mayhony et al].
  9. //
  10. // User must define 'halfT' as the (sample period / 2), and the filter gains 'Kp' and 'Ki'.
  11. //
  12. // Global variables 'q0', 'q1', 'q2', 'q3' are the quaternion elements representing the estimated
  13. // orientation.  See my report for an overview of the use of quaternions in this application.
  14. //
  15. // User must call 'IMUupdate()' every sample period and parse calibrated gyroscope ('gx', 'gy', 'gz')
  16. // and accelerometer ('ax', 'ay', 'ay') data.  Gyroscope units are radians/second, accelerometer
  17. // units are irrelevant as the vector is normalised.
  18. //
  19. //=====================================================================================================
  20.  
  21. //----------------------------------------------------------------------------------------------------
  22. // Header files
  23.  
  24. #include "IMU.h"
  25. #include <math.h>
  26.  
  27. //----------------------------------------------------------------------------------------------------
  28. // Definitions
  29.  
  30. #define Kp 2.0f                 // proportional gain governs rate of convergence to accelerometer/magnetometer
  31. #define Ki 0.005f               // integral gain governs rate of convergence of gyroscope biases
  32. #define halfT 0.5f              // half the sample period
  33.  
  34. //---------------------------------------------------------------------------------------------------
  35. // Variable definitions
  36.  
  37. float q0 = 1, q1 = 0, q2 = 0, q3 = 0;   // quaternion elements representing the estimated orientation
  38. float exInt = 0, eyInt = 0, ezInt = 0;  // scaled integral error
  39.  
  40. //====================================================================================================
  41. // Function
  42. //====================================================================================================
  43.  
  44. void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az) {
  45.         float norm;
  46.         float vx, vy, vz;
  47.         float ex, ey, ez;        
  48.        
  49.         // normalise the measurements
  50.         norm = sqrt(ax*ax + ay*ay + az*az);      
  51.         ax = ax / norm;
  52.         ay = ay / norm;
  53.         az = az / norm;      
  54.        
  55.         // estimated direction of gravity
  56.         vx = 2*(q1*q3 - q0*q2);
  57.         vy = 2*(q0*q1 + q2*q3);
  58.         vz = q0*q0 - q1*q1 - q2*q2 + q3*q3;
  59.        
  60.         // error is sum of cross product between reference direction of field and direction measured by sensor
  61.         ex = (ay*vz - az*vy);
  62.         ey = (az*vx - ax*vz);
  63.         ez = (ax*vy - ay*vx);
  64.        
  65.         // integral error scaled integral gain
  66.         exInt = exInt + ex*Ki;
  67.         eyInt = eyInt + ey*Ki;
  68.         ezInt = ezInt + ez*Ki;
  69.        
  70.         // adjusted gyroscope measurements
  71.         gx = gx + Kp*ex + exInt;
  72.         gy = gy + Kp*ey + eyInt;
  73.         gz = gz + Kp*ez + ezInt;
  74.        
  75.         // integrate quaternion rate and normalise
  76.         q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT;
  77.         q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT;
  78.         q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT;
  79.         q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT;  
  80.        
  81.         // normalise quaternion
  82.         norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
  83.         q0 = q0 / norm;
  84.         q1 = q1 / norm;
  85.         q2 = q2 / norm;
  86.         q3 = q3 / norm;
  87. }
  88.  
  89. //====================================================================================================
  90. // END OF CODE
  91. //====================================================================================================
Skype: a_schabanow  
RU Laska_2879 #04.04.2013 21:07  @Non-conformist#04.04.2013 16:25
+
-
edit
 
UA Non-conformist #04.04.2013 21:11  @Laska_2879#04.04.2013 21:07
+
-
edit
 

Non-conformist

аксакал

Ты что-то хотел?
Skype: a_schabanow  
RU Laska_2879 #04.04.2013 21:20  @Non-conformist#04.04.2013 21:11
+
-
edit
 

Laska_2879

опытный

Non-conformist> Ты что-то хотел?
Нет, я просто отходчивый. :)
 26.0.1410.4326.0.1410.43
UA Non-conformist #04.04.2013 21:57  @Laska_2879#04.04.2013 21:20
+
-
edit
 

Non-conformist

аксакал

Ну, тогда тебе в другое место, по твоему профилю. Кстати, я только что оттуда (чисто по-любительски заглянул); полегчал килограмма на три. ))
Skype: a_schabanow  
UA Non-conformist #06.04.2013 11:19  @Non-conformist#04.04.2013 21:57
+
-
edit
 
UA Non-conformist #06.04.2013 11:21  @Non-conformist#06.04.2013 11:19
+
-
edit
 

Ckona

опытный

Реплика на тему перевернутого маятника.

В свое время в этой теме был разговор о регуляторе и законе регулирования.
Все стрелки уперлись в ПИД-регулятор как универсальное средство "от всех болезней".

На основании собственных "раскопок" и моделирований, сообщаю:
- чтобы перевернутый маятник устойчиво удерживался вертикально путем горизонтальных перемещений точки опоры, УСКОРЕНИЕ последней должно быть пропорционально углу невертикальности.
Или (эквивалентно) - координата точки опоры должна быть пропорциональна ДВОЙНОМУ интегралу от угла невертикальности.
Плюс (как минимум) интегрирующее звено для обеспечения затухания.
 

Xan

координатор

Ckona> УСКОРЕНИЕ последней должно быть пропорционально углу невертикальности.

Это ты получишь только возвращающую силу. Это которая у прямого маятника F = -k * x.

Эта сила должна быть больше (по модулю) силы, которая хочет уронить перевёрнутый маятник.

Но чтоб колебания затухали, надо ещё силу вязкого трения, которая пропорциональна скорости отклонения (скорости угла).

При отсутствии вязкого трения в реальных системах за счёт задержки в управлении будут развиваться колебания, до бесконечности.
 9.09.0
UA Non-conformist #19.05.2013 15:31  @Non-conformist#06.04.2013 11:21
+
-
edit
 

Non-conformist

аксакал

В очередной раз подумалось о "программе малых шагов" применительно к бортовой электронике.

Во-первых, разбиение системы УВТ на функциональные блоки, сочленяемые воедино разъёмами. Об этом думалось и раньше: плата МК, плата датчиков и памяти, плата драйверов электропривода. Точнее, МК + датчики + память раньше планировал на одной плате, а сейчас склоняюсь к такому разбиению:
1. МК + память
2. Датчики
3. Драйвера
Такое разделение имхо придаст определённую гибкость открытому проекту и позволит использовать интеллектуальные ресурсы Форума наиболее рационально: специалист по ПИКу? - вот тебе готовая железная платформа, оттачивай своё мастерство. АВР? Нет ничего проще: смык-щёлк - вот тебе готовая железная платформа, и ТЫ оттачивай своё мастерство. Тут имхо не то что платформами можно жонглировать, а и вообще конкретными моделями МК. Заболел/уехал/работа/дом/семья/т.п. - твоя часть проекта ставится на консервацию до очередного творческого приступа, и двигается другая. Это что касается разбиения железа.

Теперь о разбиении собственно проекта. Тут "программа мелких шагов" видится мне таким образом:
1. Оживление электромеханики. На кардан монтируются датчики углового положения осей, запитывается плата МК и драйверов, а вместо данных с цифровых датчиков гироскопа и акселерометра на вход АЦП МК подаются сигналы постоянного напряжения со второго, запасного, кардана, используемого в качестве задатчика. Опыт: на столе рядом располагаются пепелац и кардан-задатчик. Подаём питание, кладём руку на кардан-задатчик, изменяем положение колец всеми возможными способами - электропривод в точности отрабатывает все наши пируэты. Смысл: поддержание морального состояния участников на высоком боевом уровне; отработка взаимодействия МК и электропривода на "простейшем" примере; устранение колебательных и всяких других нехороших явлений.
2. Замена кардана-задатчика штатными датчиками пространственного положения.
3. Введение ПИД, настройка коэффициентов (стенд).
4. Отработка системы спасения.
5. Полёт.
Skype: a_schabanow  
KZ Xan #19.05.2013 18:30  @Non-conformist#19.05.2013 15:31
+
-
edit
 

Xan

координатор

Non-conformist> Во-первых, разбиение системы УВТ на функциональные блоки, сочленяемые воедино разъёмами.

Я планировал не просто разъёмами, а интерфейсом RS485.
Например, блок инерциальных датчиков шлёт инфу в блок мозгов, который решает, куда рулить машинками, и шлёт команды в блок управления машинками.
Тогда можно подключить к ним (к интерфейсу) комп и подслушивать.
А кроме того, можно симулировать на компе работу отдельных блоков, которых ещё нет в железе.
Получится что вместе работают и железные, и виртуальные блоки.
И всё пишется в протокол.
И полная совместимость.
 10.010.0
1 60 61 62 63 64 78

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru