Справочници, схемотехника, теория > Програмиране на микроконтролери, програматори, цифрови проекти

GPS-автопилот - алгоритъм

<< < (24/35) > >>

valex:
dmitarp
Да. Пропуснал съм идеята на juliang. То е същото.
Никакъв проблем няма с ориентировката. От втората точка на GPSa можеш да се ориентираш за посоката и без компас. Ако сложиш и жироскоп съвсем ще си ориентиран :)
Проблема с управлението по-скоро не е ориентирането, а начина на отработване на ъглите за корекция на посоката при движение според мен. Там има забавяне на реакциите при промяна на посоките, които зависят от скоростта на движение, скоростта на промяна да ъгъла на руля и още други въздействащи неща. Тези въздействия трябва да се вградят в алгоритъма на регулатора за управление.
Темата е доста интересна, но за съжаление нямам време да се впусна в проби :(

EDM electronics:
Изпробвах формулите на STM32F103C8T6 и се подобри бързодействието 4 пъти.
Все пак контролера работи на 72MHz и е 32 bit, а Arduino Nano 16 Mhz 8 bit.
Общото време за двете формули е под 300 uS. А този контролер има предостатъчно памет за няколко такива проекта.  И е много скъп, само 3 лв. :D
Контролера може да се разгони до 140 MHz и така времето ще се съкрати още двойно, но мисля, че не е нужно.

Освен това точността спрямо Гугал мапс сатна с разлика само 10 см на 424 м, а с Ардуиното беше 30 см. Но радиуса на земята във формулата мисля трябва да се коригира малко, да се вземе средно аритметичната стойност на радиуса към полюсите и радиуса към екватора. Тогава изчислението ще кове.

211.00 424.62
107.00 424.62
73.00 424.62
74.00  jul424.62
217.00  64.42
211.00 424.62
104.00 424.62
73.00 424.62
73.00  jul424.62
217.00  64.42
213.00 424.62
105.00 424.62
74.00 424.62
73.00  jul424.62
218.00  64.42

EDM electronics:
Озорих се малко с контролера STM32F103C8T6, докато разбера кое накъде е и как да ползва ардуинската среда, и попаднах на едно много интересно видео, в което се прави измерване на скоростта на изпълнение на програмата, а не изчислителните възможности на Ардуино с STM32F103C8T6 в различни среди на програмиране с "С". Разликата с ардуинската е 28 пъти по-висока скорост :D. Но има един коментар под видеото:
- Ассемблер всегда был быстрее. Но жизнь слишком коротка.  :D

https://www.youtube.com/v/pFUNNeIgSgY

valex:
Предимството на Arduino е наличието на библиотеки. Удобен е за първоначални опити, а после може да се пише на някакво С.
За работа в реално време е неудобен/невъзможен. Макар, че съм го ползвал едновременно с LAN, Bluetooth, WIFI, TFT display, EEPROM и още други неща.

valex:
За по-мощни неща с Arduino  може да се ползват платки NUCLEO
https://www.digikey.bg/products/en/development-boards-kits-programmers/evaluation-boards-embedded-mcu-dsp/786?k=NUCLEO
Имат пинове съвместими с Arduino и допълнителни. Подържат се от софтуера.
https://www.st.com/resource/en/data_brief/nucleo-f429zi.pdf
Ползвал съм NUCLEO F429ZI за проби.
А има и такива вършачки
https://www.udoo.org/udoo-x86/

Навигация

[0] Списък на темите

[#] Следваща страница

[*] Предходна страница

Премини на пълна версия