[image]

Кобра III

 
1 72 73 74 75 76 77 78

Semenov

втянувшийся
Давай хоть на pic18f46j50 пересядем! Это устроит? Его микрочип во всех демоплатах радио miwi mrf49 mrf24 использует. Прямо в USB можно втыкать. как 4550 только поновее и памяти в 2 раза больше.
Если да то давай адрес сегодня письмом вышлю тебе и конформисту по 2 шт.

Неужели ты планируешь городить 3 програмных ШИМ на 877 если конформист пишет что он еще и ПЕРФЕКЦИОНСИТ!

Xan> мне без железа рядом тяжело догадываться, что там не так.
ПОВЕРЬ человеку много работающему с PROTEUS - в нем все так же работает как в ПРАВИЛЬНО собраном и прошитом железе. Поверь и проверь.

Я наоборот PIC только 84-й программил году так в 2003. И сразу на AVR пересел на мегу8. Вот ночью снова с PIC встретился и еще раз убедился - пока в даташит не посмотришь фиг че сделаешь правильно.

Я бы щас делал на atmega32u4 с USB с 8 ШИМ и прочими радостями. На них новая Arduino Leonardo делается. http://www.atmel.com/devices/atmega32u4.aspx у меня они в наличии и тоже выслал бы.

Non-conformist
Для индикации перегрузки включи к ноге "ST" драйвера параллельно R41 цепочку из светодиода и резистора около 1000 Ом.

Для индикации состояния на PB6 подсоедние от нее на +5 цепочку из светодиода и резистора от 1000 до 2000 Ом.

Для индикации примерного значения ШИМ на PB7 подсоедние от нее на +5 цепочку из светодиода и резистора от 200 до 1000 Ом.

Между выходом тока CUR и входом АЦП надо добавить RC фильтр. Можно на токовый резистор 10 кОм напаять сверху конденсатор 10 нФ - около 100 мкС сглаживания получим.
   29.0.1547.7629.0.1547.76
Это сообщение редактировалось 25.09.2013 в 13:59
+
-
edit
 

Semenov

втянувшийся
Разноцветные светодиоды - отличное средство отладки!

Вроде по даташиту ИМХО рекомендуют токовый резистор 1 кОм (чтоб "шифт" не превышал 1 Вольт) - ему параллельно надо напаять 0.1 мкФ.
   29.0.1547.7629.0.1547.76
Это сообщение редактировалось 25.09.2013 в 14:11
UA Non-conformist #25.09.2013 14:14  @Semenov#25.09.2013 13:44
+
-
edit
 

Non-conformist

аксакал

Semenov> Давай хоть на pic18f46j50 пересядем!
Если Александеру это будет интереснее, чем на АВР, то и я - руками и ногами "ЗА". Потому что если ДЕЙСТВИТЕЛЬНО сработает дроп-ин замена МК, то мне это очень понравится. Присылать этот МК мне не нужно, он есть здесь в продаже.

По отладочным светодиодам - попробую, но имхо срабатывание защиты драйвера можно считать доказанным и без железной визуализации сигнала этого срабатывания. Слишком всё явно. Там сквозняк идёт в определённых условиях, поэтому защиту и вышибает. ШИМ печной, а драйвер - моторный. Не хавает он его без замечаний...

***
У 877а есть два аппаратных ШИМа. Как раз на Х и У. Z-канал (крен) был задуман больше для затравки, для выведения заинтересованной публики из состояния летаргического сна. Похоже, что эта задача успешно решена. ))

Александер, доработай печной ШИМ в "зеркальный" вариант, и всё встанет на свои места имхо... И начнём заниматься ХУ - аппаратными ШИМами. Отладим малую петлю ПИД, сделаем следящее регулирование... Или датчиками МЕМС займёмся - для этого имхо даже "зеркально-печного" ШИМа достаточно... Есть, ЕСТЬ варианты!

МНОГО ещё работы можно сделать на уже собранном железе. И по коду затрат больших не предвидится имхо, потому что задачи маячат вполне себе ординарные... Затруднённые физической разобщённостью, понятно - но ведь от этого обстоятельства никакое новое железо не спасёт, не так ли? Нет, не имеет имхо практического смысла метаться туда-сюда по чипам и производителям...

Это я подумал, и такое вот моё резюме. ))
   

Xan

координатор

У меня планы были такие:
Отдельная плата только датчиков — гиры, акселерометры, магнитный (в микрухе акселерометра) и оптический, отдельно подключаемый к плате проводком.
В ней вся арифметика вычисления положения в пространстве. Всё это интегрирование скоростей, повороты и перемещения.
И она передаёт эту инфу по RS485 наружу.
18 (примерно) байтов инфы при скорости 115200 можно передать почти 600 раз в секунду — хватит наверняка.
Возможно, надо сделать разные режимы выдачи инфы, например — выдавать готовые отклонения от направлений по трём осям ракеты, чтоб каждую величину сразу подавать на ПИД, управляющий соответствующим моторчиком.
Но это уже на железо не влияет, а только на софт.

Другая плата для руления (и поджигания).
В моём варианте на ней управляемое питание для сервов. В твоём варианте на ней размещается сила для моторов.
В ней софт (ПИДы) для сервов/моторов.
И там же настройки ПИДов. Которые в моём варианте меняются в процессе полёта.

Третья - связь с землёй.
Слив данных вниз, команды наверх. Включение всем питания.
В твоём варианте там память для данных.
А у меня там ещё подключение фотокамеры. :)

Первоначально отдельных плат предполагалось больше, например магнитный и оптический были на отдельных платах (со своими мозгами).

В таком варианте каждую плату в отдельности можно отлаживать через комп.
Разделяй и властвуй.
Не пытаясь понять, почему вращение платы с гирой так криво влияет на вращение мотора, а точно зная, что именно происходит.
   10.010.0
UA Non-conformist #25.09.2013 14:29  @Semenov#25.09.2013 13:44
+
-
edit
 

Non-conformist

аксакал

Semenov> Между выходом тока CUR и входом АЦП надо добавить RC фильтр. Можно на токовый резистор 10 кОм напаять сверху конденсатор 10 нФ - около 100 мкС сглаживания получим.
Конденсатор, зашунтированный резистором - не есть RC-фильтр. Это уже что-то из сваркостроения, на снаббер похоже! )) Там, правда, энергетика маненько другого порядка... о_0
   
RU Semenov #25.09.2013 14:38  @Non-conformist#25.09.2013 14:29
+
-
edit
 

Semenov

втянувшийся
это именно ФНЧ.
   29.0.1547.7629.0.1547.76
Это сообщение редактировалось 25.09.2013 в 14:48
UA Non-conformist #25.09.2013 14:39  @Xan#25.09.2013 14:22
+
-
edit
 

Non-conformist

аксакал

Xan> Не пытаясь понять, почему вращение платы с гирой так криво влияет на вращение мотора, а точно зная, что именно происходит.
Но можно же записать в бортовую память все нужные кривые, и спокойно смотреть, что именно происходит, и что на что влияет... Ну, пусть не в онлаене - в "горячем офлаене". В чём принципиальная разница?
   
UA Non-conformist #25.09.2013 14:41  @Semenov#25.09.2013 14:38
+
-
edit
 

Non-conformist

аксакал

RC ФНЧ = резистор на вход каскада, и конденсатор от его правого конца на землю. Но никак не зашунтированный резистором конденсатор.
   
RU Semenov #25.09.2013 14:51  @Non-conformist#25.09.2013 14:41
+
-
edit
 

Semenov

втянувшийся
Non-conformist> RC ФНЧ = резистор на вход каскада, и конденсатор от его правого конца на землю. Но никак не зашунтированный резистором конденсатор.

Осталось тебе только поверит мне на слово что это ФНЧ. :)

Включаешь воображение!!! Замыкаешь вход того что на картинке и подаешь ток в резистор так как подает его твой драйвер. А драйвер твой именно ток подает а не напряжение!

Думать думать думать ....

и резистор поставить пожалуйста в 1 кОм как в ДШ и кондер 0,1 мкФ сверху припаять.

ИМХО 877 печально. Даже 887 повеселей бы был.

В дравере встроена защита от сквозняка и она не регулируется ИМХО.

Мне не ясно как маховичная стабилизация парирует постоянный момент вызваный например кривизной конструкции? У мотора ведь предел есть по разгону.

Xan> 18 (примерно) байтов инфы при скорости 115200 можно передать почти 600 раз в секунду — хватит наверняка.

Я бы 50 раз в сек ограничился. Зачем бесполезный СОНМ данных, кто их обработает? А скорость меньше предлагал потому что большинство радиомодулей на меньшей скорости рабоотают - самое обычное 9600 - в любой момент подключил радио и есть радиолинк система - ПК.

И 8N1 тоже по совместимости с большинством радиолюбительского железа.
Прикреплённые файлы:
фнч.jpg (скачать) [201x114, 3,8 кБ]
 
 
   29.0.1547.7629.0.1547.76
UA Non-conformist #25.09.2013 14:51  @Non-conformist#25.09.2013 14:39
+
-
edit
 

Non-conformist

аксакал

Xan>> Не пытаясь понять, почему вращение платы с гирой так криво влияет на вращение мотора, а точно зная, что именно происходит.
Non-conformist> Но можно же записать в бортовую память все нужные кривые, и спокойно смотреть, что именно происходит, и что на что влияет... Ну, пусть не в онлаене - в "горячем офлаене". В чём принципиальная разница?
Не хочешь в память - передавать по УАРТу на комп... Не улавиваю разницу между твоим вариантом разбиения системы на блоки, и моим. Частности какие-то: у тебя мозги на плате привода, у меня - на плате ЦП... И т.п.

485-й зачем-то... У меня, например, длина связи - максимум метр. На что он мне?

Да что тут в эти нюансы-дебри залезать... ОК, нет настроения разбираться с моторными нюансами печного ШИМа или с нуля писать моторный. Я понимаю. Давай тогда просто включим МЕМСы, и заставим МК читать их выходные буфера... Просто по ДШ, без самобытностей и чюдес программирования? Это можно сделать? У меня всё готово! И код не пропадёт - тебе ведь он тоже пригодится?
   
RU Semenov #25.09.2013 14:56  @Non-conformist#25.09.2013 14:51
+
-
edit
 

Semenov

втянувшийся
Non-conformist> У меня всё готово!

Если не против поставь пожалуйста TeamViewer – бесплатный удалённый доступ и общий доступ к рабочему столу через Интернет чтоб к твоему ПК мог подключаться тот кому дашь сеансовый пароль и будет так как будто он сидит за твоим ПК и голосом можете общаться - работа будет продуктивна. Мастер Xan и ПО тебе на ПК настроит. Я тоже могу помочь.

После этого у тебя действительно будет все готово для отладки датчиков. :)
   29.0.1547.7629.0.1547.76
UA Non-conformist #25.09.2013 14:57  @Semenov#25.09.2013 14:51
+
+1
-
edit
 

Non-conformist

аксакал

Semenov> В дравере встроена защита от сквозняка и она не регулируется ИМХО.
Она рассчитана на нормальный, МОТОРНЫЙ ШИМ.

Semenov> Мне не ясно как маховичная стабилизация парирует постоянный момент вызваный например кривизной конструкции? У мотора ведь предел есть по разгону.
У другого мотора (который штатный дым выпускает в дырочку) тоже есть предел ~ 9,5 с работы. Маховику вообще не придётся разгоняться... Говорю же - это просто публику завести, интересный эксперимент. Имеется в виду заведение ОС от МЕМСов (z-ось гиры) на мотор с маховиком. Малая петля ПИД. Всё моделируется вживую, прямо на рабочем столе - не нужно ни стендов, ни водомётов, ни прочих чюдес. Просто и эффектно. Если довести до конца.
   
RU Semenov #25.09.2013 14:58  @Non-conformist#25.09.2013 14:57
+
-
edit
 

Semenov

втянувшийся
Non-conformist, посмотри пож пост выше. Это нужная и полезная программа для совместной работы.
   29.0.1547.7629.0.1547.76
RU Semenov #25.09.2013 15:02  @Non-conformist#25.09.2013 14:57
+
-
edit
 

Semenov

втянувшийся
Semenov>> В дравере встроена защита от сквозняка и она не регулируется ИМХО.
Non-conformist> Она рассчитана на нормальный, МОТОРНЫЙ ШИМ.

Как Serge77 любит говорить - не надо плодить новых сущностей! Драйвер тупой - ему пох что в него пихают. Думаю что возникает пик выше 20 Ампер - это нижний предел срабатывания защиты по току верха драйвера.
   29.0.1547.7629.0.1547.76
UA Non-conformist #25.09.2013 15:03  @Semenov#25.09.2013 14:58
+
-
edit
 

Non-conformist

аксакал

Сергей, я внимательно читаю твои посты. Просто не успеваю поддерживать предложенный темп общения. ))

Установлю тимвьюер на домашний комп. Если сенсей согласится присоединиться к этой затее. Я не против, был бы реальный толк. Пока сидим в Скайпе - скорости общения вполне хватает. Но - да, он пишет, что надо сделать - я делаю. А тут, как я понимаю, он сам всё будет делать. )) Чюдеса...
   
UA Non-conformist #25.09.2013 15:05  @Semenov#25.09.2013 15:02
+
-
edit
 

Non-conformist

аксакал

Semenov> Как Serge77 любит говорить - не надо плодить новых сущностей!
Печной ШИМ - это не новая сущность, это данность. И моторный драйвер - это тоже данность. Не уверен, но по-моему они друг дружку не вполне понимают. Что я нахожу вполне естественным...
   
RU Semenov #25.09.2013 15:10  @Non-conformist#25.09.2013 14:41
+
-
edit
 

Semenov

втянувшийся
Ты по фнч картинку посмотрел? Разобрался с сущностью?

Затравка по коду для гироскопа L3G4200D - Easyelectronics.ru • Просмотр темы - Гироскоп L3G4200 угловая скорость! и вот Получение данных с MEMS гироскопа (часть I) / Хабрахабр + простой ЛУТ под него.
   29.0.1547.7629.0.1547.76
Это сообщение редактировалось 25.09.2013 в 15:23
UA Non-conformist #25.09.2013 15:28  @Semenov#25.09.2013 15:10
+
-
edit
 

Non-conformist

аксакал

Semenov> Ты по фнч картинку посмотрел? Разобрался с сущностью?
Имеется в виду внутреннее сопротивление выходного (того что слева) каскада? Так оно ненулевое, чтобы его так упрощать... Давай отложим эту тему... Нет, даже так: СОГЛАШАЮСЬ. Ты прав. Честно - облом спорить.

Semenov> простой ЛУТ под него.
Код не понимаю, ты мне хекс дай на прошиву. )) ЛУТа не надо - ВСЁ ГОТОВО! ХЕКС надо.
   
UA Non-conformist #25.09.2013 15:39  @Non-conformist#25.09.2013 15:28
+
-
edit
 

Non-conformist

аксакал

Сергей, ты ДБ установил? Кинул бы нужный кусок мемсового текста в папку. Или прямо сюда. У меня есть старый ПИКовский компилятор - можно попробовать скомпилить. Только надо, чтобы оно на УАРТ выводилось. Чтобы я мог лог писать с датчиков.
   
RU Semenov #25.09.2013 16:12  @Non-conformist#25.09.2013 15:39
+
-
edit
 

Semenov

втянувшийся
Non-conformist> Сергей, ты ДБ установил? Кинул бы нужный кусок мемсового текста в папку. Или прямо сюда. У меня есть старый ПИКовский компилятор - можно попробовать скомпилить. Только надо, чтобы оно на УАРТ выводилось. Чтобы я мог лог писать с датчиков.

C ДБ щас сделаю, отправлю мыло Хан-у для инвайта.
Щас посылки пакую нет времени попробовать, ночью только.

Не надо старый! Тебе демки хватит.

Самый лучший компилятор для новичка это mikroC от MikroElektronika - Development tools, Compilers, Books (есть конечно поломаный на Ссылка запрещена по требованию [показать]
вот ДЕБИЛЫ!!! а мы их КОНЕМ!!! rutracker.org/forum/viewtopic.php?t=2016367 опа! но и в демо до 2 Кб кода достаточно MikroElektronika - mikroC PRO for PIC - IDE - Integrated Development Enviroment ) главное там руководство с примерами как раз на 877 - смотрите читайте - http://www.mikroe.com/downloads/get/30/mikroc_pic_pro_manual_v101.pdf

mikroC имеет встроеный симулятор, сразу !!!в коде Си показывает АСМ код!!! интегрируется конечно же в MPLAB и в PROTEUS.

Ща себе поставлю новейший 6 демо... ух!

и вот код еще PIC16F877a for gyro L3G4200D

mikroElektronika • View topic - L3G4200D

View unanswered posts | View active topics Board index » Compilers » mikroBasic Compilers » mikroBasic PRO compiler for PIC » mikroBasic PRO for PIC General All times are UTC + 1 hour Board index » Compilers » mikroBasic Compilers » mikroBasic PRO compiler for PIC » mikroBasic PRO for PIC General All times are UTC + 1 hour Users browsing this forum: No registered users and 2 guests // www.mikroe.com
 

#define Accel_Wr 0x30
#define Accel_Rd 0x31
#define Gyro_Wr 0xD0
#define Gyro_Rd 0xD1
#define WHO_AM_I 0x0F
#define CTRL_REG1 0x20
#define CTRL_REG2 0x21
#define CTRL_REG3 0x22
#define CTRL_REG4 0x23
#define CTRL_REG5 0x24
#define CTRL_REG6 0x25
#define OUT_X_L 0x28
#define OUT_X_H 0x29
#define OUT_Y_L 0x2A
#define OUT_Y_H 0x2B
#define OUT_Z_L 0x2C
#define OUT_Z_H 0x2D
#define FIFO_CTRL_REG 0x2E

//*** Prototypes ***//
void Accel_Init(void);
void Gyro_Init(void);
void Write1Byte(u8 Device_Wr,u8 I2Cadr,u8 I2Cdata);
u8 Read1Byte(u8 Device_Wr,u8 I2Cadr);
int TwoComp(u8 MSB, u8 LSB);
TriAxes GetSensor(u8 I2Cadr);

//*** Get Sensor ***//
TriAxes GetSensor(u8 I2Cadr)
{
u8 Xlow,Xhigh,Ylow,Yhigh,Zlow,Zhigh;
TriAxes SensorAxe;

Xlow = Read1Byte(I2Cadr,OUT_X_L);
Xhigh = Read1Byte(I2Cadr,OUT_X_H);
Ylow = Read1Byte(I2Cadr,OUT_Y_L);
Yhigh = Read1Byte(I2Cadr,OUT_Y_H);
Zlow = Read1Byte(I2Cadr,OUT_Z_L);
Zhigh = Read1Byte(I2Cadr,OUT_Z_H);
SensorAxe.X = TwoComp(Xhigh, Xlow);
SensorAxe.Y = TwoComp(Yhigh, Ylow);
SensorAxe.Z = TwoComp(Zhigh, Zlow);
return SensorAxe;
}

//*** Two's Complement ***//
int TwoComp(u8 MSB, u8 LSB)
{
int result;
u16 temp;
temp = (MSB * 256) + LSB;
//return temp;
result = ~temp + 1;
return result;
}

//*** Accel_Init ***//
void Accel_Init(void)
{
Write1Byte(Accel_Wr,CTRL_REG1,0x47); // Normal Mode, 50 Hz
//Write1Byte(Accel_Wr,CTRL_REG4,0x18); //0x0x-2G 0x1x-4G 0x2x-8G 0x3x-16G, 0xx8 HighRes 0xx0 LowRes
Write1Byte(Accel_Wr,CTRL_REG4,0x20); // 8G LowRes
}

//*** Gyro_Init ***//
void Gyro_Init(void)
{
Write1Byte(Gyro_Wr,CTRL_REG1,0x0F); // 100Hz, 12.5, Power Up
Write1Byte(Gyro_Wr,CTRL_REG4,0x20); // 0x00-250dps, 0x10-500dps, 0x20-2000dps
}

//*** Write1Byte ***//
void Write1Byte(u8 Device_Wr,u8 I2Cadr, u8 I2Cdata)
{
I2C1_Start();
I2C1_Write(Device_Wr);
I2C1_Write(I2Cadr);
I2C1_Write(I2Cdata);
I2C1_Stop();
}

//*** Read1Byte ***//
u8 Read1Byte(u8 Device_Wr,u8 I2Cadr)
{
u8 I2CRead;
I2C1_Start();
I2C1_Write(Device_Wr);
I2C1_Write(I2Cadr);
I2C1_Restart();
I2C1_Write(Device_Wr + 1);
I2CRead = I2C1_Read(1);
I2C1_Stop();
return I2CRead;
}
   29.0.1547.7629.0.1547.76
Это сообщение редактировалось 25.09.2013 в 16:18
UA Non-conformist #25.09.2013 16:21  @Semenov#25.09.2013 16:12
+
-
edit
 

Non-conformist

аксакал

ОТ ЭТТО парррень...

***
Ну и я тут нашёл вариант программного ШИМа. Посмотрел, насколько смог - вроде отличается от печного:

Программная ШИМ (PWM)

ШИМ - Широтно импульсная модуляцияPWM - Pulse Width Modulation (т.е. то же самое, что и ШИМ) Затем, что на самом AVR (Atmega) каналов шим 1-2, что часто не хватает для того, что надо. Пусть у нас есть 3 (три) светодиода и яркостью каждого их них мы хотим управлять индивидуально. Встроенных ШИМ каналов таймера не хватит. И, вообще, может мы еще какой-то особый контроль хотим осуществлять над каждым из них. Поэтому сажаем их на обычные ноги (в примере PORTC ноги 3,4,5) и управляем программно. Схема: Дополнительная информация по поводу подключения:и в даташите к контроллеру. // Дальше — www.artem.ru
 
   
UA Non-conformist #25.09.2013 16:35  @Non-conformist#25.09.2013 16:21
+
-
edit
 
RU Semenov #25.09.2013 16:47  @Non-conformist#25.09.2013 16:35
+
-
edit
 

Semenov

втянувшийся
Non-conformist> Вот ещё вариант ПШИМ, уже ПИК-овский:
Программный всегда чуток с глюками будет так как прерывания от UART и от других событий будут его сбивать. Ну что есть то есть.

Пора за гиру взяться, за i2c
   29.0.1547.7629.0.1547.76
UA Non-conformist #25.09.2013 17:20  @Semenov#25.09.2013 16:47
+
-
edit
 

Non-conformist

аксакал

Хай сбивают, крен некритичен имхо. Ну, не настолько критичен имхо, чтобы брутально напхать в рот земли... Да и когда на верёвочке подвешенное всё это крутиться будет, можно будет оценить, насколько мешают прерывания. А мешать они не будут, потому как ШИМ - это писк, а маховик - это шершавая, инертная железяка...
   
AD Реклама Google — средство выживания форумов :)
UA Non-conformist #25.09.2013 17:24  @Non-conformist#25.09.2013 17:20
+
-
edit
 

Non-conformist

аксакал

Повторюсь, что в железном плане по МЕМСам всё на мази - дайте только хекс.
   
1 72 73 74 75 76 77 78

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