Стенд для моторов и винтов "все в одном"

15 мая 2017, 17:10 | Мы Автор: Night_Ghost

С самого начала было ясно, что китайским данным по моторам и винтам верить нельзя, поэтому все винты проверялись на заявленные характеристики. Однако делать это на кухонных весах оказалось настолько неудобно, что почти сразу стало понятно - нужен стенд. Благо в интернете есть несколько вполне рабочих конструкций, а на Алиэкспресс - все необходимое за недорого.

За основу была выбрана идея из этого стенда ВМГ, плюс датчик вибрации из стенда балансировки, со своей механикой (ибо главное для таких инструментов - компактность!) и объединением всей электроники в одной платке LeafLabs вместо двух ардуин. Получилось намного лучше - хоть целая секунда записи вибрации, USB вместо тормозного Serial, консоль управления, встроенная калибровка, возможность отказаться от глючного I2C АЦП, современные протоколы управления драйвером мотора и прочая прочая. Вот только надо бы перед измерением сначала задать режим, в котором будет работать стенд в данный момент - но вроде бы исходники есть, так что поправить не составит труда. Эх, наивный я...

Потом оно долго ехало, потом я боролся с приступами прокрастинации, но долго ли коротко ли но вот стенд наконец готов. Вернее, его аппаратная часть - ибо еще есть софт для обработки, который надо малость поправить для совместимости с получившимся стендом. И вот тут я понял что попал...

Лирическое отступление. В среде программистов принято ругать Ардуино за полное отупление тех кто ей пользуется - никаких кошерных прерываний, регистров, таймеров  и прочего внутренним железа камня, знай только тупо дергай ногами через digitalWrite() через какой-то delay(). Это даже хуже чем 1С! И казалось, что ничто уже не может быть хуже этого - однако ж оптимисты снова победили, и таки может, может быть намного хуже!

Ибо весь этот "софт" сделан в среде "графического программирования" LabView, где типО программа составляется из пиктограмм, соединяемых линиями - без сомнения, для тех дебилов что даже  Ардуино не осилили. А для программера это выглядит как какой-то понос мозга...

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

 

Это всего лишь графическое представление для "Serial.println(pwm);"!!! В результате вместо программы на десяток строк мы имеем монстра на 4 экрана таких вот каракулей.

К тому же все это усугубляется интерфейсом в стиле 90-х годов, почти полным отсутствием контекстной зависимости инструментов и совершенно разными способами для доступа к настройке узлов.

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

Что ж, и на самом деле никто никому ничего не должен - только вот зачем-то глупый я пытаюсь отвечать на вопросы по своим программам, зря наверное...

Так что чтобы и душевное здоровье сохранить (то есть не разбираться с этим поделием мозгососных слизней-инопланетян), и все целиком не переписывать на нормальном языке, была сделана небольшая программулька, которая управляет стендом и принимает с него данные, складывая их в том же формате, с которым и работает оригинальный софт. Осталось дело  за малым - собственно выяснить, что за пропеллеры у меня в руках. Ниже - график эффективности от тяги для 7-и имеющихся у меня пропеллеров.

 

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

На этом построение стенда можно считать наполовину законченным (балансировка будет чуть позже, там таки похоже придется переписывать все на Матлабе), исходники как всегда на гитхабе.

PS. Я таки заставил это гуево-графическое уродство выдавать команду включения режима стенду, но все равно в нем и работает все через раз, и просто неудобно, так что снимать данные со стенда лучше через утилиту ForceTool.