LINUX.ORG.RU

Хочу микроконтроллеры крутить на коленке...


0

1

Добрый день!

Возникла нужда потренироваться в программировании ШИМ для управления асинхронными двигателями и всё такое, писать юзеринтерфейсы (в широком понимании, вплоть до управления по ethernet) ну и просто поковырять микроконтроллеры.

Есть вариант купить dev борду STM32, но я как ленивый юзер решил купить Olimexino STM32 + Netduino 2 Plus + JTAG-USB девайс от OLIMEX.

Т.е. план такой - крутить maple, крутить C из эклипса, пробовать на C# юзеринтерфейсы, если что-то мощное - грузить в Netduino native код.

Это оправданно, или купить девборду и обложиться паяльниками и микросхемами?

★★★★★

Покупай на ибее макеточки на STM8 (от 60 до 200 р за штучку, но + понадобится 1 раз купить за 200 рубликов программатор) или STM32 (эти подороже, зато 32 бита и куча всякий вкусностей + программатор не нужен, но для некоторых серий понадобится баксовый переходник USB<->TTL).

Не трать деньги на "бренды". И да: Jtag огорожен по самые помидоры. Оно тебе не нужно.

крутить maple

Это что такое?

эклипса
C#

Тьфу на тебя! Я уже столько накатал, как до этого дочитал... Ты бы сразу про это в начале и писал... Буэээээ...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Буэээээ...

Рапид Девелопмент - наше всё. Maple - это либа к STM32, которая на себя берёт рутину и программировать по-быстрому можно как в ардуине, ну и куча готовых решений.

А C# - рулит для gui и списков/массивов.

Shadow ★★★★★
() автор топика
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Shadow

нет, php - это всегда не хорошо. аксиома

Deleted
()
Ответ на: комментарий от Eddy_Em

Не-не. Мой замысел - только C/C#, никакого Qt и лиспа. Даже FreeRTOS не будет.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от wakuwaku

А что там того гуя? Килобайт-полтора + шрифт. Вот шрифт дофига занять может — аж до десятка килобайт!!!

А с твоими культями получится, что даже 32кБ флеш-памяти не хватит нифига. Или оно будет тупить из-за нехватки аж килобайта оперативы!!!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Shadow

А C# - рулит для gui и списков/массивов.

HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA. Смищно.

EXL ★★★★★
()
Ответ на: комментарий от Eddy_Em

Я не понимаю, зачем GUI на микроконтроллерах? Куда оно будет им светить? Не, ну понимаю ещё FriendlyARM какой-нибудь с дисплеем (в нутрях которого Linux). Написал за два дня программу на культях, протестил, отправил заказчику, всё быстро работает, все довольны. Но микроконтроллеры?!

EXL ★★★★★
()
Ответ на: комментарий от EXL

зачем GUI на микроконтроллерах?

Если ты присобачишь к МК сенсорный экранчик для облегчения управления, то возникнет проблема с GUI. Но для этого есть куча китайских "библиотек". А лучше вообще свое народить (или чужое допилить) и пользоваться.

FriendlyARM какой-нибудь с дисплеем (в нутрях которого Linux)

Это уже одноплатник — полноценный компьютер. А мы про МК говорим.

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

Гыгыгы. И память не жрет ☺

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от EXL

Отвали, я биржевых роботов на C# писал. C# рулил тотально во всём, кроме возможности принудительно освободить память (и для этого есть изврат, но нужно много сущностей плодить).

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

Отвали, я биржевых роботов на C# писал. C# рулил тотально во всём, кроме возможности принудительно освободить память (и для этого есть изврат, но нужно много сущностей плодить).

Синдром утёнка. Именно поэтому ты сахарный синтаксис и абстракции над абстракциями решил притащить на МК, которые тут в хер не уперлись.
Напоминает те самые МК в которых можно погонять джавку или пайтончик. Быдлокодеры радуются, прыгают. Но почему-то эти МК дальше запуска HelloWorld'ов и мигиная светодиодами не забираются. А разгадки две — во-первых тормозит, во-вторых нормальным Embedded-программистам нужен низкоуровневый доступ к железу и байтоёпство.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Гыгыгы. И память не жрет ☺

Эдди, ответь мне пожалуйста на один вопрос. Что же ты больше ненавидишь: C++/Qt с ручным управлением памятью и костылями или C#/Java с их GC, которому насрать что ты его вызываешь, и жрущей ресурсы как паравоз VM? 😸

EXL ★★★★★
()
Ответ на: комментарий от EXL

От второго у меня стойкий рвотный рефлекс. От первого — тоже, но попроще как-то. Так — блеванул разок-другой-третий, и свободен (т.е. не до полного опустошения желудка).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от EXL

Ну так для частотного преобразователя тока я буду грузить native код, а при формировании диалога по can шине на базе введённых юзером параметров (повёрнутых резисторов, нажатых кнопок) - C#! Для «на коленке» идеально. Естественно, в продакшене только нэйтив. И да, Java VM и .Net довольно по-разному работают.

Shadow ★★★★★
() автор топика
Последнее исправление: Shadow (всего исправлений: 2)
Ответ на: комментарий от Shadow

Я про него и говорю. Таблица смещений: 256·2=512 байт + сами символы (пусть 8х8, 90 штук): 8·90 = 720 байт, итого: 1232 байт. Либо без таблицы смещений: 8·256=2кБ.

Если побольше символы нужны, то еще больше придется ресурсов тратить.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Shadow

Блин, тебе для асинхронника нужны: одна нога на ШИМ + 3 ноги на фазы + 2 ноги на CAN. С этим любой баксовый (а то и дешевле) МК справится, у которого есть аппаратная поддержка CAN!!!

Тебе за глаза для протокола связи + управления одним движком хватит пары-тройки килобайт флеша! А на "высокоуровневых ЯП" ты вполне можешь и не влезть аж в 8кБ флеша. И придется тебе брать не копеечный МК, а дорогой. И все тупо от извращения!

Это как современные "телефоны". Те, кому звонить, покупают телефон за 300..1000 рублей. А любители "попонтоваться" — те берут какое-то дерьмище, на котором даже кнопочек нет, за бешеные баксы!!!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Shadow

а при формировании диалога по can шине на базе введённых юзером параметров (повёрнутых резисторов, нажатых кнопок) - C#! Для «на коленке» идеально

Тогда посыпаю голову пеплом. Был неправ. Я думал, что уже сделали МК с каким-нибудь диалектом C# и обрезанным .Net; хотя если бы я химичил «на коленке» — использовал бы для этого Qt или GTK+. Более-менее кросс-платформенно, на выходе можно получить статически слинкованный вседостаточный бинарник без зависимостей и т. д.

EXL ★★★★★
()
Ответ на: комментарий от Eddy_Em

Я МК только в магазине и у инженеров видел. Я хочу сам прочувствовать. А в дипломе у меня «Магистр Менеджмента».

Shadow ★★★★★
() автор топика
Ответ на: комментарий от EXL

Нет, в Netduino грузится скомпилированный из .Net код. При желании грузится обычный скомпилированный под STM32 код. Весь кайф как раз в синдроме утёнка и кучи либ. Соответственно, что-то можно в C сделать, что-то слинковать. Я не знаю, как всё пойдёт, и, возможно, мне не нужно всё это будет и я быстро перейду к спокойному C програмированию.

Shadow ★★★★★
() автор топика
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Shadow

Магистр Менеджмента

Мастер Управления Шваброй?

Я хочу сам прочувствовать

Ну и начни с чтения Титце&Шенка и Хоровица&Хилла. Затем С выучи и пробуй с простенькими недорогими "девбордами".

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Shadow

Буэээ. Ну тогда о впечатлениях поделиться не забудь.

EXL ★★★★★
()
Ответ на: комментарий от Shadow

Зачем же? Просто на кой черт malloc на МК? Разве что если ты freeRTOS используешь, но там уже другая песня.

Eddy_Em ☆☆☆☆☆
()

Возникла нужда потренироваться в программировании ШИМ для
управления асинхронными двигателями

Не стоит недооценивать аппаратную сложность схемотехники силовой части и возможно метода управления, если нужно нечто сложнее формирования трех синусоид постоянной частоты. А уи это отдельная задача, не надо мешать все в одно.

amaora ★★
()
Последнее исправление: amaora (всего исправлений: 1)

Есть вариант купить dev борду STM32, но я как ленивый юзер решил купить Olimexino STM32 + Netduino 2 Plus + JTAG-USB девайс от OLIMEX.

Можно проще: PIC16C62 + (драйвер IR2131 + транзисторы IRF740).

quickquest ★★★★★
()
Ответ на: комментарий от Eddy_Em

Пики ж устарели еще в прошлом веке!

Ага, но ты же сам иногда спрашиваешь: «шашечки или ехать»? :)

P.S. Кстати о языках. Какие рефлексы у тебя вызывает FLProg (FBD и LAD) для Ардуины? :)))

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Ага, но ты же сам иногда спрашиваешь: «шашечки или ехать»? :)

Тут получается ехать, но дорого.

Какие рефлексы

сам догадайся.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от amaora

Силовая часть в идеале - полный мост на 6 igbt. Сложность тут как раз в МК и программе. Но у меня задачи упрощённые, плавный пуск я делать не буду.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

Ну, он отчасти прав. Всякие MISRA не рекомендуют использовать динамическую память из-за фрагментации и негарантированного времени отработки аллокатора. Хотя, malloc-то ещё использовать можно, для начального создания объектов, а free — уже нет. (В FreeRTOS даже есть вариант реализации free, который просто ничего не делает.) Если позарез нужна куча — делать пулы и стеки. Страуструп об этом в P&P тоже пишет.

(Хотя я, если честно, на MSP430 кучу таки юзаю. Надо бы под пулы перепилить, конечно...)

alegz ★★★★
()
Ответ на: комментарий от Eddy_Em

Это к ардуйнющикам

Ненене, нам этот хипстер проприетарщик нафиг не нужен! У нас тут свой OpenSource с комьюнити и С++!

comp00 ★★★★
()
Ответ на: комментарий от Shadow

php - это хорошо, когда знают, для чего. Вот я также хочу.

Дык малинку покупай. Размеры железяки небольшие, подключается монитор, линукс, компиляторы, а разница в цене нивелируется удобствами и экономией личного времени. Что до ардуинки, то у неё с многопоточностью не всё зашибись - вдруг при твоих потребностях и способах писания случится необходимость жестоко оптимизировать уже написанный код.

Napilnik ★★★★★
()
Ответ на: комментарий от Shadow

нет там ничего сложного на самом-то деле! А количество ног можно уменьшить при необходимости введением миниатюрных транзисторов в качестве НЕ-ключей.

Если же ног много, можно просто использовать комплементарные таймерные выводы: у них стопудово постоянно будет противофаза!

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.