Комментарии 39
Круто конечно, но АРМ7… кажется перебор. вот бы питончика на контроллеры попроще.
Получается вроде бы как и не малинка, но уже почти…
Интересно как с эффективностью выйдет? Получится ли утилизировать 168Мгц по максимуму, или он будет работать на уровне 16Мгц контроллеров из-за реализации языка?
Да и скрипт будет мигать светодиодом раз в ДВЕ секунды.
Получается вроде бы как и не малинка, но уже почти…
Интересно как с эффективностью выйдет? Получится ли утилизировать 168Мгц по максимуму, или он будет работать на уровне 16Мгц контроллеров из-за реализации языка?
Да и скрипт будет мигать светодиодом раз в ДВЕ секунды.
0
В апреле узнаем. Хотя кто-то может и сам сделать плату, исходники вроде бы в январе станут доступны.
Но я все-таки подожду готового продукта)
Да, конечно, раз в две секунды, исправил, спасибо
Но я все-таки подожду готового продукта)
Да, конечно, раз в две секунды, исправил, спасибо
0
Не получится утилизировать 168Мгц оптимально. Настольные версии питона медленнее кода на сях в 2 -200 раз. Тут скорее всего будет то же самое. Идея питона не в быстродействии, а в простоте написания кода. Это же своего рода basic сегодняшнего дня.
+1
Не понятен выбор имено Python'а. Тот же Lua куда проще.
Мало того, для eLua уже вон сколько контроллеров есть, в том числе и на ARM7.
Micro Python предлагают за £20, и это «early bird», то есть только для тех, кто по предоплате, а NetDuino можно взять за $29.95 в розницу и за ~$24 оптом. Уверен, китайцы скоро будут клепать за $12 с бесплатной доставкой.
Мало того, для eLua уже вон сколько контроллеров есть, в том числе и на ARM7.
Micro Python предлагают за £20, и это «early bird», то есть только для тех, кто по предоплате, а NetDuino можно взять за $29.95 в розницу и за ~$24 оптом. Уверен, китайцы скоро будут клепать за $12 с бесплатной доставкой.
-2
ИМХО, на вкус и цвет… Кому-то python больше нравится.
И, пожалуйста, не путайте ARM7, который является семейством ядер (в рамках спецификаций от ARMv3 до ARMv5) и спецификацию ARMv7, по которой сделаны семейства ядер Cortex-M, Cortex-R и Cortex-A.
eLua работает как на некоторых платах с ARM7, так и на некоторых с Cortex.
И, пожалуйста, не путайте ARM7, который является семейством ядер (в рамках спецификаций от ARMv3 до ARMv5) и спецификацию ARMv7, по которой сделаны семейства ядер Cortex-M, Cortex-R и Cortex-A.
eLua работает как на некоторых платах с ARM7, так и на некоторых с Cortex.
+4
Верно, что-то мне подумалось, что тут решили использовать ARM7. Очевидно, что ARM7 Python'а никак не потянуть.
На M4 есть замечательный и очень популярный STM32F4DISCOVERY, аж за $14.58 за штуку.
Так что тут возникает вопрос — зачем проектировать плату, если уже есть плата дешевле, которая при этом наверняка ещё и лучше.
Если кто-то конкретно за Python готов переплатить в 2 с лишним раза это, конечно, его личное дело. С моей точки зрения оба языка сравнимы по возможностям, но Lua более легковесен.
На M4 есть замечательный и очень популярный STM32F4DISCOVERY, аж за $14.58 за штуку.
Так что тут возникает вопрос — зачем проектировать плату, если уже есть плата дешевле, которая при этом наверняка ещё и лучше.
Если кто-то конкретно за Python готов переплатить в 2 с лишним раза это, конечно, его личное дело. С моей точки зрения оба языка сравнимы по возможностям, но Lua более легковесен.
0
У этих языков разные задачи и существенно разные возможности.
Lua — embedded-язык. Создавался с этой целью, из этого же вытекают его ограничения.
Python — general-purpose язык, с неплохой объектной моделью, серьезными возможностями метапрограмирования и т. п.
Данный проект, вероятно, имеет такую не столько из-за железки (которая копеечная), сколько из-за разработки интерпретатора под неё (с соответствующим возможностям железки memory footprint'ом).
Кроме того, эта плата — скорее embedded решение, которое можно применить в качестве компонента своего устройства. А stm32*discovery — это evaluation board, чтобы посмотреть возможности процессора.
Lua — embedded-язык. Создавался с этой целью, из этого же вытекают его ограничения.
Python — general-purpose язык, с неплохой объектной моделью, серьезными возможностями метапрограмирования и т. п.
Так что тут возникает вопрос — зачем проектировать плату, если уже есть плата дешевле, которая при этом наверняка ещё и лучше.
Данный проект, вероятно, имеет такую не столько из-за железки (которая копеечная), сколько из-за разработки интерпретатора под неё (с соответствующим возможностям железки memory footprint'ом).
Кроме того, эта плата — скорее embedded решение, которое можно применить в качестве компонента своего устройства. А stm32*discovery — это evaluation board, чтобы посмотреть возможности процессора.
0
Раз уж затронули тему метапрограммирования, то интересно, как вы видите применение этого в программировании контроллера?
Даже при поверхностном изучении Lua можно узнать, что там тоже есть возможность метапрограммирования, начиная от метатаблиц объектов.
Даже при поверхностном изучении Lua можно узнать, что там тоже есть возможность метапрограммирования, начиная от метатаблиц объектов.
0
Сухие данные:
Фото
Плата
Чип
Процессор
Частота, МГц
Flash, МБ
RAM, КБ
Цена
Micro Python
STM32F405
M4
168
1
192
??? £20+
DISCOVERY
STM32F407VGT6
M4F
168
1
192
50.8 x 17.78 mm
$15
MicroElectronica MINI-M4
STM32F415RG
M4F
168
1
192
50.8 x 17.78 mm
$29
Зачем делать с нуля плату, у которой уже есть аналоги под предлогом возможности запуска урезанного Python, и которая будет дороже аналогов, зачем собирать на это дело £15,000 (да, понимаю, что часть денег уходит на рассылку и производство плат)? Разработка схематики не должна занять много времени у опытного схемотехника, учитывая, что все исходные файлы для железа и софта DISCOVERY выложены (см. gerber files, BOM, schematics, firmware package) в открытом доступе.
Ещё хочу обратить ваше внимание вот на это:
В чём тогда сакральный смысл проектировать именно плату?
Фото
Плата
Чип
Процессор
Частота, МГц
Flash, МБ
RAM, КБ
Цена
Micro Python
STM32F405
M4
168
1
192
??? £20+
DISCOVERY
STM32F407VGT6
M4F
168
1
192
50.8 x 17.78 mm
$15
MicroElectronica MINI-M4
STM32F415RG
M4F
168
1
192
50.8 x 17.78 mm
$29
Зачем делать с нуля плату, у которой уже есть аналоги под предлогом возможности запуска урезанного Python, и которая будет дороже аналогов, зачем собирать на это дело £15,000 (да, понимаю, что часть денег уходит на рассылку и производство плат)? Разработка схематики не должна занять много времени у опытного схемотехника, учитывая, что все исходные файлы для железа и софта DISCOVERY выложены (см. gerber files, BOM, schematics, firmware package) в открытом доступе.
Ещё хочу обратить ваше внимание вот на это:
Micro Python will be ported to run on a microcontroller of your choice. The microcontroller must have the capabilities, and you are responsible for set-up costs for the development board and/or software. Get in touch for details. Also includes a Micro Python board.
В чём тогда сакральный смысл проектировать именно плату?
+5
Чтобы отдать all-in-one, наверное. Большинство предпочтет не портирование с пересылкой dev-board/eval-board разработчику и оплату ему софта для разработки, а готовую стандартную плату.
Здесь скорее опытный программист, а не схемотехник, судя по желанию переписать python для такого footprint'а.
Повторюсь:
Так что целей может быть и несколько. Challenge, получение заказа на большую партию, чтобы параллельно сделать значительную партию для себя, мотивация написать интерпретатор.
Это краудфандинг. Если люди готовы это профинансировать — то это их личное дело. Эффективность никого не волнует.
Разработка схематики не должна занять много времени у опытного схемотехника
Здесь скорее опытный программист, а не схемотехник, судя по желанию переписать python для такого footprint'а.
Повторюсь:
Данный проект, вероятно, имеет такую не столько из-за железки (которая копеечная), сколько из-за разработки интерпретатора под неё (с соответствующим возможностям железки memory footprint'ом).
Так что целей может быть и несколько. Challenge, получение заказа на большую партию, чтобы параллельно сделать значительную партию для себя, мотивация написать интерпретатор.
Это краудфандинг. Если люди готовы это профинансировать — то это их личное дело. Эффективность никого не волнует.
0
Есть еще такая замечательная штука, как 86Duino, она вообще на x86 и с кучей ОЗУ. Или, к примеру, Raspberry Pi. Цены сопоставимые.
+3
Да, но и простоту написания кода можно совместить с быстродействием. Тот же Васик для МК порой весьма быстро работает, как и программа написанная на ассемблере.
+1
Я так понимаю, что разница между Python и Micro Python как между JavaScript и asm.js
+1
Во первых, ARM7 здесь ни при чём. Только спецификации ARMv6 и ARMv7. ARM7 — это старое ядро, вытесненное Cortex-M.
Здесь ядро — ARM Cortex-M4 + DSP (ST STM32F405). Профили (Cortex-R, Cortex-A и Cortex-M) появились в спецификации ARMv7.
Raspberry Pi — на ARM11 (Broadcom BCM2835, ARM1176JZFS-based SoC). Это ядро относится к спецификации ARMv6.
Здесь ядро — ARM Cortex-M4 + DSP (ST STM32F405). Профили (Cortex-R, Cortex-A и Cortex-M) появились в спецификации ARMv7.
Raspberry Pi — на ARM11 (Broadcom BCM2835, ARM1176JZFS-based SoC). Это ядро относится к спецификации ARMv6.
+2
Using Python decorators, functions can be optionally compiled to native machine code, which takes more memory but runs around 2 times faster than byte code. Such functions still implement the complete Python language.
Memory usage is minimised by storing objects in efficient ways. Integers that fit in 31-bits do not allocate an object on the heap, and so require memory only on the stack.
There are 4 types of code emitters, selectable per function by function decorators: (compressed) byte code, native code, native code with native types, and inline assembler
Python exceptions are handled using a variant of setjmp/longjmp. This reduces the amount of flash and RAM needed to implement exceptions.
в целом микропитон, похоже. будет иметь ряд ограничений, котоырые позволят ему работать быстрее обычного питона
Size of int object: 4 bytes, stored on the stack or directly in a tuple/list/dictionary.
Например int в x64 версии питона занимает занчительно больше места:
>>> import sys >>> sys.getsizeof(5) 24
0
Причём тут питон? Это платка с арм процессором.
-1
Как при чем? На микроконтроллер сразу залита специальная версия Python, кидаете просто на флешку тесктовый файл с кодом — и вперед. Не надо никаких сред для программирования, как для Arduino.
+3
>>На микроконтроллер сразу залита специальная версия Python
Тю :)
Есть уже готовая штука с питоном на борту jt5.ru/shields/gsm-shield/
В модулях Телит питон прилагается и под пользовательские скрипты тут выделено 1.9 MB
Шилд юзается как вместе с Ардуино, так и по отдельности.
Помимо I/O эта штука еще умеет:
— Синхронизировать время из интернета
— Выходить в интернет, слать/получать СМС (GSM, GPRS)
— Сканировать GSM-диапазон, показывать доступные соты (разных операторов), уровень сигнала и системную инфу по ним.
— Jamming detection (детектор глушения сети)
Тю :)
Есть уже готовая штука с питоном на борту jt5.ru/shields/gsm-shield/
В модулях Телит питон прилагается и под пользовательские скрипты тут выделено 1.9 MB
Шилд юзается как вместе с Ардуино, так и по отдельности.
Помимо I/O эта штука еще умеет:
— Синхронизировать время из интернета
— Выходить в интернет, слать/получать СМС (GSM, GPRS)
— Сканировать GSM-диапазон, показывать доступные соты (разных операторов), уровень сигнала и системную инфу по ним.
— Jamming detection (детектор глушения сети)
+5
Это будет удобнее традиционной заливки прошивки, если можно будет подключать саму плату как USB mass storage, чтобы не заниматься сексом с платой, пихая и вынимая MicroSD после каждой правки.
0
И так можно подключать. Вообще вот режимы USB: USB serial, USB mass storage и USB HID
0
Так из коробки умеет LPC1343 цепляешь его в USB и он видится как флешка обьемом 64кб, кидаешь туда хекс файл и считай прошил. Ну и один камрад такой же загрузчик написал для STM32F103C8
0
Даже для AVR такое есть.
0
Про эту фичу я знал, но тогда уж удобнее через JTAG заливать из IDE, нежели собирать прошивку и кидать на «флешку». Я-то про MicroSD говорил: открываешь плату как флешку на компе, дописываешь пару строк, сохраняешь, жмёшь на плате Reset — и всё работает. Чтобы совсем без лишних движений.
0
Есть параллельный проект, Micro Python — интерпретатор для embedded сред (точнее сказать для ARM/A32 с набором Thumb-2, т. е. ARM Cortex-M3 и старше).
0
Я ничего не понял. 192кб. Питон. А где это все исполняется то? Куда сам питон загружается?
0
Написано, что бинарник, включающий парсер, компилятор, среду исполнения и сборщик мусора, весит 60 КБ.
Сколько виртуальная машина занимает в ОЗУ — пока не ясно.
Что значит «куда сам питон загружается»? Там же не просто версия под ARM грузится, а используется своя реализация с оптимизацией по памяти. То есть питон уже будет прошит на плате.
Сколько виртуальная машина занимает в ОЗУ — пока не ясно.
Что значит «куда сам питон загружается»? Там же не просто версия под ARM грузится, а используется своя реализация с оптимизацией по памяти. То есть питон уже будет прошит на плате.
0
Я-то думал, это реализация интерпретатора пайтоновского байткода в железе…
+5
Интересно, можно ли такое сделать на ПЛИС?
+1
И вы не одиноки в своём заблуждении… :)
0
+1, именно этого же и ожидал от поста.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Python для микроконтроллеров