Немного обо мне  |  Портфолио  |  Обратная связь  |  Контакты  |  Карта сайта 

Программирование 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

 

 

 Немного обо мне  |  Портфолио  |  Обратная связь  |  Контакты  |  Карта сайта