Стенд для моторов и винтов "все в одном"
15 мая 2017, 17:10 | Мы Автор: Night_Ghost
С самого начала было ясно, что китайским данным по моторам и винтам верить нельзя, поэтому все винты проверялись на заявленные характеристики. Однако делать это на кухонных весах оказалось настолько неудобно, что почти сразу стало понятно - нужен стенд. Благо в интернете есть несколько вполне рабочих конструкций, а на Алиэкспресс - все необходимое за недорого.
За основу была выбрана идея из этого стенда ВМГ, плюс датчик вибрации из стенда балансировки, со своей механикой (ибо главное для таких инструментов - компактность!) и объединением всей электроники в одной платке LeafLabs вместо двух ардуин. Получилось намного лучше - хоть целая секунда записи вибрации, USB вместо тормозного Serial, консоль управления, встроенная калибровка, возможность отказаться от глючного I2C АЦП, современные протоколы управления драйвером мотора и прочая прочая. Вот только надо бы перед измерением сначала задать режим, в котором будет работать стенд в данный момент - но вроде бы исходники есть, так что поправить не составит труда. Эх, наивный я...
Потом оно долго ехало, потом я боролся с приступами прокрастинации, но долго ли коротко ли но вот стенд наконец готов. Вернее, его аппаратная часть - ибо еще есть софт для обработки, который надо малость поправить для совместимости с получившимся стендом. И вот тут я понял что попал...
Лирическое отступление. В среде программистов принято ругать Ардуино за полное отупление тех кто ей пользуется - никаких кошерных прерываний, регистров, таймеров и прочего внутренним железа камня, знай только тупо дергай ногами через digitalWrite() через какой-то delay(). Это даже хуже чем 1С! И казалось, что ничто уже не может быть хуже этого - однако ж оптимисты снова победили, и таки может, может быть намного хуже!
Ибо весь этот "софт" сделан в среде "графического программирования" LabView, где типО программа составляется из пиктограмм, соединяемых линиями - без сомнения, для тех дебилов что даже Ардуино не осилили. А для программера это выглядит как какой-то понос мозга...
Попробуйте угадать, что делает это творение "гуевых мышевозилов", которое надо рисовать минут несколько.
Это всего лишь графическое представление для "Serial.println(pwm);"!!! В результате вместо программы на десяток строк мы имеем монстра на 4 экрана таких вот каракулей.
К тому же все это усугубляется интерфейсом в стиле 90-х годов, почти полным отсутствием контекстной зависимости инструментов и совершенно разными способами для доступа к настройке узлов.
Поняв, что я свихнусь если попытаюсь сие безобразие осилить, я обратился напрямую к автору софта с просьбой помочь в доработке, ведь ежели он этим ужасом пользуется значит разбирается! Дважды наивный я... мне б сразу понять что люди, которым может нравиться такое вот "программирование", устроены и думают совершенно иначе. В общем, в результате я был просто послан с формулировкой "мне лениво".
Что ж, и на самом деле никто никому ничего не должен - только вот зачем-то глупый я пытаюсь отвечать на вопросы по своим программам, зря наверное...
Так что чтобы и душевное здоровье сохранить (то есть не разбираться с этим поделием мозгососных слизней-инопланетян), и все целиком не переписывать на нормальном языке, была сделана небольшая программулька, которая управляет стендом и принимает с него данные, складывая их в том же формате, с которым и работает оригинальный софт. Осталось дело за малым - собственно выяснить, что за пропеллеры у меня в руках. Ниже - график эффективности от тяги для 7-и имеющихся у меня пропеллеров.
Сразу видно что два хороших, несколько более-менее, и два полный шлак.
На этом построение стенда можно считать наполовину законченным (балансировка будет чуть позже, там таки похоже придется переписывать все на Матлабе), исходники как всегда на гитхабе.
PS. Я таки заставил это гуево-графическое уродство выдавать команду включения режима стенду, но все равно в нем и работает все через раз, и просто неудобно, так что снимать данные со стенда лучше через утилиту ForceTool.
в дальнейшем сделать стенду датчик положения двигателя и как в балансировочном станке шиномонтажа показывать куда добавлять грузики )
Это надо энкодер ставить, а с ним мотор менять будет жутко неудобно. Разве что видеопоток привязывать.
На самом деле достаточную точность обеспечивает просто указание угла относительно метки плюс точный угломер
Там уже есть одна метка датчика оборотов, дополнительные мешать не будут? А вот стробоскоп это идея На моторе есть надписи и достаточно будет глазом поймать их положение в момент вспышки.
Именно, но почему бы не поручить этот расчет компутеру, дабы мигнул диодом в нужное время? Для автомобильных дел стробоскоп очень помогает, так что хочется попробовать и тут.
Нужно на моторе показать место, куда клеить груз. Комп может расчитать угол от метки, стробоскоп "покажет" место на роторе. Что удобнее? Смотреть надо. Можно нарисовать, скажем, белую метку для тахометра, и чёрным маркером 12345... по окружности. Мешать они друг другу не будут, место опознается однозначно. Можно для повышения точности на пути луча от стробоскопа поставить стержень, тень от которого укажет место для груза.
именно что смотреть надо. А на этом пути есть одна засада - данные по нужному углу надо передать с программы расчета обратно на стенд, типа "мигать через 123мс от метки", а существующий софт такому не обучен, более того, та прога что занимается балансировкой даже оборотами управлять не умеет.