Программирование Arduino при помощи Raspberry Pi
Чтобы начать программировать Arduino достаточно установить Arduino IDE, либо воспользоваться Online IDE.
Но что делать, если Вы выросли, и хотите создавать проекты посерьёзнее мигающего светодиода. Как правило, трудности возникают именно с оригинальным IDE, который скорее напоминает блокнот с функцией компиляции и загрузки, а не IDE в нормальном его понимании.
В данной статье я хочу вам показать, как можно компилировать и загружать Ваши проекты без использования Arduino IDE.
Итак, мы имеем:
Arduino UNO
Raspberry Pi 3, с установленной Raspbian.
Установим необходимые нам пакеты:
sudo apt-get install arduino-mk
Пакет arduino-mk позволяет собирать и загружать скетчи Arduino на Raspberry Pi без использования Arduino IDE.
После установки пакетов у нас должны появится:
каталог: /usr/share/arduino/
В котором присутствует файл Arduino.mk
Создадим каталог для наших проектов: ~/sketchbook/
mkdir sketchbook
cd ~/sketchbook
Создадим тестовый проект blink:
mkdir blink
cd blink
nano blink.ino
// Blink
void setup(void){
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
Создаём Makefile:
nano Makefile
BOARD_TAG = uno
ARDUINO_DIR = /usr/share/arduino
ARDUINO_PORT = /dev/ttyUSB0
MONITOR_PORT = /dev/ttyUSB0
ARDUINO_LIBS =
include /usr/share/arduino/Arduino.mk
Осталось выполнить:
make upload
В результате выполнения команды make идёт сборка и появляется каталог build-uno, в котором содержится нужный .hex-файл.
Команда make upload вызывает avrdude, который заливает прошивку в МК.
Доступны команды:
make — сборка без загрузки
make upload — собрать и загрузить
make clean — очистить
make depends — обновить зависимости
make reset — сброс Arduino передёргиванием DTR у последовательного порта
make raw_upload — загрузить без первоначального сброса
make show_boards — перечислить возможные типы плат, определённых в boards.txt
make show_boards
Tag Board Name
atmega168 Arduino NG or older w/ ATmega168
atmega328 Arduino Duemilanove w/ ATmega328
atmega8 Arduino NG or older w/ ATmega8
bt Arduino BT w/ ATmega168
bt328 Arduino BT w/ ATmega328
diecimila Arduino Diecimila or Duemilanove w/ ATmega168
ethernet Arduino Ethernet
fio Arduino Fio
leonardo Arduino Leonardo
lilypad LilyPad Arduino w/ ATmega168
lilypad328 LilyPad Arduino w/ ATmega328
mega Arduino Mega (ATmega1280)
mega2560 Arduino Mega 2560 or Mega ADK
mini Arduino Mini w/ ATmega168
mini328 Arduino Mini w/ ATmega328
nano Arduino Nano w/ ATmega168
nano328 Arduino Nano w/ ATmega328
pro Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
pro328 Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
pro5v Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
pro5v328 Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
uno Arduino Uno
|