Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
25 / 0 / 1
Регистрация: 18.03.2018
Сообщений: 236
1

PyBoard и микроконтроллеры

02.01.2021, 18:12. Просмотров 939. Ответов 24
Метки нет (Все метки)

Всем привет. Хочу начать программирование микроконтроллеров. Так получается, что мне в целом нравится программирование, но чего-то всегда не хватало, решил попробовать микроконтроллеры, но язык C мне не особо нравится. Я изучаю питон, и мне кажется что он удобнее. Увидел, что есть язык MicroPython и платы PyBoard для этого дела. Но проблема в том, что программирование микроконтроллеров и так не особо популярно, а про PyBoard я тем более не смог найти много информации. В плане того, полезен ли он, часто ли его применяют на практике и так далее.
И вообще в целом, интересуют вопросы касательно того, как обстоят дела с порогом вхождения в программирование микроконтроллеров, что чаще всего используют, что нужно для того, чтобы начать это делать. В общем, все то, что было бы важно и полезно узнать новичку или просто заинтересованному. Можете посоветовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2021, 18:12
Ответы с готовыми решениями:

Микроконтроллеры С++
Вобщем нужно зажечь все красные светоиды, пока нажата кнопка. Код есть, работает, но по системе -...

Электроника, микроконтроллеры
Здравствуйте, хочу научиться создавать свои умные гаджеты. Помогите с выбором нужной литературы, у...

Микроконтроллеры AVR
Подскажите, чем программа написанная в Astudio от написанной а Codevision

Микроконтроллеры Миландр
Здравствуйте, стоит задача перейти на отечественные микроконтроллеры. Нужна библиотека proteus...

24
2721 / 1236 / 166
Регистрация: 28.10.2011
Сообщений: 4,577
Записей в блоге: 6
02.01.2021, 20:10 2
Цитата Сообщение от Komputershik Посмотреть сообщение
Я изучаю питон, и мне кажется что он удобнее.
Питон не для железа. Для него нет компилятора.
Цитата Сообщение от Komputershik Посмотреть сообщение
Но проблема в том, что программирование микроконтроллеров и так не особо популярно
Оно непопулярно на питоне, т. к. язык не предназначен для работы с железом. Программа должна компилироваться в машинный код МК что питон не поддерживает.
0
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
03.01.2021, 13:35 3
Цитата Сообщение от Komputershik Посмотреть сообщение
как обстоят дела с порогом вхождения в программирование микроконтроллеров
Лучше всего использовать для программирования МК язык Си. Все что "не Си" - на сегодня, если не экзотично, то весьма не надежно.
Имхо Питон нужен для систем с "МК" уже в понимании мощных МК. На сегодня многие десктопные программеры считают и 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
Цитата Сообщение от Komputershik Посмотреть сообщение
Arduino вообще для новичка - хороший вариант?
как антагонист ардуино - я не считаю ее чем-то хорошим ). Но, это слишком субъективно. Этой платформой пользуются миллионы - и кто я, чтобы говорить им, что они не правы . На мой взгляд, самое негативное в ардуине то, что человек не пользуется Си сразу, обучаясь на изначально "нечестной" оснасткой. Но... это ведь просто предрассудки, кто их принимает всерьез ).
0
2721 / 1236 / 166
Регистрация: 28.10.2011
Сообщений: 4,577
Записей в блоге: 6
03.01.2021, 23:43 6
Цитата Сообщение от Komputershik Посмотреть сообщение
Arduino вообще для новичка - хороший вариант
Если поиграться, то можно.
Для серьезных разработок я бы не рекомендовал.
0
Почетный модератор
11166 / 4124 / 411
Регистрация: 12.06.2008
Сообщений: 11,946
04.01.2021, 13:56 7
Цитата Сообщение от Komputershik Посмотреть сообщение
а про PyBoard я тем более не смог найти много информации
На многие вопросы ответы легко гуглятся. Но только на английском языке. Русскоязычное сообщество (если это можно так назвать) очень пассивное.

Цитата Сообщение от Komputershik Посмотреть сообщение
В плане того, полезен ли он, часто ли его применяют на практике и так далее.
Мы недавно на работе применили. Очень удобно, когда нужно получить простую расширяемость и готов ради этого купуть чуть более мощный микроконтроллер. Любой пользователь нашего устройства может подключить его по USB и сразу получает mass storage (определяется как флешка), в котором может отредактировать питоновские скрипты запуска, а так же консоль, в которой может исполнять питовские команды для управления устройством. Мы вначале хотели свой велосипед изобрести, но потом отказались, т.к. это было бы значительно дольше и получилось бы что-то нестандартное. А так создали директорию для своей платы, создали конфиг, перечислили список используемых пинов и всё работает. Дальше просто неспеша можно писать питоновский скрипт, который работает с железом и не нужно думать про интерфейс.

Цитата Сообщение от Komputershik Посмотреть сообщение
интересуют вопросы касательно того, как обстоят дела с порогом вхождения в программирование микроконтроллеров
Вхождение в любую сферу зависит не от текущих навыков, а от способности читать и обучаться. Си надо знать, хотя бы в общий чертах, что бы можно было пробовать примеры. А дальше уже дело практики. Да, MicroPython - это хорошая штука, но рано или поздно вам придётся использовать Си. Хотя бы для того, что бы для этого же MicroPython'а писать свои модули или какой-то недостающий функционал. И вообще, я бы предложил начать именно с Си.

Цитата Сообщение от locm Посмотреть сообщение
Питон не для железа. Для него нет компилятора.
MicroPython для железа. У него есть полный функционал для работы с микроконтроллерами. Но это скорее законченное решение, поэтому не подходит для изучения микроконтроллеров.
Кстати, я тоже негативно к нему относился, когда шеф предложил его использовать. Но в целом он мне понравился. Кстати, там есть компиляция в *.mpy (как на компьютере в *.pyc), которая ускорит исполнение, но по размеру файла выигрыш будет небольшим.
0
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
04.01.2021, 15:10 8
Цитата Сообщение от Humanoid Посмотреть сообщение
MicroPython для железа.
а как насчет использования памяти? Много жрет?

Добавлено через 5 минут
PS: все, я понял - эта игрушка запускается монопольно на системе... хотелось бы прикрутить ее просто как движок
0
Почетный модератор
11166 / 4124 / 411
Регистрация: 12.06.2008
Сообщений: 11,946
05.01.2021, 00:43 9
Цитата Сообщение от Voland_ Посмотреть сообщение
а как насчет использования памяти? Много жрет?
Когда-то смотрел, но внимания не обратил. Он обычно постепенно отъедает свободную память, а потом запускает garbage collector и освобождает её. Один раз была проблема, когда в одном файле *.py было два класса с довольно крупными драйверами. В результате во время импорта он не смог их скомпилировать на ходу из-за нехватки памяти. Когда эти классы раскидали по разным файлам, то проблема ушла. В последующем вообще сделали, что бы они компилировались заранее и хранились не на файловой системе, а в самом бинарнике прошивки. Так и работать будет быстрее, и меньше ресурсов требует.

Цитата Сообщение от Voland_ Посмотреть сообщение
хотелось бы прикрутить ее просто как движок
Не совсем понял. Вроде, он и есть как движок. Свой код можно либо писать на питоне, либо на Си, а потом вызывать из питона.
1
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
05.01.2021, 11:22 10
Цитата Сообщение от Humanoid Посмотреть сообщение
Вроде, он и есть как движок.
В проекте на гитхабе я увидел пока только систему компиляции всего проекта, который получает бинарник, со стартапом, инииализацией и всеми коммуникациями. А для меня было бы удобным вариантом получить библиотеку, которую можно было бы прилинковать к существующему проекту на FreeRTOS, включая свои собственные драйверы оборудования и интерфейсы. В этом случае мне нужен разве что урезанный интерпретатор и интерфейс к дровам. Но я пока не вник - можно ли так сделать "из коробки", прежде чем пытаться сделать это самостоятельно
0
Почетный модератор
11166 / 4124 / 411
Регистрация: 12.06.2008
Сообщений: 11,946
05.01.2021, 15:26 11
Понял. Да, с FreeRTOS его вряд ли удастся поженить, т.к. MicroPython сам первый стартует, управляет памятью и всем остальным. Некоторые драйверы у него можно отключить и написать вместо них свои (а можно, наверное, даже не отключать, а просто не вызывать их).
В общем, да, MicroPython можно назвать операционной системой, а все приложения работают под его управлением.
1
568 / 385 / 104
Регистрация: 07.05.2013
Сообщений: 1,364
Записей в блоге: 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
Цитата Сообщение от Voland_ Посмотреть сообщение
Так что да, в этом случае - для программирования на Питоне, я бы сказал, нужны системы начиная с уровня RPi и подобных )
Ну, esp32 насколько я слышал, можно программировать на Lua.
Цитата Сообщение от Komputershik Посмотреть сообщение
а Arduino вообще для новичка - хороший вариант?
В качестве быстрого старта - вполне. Но перейти с "программирования для домозяек" к нормальному может быть сложно психологически - "зачем мне учить ассемблер, если и так все более-менее работает?". Впрочем, тут еще зависит от задач, которые вы перед собой ставите. Может, вам ничего мощнее и не понадобится.
Цитата Сообщение от Komputershik Посмотреть сообщение
Я видел на него есть куча различных модулей в виде nfc, светочувствительных датчиков, экранов и тд.
Все эти модули можно применить и к другим контроллерам. При особом желании и них можно даже выпаять нужную микросхему и установить ее на свою плату. Нет, правда, иногда достать модуль проще, чем микросхему с него.
Но, кстати, из-за модулей освоить Ардуину может быть хорошей идеей: производители часто пишут примеры кода именно под нее. На них удобно ориентироваться когда с модулями разбираешься. И удобно когда есть простой контроллер, на котором кривой ардуинский код можно постепенно привести к вменяемой библиотеке. А уже потом портировать хоть на ARM, хоть на что.
Цитата Сообщение от vantfiles Посмотреть сообщение
Лично я использую вот такую:
https://www.chipdip.ru/product/stm32l152c-disco
А чего энергоэффективную L152, а не производительную F103? Под F103 все же больше готового кода.
Впрочем, L152 действительно сделана более по-человечески.

Не по теме:

Кстати, вы случайно не пробовали на ней играться с тачсенсорами?


В порядке извращения можно еще вот такое попробовать: https://www.seeedstudio.com/Si... -4205.html
0
568 / 385 / 104
Регистрация: 07.05.2013
Сообщений: 1,364
Записей в блоге: 1
05.01.2021, 23:35 14
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Кстати, вы случайно не пробовали на ней играться с тачсенсорами?
Пробовал, но практического смысла не нашел - ну меняется там что-то, ну плавненько достаточно, но у меня в готовом варианте эта плата в корпус уходит...

Добавлено через 3 минуты
да, местный LCD я убираю - меняю на что-то вроде 2x16 или вообще на графический 128x64... Добавляю MiniSD - просто чтобы паять несложно было, ну и клавиатурку классическую 4x4 -- получается весьма бюджетно и мощно.
0
locm
06.01.2021, 00:34
  #15

Не по теме:

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
зачем мне учить ассемблер
Сейчас его обычно не имеет смысла изучать. Современные МК имеют тактовую частоту, десятки, а то и сотни МГц и относительно много памяти и не имеет смысла терять время на написание всей программы на ассемблере.

0
568 / 385 / 104
Регистрация: 07.05.2013
Сообщений: 1,364
Записей в блоге: 1
06.01.2021, 01:33 16
Цитата Сообщение от locm Посмотреть сообщение
Современные МК имеют тактовую частоту, десятки, а то и сотни МГц и относительно много памяти и не имеет смысла терять время на написание всей программы на ассемблере.
Всей - не имеет.

Вот только как объяснить неофиту, что такое регистр, разрядность, порт, прерывания и их уровни, разницу между гарвардом и фон-нейманом и так далее? Что такое флаг переноса и вообще регистр флагов? Как программно организовать стек вызовов - и главное - зачем...

Вы в этой ветке все отрицаете - но ничего не предлагаете... Нехорошо.
0
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,069
06.01.2021, 02:10 17
Цитата Сообщение от vantfiles Посмотреть сообщение
Пробовал, но практического смысла не нашел
Ну, я хочу его потыкать как вариант влагозащищенного ввода чтобы не заморачиваться с резинками и тому подобным.
Цитата Сообщение от vantfiles Посмотреть сообщение
да, местный LCD я убираю
местный LCD потенциально можно использовать для экономичных схем... правда, не знаю для каких именно. Но потребление у него совершенно точно должно быть ниже, чем у 1602 и подобных.
Цитата Сообщение от locm Посмотреть сообщение
зачем мне учить ассемблер
Сейчас его обычно не имеет смысла изучать.
Изучать совершенно точно имеет. Можно на нем не писать программы, но уж понимать выхлоп дизасма надо.
Еще ассемблер отлично подходит для понимания что такое вычислительная машина. Правда, как раз 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2021, 15:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Микроконтроллеры и Java?
Интересно, существуют ли микроконтроллеры, которые могут работать на Java? Что-то слышал про...

Микроконтроллеры XMOS
Всем привет! Думаю, многие здесь слышали о контроллерах XMOS. Транспьютерная архитектура в...

RISC-микроконтроллеры
Восьмиразрядные однокристальные RISC-микроконтроллеры. Основные характеристики: рабочая частота,...

Микроконтроллеры с USB
Добрый день ищу схему подключения atmega32u4 к usb . Точнее схему с минимальной обвязкой. Uvcc ,...

Микроконтроллеры Samsung
Кто работал с мк от фирмы Samsumg. Я выковырял из монитора один - S3C863A. В какой среде пишутся на...

Микроконтроллеры с нуля
Подскажите пожалуйста я хочу научиться работать с микрокотроллерами . Что то какие нибудь схемы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.