RSS блога
Подписка
Отладочная плата PyBoard v1.1
- Цена: $15.40
- Перейти в магазин
Всем привет. Сегодня хочу рассказать про интересную на мой взгляд плату PyBoard v1.1. А интересна она тем, что для ее программирования используется язык Python 3. За подробностями прошу под кат.
Pyboard — это Open Source проект, поставляемый под MIT лицензией.
В репозитории на GitLab можно найти как аппаратную часть, так и программную.
В основе программной части этой платы используется MicroPython, который представляет из себя Python, оптимизированный для работы на 32-битных ARM микроконтроллерах.
Как и у многих интересных проектов путь PyBoard'а начался с кикстартера.
Основные предназначения данной платы: возможность людям, которые не хотят погружаться в ассемблер/С/С++ разрабатывать небольшие устройства, а так же плата прекрасно подходит для обучения детей. Ведь считается, что Python находится на втором месте по порогу вхождения после Scratch, при чем детям, которые умеют писать на Scratch перейти на Python будет очень легко.
Вот для обучения я и решил заказать парочку плат. После заказа посылка пришла на удивление очень быстро (15 дней, что для моего города довольно большая редкость).
Упакованы платы были плохо, чудо, что все пришло в целости и сохранности
Сама плата имеет относительно небольшие размеры, выглядит довольно аккуратно
В сравнении с Arduino Uno и Arduino Pro mini
На плате присутствуют разъемы для подключения Micro USB кабеля и MicroSD карты.
Что удивительно, у меня была MicroSD карта, которая вышла из строя и ни одно устройство ее не видело, но стоило подключить эту MicroSD карту через плату, как она прекрасно прочиталась.
Сердцем платы является микроконтроллер Stm32f405 (ARM 32-bit Cortex-M4)
Распиновка платы
При подключении PyBoard к компьютеру он распознается как flash память (если подключить внешнюю MicroSD карту, то вместо встроенной в борд памяти будет доступна внешняя память)
По умолчанию на карте памяти находятся 4 файла.
boot.py
Этот файл стартует первым. Здесь мы указываем главный исполняемый файл, можем попутно загрузить драйвер клавиатуры и мыши (VCP+HID) или флешки (VCP+MSC). Если явно не указываем main скрипт, он загружает main.py автоматом.
main.py
Основной файл, куда будем писать нашу программу.
pybcdc.inf
Драйвер для возможности работать с платой через консоль в OS Windows
README.txt
Краткая инструкция по работе. Где рассказывается, что писать код нужно в файл main.py. Ну а для работы через консоль, объясняется, как это делать. Для Linux и MaxOS X красота, достаточно выполнить команду:
для Linux: screen /dev/ttyACM0
для MacOS X: screen /dev/tty.usbmodem*
для Windows же нужно открыть «Диспетчер устройств», найти «неизвестное устройство» и указать путь к драйверу (pybcdc.inf'). После чего работать с платой через Putty.
В общем под MacOS все заработало без проблем
А вот в Windows как и обещали, немного посложнее.
На плата имеется 4 светодиода и одна пользовательская кнопка, которыми можно побаловаться.
Открываем документацию docs.micropython.org/en/latest/pyboard/quickref.html#internal-leds
и пробуем сначала через консоль:
а затем пробуем написать свою первую программу:
После замены файлов рекомендую перед ресетом безопасно извлекать из системы, в противном случае у меня часто бывало, файлы не сохранялись.
На этом все. Плата однозначно крутая, рекомендую попробовать. Она не годится для серьезных разработок, но для прототипирования мелких вещей очень даже хороша.
Если у вас платы нет, а попробовать хочется, на сайте проекта есть эмулятор с минимальным набором периферии.
Полезные ссылки:
Pyboard — это Open Source проект, поставляемый под MIT лицензией.
В репозитории на GitLab можно найти как аппаратную часть, так и программную.
В основе программной части этой платы используется MicroPython, который представляет из себя Python, оптимизированный для работы на 32-битных ARM микроконтроллерах.
Как и у многих интересных проектов путь PyBoard'а начался с кикстартера.
Основные предназначения данной платы: возможность людям, которые не хотят погружаться в ассемблер/С/С++ разрабатывать небольшие устройства, а так же плата прекрасно подходит для обучения детей. Ведь считается, что Python находится на втором месте по порогу вхождения после Scratch, при чем детям, которые умеют писать на Scratch перейти на Python будет очень легко.
Вот для обучения я и решил заказать парочку плат. После заказа посылка пришла на удивление очень быстро (15 дней, что для моего города довольно большая редкость).
Упакованы платы были плохо, чудо, что все пришло в целости и сохранности
Сама плата имеет относительно небольшие размеры, выглядит довольно аккуратно
В сравнении с Arduino Uno и Arduino Pro mini
На плате присутствуют разъемы для подключения Micro USB кабеля и MicroSD карты.
Что удивительно, у меня была MicroSD карта, которая вышла из строя и ни одно устройство ее не видело, но стоило подключить эту MicroSD карту через плату, как она прекрасно прочиталась.
Сердцем платы является микроконтроллер Stm32f405 (ARM 32-bit Cortex-M4)
Распиновка платы
При подключении PyBoard к компьютеру он распознается как flash память (если подключить внешнюю MicroSD карту, то вместо встроенной в борд памяти будет доступна внешняя память)
По умолчанию на карте памяти находятся 4 файла.
boot.py
Этот файл стартует первым. Здесь мы указываем главный исполняемый файл, можем попутно загрузить драйвер клавиатуры и мыши (VCP+HID) или флешки (VCP+MSC). Если явно не указываем main скрипт, он загружает main.py автоматом.
boot.py
# boot.py -- run on boot-up
# can run arbitrary Python, but best to keep it minimal
import machine
import pyb
#pyb.main('main.py') # main script to run after this one
#pyb.usb_mode('VCP+MSC') # act as a serial and a storage device
#pyb.usb_mode('VCP+HID') # act as a serial device and a mouse
main.py
Основной файл, куда будем писать нашу программу.
main.py
# main.py -- put your code here!
pybcdc.inf
Драйвер для возможности работать с платой через консоль в OS Windows
pybcdc.inf
key = USB_VID val = f055
key = USB_PID_CDC_MSC val = 9800
key = USB_PID_CDC_HID val = 9801
key = USB_PID_CDC val = 9802
key = USB_PID_MSC val = 9803
key = USB_PID_CDC2_MSC val = 9804
; Windows USB CDC ACM Setup File
; Based on INF files which were:
; Copyright © 2000 Microsoft Corporation
; Copyright © 2007 Microchip Technology Inc.
; Likely to be covered by the MLPL as found at:
; <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>.
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
LayoutFile=layout.inf
DriverVer=03/11/2010,5.1.2600.3
[Manufacturer]
%MFGNAME%=DeviceList, NTamd64
[DestinationDirs]
DefaultDestDir=12
;---------------------------------------------------------------------
; Windows 2000/XP/Server2003/Vista/Server2008/7 - 32bit Sections
[DriverInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg
[DriverCopyFiles.nt]
usbser.sys,,,0x20
[DriverInstall.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt
[DriverService.nt]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
;---------------------------------------------------------------------
; Windows XP/Server2003/Vista/Server2008/7 - 64bit Sections
[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg
[DriverCopyFiles.NTamd64]
usbser.sys,,,0x20
[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64
[DriverService.NTamd64]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
;---------------------------------------------------------------------
; Vendor and Product ID Definitions
[SourceDisksFiles]
[SourceDisksNames]
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_f055&PID_9800&MI_00, USB\VID_f055&PID_9800&MI_01, USB\VID_f055&PID_9801&MI_00, USB\VID_f055&PID_9801&MI_01, USB\VID_f055&PID_9802
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_f055&PID_9800&MI_00, USB\VID_f055&PID_9800&MI_01, USB\VID_f055&PID_9801&MI_00, USB\VID_f055&PID_9801&MI_01, USB\VID_f055&PID_9802
;---------------------------------------------------------------------
; String Definitions
[Strings]
MFGFILENAME="pybcdc"
MFGNAME="MicroPython"
DESCRIPTION="Pyboard USB Comm Port"
SERVICE="USB Serial Driver"
README.txt
Краткая инструкция по работе. Где рассказывается, что писать код нужно в файл main.py. Ну а для работы через консоль, объясняется, как это делать. Для Linux и MaxOS X красота, достаточно выполнить команду:
для Linux: screen /dev/ttyACM0
для MacOS X: screen /dev/tty.usbmodem*
для Windows же нужно открыть «Диспетчер устройств», найти «неизвестное устройство» и указать путь к драйверу (pybcdc.inf'). После чего работать с платой через Putty.
README.txt
This is a MicroPython board
You can get started right away by writing your Python code in 'main.py'.
For a serial prompt:
- Windows: you need to go to 'Device manager', right click on the unknown device,
then update the driver software, using the 'pybcdc.inf' file found on this drive.
Then use a terminal program like Hyperterminal or putty.
- Mac OS X: use the command: screen /dev/tty.usbmodem*
- Linux: use the command: screen /dev/ttyACM0
Please visit http://micropython.org/help/ for further help.
В общем под MacOS все заработало без проблем
А вот в Windows как и обещали, немного посложнее.
Делаем, как написано в readme
Открывает диспетчер устройств и находим наше недоустановленное устройство
Открываем его свойства и нажимаем «обновить драйвер»
Далее «поиск и установка драйверов вручную»
Указываем путь к появившейся флешке
Так как драйвер не подписан, соглашаемся его установить
И все, у нас появилось последовательное устройство
Теперь смотрим, какой этому устройству назначен порт (в моем случае это COM9)
Открываем Putty и указываем наш порт
Получилось!!!
Открываем его свойства и нажимаем «обновить драйвер»
Далее «поиск и установка драйверов вручную»
Указываем путь к появившейся флешке
Так как драйвер не подписан, соглашаемся его установить
И все, у нас появилось последовательное устройство
Теперь смотрим, какой этому устройству назначен порт (в моем случае это COM9)
Открываем Putty и указываем наш порт
Получилось!!!
На плата имеется 4 светодиода и одна пользовательская кнопка, которыми можно побаловаться.
Открываем документацию docs.micropython.org/en/latest/pyboard/quickref.html#internal-leds
и пробуем сначала через консоль:
а затем пробуем написать свою первую программу:
После замены файлов рекомендую перед ресетом безопасно извлекать из системы, в противном случае у меня часто бывало, файлы не сохранялись.
На этом все. Плата однозначно крутая, рекомендую попробовать. Она не годится для серьезных разработок, но для прототипирования мелких вещей очень даже хороша.
Если у вас платы нет, а попробовать хочется, на сайте проекта есть эмулятор с минимальным набором периферии.
Полезные ссылки:
Самые обсуждаемые обзоры
+69 |
3258
133
|
+50 |
3523
65
|
+28 |
2457
46
|
+37 |
2771
40
|
+55 |
2022
37
|
Будет гораздо дешевле.
А за 15 баксов можно купить плату на STM32H750, причем уже с MicroSD разъемом на борту — а H7 это все-таки зверь классом заметно повыше чем F4.
Ну или, как писал ниже, OrangePi Zero стоит 10 баксов. Кушает, правда, поболе — но лишнюю периферию можно погасить, а частоту загнать вниз. Зато это вообще уже полноценный комп.
Первый момент — цена.
Да. Давненько я не заходил в лавочку к дядюшке Ляо… 200 рублей — это… это соизмеримо с ценой 5 литров бензина, а не всего бака.
Второй — после прочтения строки
А уже более не смог читать китайско-русский перевод. Это надо отлить в граните!
У меня по этой ссылке вполне вменяемый текст:
А прикол в том, что тут воткнул и всё работает (кроме винды, хотя и в ней можно без установки дров обойтись, вроде как).
— Без прошивки невесть откуда берущимися утилитами.
— Без дополнительных конверторов.
— Без паяльника.
Порог вхождения, эта штука называется, и за него платят. Если вы что-то умеете, то это ещё не значит, что это умеют все.
Upd. Не плата, конечно, а питон.
Ну а в плане регресса производительности, это вечный компромисс между производительностью и удобством. К примеру берем AVR, пишем низкоуровневый код и все работает здорово, берем плату помощнее и задачи уже посложнее, ставим RTOS, перфоманс немного упал, но зато теперь мы не мучаемся с управлением процессами, имеем многопоточность. Далее задача усложнилась, берем полноценную ОС Linux, перфоманс еще сильнее упал, но зато на порядок выросло удобство. В общем, оперируя этими компромиссами и приходим к решению ставить те или иные контроллеры и использовать те или иные программные средства. Ну а что касается этой платы, она вообще не для разработки, а все же больше как игрушка, с которой можно потренироваться над написанием алгоритмов, а потом уже попробовать ардуино и далее.
Так что все нормально, продолжайте наблюдение)))
Но! надо изучать «сверхсложный» Си.
«Индусский код» (и прочие приколы типа Ардуины и сабжа с Питоном) процветают в современном мире из-за дешевизны железа. Процы нынче обладают избыточной производительностью, а толкового прогаммиста нужно не один год обучать и натаскивать — люди как стоили много денег, так и продолжают — мозг закону Мура не подчиняется.
(хотя в остальном, конечно правы. Не стоят битовые операции тех ресурсов, которое требует современное ПО, но это уже из разряда маркетинга — нужно создавать спрос на новое железо)
В начале 90х годов на прошлой работе отдел программистов занимался разработкой программируемого логического контроллера. 10 лет его делали. Он был крутой, ядро линукса запускалось даже на довольно тухлых процессорах, с помощью графики получили некий аналог окон, компилятор, пошаговый отладчик, редактор графических схем. Это был действительно крутой проект. А знаете, почему он не выстрелил? К тому времени, как его закончили, появились мощные железки, на которые можно было накатить десктопную линуху, цветные формы и т.п. Они потратили кучу времени на оптимизацию, которая в итоге никому оказалась не нужна. Вот сейчас мы и имеем высокоуровневые языки, фреймверки, которые жрут памяти как не в себя, но позволяют на порядок а то и несолкько ускорить процесс разработки. Ведь мы все куда то торопимся. Но, если быть честными, мы так привыкли к красивому интерфейсу, за который нужно расплачиваться соответствующим железом
Но вот что-то я не нахожу даже дешевых wi-fi модулей для этой платы. Без периферии это как-то не очень интересно.
И даже вот на такой: https://aliexpress.com/item/item/32890327433.html
Ну а вообще-то эти процы и в планшеты ставят. И литий их вполне тащит.