É possível programar um Arduino em outros idiomas?

11

É possível programar um Arduino com outros idiomas que não sejam baseados em C / C ++? O que seria necessário para fazer isso? Sei que outros IDEs estão disponíveis, estou curioso sobre as linguagens de programação reais, como poder codificar o Arduino em Python, como exemplo.

nathangiesbrecht
fonte
Editei a pergunta para esclarecer que estou falando de idiomas, não do IDE.
Nathiesbrecht # 9/13
2
Se você gosta de C #, consulte o Netduino.
Kevin Mark
1
@ KevinMark Há um pequeno problema de que ele talvez não consiga usar um Netduino (precisa das portas adicionadas de um Mega, por exemplo).
polar
@Polar Eu acredito que o Netduino Go tem opções adicionais de conectividade.
Kevin Mark
1
@powtac String é específica do Arduino? Pergunto-me porque eu tenho tantos no meu código então ...
Polar

Respostas:

5

Definitivamente, é possível usar linguagens alternativas para o desenvolvimento com o Arduino, mas não necessariamente usando o IDE padrão. É assim que, no final do dia, o código C / C ++ é montado no código de bytes do chip AT na placa Arduino. Um idioma que você pode usar é o Céu , uma versão de nível superior do C / C ++. O principal problema que você terá é encontrar um compilador para o seu idioma de escolha - no final do dia, você pode escrever o seu próprio idioma - no entanto, isso exige um conhecimento íntimo do C / C ++. Portanto, provavelmente é melhor seguir o C / C ++, pelo menos por enquanto.

EDIT: Você reformulou sua pergunta um pouco, então sim, seria possível programar seu Arduino em Python (má escolha de linguagem, embora seja apenas minha opinião), mas você precisaria de um IDE / compilador personalizado diferente pelos motivos acima. Além disso, você deve ter cuidado ao vincular bibliotecas escritas em um idioma diferente para o Arduino (como todas elas são em C / C ++).

Polar
fonte
Realmente não é possível rodar python no arduino (exceto o Arduino Mega, de qualquer maneira). O projeto python-on-a-chip está trabalhando em um tempo de execução python compacto e precisa de pelo menos ~ 8 KB de SRAM.
Connor Lobo
1
O Python realmente não é adequado para ambientes pequenos com restrição de memória.
Connor Wolf
2
@ConnorWolf Dois pontos: 1) Meu uso do Python como exemplo foi como era na pergunta - eu não gosto do Python de qualquer maneira. 2) Teoricamente, você pode converter o Python em C e evitar a necessidade de um tempo de execução do Python no topo do gerenciador de inicialização.
polar
1

Parece que atualmente não há nenhuma maneira de codificar facilmente um Arduino em nada além de Assembly / C / C ++ (e Céu, como mencionado na resposta da Polar - embora isso seja apenas traduzido para C ++). Existem muitos idiomas nos quais você pode se comunicar com o arduino .

No entanto, em teoria , não é impossível. Você só precisa escrever um compilador para o chip, definir as funções internas e depois transmitir o código compilado pela porta serial. Ou você pode escrever um tradutor python para c ++ e fazê-lo funcionar.

Se você tem uma inclinação para o .NET, consulte o Netduino . Parece haver também um ambiente de tempo de execução Java para o AVR, chamado NanoVM . Também há dk-basic para o BASIC. Eu não tentei nada disso, no entanto.

Manishearth
fonte