Можно ли запрограммировать Arduino на других языках?

11

Можно ли программировать Arduino на других языках, не основанных на C / C ++? Что для этого потребуется? Я знаю, что доступны другие IDE, мне любопытно узнать о реальных языках программирования, таких как, например, возможность кодировать Arduino на Python.

nathangiesbrecht
источник
Я отредактировал вопрос, чтобы уточнить, что я говорю о языках, а не об IDE.
nathangiesbrecht
2
Если вам нравится C #, проверьте Netduino.
Кевин Марк
1
@KevinMark Существует небольшая проблема, заключающаяся в том, что он может быть не в состоянии использовать Netduino (например, нужны дополнительные порты Mega).
Полярное
@ Полярный Полагаю, что у Netduino Go есть дополнительные возможности подключения.
Кевин Марк
1
@powtac Строка специфична для Arduino? Интересно, почему у меня так много в моем коде тогда ...
Полярный

Ответы:

5

Определенно возможно использовать альтернативные языки для разработки с Arduino, но не обязательно использовать стандартную IDE. Это как, в конце концов, код C / C ++ собран в байт-код для AT-чипа на плате Arduino. Один из языков, который вы можете использовать, - это Céu , версия C / C ++ более высокого уровня. Основная проблема, с которой вы столкнетесь, - это найти компилятор для вашего языка - в конце концов, вы можете написать свой собственный - однако, в любом случае, это требует глубокого знания C / C ++. Поэтому, вероятно, лучше придерживаться C / C ++, по крайней мере, на данный момент.

РЕДАКТИРОВАТЬ: Вы слегка перефразировали свой вопрос, так что да, было бы возможно запрограммировать Arduino на Python (плохой выбор языка, хотя это только мое мнение), но вам понадобится другая IDE / специальный компилятор по причинам выше. Кроме того, вы должны быть осторожны при связывании библиотек, написанных на другом языке для Arduino (так как они все C / C ++).

полярный
источник
Это действительно не возможно запустить питона на Arduino (кроме Arduino Mega, в любом случае). Проект python-on-a-chip работает на компактной среде исполнения python, и ему требуется не менее ~ 8 КБ SRAM.
Коннор Вольф
1
Python действительно, действительно, не подходит для небольших, ограниченных в памяти сред.
Коннор Вольф
2
@ConnorWolf Два момента: 1) Я использовал Python в качестве примера, как это было в вопросе - я все равно не люблю Python. 2) Теоретически, вы можете конвертировать Python в C, и тогда вы избежите необходимости выполнения Python поверх загрузчика.
Полярное
1

Похоже, в настоящее время нет никакого способа легко кодировать Arduino во что-либо, кроме Assembly / C / C ++ (и Céu, как упомянуто в ответе Polar - хотя это только переведено на C ++). Однако есть много языков, с которых вы можете общаться с Arduino .

Однако в теории это не невозможно. Вам просто нужно написать компилятор для чипа и определить встроенные функции, а затем передать скомпилированный код через последовательный порт. Или вы можете написать переводчик python-to-c ++ и заставить его работать.

Если у вас есть склонность к .NET, вы можете проверить Netduino . Похоже, что для AVR существует среда выполнения Java, которая называется NanoVM . Также есть базовый dk для BASIC. Я не пробовал ничего из этого, хотя.

Manishearth
источник