C / C ++가 아닌 Python을 사용하여 Arduino 프로그래밍


36

나는 C 언어에 능숙하지 않으며 Arduino를 프로그래밍하기 위해 파이썬을 사용할 수있는 방법이 있는지 궁금합니다. 스크립트를 스스로 디버깅하려면 다른 IDE가 필요할 것입니다.


2
Arduino를 프로그래밍하기위한 몇 가지 대안이 있습니다. 그중 하나는 BitLash 이고 기본 인터프리터가 있습니다. 인터넷을 검색 할 때 몇 가지 옵션이 있지만 C / C ++를 배우면 결국 돈을 지불하게됩니다.
jippie

고마워, 나는 실제로 C에서 조금 나아지고 있는데, 파이썬만큼 나쁘지 않다.
JVarhol

2
관련되고 더 일반적인 질문 : "C ++ 이외의 Arduino 프로그래밍 옵션"
David Cary

라즈베리 파이는 옵션입니까?
Paul

답변:


26

Arduino에서 직접 실행하는 모든 종류의 Python 스크립트를 얻는 것은 매우 어려울 것입니다. 그 이유는 언어가 통역 된 언어이기 때문에 일반 텍스트 스크립트 외에 온보드 통역사가 필요하기 때문입니다. 아마도 모든 것을 위해 충분한 메모리가 없을 것입니다.

가장 좋은 방법은 파이썬 스크립트를 네이티브 머신 코드 (C / C ++ 작동 방식)로 컴파일하는 방법을 찾는 것입니다. 다른 플랫폼에서 이와 비슷한 작업을 수행 할 수있는 프로젝트가 있지만 Arduino에게는 아직 성공하지 못한 프로젝트가 있다고 생각합니다.

: 당신은 스택 오버플로에서이 문제에 좀 더 유용한 정보를 찾을 수 있습니다 아두 이노 (우노) 위에 "컴파일"파이썬 코드에 대한 방법이 있나요 .


15

예, 파이썬을 사용하여 Arduino를 프로그래밍하는 것이 가능합니다. Github에서 그러한 프로젝트 중 하나는 Python Arduino 프로토 타이핑 API v2 입니다. 디지털 I / O 및 아날로그 I / O와 같은 매우 기본적인 기능을 제공합니다.

매우 간단한 프로젝트에 사용할 수 있습니다.


*이 프로젝트는 직렬 연결을 사용하여 보드를 "프로그래밍"할 때 약간의 해킹입니다. 직렬 연결을 통해 명령을 보드에서 실행되는 스케치로 전달한 다음 Python 명령을 "실행"합니다.


실제로 코드를 실행하려면 보드를 컴퓨터에 연결해야합니까?
JVarhol

@JVarhol 이상하게 요.
asheeshr

1
글쎄요. 라즈베리 파이를 사용하는 것이 더 쉬울 것입니다.
JVarhol

8

Arduino Mega를 포함하여 Python 가상 머신 을 마이크로 컨트롤러에 제공하는 프로젝트가 있습니다 .

다음은 Ardunio Mega README 의 인용문입니다.이 내용은 어떻습니까 ?

다음은 ipm을 사용한 예제 세션입니다. :

ipm> import avr, sys
ipm> avr.ddrA(0xff)
ipm> avr.portA(0)       # Pins 22-29 all at 0 V
ipm> avr.portA(0xa5)
ipm> sys.heap()
(2622, 7424)

3

나는 pyserial을 사용하여 arduino의 핀을 제어하는 ​​데 큰 성공을 거두었습니다. 워크 스테이션 (노트북 등)은 파이썬 스크립트를 실행하여 실시간으로 arduino와 통신합니다.

arduino에서 직접 스크립트를 실행하는 것과 동일하지는 않지만 arduino가 처리 할 수 ​​있다고 생각한 것 (일부 음악 분석, REST API 타격 등)보다 훨씬 더 많은 일을하고있었습니다.


3

고려해야 할 또 다른 옵션은 Arduino Yun 입니다. 대부분의 Arduino가 보유한 AVR 칩 외에도 Linux를 실행하는 MIPS 칩이 포함되어 있습니다. 리눅스이기 때문에 쉽게 파이썬 코드를 실행할 수 있으며 모든 순수 파이썬 패키지를 쉽게 설치할 수 있습니다.

그러나 흥미로운 모든 입출력 기능은 MIPS 칩이 아니라 AVR 칩에 있습니다. Autobahn 및 LininoIO 와 같은 프로젝트 는 MIPS 칩의 지시에 따라 I / O 작업을 수행하는 AVR 칩에서 특수 프로그램을 실행하여이 문제를 해결합니다.


0

우리는 이것이 Arduino 프로그래밍과 임베디드 세계에서 공개적인 문제라는 것을 알고 있습니다. 시장에 MicroPython과 같은 다양한 솔루션이 있지만 대부분 특정 보드 전용이며 시스템을 실시간으로 유지할 수 없습니다. 우리는 해결책을 찾고 있습니다! VIPER은 Arduino DUE 용 Python 가상 머신 및 실시간 운영 체제에서 실행되는 모든 ARM 32 비트 아키텍처입니다. 이는 Arduino DUE, UDOO, Spark (모든 보드) 및 새로운 ST nucleo 보드에서 실행할 수있는 Python 스크립트를 개발할 수 있음을 의미합니다. 또한 고성능이 필요하고 C에 능숙하다면 파이썬 스크립트에 의해 호출되고 관리 될 수있는 VIPER 용 실시간 모듈을 개발할 수 있습니다.

당신은 여기에 행동 VIPER를 볼 수 있습니다 http://bit.ly/kickviper


공개 된 문제가 아닙니다. 파이썬은 끔찍한 들여 쓰기 언어입니다.
user2497 2016 년

-1

예. Python은 Arduino를 Python과 인터페이스 할 수있는 pyfirmata를 가져 와서 Arduino를 프로그래밍하는 데 사용할 수 있습니다.


참된. 그러나 그것은 OP가 요구하는 것이 아닙니다.
sempaiscuba

-8

Arduino IDE는 C / C ++ 언어를 사용하지 않습니다. IDE 처리 에서 파생되었으며 C / Java와 유사한 구문을 단순화했습니다.


8
Arduino IDE는 C ++입니다. 최소한의 전처리 ( "#include <Arduino.h>"와 사용자가 정의한 함수에 대한 선언)를 수행 한 다음 일반 C ++ 컴파일러 (GNU g ++)를 호출합니다.
Edgar Bonet

Processing에서 파생 된 프로그래밍 언어가 아니라 IDE 자체입니다.
피터 블룸필드

사실상 Arduino에서 IDE를 구현하는 것에 관심이 없습니다. 요점은 Arduino에서 효율적으로 실행되는 Python을 작성할 수 있다는 것입니다.
wallyk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.