Category Без рубрики

Заработала стабилизация

Подкрутил стабилизацию, теперь осталось добавить контроль Yaw вращения и в первой итерации контроллер полёта готов.  Умеет сам держать заданную высоту, умеет слушаться команд “пульта” ( в реале – джойстика) и собсно держать нужную заданную ориентацию. Всё считается по-честному.

0
0

Апдейт виртуального мультикоптера

Перепиливаю систему стабилизации мультикоптера. Переписал код работающий с ориентацией коптера с углов Эйлера на кватернионы, всё стало клёвее, ошибка считается в локальном пространстве коптера, представляет собой вектор “наклона” коптера относительно заданной ориентации. Dot-ом для каждого считаю развешивание ошибки между движками (на рисунке – жёлтые линии выходящие из движков), получается прям очень удобная система! Она не зависит от количества и расположения движков, всё автоматом развешивается и работает.  Осталось накинуть обратно PID контроллеры и квадрик снова будет летать )

0
0

Квадрокоптер

Пришёл наконец с Китая Hubsan X4 H107L  квадрокоптер. Самый простой в серии X4, но летает весьма круто. Правда, из коробки он по ходу вообще не был откалиброван, летел в сторону, стики странные значения по разным осям выдавали, но после стандартных калибровок стиков/акселерометра всё пришло в норму )

0
0

Развлечение

Решил забавы ради запилить простенький симулятор мультикоптеров на Unity.

Сделал расчёт тяги винтов, расчёт крутящего момента, минимальную стабилизацию в контроллере полёта )  Летает, корявенько пока, но я прекрасно понимаю что надо сделать, чтобы летал нормально, тем и занимаюсь в данное время )  Для отладки контроллеров стабилизации накидал себе сейчас скриптик “Осциллограф”.   Поддерживает любое количество “каналов”, у каналов настраивается скейл по обоим осям, настраивается частота семплинга у осциллографа. В общем довольно удобная для дебага штуковина получилась )

0
0

Наконец пришла плата с FPGA от Altera! ^__^

Наконец дождался борд из Китая с FPGA!  Давно хотел попробовать программирование под всякие там ПЛИС-ы и вот оно свершилось 😀

Скачал Quartus II и прочитал введение в Verilog.  После получаса безуспешных ковыряний в IDE я всё же смог сам написать, собрать и прошить первый код на Verilog ^____^   Пищит динамиком на плате:


module Test(clk, out);

input clk;
output out;
reg out;
reg[15:0] cnt;

parameter period = 7000;

always@(posedge clk)
begin
cnt<=cnt+1;
if(cnt == period)
begin
cnt<=0;
out<=~out;
end
end

endmodule
0
0

ELF & DWARF parser

Написал тут по-быстрому (хотя не очень, 4 дня потратил на этот говнокод) на C# библиотеку для чтения ELF файлов и парсинга DWARF4 дебаг информации в ELF файлах.

https://github.com/L-proger/ELFUtils

https://github.com/L-proger/ELFExplorer – GUI приложение, лагучий набросок.

В основном для самообучения, для раскуривания дебаггинга и т.п. но ещё одно интересное для меня применение – напишу вскоре тулзу для вывода подробной инфы о памяти ELF бинарника.  Я довольно часто программирую под микроконтроллеры и как многим известно там есть обычно достаточно большие проблемы с объёмом памяти – как FLASH так и оперативной, потому часто приходится считать байты и стараться сделать бинарник как можно меньше по размеру.

Вот и накидал эту библиотеку. На самом деле всё можно было бы сделать гораздо проще! Использоваться стандартную тулзу тулчейна readelf и, скажем, регулярками разбирать её вывод и получать финальную информацию о символах в бинарнике, но это слишком просто ) А так я разобрался в DWARF формате что меня весьма радует.

Пример вывода консольной версии ниже. Консоль сейчас для простого дебага, я вскоре сделаю красивый удобный гуй для этого всего )   А, да, ещё DLL умеет парсить пока минимально lds скрипты линкера и правильно использовать информацию о секциях памяти для последующего анализа её использования (можно посмотреть сколько % памяти каждого из банков занято и т.п.).


Вывод инфы по секциям памяти.

0
0

Windows Phone Developer Registration

Недавно сменил HTC 8S на Nokia Lumia 1020, попробовал зарегистрировать новый телефон, чтобы можно было на него билдить приложения и… не получилось о_О

Стандартная процедура регистрации простая: ставим WP8 SDK, запускаем Windows Phone Developer Registration тулзу, подключаем телефон с разлоченным экраном и включенным интернетом по USB к компьютеру, тулза регистрации детектит телефон, логинимся в девелоперский аккаунт и телефон разлочивается! Всё просто!  А вот у меня не сработало.

И на то было несколько причин:

1. Судя по всему учитывается установленный регион в телефоне. Для тестов Cortana я сменил язык телефона и регион на USA!  После долгих попыток зарегать телефон понял, что регион важен.

2. Москва на данный момент находится в GMT+3 засовом поясе, однако в телефоне у меня Москве присвоен GMT+4 пояс. Я вручную выставлял время и пояс на +03.  Так делать не нужно!  Необходимо выставить +4 часовой пояс в данном случае и пусть время будет на 1 час больше на время регистрации.

3. После перехода на новую мобилу Windows автоматически подтащил из облака все настройки телефона, включая и его имя! Важно, что если прошлый телефон не был разрегистрирован и имел такое же имя, то зарегистрировать новый не выйдет. Пофиксил удалением регистрации предыдущего телефона через сайт https://dev.windowsphone.com/en-us/Account/Devices

Как только выставил верный регион и корявое время но совпадающее с мнением телефона, разрегистрировал старый телефон – всё сразу зарегистрировалось.  

0
0

Автомобильные колёса

Уже имеющиеся в Unity колёса работают хорошо, но их интерфейс не достаточно информативен для моей реализации физической модели автомобиля.  Поэтому я запилил свои колёса под юнити )

Для расчёта сил трения шин использую “магическую формулу” Hans B. Pacejka – ох и долго ж я её вкуривал (не люблю что-то использовать не зная как оно работает), но в итоге заимплементил )  На скрине выводится функция поперечного трения шины выделенного колеса под нормальной нагрузкой в 5KN и углом развала 0 градусов в диапазоне от -20 до 20 градусов проскальзывания.
Неплохая статья для начинающих разбираться в физике автомобиля: http://www.gamedev.ru/code/articles/?id=4233  (перевод)

Объяснение параметров функции Pacejka 94 года (есть более старые и новые варианты функции, количество параметров в них различается) http://www.edy.es/dev/docs/pacejka-94-parameters-explained-a-comprehensive-guide/

0
0

Update

Пилю потихоньку дальше проект.  Как уже писал – упор на качество симуляции.   Симулировать же хочется как можно больше всего )  Сейчас у меня пилится электронная система автомобиля, система зажигания, двигатель и т.п.   Электронная система включает в себя шины питания (шина аксессуаров и шина зажигания), источники питания, устройства – потребители. Можно добавлять/удалять аккумулятор, менять его напряжение и ёмкость, от выдаваемого тока зависит мощность и скорость стартера, работа других электроприборов )  Загон конечно, но мне нравится.

Основная проблема заключается не в написании всего этого, а в сборе данных! Ни как не могу найти нормальный годный список, например, стартеров с _подробными_ даташитами!  Или хотя бы графики токоскоростных характеристик!  У производителей инфа есть, конечно же, но ни кто не выкладывает её.  Путём жесточайшего гугления нашёл графики всего для нескольких стартеров, вот пример для модели4216.3708-02

И вот где найти такие графики для отечественных и иностранных стартеров (и других агрегатов автомобиля) – не понятно. Очень много времени отнимает поиск инфы, фейковать же параметры нет ни какого желания.
0
0

Project X

Много раз пытался создавать небольшие игры, безуспешно. И дело тут не в том, что я чего-то не могу, дело в нежелании )  Я понял, что просто не могу делать что-то мелкое, меня оно не мотивирует, и да, пусть это идёт в разрез с логикой (маленький проект одному реально осилить и т.п., а большой – вряд ли), но.. не, лучше я буду делать то, что реально мне хочется.

Итак, движок мой уже 2.5 года на паузе и там похоже останется. Я бы мог его допиливать, опыта необходимого за последнее время сильно прибавилось, как и понимания что делать, но это процесс долгий и по сути своей бессмысленный уже – необходимые мне знания получены во время разработки того, что есть + ушёл я уже дальше и без движка. До коммерческого вида мне в одиночку его доводить несколько лет, чем я заниматься не хочу, да и толка от него не будет – есть куча готовых годных движков.

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

На Unity3D начал пилить некий игровой проект, упор на качество симуляции, больше информации будет со временем )

0
0