Я не дуже досвідчений з мовою С, і мені було цікаво, чи є спосіб, за допомогою якого пітон може бути використаний для програмування Arduino. Це, швидше за все, вимагатиме іншої IDE, щоб мати можливість налагоджувати сценарії самостійно.
Я не дуже досвідчений з мовою С, і мені було цікаво, чи є спосіб, за допомогою якого пітон може бути використаний для програмування Arduino. Це, швидше за все, вимагатиме іншої IDE, щоб мати можливість налагоджувати сценарії самостійно.
Відповіді:
Буде вкрай важко отримати будь-який сценарій Python, що працює безпосередньо на Arduino. Причина полягає в тому, що мова інтерпретована, тому вам знадобиться перекладач на борту, крім простого текстового сценарію. Напевно, не буде достатньо пам’яті на все це.
Ваша найкраща ставка, ймовірно, буде пошук способу складання сценарію Python до коду власного машини (саме так працює C / C ++). Я вважаю, що існують проекти, які можуть зробити щось подібне для інших платформ, але (наскільки я знаю) жоден, який би це не зробив успішно для Arduino.
Ви можете знайти більше корисної інформації з цього питання в Stack Overflow: Чи є спосіб "компілювати" код Python на Arduino (Uno) .
Так, Arduino можна (дещо) запрограмувати за допомогою Python. Один з таких проектів на Github - це Python Arduino Prototyping API v2 . Він забезпечує дуже основні функціональні можливості, такі як цифровий введення / виведення та аналоговий введення / виведення.
Це можна використовувати для дуже простих проектів.
* Цей проект трохи зламає "програмування" плати за допомогою послідовного з'єднання. Він передає команди над послідовним з'єднанням до ескізу, який працює на дошці, який потім "виконує" команду Python.
Існує проект, який приносить віртуальну машину Python до мікроконтролерів, включаючи Arduino Mega .
Ось цитата з 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)
Я використовував pyserial з великим успіхом у керуванні шпильками на ардуїно. Ваша робоча станція (ноутбук тощо) виконує сценарій пітона, який потім в режимі реального часу спілкується з ардуїно.
Це не зовсім те саме, що запускати сценарій безпосередньо на ардуїно, але я робив зовсім трохи більше, ніж я вважав, що ардуїно може впоратися (деякий аналіз музики, потрапляння на REST api тощо).
Ще один варіант, який слід врахувати - це Ардуїно Юнь . Крім чіпа AVR, який має більшість Arduinos, він також включає мікросхем MIPS під управлінням Linux. Оскільки це Linux, ви можете легко запустити код python, і будь-який чистий пакет python можна легко встановити.
Однак усі цікаві можливості введення / виводу є на чіпі AVR, а не на мікросхемі MIPS. Такі проекти, як Autobahn та LininoIO, вирішують цю проблему, запустивши спеціальну програму на чіпі AVR, яка виконує операції вводу / виводу за інструкцією з мікросхеми MIPS.
Ми знаємо, що це відкрите питання в програмуванні Arduino та загалом у вбудованому світі. На ринку є різні рішення, такі як MicroPython, але більшість з них присвячені певним плат і не дозволяють зберігати систему в режимі реального часу. Ми працюємо над рішенням! VIPER - віртуальна машина Python для Arduino DUE та всіх 32-бітових архітектур ARM, що працює над операційною системою в реальному часі. Це означає, що ви можете розробити сценарії Python, які можуть бути знищені Arduino DUE, UDOO, Spark (всі дошки), а також на нових плат ядер ST. Крім того, якщо вам потрібні високі показники роботи та досвідчений досвід на C, ви можете розробити модулі реального часу для VIPER, які можуть викликати та керувати сценаріями Python.
Ви можете побачити VIPER в дії тут http://bit.ly/kickviper
Ви можете дізнатись від C (AVR), як працюють датчики, але для цього потрібно набагато більше часу. Код IDE Arduino та Python Code для Arduino використовують функції C Code для спрощення речей. Python та Arduino IDE, якщо використовують Firmata, вони використовують послідовний зв’язок, і ви думаєте, що ви кодуєте себе.
Так. Python можна використовувати для програмування Arduino, просто імпортуючи pyfirmata, який може поєднати ардуїно з Python.
Я боюся, що Arduino IDE не використовує мову C / C ++. Він походить від Processing IDE і має досить спрощений C / Java-синтаксис.