Разработчики MicroPython (https://micropython.org/), адаптированной для микроконтроллеров реализации языка Python 3 c урезанным набором библиотек, сообщили (https://forum.micropython.org/viewtopic.php?f=8&t=3402) о подготовке варианта проекта, который может работать в web-браузере. MicroPython примечателен возможностью применения на системах с ограниченными ресурсами, например, его можно запустить на плате с 256 Кб Flash и 16 Кб ОЗУ. В том числе на базе MicroPython может быть создано окружение, напрямую работающее поверх оборудования без прослоек в виде операционных систем, что позволяет создавать для плат встроенные обработчики и средства автоматизации на языке Python.В рамках проекта MicroPython on Unicorn (https://github.com/micropython/micropython-nicorn) разработчики пошли дальше и попытались адаптировать MicroPython для запуска Python-кода в браузере. Выполнение MicroPython организовано с использованием фреймворка unicorn.js (https://alexaltea.github.io/unicorn.js/), позволяющего создавать эмуляторы различных аппратных архитектур (ARM, ARM64, M68K, MIPS, SPARC и x86), реализованные на языке JavaScript (по сути это вариант QEMU скомпилированный в JavaScript при помощи Emscripten (https://www.opennet.me/opennews/art.shtml?num=35313)). Для запуска MicroPython в браузере задействован эмулятор микроконтроллера ARM Cortex-M3.
По задумке разработчиков проект позволит ускорить и упростить тестирование решений на базе MicroPython, для отладки и разработки которых теперь можно обойтись обычным браузером, без необходимости наличия реального оборудования. MicroPython в браузере также может применяться в процессе обучения. На сайте проекта уже запущен web-интерфейс (https://micropython.org/unicorn/), позволяющий симулировать работу различных сборок MicroPython на микроконтроллере, помимо ранее доступного демонстрационного стенда (http://micropython.org/live/) на базе реальной платы.
URL: https://forum.micropython.org/viewtopic.php?f=8&t=3402
Новость: http://www.opennet.me/opennews/art.shtml?num=46614
Ну есть же Руби как стандарт для встраиваемых систем ISO/IEC 30170:2012.... Ну что они питон тащат....
ЯП не под задачу, а на вкус!
Можно пруфы? А то что-то впервые вижу такое странное мнение
Руби и встраиваемые системы? Куда катится мир...
Да этих стандартов там - на все случаи жизни, нежизни и антижизни, половина - исключительно бумажных, которые в реальности не применяются вообще.
Java таковой изначально планировалась быть. Мир как-то пережил это, переживёт и Руби на кофеварке.
Не переживёт кофеварка :)
> Java таковой изначально планировалась быть. Мир как-то пережил это, переживёт и Руби
> на кофеварке.Java, кстати, вполне успешно какое-то время там была в виде J2ME.
На старых телефонах были приложения и даже 3d игрушки, которые занимали сотню килобайт кб.
Был даже браузер opera mini на java.
А сейчас вряд-ли кто-то на ruby будет делать браузер.
>какое-то времяЛихо вы целую эпоху завернули.
>вряд-ли кто-то на ruby будет делать браузер.
Challenge, как говорится, accepted. =) Поживём — увидим.
То есть связка "Python и встраиваемые системы" вас ничуть не смущает, да?
И где там сказано про встраиваемые системы?
Это если бы художники спорили, про то из чего лучше рукоять кисти из красного дерева или дуба, что лучше круглая рукоять в разрезе или эпилептическая...
> или эпилептическая...шизофреническая
> Ну есть же Руби как стандарт для встраиваемых систем ISO/IEC 30170:2012....Во-первых, по быстрому гуглится только доступ к стандарту за кучу денег. Поэтому незачет.
Во-вторых, если уж на то пошло, то есть тот же:
https://tools.ietf.org/rfc/rfc2549.txt
> "A Standard for the Transmission of IP
> Datagrams on Avian Carriers", with Quality of Service information.Причем, успешно применен на практике:
http://www.blug.linux.no/rfc1149
http://www.blug.linux.no/rfc1149/pinglogg/
vegard@gyversalen:~$ ping -i 900 10.0.3.1
PING 10.0.3.1 (10.0.3.1): 56 data bytes
64 bytes from 10.0.3.1: icmp_seq=0 ttl=255 time=6165731.1 ms
64 bytes from 10.0.3.1: icmp_seq=4 ttl=255 time=3211900.8 ms
64 bytes from 10.0.3.1: icmp_seq=2 ttl=255 time=5124922.8 ms
64 bytes from 10.0.3.1: icmp_seq=1 ttl=255 time=6388671.9 ms
Но это же не означает, что все на полном серьезе кинулись мастерить голубятни :)
Потесним жабу питоном..
Ну вот зачем для тестирования решений нужно в браузер пихать, Oemu в JavaScript при помощи Emscripten? Почему нельзя тестировать просто в Qemu без необходимости наличия реального оборудования?
Если уж людей не смущает вопрос "зачем в контроллер пихать питон"... Не, я зная, что он относительно распространён, но странное решение.
Лампочками помигать хватит, а больше от него и не требуется. Для желеянщиков-любителей в самый раз.
Зачем JavaScript прослойка в виде питона?
так это не прослойка.
Это интерпретатор питона, который работает в виртуальной машине, которая написана на джаваскрипте, который работает в окружении браузера.
Теперь нужно на этом питоне написать веббраузер.
Допуская, что в контроллер зачем-то вообще надо пихать питон - вариант-то нормальный для ряда ситуаций - получаешь среду, которую легко кому-то показать/передать, а производительности уж как-нибудь хватит, чтобы Cortex-M изобразить.Другой вопрос - на кой там питон нужен? Если уж хочется простоты - есть ардуино, который портирован на все мыслимые МК, имеет кучу библиотек, прост для освоения и имеет порядка на три большую распрстранённость.
[quote]Другой вопрос - на кой там питон нужен? [/quote]На выбор:
а) Банальный NIH
б) Нужно больше платформ!
в) JFF.
г) Не осилили С.
> на плате с 256 Кб Flash и 16 Кб ОЗУ256 килобайтов хватит на всех!
http://pypyjs.org/
http://www.skulpt.org/
же есть
это вааще нетоо, чёбо
оно заметно быстрее brython?
MicroPython c7b93f5-dirty on 2017-05-25; unicorn with Cortex-M3
>>> import timeTraceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: no module named 'time'ясно, спасибо, brython вполне устраивает
> теперь можно обойтись обычным браузером, без необходимости наличия реального оборудованияА раньше можно было обойтись обычным QEMU. И в чём профит?
в том, что ссылочку приятелю послать можно, например. И у него поднимется точно такое же окружение и он увидит то же, что и ты.
Не пойму, а чего байт код уже для браузера запилили? Можно было бы компилить Python в код для браузера. А то подташнивает от JavaScript.
> Не пойму, а чего байт код уже для браузера запилили? Можно было
> бы компилить Python в код для браузера. А то подташнивает от
> JavaScript.фишка видимо именно в "не надо ставить и настраивать qemu"-тестовой среде для запуска MicroPython и питонскриптов вместо реального микроконтроллера
Отличная новость. MicroPython очень интересный проект. Я правда с Python почти полностью пересел на Kotlin, но все равно иногда использую Python для различных задач.