25 / 0 / 1
Регистрация: 18.03.2018
Сообщений: 236
|
|
1 | |
PyBoard и микроконтроллеры02.01.2021, 18:12. Просмотров 939. Ответов 24
Метки нет Все метки)
(
Всем привет. Хочу начать программирование микроконтроллеров. Так получается, что мне в целом нравится программирование, но чего-то всегда не хватало, решил попробовать микроконтроллеры, но язык C мне не особо нравится. Я изучаю питон, и мне кажется что он удобнее. Увидел, что есть язык MicroPython и платы PyBoard для этого дела. Но проблема в том, что программирование микроконтроллеров и так не особо популярно, а про PyBoard я тем более не смог найти много информации. В плане того, полезен ли он, часто ли его применяют на практике и так далее.
И вообще в целом, интересуют вопросы касательно того, как обстоят дела с порогом вхождения в программирование микроконтроллеров, что чаще всего используют, что нужно для того, чтобы начать это делать. В общем, все то, что было бы важно и полезно узнать новичку или просто заинтересованному. Можете посоветовать?
0
|
|
02.01.2021, 18:12 | |
Микроконтроллеры С++ Электроника, микроконтроллеры Микроконтроллеры AVR Микроконтроллеры Миландр |
|
02.01.2021, 20:10 | 2 |
Питон не для железа. Для него нет компилятора.
Оно непопулярно на питоне, т. к. язык не предназначен для работы с железом. Программа должна компилироваться в машинный код МК что питон не поддерживает.
0
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
03.01.2021, 13:35 | 3 |
Лучше всего использовать для программирования МК язык Си. Все что "не Си" - на сегодня, если не экзотично, то весьма не надежно.
Имхо Питон нужен для систем с "МК" уже в понимании мощных МК. На сегодня многие десктопные программеры считают и Raspberry Pi - уровнем "МК". Так что да, в этом случае - для программирования на Питоне, я бы сказал, нужны системы начиная с уровня RPi и подобных ). Разработка таких систем (как по железу, так и по низкоуровневому программирования) "с нуля" - это практически стрельба в небо, но к счастью, разработчики готовых платформ обеспечивают всем необходимым, чтобы запустить на их системах Линукс, и на нем - Питон. То есть на этом уровне "МК" - Питон возможен. Но на уровне "МК" в этом разделе - Питон это скорее транжира памяти и ресурсов процессора, нежели что-то полезное ).
0
|
25 / 0 / 1
Регистрация: 18.03.2018
Сообщений: 236
|
|
03.01.2021, 23:10 [ТС] | 4 |
Voland_, locm, понял, спасибо. а Arduino вообще для новичка - хороший вариант? Я видел на него есть куча различных модулей в виде nfc, светочувствительных датчиков, экранов и тд.
0
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
03.01.2021, 23:31 | 5 |
как антагонист ардуино - я не считаю ее чем-то хорошим ). Но, это слишком субъективно. Этой платформой пользуются миллионы - и кто я, чтобы говорить им, что они не правы
![]()
0
|
Почетный модератор
11166 / 4124 / 411
Регистрация: 12.06.2008
Сообщений: 11,946
|
|
04.01.2021, 13:56 | 7 |
На многие вопросы ответы легко гуглятся. Но только на английском языке. Русскоязычное сообщество (если это можно так назвать) очень пассивное.
Мы недавно на работе применили. Очень удобно, когда нужно получить простую расширяемость и готов ради этого купуть чуть более мощный микроконтроллер. Любой пользователь нашего устройства может подключить его по USB и сразу получает mass storage (определяется как флешка), в котором может отредактировать питоновские скрипты запуска, а так же консоль, в которой может исполнять питовские команды для управления устройством. Мы вначале хотели свой велосипед изобрести, но потом отказались, т.к. это было бы значительно дольше и получилось бы что-то нестандартное. А так создали директорию для своей платы, создали конфиг, перечислили список используемых пинов и всё работает. Дальше просто неспеша можно писать питоновский скрипт, который работает с железом и не нужно думать про интерфейс. Вхождение в любую сферу зависит не от текущих навыков, а от способности читать и обучаться. Си надо знать, хотя бы в общий чертах, что бы можно было пробовать примеры. А дальше уже дело практики. Да, MicroPython - это хорошая штука, но рано или поздно вам придётся использовать Си. Хотя бы для того, что бы для этого же MicroPython'а писать свои модули или какой-то недостающий функционал. И вообще, я бы предложил начать именно с Си. MicroPython для железа. У него есть полный функционал для работы с микроконтроллерами. Но это скорее законченное решение, поэтому не подходит для изучения микроконтроллеров. Кстати, я тоже негативно к нему относился, когда шеф предложил его использовать. Но в целом он мне понравился. Кстати, там есть компиляция в *.mpy (как на компьютере в *.pyc), которая ускорит исполнение, но по размеру файла выигрыш будет небольшим.
0
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
04.01.2021, 15:10 | 8 |
а как насчет использования памяти? Много жрет?
Добавлено через 5 минут PS: все, я понял - эта игрушка запускается монопольно на системе... хотелось бы прикрутить ее просто как движок
0
|
Почетный модератор
11166 / 4124 / 411
Регистрация: 12.06.2008
Сообщений: 11,946
|
|
05.01.2021, 00:43 | 9 |
Когда-то смотрел, но внимания не обратил. Он обычно постепенно отъедает свободную память, а потом запускает garbage collector и освобождает её. Один раз была проблема, когда в одном файле *.py было два класса с довольно крупными драйверами. В результате во время импорта он не смог их скомпилировать на ходу из-за нехватки памяти. Когда эти классы раскидали по разным файлам, то проблема ушла. В последующем вообще сделали, что бы они компилировались заранее и хранились не на файловой системе, а в самом бинарнике прошивки. Так и работать будет быстрее, и меньше ресурсов требует.
Не совсем понял. Вроде, он и есть как движок. Свой код можно либо писать на питоне, либо на Си, а потом вызывать из питона.
1
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
05.01.2021, 11:22 | 10 |
В проекте на гитхабе я увидел пока только систему компиляции всего проекта, который получает бинарник, со стартапом, инииализацией и всеми коммуникациями. А для меня было бы удобным вариантом получить библиотеку, которую можно было бы прилинковать к существующему проекту на FreeRTOS, включая свои собственные драйверы оборудования и интерфейсы. В этом случае мне нужен разве что урезанный интерпретатор и интерфейс к дровам. Но я пока не вник - можно ли так сделать "из коробки", прежде чем пытаться сделать это самостоятельно
0
|
Почетный модератор
11166 / 4124 / 411
Регистрация: 12.06.2008
Сообщений: 11,946
|
|
05.01.2021, 15:26 | 11 |
Понял. Да, с FreeRTOS его вряд ли удастся поженить, т.к. MicroPython сам первый стартует, управляет памятью и всем остальным. Некоторые драйверы у него можно отключить и написать вместо них свои (а можно, наверное, даже не отключать, а просто не вызывать их).
В общем, да, MicroPython можно назвать операционной системой, а все приложения работают под его управлением.
1
|
05.01.2021, 17:11 | 12 |
Есть еще вариант со встраиваемым Lua - он кстати заметно легковеснее.
http://www.eluaproject.net/ https://promwad.ru/publikacii/... h-sistemah Из плат я бы посоветовал посмотреть линейку от STM на базе ARM. Лично я использую вот такую: https://www.chipdip.ru/product/stm32l152c-disco ...хорошая в смысле цена-характеристики машинка.
0
|
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,069
|
|
05.01.2021, 23:26 | 13 |
Ну, esp32 насколько я слышал, можно программировать на Lua.
В качестве быстрого старта - вполне. Но перейти с "программирования для домозяек" к нормальному может быть сложно психологически - "зачем мне учить ассемблер, если и так все более-менее работает?". Впрочем, тут еще зависит от задач, которые вы перед собой ставите. Может, вам ничего мощнее и не понадобится. Все эти модули можно применить и к другим контроллерам. При особом желании и них можно даже выпаять нужную микросхему и установить ее на свою плату. Нет, правда, иногда достать модуль проще, чем микросхему с него. Но, кстати, из-за модулей освоить Ардуину может быть хорошей идеей: производители часто пишут примеры кода именно под нее. На них удобно ориентироваться когда с модулями разбираешься. И удобно когда есть простой контроллер, на котором кривой ардуинский код можно постепенно привести к вменяемой библиотеке. А уже потом портировать хоть на ARM, хоть на что. А чего энергоэффективную L152, а не производительную F103? Под F103 все же больше готового кода. Впрочем, L152 действительно сделана более по-человечески. Не по теме: Кстати, вы случайно не пробовали на ней играться с тачсенсорами? В порядке извращения можно еще вот такое попробовать: https://www.seeedstudio.com/Si... -4205.html
0
|
05.01.2021, 23:35 | 14 |
Пробовал, но практического смысла не нашел - ну меняется там что-то, ну плавненько достаточно, но у меня в готовом варианте эта плата в корпус уходит...
![]() Добавлено через 3 минуты да, местный LCD я убираю - меняю на что-то вроде 2x16 или вообще на графический 128x64... Добавляю MiniSD - просто чтобы паять несложно было, ну и клавиатурку классическую 4x4 -- получается весьма бюджетно и мощно.
0
|
locm
|
06.01.2021, 00:34
#15
|
0
|
06.01.2021, 01:33 | 16 |
Всей - не имеет.
Вот только как объяснить неофиту, что такое регистр, разрядность, порт, прерывания и их уровни, разницу между гарвардом и фон-нейманом и так далее? Что такое флаг переноса и вообще регистр флагов? Как программно организовать стек вызовов - и главное - зачем... Вы в этой ветке все отрицаете - но ничего не предлагаете... Нехорошо.
0
|
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,069
|
|
06.01.2021, 02:10 | 17 |
Ну, я хочу его потыкать как вариант влагозащищенного ввода чтобы не заморачиваться с резинками и тому подобным.
местный LCD потенциально можно использовать для экономичных схем... правда, не знаю для каких именно. Но потребление у него совершенно точно должно быть ниже, чем у 1602 и подобных. Изучать совершенно точно имеет. Можно на нем не писать программы, но уж понимать выхлоп дизасма надо. Еще ассемблер отлично подходит для понимания что такое вычислительная машина. Правда, как раз ARM'овский подходит не слишком - лучше AVR или вот недавно потыкал RISC-V, они проще. Ну да, AVR по современным меркам - больше учебная штука, а RISC-V - экзотика. Но ведь никто и не заставляет всю жизнь одно семейство контроллеров мучить, а полученные знания пригодятся даже в "компьютерном" программировании.
0
|
25 / 0 / 1
Регистрация: 18.03.2018
Сообщений: 236
|
|
07.01.2021, 21:09 [ТС] | 18 |
COKPOWEHEU, Humanoid, ну цели у меня такие, чтобы заинтересовать себя и превратить в будущую профессию. я сейчас на последнем курсе и хочу после учебы заниматься этим (сферой IT). но при этом у меня нету опыта на реальных проектах ни в чем таком. ни просто в программировании, ни в каких-либо других IT сферах. вот поэтому метаюсь туда-сюда, пытаюсь понять, что может быть интересно в будущем, на что вообще в принципе есть вакансии в городе и так далее. сложно всё это на первых порах. очень тяжело выбрать что-то конкретное и развиваться в этом, ведь никогда не знаешь, а пригодится ли это в будущей профессии.
Добавлено через 11 минут вернее сказать опыт-то есть на уровне студента. языки учил на столько, чтобы хватало на практике. сейчас вот питон решил основательно учить, включая ооп и всё остальное. но проектов именно на реальных рабочих местах (а я о нём), вот его нету. я почти полностью уверен, что он явно будет отличаться от университетских лабораторных работ, именно поэтому тяжело представить что именно может мне подойти и что учить. всё ведь на свете не выучишь, нужно выбирать что-то конкретное Добавлено через 31 минуту именно по этой причине я не знаю какие микроконтроллеры используют помимо стандартного ардуино и вот новенького pyboard. был опыт программирования stm32 контроллера (не помню именно какого). но опыт был на уровне зажечь кнопочки)))
0
|
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,069
|
|
08.01.2021, 11:37 | 19 |
Можете начать с того чтобы сделать что-то, что вам было бы интересно и полезно. Да хотя бы часы-будильник (классика) - разработать схему, написать прошивку, собрать корпус.
Можете почитать тематические статьи, журналы, посмотреть видео - найти что-то оригинальное и повторить. По началу вообще без разницы на каком контроллере (до сих пор встречаются устройства даже на x51, что уж говорить про более современные). А вот язык лучше все-таки взять Си или в крайнем случае С++. Асм, конечно, пригодится, но начинать с него не обязательно.
0
|
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 5
|
|
11.01.2021, 15:33 | 20 |
По моему питон не для МК. Слишком много ресурсов требует.
0
|
11.01.2021, 15:33 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Микроконтроллеры и Java? Микроконтроллеры XMOS RISC-микроконтроллеры
Микроконтроллеры Samsung
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |