Jump to content

    

feste

Участник
  • Content Count

    37
  • Joined

  • Last visited

Everything posted by feste


  1. Вменяемый (в отличие от подавляющего большинства форумных тролликов) исполнитель найден, тема закрыта. Всем спасибо.
  2. 4 режим - с порта rs232 пришёл байт и 6 младших бит из него отразились на 6 ногах проца, к которым приделаны светодиоды оптопар. Просто дискретные выходы. 5 режим - пришло с порта 2 байта (требуемая угловая позиция), прикидываем в какую сторону ближе крутить, даём команду на соответствующую оптопару "вперед" или "назад", расчитываем по линейному закону требуемую скорость, значение скорости - в ШИМ, оптопарой этот ШИМ передаётся в привод (частотник) в виде некоего постоянного (меняющегося по величине в процессе позиционирования). Своего рода "педаль газа" и рычаг ревер-редуктора, только с опторазвязкой. По ходу процесса позиционирования "педаль газа" отпускаем по мере приближения к заданному углу. Если случится пролёт - врубаем реверс и опять чуть подъигрываем "газом" и так продолжаем, пока не попадём в заданный угол с заданной точностью. Как попали туда - выдаём сигнал "ОК" и ждём дальнейших указаний. Врать не буду, программно такое не реализовывал, но на железном уровне рулить частотником такой схемкой пробовал - очень даже неплохо получается. Мудрёно и не то. Есть проверенный алгоритм и не вижу смысла от него отходить. Да, по факту мне надо перенести задачку с одной платформы на другую и добавить немного несложной доп функциональности. Если я не профессионал в этой сфере, то я и ищу более компетентных товарисчей. Но мне не хочется, чтобы мне навяливали на уши то, чего нет, моя некомпетентность недостаточна для этого. По поводу отвалившегося товарисча-программиста - мы расстались полюбовно и без обид, хотя он и подставил меня своим "уставанием" и срывом договорённостей. По поводу "вчера" - научитесь сначала читать и понимать написанное, прежде чем микрофонить к народу с броневика. уверяю - там не было слишком сложных содержаний.
  3. Нет, если случится ТАКОЕ, что будет два вектора одной амплитуды и противоположного угла, то как ни грустно, результат их сложения и должен быть 0. И никак иначе. Задача такова. Вообще, вся эта математика уже отработана и служит с 2000-го года, но на другом железе. Так что тут некоторые простодушные философы могут и дальше продолжать втуне раздуваться от важности и брызгать словами типа ДСП, БПФ и т. д, называть какие-то нелепые суммы в тенге. Конкретно к Вам последняя фраза не относится. На АЦП больше 36Дб не нужно, остальное при помощи программируемых усилителей решается. Как обычно у славян - нужно вчера, но поелику так не бывает, приемлются реальные предложения от исполнителя. Повторяю - вся математика уже отработана и понятна, разве что не делали раньше подбор К усиления PGA и позиционирование, но и тут математика видится весьма несложной и стандартной, тем более, что эти подзадачи не шибко критичны по скорости работы.
  4. Каждый отсчёт АЦП даёт мгновенное значение напряжения, которое мне не нужно, мне нужно знать векторно усреднённое значение амплитуды и фазы сигнала относительно сигнала "Z", а отсчётов должно быть достаточно много на один период, чтобы можно было быстро получить представление о фазе (теорема Стьюдента). Для этого по каждому периоду получаем амплитуду и фазу(вектор), и потом производим сложение этих векторов за сколько-то периодов, потом делим на число периодов. Если число периодов, за которое мы делаем это в. усреднение - степень двойки, то можно вместо деления для ускорения применять сдвиг. Что на STM32F4 , всего скорей и не нужно.
  5. Только первая. Только она, родимая. Да. Я их расчитываю для заданного диапазона частот и могу компенсировать в своей программе, но ето не так критично, поэтому пока ленюсь ето делать. Полный диапазон 70ДБ, но во время одного измерения диапазон не более 36 ДБ, так предварительно подбирается оптимальное усиление. Может, разумеется, но я обозначал в ТЗ диапазон частот - там скромно, тем более, что если всё-таки проц не поспевает обрабатывать каждый период, он может периодически часть игнорировать, что и было реализовано при обработке на 33MHz 16-ти разрядных процах. Ибо всё равно потом происходит векторное усреднение, при таком игнорировании выпадает часть из очень большого объёма информации, что приводит только к некоторому увеличению времени накопления статистического результата. Но поскольку частота-таки больша, то всё это, даже замедленное "выкидышами", происходит с достаточной для меня быстротой.
  6. Вот это пример правильного ответа, т.е. по теме. Правда в корне неверного по содержанию. 1. Предложения без исходников по умолчанию не рассматриваются. 2. ДСП там не нужно - всё гораздо проще - не надо усложнять 3. Цена какая-то смешная. Я не пользуюсь такими дешевыми услугами. По причине усталости.
  7. Можно, но мне нужно то, что я написал. Это камень от ST.com Названные Вами буквы мне неведомы.
  8. Надо написать или допилить ПО с учетом процитированных ниже особенностей. Что делает устройство описано в тексте первого поста после слов "Теперь Т.з.:" достаточно подробно для понимания масштаба задачи. По конкретным уточнениям - готов отвечать.
  9. Слёзно прошу не учить меня жыть. Если Вы можете эффективно решить поставленную задачу за разумное время и адекватные средства - welcome с предложениями или уточнениями в личку или опубликованную пошту. UPD 2 ALL: Кактегорически не приветствуется обсуждение избранной мной стратегии решения МОЕЙ задачи и схемное реализации оной. Кактегорически приветствуются и рукопожимаются конкретные предложения услуг по созданию/допилу ПО. С пониманием и поддержкой отношусь к вопросам/уточнениям, высказанным с целью лучшего понимания поставленной задачи. Спасибо за в нимание.
  10. Здравия желаю. Есть разработанная и собранная плата, но нужен софт. Устройство собрано в пяти экземплярах и не факт, что будет тиражироваться. Плата на STM32f415 Вообще-то есть и софт под всё это дело, он даже как-то работал, но есть следующие особенности: 1. с тех пор я изменил схему и камень (тоже STM32, но я взял покруче), добавил по аналоговым входам усилители PGA с управлением по SPI, на выходе поставил опторазвязку, управление скоростью PWM вместо DAC. 2. исходник без комментов, недостаточно структурен, на си, программист устал и отвалился. 3. Математики я почти совсем не знаю, но мой друг математик, видевший этот код, говорил о неоптимальности применённого алгоритма синхронного детектирования (выделения первой гармоники). Он готов на математическом языке понимальщику свои соображения изложить. Но в принципе, даже я почти всё понимаю в этом коде, кто там что делает. "Даже" относится к тому, что я не программист, тем более, что почти совсем не знаю си, но на Паскалевиче программки допиливал-модернизировал-фиксил. Да, всё железо уже есть, включая программатор, отладочные платки для разминки, компьютер, частотный привод, мотор с энкодером и проч. Теперь Т.з.: Нужно разработать ПО следующего устройства ввода-вывода. Технические параметры: 3 цифровых входа инкрементного углового датчика - опорный(0), квадратурные "А" и "В". Уровни сигналов - TTL. Диапазон частот опорного сигнала 0-500Гц. 4 аналоговых входа с предусилителями с переключаемым по SPI коэфф. усиления. Диапазон частот полезного сигнала 0.5-500Гц. Диапазон напряжений на 4-х аналоговых входах 0.5 - 4.5V(p-p), ноль смещён на 2.5V, но постоянная составляющая не интересует, соответственно на входе - развязывающий кондюк. Интерфейс с ведущим компьютером - MODBUS RS-232 Режимы работы: 0. Режим управления: принимаем из компьютера управляющие посылки: 15 байт данных + один байт - команда включить один из режимов работы. 1. Режим разгона: получаем с порта значение требуемой скорости вращения, ШИМом преобразуем с каким-то коэффициентом в управляющее напряжение, пропорционально требуемой скорости, меряем частоту опорного сигнала (Z), как только её нестабильность станет меньше константы, переходим в режим измерения, если так и не стала стабильной (нестабильность меньше соотв. константы) за заданное константой время разгона - выдать соответствующий код ошибки на порт и продолжать ловить частоту. 2. Режим измерения: непрерывно получаем оцифрованные сигналы с встроенного АЦП (от 1-го до 4-х) и опорные импульсы, синхронно детектируем, т.е. выделяем из всех аналоговых сигналов первую гармонику (sin/cos преобразование) с частотой, равной частоте опорных импльсов, векторно усредняем значения амплитуд и фаз сигналов и N раз в сек. выдаём в порт накопленные за этот период усреднённые значения амплитуд и фаз по каждому из 4-х каналов и опорной частоты. Не всегда нужны все 4 канала АЦП. Скорее всего, экономить время, выбирая к-во каналов АЦП, меньшее, чем 4, и не нужно - надо смотреть. В начале измерения по каждому каналу подбираем коэфф. усиления для оптимального попадания во входной диапазон АЦП и записываем их в соответствующий программируемый усилитель по SPI Надо мерить ОДНОВРЕМЕННО все каналы и загонять данные через DMA. Вроде, скоростей должно хватить. АЦП 12 разрядов, 3. Режим измерения угла: получаем импульсы: опорный(0) и 2 квадратурных с двух каналов энкодера, непрерывно считаем их и выдаём в порт угловое значение в единицах, равных учетверённому количеству импульсов на оборот энкодера. Выдача в порт по запросу. энкодер 600 имп. на оборот (или меньше) При этом энкодер в некоторых случаях соединен с ротором, угловое положение которого интересует, при помощи ременной передачи, соответственно от случая к случая количество импульсов на оборот разное. Но индексный импульс (Z) приходит с метки на измеряемом роторе, соответственно мы за один поворот ротора всегда получаем строго один и только один импульс. И при повороте ротора вручную или на выбеге можем посчитать число импульсов А и В на оборот. 4. Режим вывода - по сигналу с порта выводим биты на шесть ног (оптопары). 5. режим позиционирования - два выхода (оптопары) - команда "вперёд" и "назад", один выход - через ШИМ и оптопару делает управляющее постоянное напряжение на привод (скорость). На порт компьютер посылает два байта - значение требуемого угла позиционирования, контроллер, играя означенными тремя оптопарами, заставляет привод спозиционировать ротор на нужный угол. Пишите на fesadd@gmail.com В случае успешного опыта сотрудничество обещает быть продлённым... UPD 2 ALL: Кактегорически не приветствуется обсуждение избранной мной стратегии решения МОЕЙ задачи и схемное реализации оной. Кактегорически приветствуются и рукопожимаются конкретные предложения услуг по созданию/допилу ПО. С пониманием и поддержкой отношусь к вопросам/уточнениям, высказанным с целью лучшего понимания поставленной задачи. Спасибо за в нимание.
  11. Есть отладочная плата http://www.ebay.com/itm/260924313786 Надо написать программу для осуществления следующего функционала: 1. Общение с РС по RS-232 (протокол обмена ещё не написан и не придуман) 2. 4 аналоговых входа(1-500Гц 2V p-p), 3. 1 индексный (импульсы 1-500гц TTL) 4. 2 цифровых входа с инкрементного датчика (частота импульсов до 150КГц) - считать можно только по команде с РС 6. 8 цифровых выходов Основная работа: аналоговые сигналы с четырёх каналов по очереди оцифровываются, выделяется составляющая с частотой индексного сигнала (sin/cos преобразование), усредняются за сколько-то измерений и выдаются на порт в виде чисел: амплитуда/фаза относительно индекса с инкрементного датчика - тоже число на порт по команде с порта получаем конфигурационную информацию и байт на выход (8 ТТЛ линий).
  12. Спасибо. Но Вы ошибаетесь, я - колеблющийся ламер. Можно обсудить ещё форму моего носа, национальность, это всё очень интересно, но потом, а я просил здесь конструктивные предложения. Типа таких: Я предлагаю сделать так-то, и я готов это сделать. Далее мы в личке или через имэйл достигенм консенсуса по цене/срокам/объёму_работы/способу выполнения и начнём работать. Да, непременно нужно все четыре канала одновременно и с синхронизацией по индексному сигналу. Очень хорошо, если я не прав с пятью МК и хватит одного, правильного. Только не забывайте про цифровую фильтрацию, она прилично времени сожрёт. Добавление к ТЗ: точность измерения фаз сигналов - не хуже 5град. опторазвязки не нужны.
  13. Конструктивная критика/предложения принимаются с благодарностью.
  14. Обновлённо-уточнённое Т.З.: 1. Общение с РС по RS-232 (протокол обмена ещё не написан и не придуман) 2. 4 аналоговых входа(1-500Гц), один индексный (импульсы 1-500гц) 3. АЦП 12 разрядов (думаю, встроенный в МК) 5. 2 цифровых входа с инкрементного датчика (частота импульсов до 150КГц) - считать можно только по команде с РС 6. 2 релейных выхода Аналоговые сигналы оцифровываются, далее происходит програмное выделение полезного сигнала и получением значений в виде чисел: амплитуда/фаза относительно индекса. Полезным является сигнал только с частотй индексных импульсов. Полученные после такой обработки числа усредняются и выдаются на порт. с инкрементного датчика - тоже число на порт по команде с порта ативируются реле. Уровни сигналов - аналоговые - до 2В амплитуды, цифровые - ТТЛ. Входное сопротивление - 1КОм. Предлагается поставить 4 микроконтроллера с АЦП, возможно плюс один какой-нить простенький к ним арбитром и ещё он будет заниматься подсчётом импульсов с инкрементного датчика, и общением с РС. Питание - 12В. Я окончательно утвердился в убеждении, что надо 4 +1 МК - по одному на аналоговый канал и один арбитром с функцией счёта инкрементных импульсов и обслуживания интерфейса RS232/
  15. Очень занят, беру тайм-аут до вторника. тема актуальна.
  16. Не, чтучка мирная, хотя и двойного назначения. Тема актуальна - завтра напишу.
  17. Более чем. Спасибо за предложение, обязъятельно обращусь. доступ к USB позволит применить нетбуки, которые мало того, что отвратительно дёшевы, так оно и удобнее в моём применении, чем отдельно комп, монитор, клава.
  18. Согласен. Хорошее слово "дотянуться". Поэтому и остановился на 232, благо он пока не совсем отмер. Ребята, мне многие начали задавать вопросы, смысл которых сводится к "сколько дашь?" Прошу больше не задавать, я уже ответил тут http://electronix.ru/forum/index.php?showt...st&p=969953
  19. Вы можете задавать вопросы, это поможет установлению понимания задачи всеми участниками обсуждения. Да, интересная идея, но ноуты, имеющие ирду недёшевы - теряется смысл затеи.
  20. А я и не темню, только про бюджет мне здесь неохота говорить. Я готов выслушать предложения. Одно из них я с радостью приму.
  21. unit FFT_R; interface uses cmplx; const Nmax=512; type ComplexArray=array[0..Nmax-1] of Complex; var buffer:ComplexArray; procedure BPF(w,P:real;n:integer;var A:complex); {*******************************************************************} {************************************************************************} {************************************************************************} implementation {************************************************************************} procedure BPF(w,P:real;n:integer;var A:complex); {­ 室Ёв ўҐЄв®а Ј ମ­ЁЄЁ - з бв®вл - w 14 ms,t-ўҐбм ЇҐаЁ®¤} var r,t,F:real; k,tau,Nw:integer; Sn,Cs,dati1,dati2:real; s:longint; begin k:=0; if w<>0 then begin repeat k:=k+1 until k/w>P; if k<>1 then tau:=trunc((k-1)/w/P*n){Є®«-ў® в®зҐЄ - ЇҐаЁ®¤ Ё­вҐЈаЁа®ў ­Ёп} else tau:=n; end; Nw:=k-1;{­®¬Ґа Ј ମ­ЁЄЁ} r:=2*pi/tau; dati1:=0; dati2:=0; for k:=1 to tau do begin F:=k*Nw*r; sn:=sin(F); cs:=cos(F); dati1:=dati1+buffer[k-1].re*Cs; dati2:=dati2+buffer[k-1].re*Sn; end; A.re:=dati1; A.im:=dati2; end; {************************************************************************} end. Вот, сопсно, оно - вырезаниё одной частоты. Это даже проще, чем БПФ. Один товарисч предложил подсунуть этот девайс вместо USB клавы, вот мой ответ: Объём передаваемых через порт данных за одну посылку - до 100бит, желательно перекинуть за секунду, причём это перекидывание будет редко - не чаще чем раз в 30 сек. Такой вариант привлекателен тем, что мона взять любой ноут для этой задачи. Спасибо за участие в обсуждении, очень помогаете своими каверзными вопросами конкретизировать ТЗ. Уровни на входах: Аналог - до 1В, цифровые - ТТЛ Контроллер постоянно меряет, оцифровывает и усредняет, по запросу выдаёт. Запросы не чаще, чем раз в 30сек. Ну, ещё некоторые мелкие функции выполняет, но работа с аналогом - главное и самое объёмное по машинному времени.
  22. Ысчо актуально, я с несколькими людьми уже потихоньку начал первые консультации, но пока могу сказать, что не все в теме. Надеюсь, Вы заметили, что у меня ДОС. Добавлю, что Окон не будет. НИКОГДА.
  23. Я не умею работать с Ethernet и USB под DOS. Интересно было бы научиться, но времени на это нет. Да и нужды особой тоже, ибо скорости и так за глаза хватит. А мне ещё предстоит перепахать имеющуюся программу под новый способ ввода. Раньше это был саундбластер, но почти все подходящие мне девайсы я уже скупил, причём не только в нашей стране. Надоело рыскать. Да и ISA тоже накладывает определённые трудности с комплектованием изделиёв.