Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Вопрос по Embedded

1458  
uscheswoi_82 прохожий22.07.20 23:29
uscheswoi_82
22.07.20 23:29 
Последний раз изменено 22.07.20 23:30 (uscheswoi_82)

Всем привет! Занимаюсь программированием в области Embedded, даже не знаю у кого можно спросить. В общем я хотел-бы потренироваться в разработке ПО для автомобилей, и то потому-что постоянно слышу в Германии слово Automotive. Есть одна фирма которая выпускает SDK для автомобилей - QNX Car Platform. Прикол в том, что можно сделать кастомный UI на HTML5, CSS3 и JavaScript бортового компьютера. Почитав бегло я понял, что там есть ограничения в целях безопасности, допустим можно только через API обращаться к радио, к аудио плееру, к кондиционеру, и к навигатору, там нет таких команд чтобы допустим завести машину. Нашёл старую версию QNX и то это демо версия, она запускается на виртуалки, там очень ограниченые возможности, из-за того что это демка. Искал SDK на тесла, но в целях безопасности они не разрешают стороннии App, все их API закрыты, это тайна, хотя я нашёл неофициальные API, там всё это через HTTP и GET. Если погуглить есть в w3c "Vehicle Information API Specification", там больше возможностей, допустим можно двери открывать и закрывать. Как можно заполучить этот SDK бесплатно? Когда пытаюсь скачать SDK, они просят меня чтобы я сначало у них зарегестрировался, а прежде чем зарегаться они просят телефон, и адрес. Вот 20 лет занимаюсь программированием, столько скачивал SDK, но ни разу ещё за это время меня не просили регистрироваться. Может кто-нибудь из вас разрабатывал что-нибудь под автомобили? Или может кто посоветует какой-нибудь Embedded Vehicle SDK чтобы без всякой регистрации. Всем заранее спасибо!

кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#1 
Raperonzolo свой человек24.07.20 22:18
Raperonzolo
NEW 24.07.20 22:18 
в ответ uscheswoi_82 22.07.20 23:29
В общем я хотел-бы потренироваться в разработке ПО для автомобилей, и то потому-что постоянно слышу в Германии слово Automotive.

Разработка ПО для автомобилей - это оооооочень обширная область. Да и не самая простая.

Почитав бегло я понял, что там есть ограничения в целях безопасности, допустим можно только через API обращаться к радио, к аудио плееру, к кондиционеру, и к навигатору, там нет таких команд чтобы допустим завести машину.

Ну так эта платформа Infortaiment, с Klemme 15 (зажигание) ничего общего. С Infortaiment у меня опыта нет, но, как мне видится, это более высокоуровневое программирование. В автомобиле же полно всяких низкоуровневых примочек, тесно связанных с электроникой и железом. Есть такое понятие как функциональная безопасность, каждому функционалу присваивается своя ступень, которая накладывает определенные методики для программирования и тестирования.


Мы на проекте ничего из пользовательского интерфейса не делаем, это где-то на стороне делается и какими средствами, я не знаю. А мы делаем частично генерированный на основе Матлаб моделей С-код, частично мануальный С-код и преимущественно мануальный СРР-код.

Остановите землю, я сойду
#2 
uscheswoi_82 прохожий27.07.20 07:51
uscheswoi_82
NEW 27.07.20 07:51 
в ответ Raperonzolo 24.07.20 22:18

Понятно, спасибо за ответ. Кстати интерес к Embedded появился не только из-за того что постоянно слышу про Automotive, а ещё после покупки одноплатника от nvidia, т.к. nvidia пытается заинтерисовать крупных производителей автомобилей использовать их платы в автомобилях, то возможно в скором будущем многие производители автомобилей перейдут на их архитектуру. Там можно писать программы (для одноплатника) на Python, Java, Си/Си++ и Ada (в интернете глянул есть бесплатная версия - GNAT Community Edition, сам пользуюсь GNAT 2020CE), там доступные фреймворки (для одноплатника) - PyCuda, PyTorch, TensorFlow, OpenCV/PyOpenCV, и всё это называется Jetpack SDK, в дорогих вариантах как я понял есть что-то на много покруче, и чтобы у дешёвого одноплатника нормальное "зрение" было, нужно ещё RealSense брать.

На счёт Automotive, короче всё-таки мне для бортового компьютер прийдётся на Python и ElectronJS пилить, для Infortaiment - на ElectronJS, а взаимодействия с релешками на Python, а вместо серьёзной ОС и серьёзной платы прийдётся брать игрушечные Raspberry Pi и Arduino. Я слышал про Android Auto/Car, но что-то не хочется с ним мается, у меня Android Studio медленно грузится, постоянно Gradle стартует, и если Android Auto/Car использовать, то лучше прикладные App пилить на Ionic.

Ещё последний вопрос по Embedded, можно ли заказать на физическое лицо плату от toradex чтобы учиться программировать? Просто там серьёзные платы, т.е. там хорошие предложения есть, допустим на выбор даётся различная ОС: QNX, Integrity, Windows Embedded, и Android, а SDK - MS eMbedded Visual C++ 4.0, Qt, бд - Ittia DB SQL (Embedded Database), просто мне нужно чтобы плата помехоустойчевая была (мне нужно электромагнитные частоты генерировать). Это надо, т.к. у меня есть много интересных проектов-экспериментов, это так скажем моё хобби...

кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#3 
samowar знакомое лицо27.07.20 08:52
NEW 27.07.20 08:52 
в ответ uscheswoi_82 27.07.20 07:51

То что вас интересует можно и без одноплатников изучать. Фактически речь о программировании GPU. Берет видеокарту от нвидии помощнее/поновее (чтобы свежую CUDA поддерживала), накатываете skimage/pycoda/pytorch/numba и тд и изучаете особенности такого подхода. Принципы все те же самые, что и на одноплатнике от нвидии (сомневаюсь что основное cpu там на арме, тот же x86-64 скорей всего).


Низкоуровневой доступ к железу - тут да, более специфично, но программирование GPIO (как минимум в линуксе) чаще всего сводится к дерганию определенных файлов внутри /sys - то есть в принципе это можно хоть из баша делать. При наличии ядерных драйверов одноплатники в этом плане мало чем друг от друга отличаются, и на той же распберри пи посмотреть все это как действует гораздо проще. Написание же ядерного драйвера это отдельная история, которая вас вряд ли интересует. На распберри свет клином не сошелся, есть множество других плат приличных одноплатников, но вероятны проблемы с поддержкой (например, какая-то периферия поддерживается строго какими-то ядрами/дистрибутивами/осями). Вот возьмете вы что-то, что поддерживается только в андроиде, и куда там pycuda?


В общем, не забегайте вперед со специфичными одноплатниками/фреймворками. Касательно каких-то специфичных плат - посмотрите mouser, farnell, rs-components и тд. Не все и не всегда они продают частникам, но уверен что при желании можно найти. И на вашем месте я бы не стал напирать на qnx, а скорее на "несерьезный" (на ваш взгляд) линукс. Я думаю что тот же software defined radio (раз уж вас это интересует, радар небось гигагерцовый) вы гораздо быстрее поднимете на распберри/линукс/питон, чем на специфичной development board / qnx или андроид.

#4 
uscheswoi_82 прохожий27.07.20 19:29
uscheswoi_82
NEW 27.07.20 19:29 
в ответ samowar 27.07.20 08:52

Так я же одноплатник от nvidia уже купил, ещё в начале этого года, недавно я его в супермаркетах видел. Одноплатник нужен для дрона. Raspberry Pi для бортового компьютера т.е. Infotainment (я думал что я найду бесплатный SDK), а QNX Car Platform нужна была только чтобы оттачивать знания по HTML5, думал что этот фреймворк повысет мою мотивацию. А платы от Toradex нужны для жёстких экспериментов.

кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#5 
Arcuen постоялец08.10.20 01:22
Arcuen
NEW 08.10.20 01:22 
в ответ Raperonzolo 24.07.20 22:18
Разработка ПО для автомобилей - это оооооочень обширная область. Да и не самая простая.

Истинно так.

Ну так эта платформа Infortaiment, с Klemme 15 (зажигание) ничего общего. С Infortaiment у меня опыта нет, но, как мне видится, это более высокоуровневое программирование. В автомобиле же полно всяких низкоуровневых примочек, тесно связанных с электроникой и железом. Есть такое понятие как функциональная безопасность, каждому функционалу присваивается своя ступень, которая накладывает определенные методики для программирования и тестирования.

Зачастую высокопроизводительные ECU работают на том же Линуксе. Но стоит только подойти поближе к железу и/или ISO26262, то в дело очень часто вступает AUTOSAR. Никаких С++, если речь о classic AUTOSAR. К слову, бóльшая часть ECU в машинах - не на Линуксе, а на разных RTOS.


#6 
uscheswoi_82 постоялец08.10.20 04:29
uscheswoi_82
NEW 08.10.20 04:29 
в ответ Arcuen 08.10.20 01:22, Последний раз изменено 08.10.20 04:45 (uscheswoi_82)
а на разных RTOS

Да это я знаю - Integrity OS, QNX или VxWorks

AUTOSAR

А где это заполучить/скачать можно?

Мне нужен SDK + симулятор/эмулятор.

кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#7 
Arcuen постоялец08.10.20 08:59
Arcuen
NEW 08.10.20 08:59 
в ответ uscheswoi_82 08.10.20 04:29
Integrity OS, QNX или VxWorks

Не совсем. Vector MICROSAR, Elektrobit tresos, Free RTOS, это лидеры из автоиндустрии.


Насчёт sdk - тут все сложно и дорого, но можно попытаться найти какие-нибудь бесплатные или пробные программы. Также можно найти документацию на autosar.org

#8 
uscheswoi_82 постоялец08.10.20 09:02
uscheswoi_82
NEW 08.10.20 09:02 
в ответ Arcuen 08.10.20 08:59, Последний раз изменено 08.10.20 09:04 (uscheswoi_82)
Free RTOS

Серьёзно? Это игрушечная операционная система, я её уже несколько раз скачивал.


Также можно найти документацию на autosar.org

Спасибо большое, гляну

кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#9 
Arcuen постоялец08.10.20 16:01
Arcuen
NEW 08.10.20 16:01 
в ответ uscheswoi_82 08.10.20 09:02
Серьёзно? Это игрушечная операционная система, я её уже несколько раз скачивал

Когда речь идёт о покупке решения AUTOSAR RTOS за много сотен тысяч денег, то многие склоняются к FreeRTOS. Хоть и не AUTOSAR, но зато RTOS.

#10 
uscheswoi_82 постоялец10.10.20 18:37
uscheswoi_82
NEW 10.10.20 18:37 
в ответ Arcuen 08.10.20 16:01, Последний раз изменено 10.10.20 18:45 (uscheswoi_82)

Если честно я уже запутался... Раньше в машину пихали Windows CE, как понимаю она никакое отношение не имеет к зажиганию, и управлению машины правильно?


Сейчас пихают QNX, как понимаю к зажиганию это никакое отношение не имеет? Во всяком случае в SDK пишишь на HTML5



NVidia собирается пихать кастомную Ubuntu, как понимаю бортовой компьютер от Nvidia управляет полностью машиной, я правильно понимаю?




кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#11 
uscheswoi_82 постоялец10.10.20 18:55
uscheswoi_82
NEW 10.10.20 18:55 
в ответ uscheswoi_82 10.10.20 18:37, Последний раз изменено 10.10.20 19:08 (uscheswoi_82)

Мне вот это нужно, есть одноплатник Jetson Nano, у него есть USB разьёмы, на одноплатнике установлен Jetpack 4.x, одноплатник соберает информацию из USB, и отображает на дисплее: скорость, передачу, время, дату, возможно температуру. Jetpack это якобы RTOS на базе Ubuntu. Одноплатник Jetson Nano стоял где-то в районе 99 евро, это бюджетная плата, до этого выпустили Xavier и TX.


Я видел машины у которых приметивный HMI, допустим выбераешь режим спотривный.

кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#12 
uscheswoi_82 знакомое лицо27.10.20 19:29
uscheswoi_82
NEW 27.10.20 19:29 
в ответ uscheswoi_82 10.10.20 18:55

НП.

Короче нашёл только что спомощью QGen можно импортировать из MatLab, но QGen насколько я понял генерирует код только в Ada:


Только что скачал вот это CARLA Simulator - https://carla.org/ что это?


кто как обзывается, тот так сам называется... маску ношу чтобы не заразить антиваксеров... Дневник тяжелобольного инвалида
#13