Программирование Arduino с использованием Python, а не C /C ++

Я не очень разбираюсь в языке C, и мне было интересно, есть ли способ, с помощью которого python может быть использован для программирования Arduino. Для этого, скорее всего, потребуется другая среда IDE, чтобы иметь возможность самостоятельно отлаживать скрипты.

30 голосов | спросил JVarhol 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 19:31:17 +0400000000pmWed, 12 Feb 2014 19:31:17 +040014 2014, 19:31:17

8 ответов


25

Будет очень сложно получить любой скрипт Python, который будет работать прямо на Arduino. Причина в том, что это интерпретируемый язык, поэтому вам понадобится интерпретатор на борту в дополнение к сценарию обычного текста. Вероятно, для этого не хватит памяти.

Лучше всего, вероятно, найти способ скомпилировать скрипт Python для собственного машинного кода (как это работает C /C ++). Я считаю, что есть проекты вокруг, чтобы сделать что-то подобное для других платформ, но, насколько мне известно, ни один из них не подходит для Arduino.

Вы можете найти более полезную информацию по этому вопросу в Stack Overflow: Есть ли способ« скомпилировать »код Python на Arduino (Uno) .

ответил Peter Bloomfield 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 20:28:12 +0400000000pmWed, 12 Feb 2014 20:28:12 +040014 2014, 20:28:12
14

Да, возможно (несколько) запрограммировать Arduino с помощью Python. Одним из таких проектов в Github является API прототипов Python Arduino v2 . Он обеспечивает очень простые функции, такие как цифровой ввод-вывод и аналоговый ввод-вывод.

Это можно использовать для очень простых проектов.


* Этот проект немного взламывает «программирование» платы с использованием последовательного соединения. Он передает команды по последовательному соединению эскизу, запущенному на плате, который затем «выполняет» команду Python.

ответил asheeshr 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 20:18:01 +0400000000pmWed, 12 Feb 2014 20:18:01 +040014 2014, 20:18:01
8

Существует проект, который приносит виртуальную машину Python микроконтроллерам, включая Arduino Mega .

Вот цитата из статьи Ardunio Mega README , который дает представление о том, что это может быть (хотя, я не проверял это!):

  

Ниже приведен пример сеанса с использованием ipm ::

IPM > import avr, sys
IPM > avr.ddrA (0xff)
IPM > avr.portA (0) # Штифты 22-29 все при 0 В
IPM > avr.portA (0xA5)
IPM > sys.heap ()
(2622, 7424)
ответил Matthew G. 13 FebruaryEurope/MoscowbThu, 13 Feb 2014 18:48:24 +0400000000pmThu, 13 Feb 2014 18:48:24 +040014 2014, 18:48:24
3

Я использовал pyserial с большим успехом в управлении штифтами на ардуине. Ваша рабочая станция (ноутбук и т. Д.) Запускает скрипт python, который затем связывается в реальном времени с arduino.

Это не совсем то же самое, что запускать скрипт непосредственно на arduino, но я делал совсем немного больше, чем я думал, что ардуино может обрабатывать (некоторый анализ музыки, попадание REST api и т. д.).

ответил nod 9 TueEurope/Moscow2014-12-09T18:00:44+03:00Europe/Moscow12bEurope/MoscowTue, 09 Dec 2014 18:00:44 +0300 2014, 18:00:44
3

Другим вариантом является Arduino Yun . В дополнение к чипу AVR, который есть у большинства Arduinos, он также включает чип MIPS под управлением Linux. Поскольку это Linux, вы можете легко запустить код python, и любой пакет pure-python можно легко установить.

Однако все интересные возможности ввода /вывода находятся на чипе AVR, а не на чипе MIPS. Такие проекты, как Autobahn и LininoIO , решают эту проблему, запустив специальную программу на чипе AVR, которая выполняет операции ввода-вывода под инструкцией микросхемы MIPS.

ответил DaveP 5 MaramThu, 05 Mar 2015 05:05:48 +03002015-03-05T05:05:48+03:0005 2015, 05:05:48
0

Мы знаем, что это открытая проблема в программировании Arduino и во встроенном мире в целом. На рынке существуют различные решения, такие как MicroPython, но большинство из них предназначены для конкретных плат и не позволяют поддерживать систему в режиме реального времени. Мы работаем над решением! VIPER - это виртуальная машина Python для Arduino DUE и всех 32-битных архитектур ARM, работающих поверх оперативной системы реального времени. Это означает, что вы можете разрабатывать скрипты Python, которые могут быть exexuted Arduino DUE, UDOO, Spark (все платы), а также на новых ST-платах ST. Кроме того, если вам нужны высокие результаты, и вы опытный на C, вы можете создавать модули реального времени для VIPER, которые могут вызываться и управляться скриптами Python.

Вы можете увидеть VIPER в действии здесь http://bit.ly/kickviper

ответил Daniele Mazzei 4 MarpmWed, 04 Mar 2015 19:57:30 +03002015-03-04T19:57:30+03:0007 2015, 19:57:30
-1

Да. Python может использоваться для программирования Arduino, просто путем импорта pyfirmata, который может взаимодействовать с arduino с Python.

ответил imlucky 8 J0000006Europe/Moscow 2018, 05:11:39
-7

Я боюсь, что Arduino IDE не использует язык C /C ++. Он получен из Обработка IDE и имеет упрощенный упрощенный синтаксис C /Java.

ответил Andrzej Marczak 21 Mayam15 2015, 11:21:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132