Arduino komut satırından yazılım yüklemek

Erdem⁣

Paylaşımcı üye
Katılım
14 Ocak 2013
Mesajlar
713
Puanları
106
Arduino'ya komut satırından da yazılım yükleyebileceğinizi biliyor muydunuz?

İşte bu amaçla, asgari kütüphane kullanmaya da özen göstererek bir Make kütüğü oluşturdum.

İlk planda ev dizininde .profile kütüğüne Arduino'nun ve diğer geliştirici araçlarının olduğu dizini ekliyoruz.

export PATH="$PATH:"/home/erdem/programlar/arduino-1.8.13/hardware/tools/avr/bin"" export ARDUINODIR=~/programlar/arduino-1.8.13

Burada bazı make kütükleri Arduino kart bilgilerini içeren "boards.txt" kütüğünden faydalanıyor. Bu kütük $(ARDUINODIZINI)/hardware/arduino/avr/boards.txt dizininde bulunuyor.

Örneğin burada benim programladığım kart Arduino Pro Mini 5V, 16 MHz idi.

pro5v_16mhz.png


Görebileceğiniz üzere µ denetleyicinin saat hızı, hangi yongayı kullandığı (burada atmega328p), yükleme hızı ve çekirdek bilgileri var.

Komut satırından yükleyeceğimiz yazılım basit ışık yakan söndüren uygulama.
C++:
#include <Arduino.h>

int ledCikis = 13;

void setup()
{
    // 13 numaralı ucu çıkış olarak ayarla

    pinMode(ledCikis, OUTPUT);
}

void loop()
{
    /*
      İsterseniz bu bölüm boş olabilir ama her Arduino programında bu bölüm
      bulunmalı
     */

    digitalWrite(ledCikis, HIGH);
    delay(1000);
    digitalWrite(ledCikis, LOW);
    delay(1000);
}

Kaynak kodu derleyen, bağlayan, hex biçimine çeviren, daha sonra programcıyı kullanarak bunu Arduino'ya yükleyen make kütüğümüz şu şekilde :
Makefile:
ARDUINO_DIZINI = /home/erdem/programlar/arduino-1.8.13/
KUTUPHANE_DIZINI = $(ARDUINO_DIZINI)hardware/arduino/avr/cores/arduino/
YUKLEYICI_DIZINI = $(ARDUINO_DIZINI)/hardware/tools/avr/etc/avrdude.conf

C_DERLEYICI = avr-gcc
CPP_DERLEYICI = avr-g++
BAGLAYICI = avr-ar
KOPYALA = avr-objcopy
YUKLE = avrdude

KAYNAK = deneme.cc
PROGRAM = $(patsubst %.cc,%,$(KAYNAK))

CPU_SAATI = 16000000
DENETLEYICI = atmega328p
YONGA = m328p
PROGRAMCI = pickit2
# bayraklar
BAYRAKLAR = -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=$(DENETLEYICI) -DF_CPU=$(CPU_SAATI)L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=106
CPP_BAYRAKLARI = $(BAYRAKLAR) -fno-exceptions
C_BAYRAKLARI  = $(BAYRAKLAR)

BASLIK_DOSYALARI = "-I$(ARDUINO_DIZINI)hardware/arduino/avr/cores/arduino" "-I$(ARDUINO_DIZINI)hardware/arduino/avr/variants/standard"


derle:
    @echo $(PROGRAM)
    $(CPP_DERLEYICI) $(CPP_BAYRAKLARI) $(BASLIK_DOSYALARI) $(KAYNAK) -o deneme.o
    $(C_DERLEYICI) $(C_BAYRAKLARI) $(BASLIK_DOSYALARI) $(KUTUPHANE_DIZINI)wiring.c -o wiring.o
    $(C_DERLEYICI) $(C_BAYRAKLARI) $(BASLIK_DOSYALARI) $(KUTUPHANE_DIZINI)hooks.c -o hooks.o
    $(C_DERLEYICI) $(C_BAYRAKLARI) $(BASLIK_DOSYALARI) $(KUTUPHANE_DIZINI)wiring_digital.c -o wiring_digital.o
    $(CPP_DERLEYICI) $(CPP_BAYRAKLARI) $(BASLIK_DOSYALARI) $(KUTUPHANE_DIZINI)main.cpp -o main.o
    $(BAGLAYICI) rcs cekirdek.a hooks.o
    $(BAGLAYICI) rcs cekirdek.a wiring.o
    $(BAGLAYICI) rcs cekirdek.a wiring_digital.o
    $(BAGLAYICI) rcs cekirdek.a main.o
    $(C_DERLEYICI) -Os -Wl,--gc-sections -mmcu=$(DENETLEYICI) -o deneme.elf deneme.o cekirdek.a -lm
    $(KOPYALA) -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 $(PROGRAM).elf $(PROGRAM).eep
    $(KOPYALA) -O ihex -R .eeprom $(PROGRAM).elf $(PROGRAM).hex

yükle:
    $(YUKLE) -C $(YUKLEYICI_DIZINI) -c $(PROGRAMCI) -p $(YONGA) -v -V -U flash:w:"$(PROGRAM).hex":a
    # pk2cmd -pPIC16F84A -I -R -T
dur:
    # pk2cmd -pPIC16F84A

Kodu derlemek için make yazmanız yeterli. µ denetleyiciye yüklemek için make yükle yazıyoruz. make dur ise PICkit 2'ye özel olarak devreye verilen enerjiyi kesiyor.

Bu kütüğü diğer programlayıcılarla ve Arduino Uno ile de kullanabilirsiniz. avrdude tarafından desteklenen programlayıcıların listesini şu komutla görebilirsiniz :

$ avrdude -c birşeyler

PICkit 2 programcısına özel satırları yorum haline getirdim. PICkit 2 sadece yazılımı yüklemekle kalmıyor devreye enerji de verebiliyor.

Emacs ile beraber µ denetleyiciye bir kaç parmak hareketi ile (Ctrl-C (aynı anda) ve tekrar C'ye basarak) kolayca yazılım yükleyebiliyorsunuz.

İsterseniz AVR µ denetleyicisini programlamaya da adım atabilirsiniz.

Ancak PIC kılavuzları yaklaşık 200 sayfa iken AVR kılavuzlarının yaklaşık 1500 sayfa civarında olduğunu bilmenizde de fayda var.
 
Son düzenleme:

Forum istatistikleri

Konular
127,969
Mesajlar
913,977
Kullanıcılar
449,614
Son üye
Canipk

Yeni konular

Geri
Üst