semaver
New member
Blogun son baskısında, Arduino yönetimindeki yazılımın geliştirilmesi için IDE'ler vardı. Bu yazı komuta araçları dünyasıyla ilgilidir.
Bunu tahmin etmek için: Geçmişte, grafik geliştirme ortamları kullanıcıları, gerçek profesyoneller kontrol araçlarını kullanırken ellerini kirletmek istemeyen tatlı bir tasarıma sahip geliştiriciler olarak kabul edildi. Bugün daha çok kişisel zevk ve tercihleriniz, nasıl doğru olan sorunu.
Profesyonel bir fikrin konforu ve işlevleri yelpazesi kendileri için konuşur. Öte yandan, örneğin geliştiricilerin çevirmene veya flash aracına seçenekler sunmak istedikleri durumlar vardır, bu nedenle bir IDE'deki ayarlarla ilgilidirler. Komut satırında saklanan geliştiriciler, editörlerinin kalınlığına ve geliştirme sırasında en hızlı teslimat süresine yemin ediyor.
Başlangıçta
İlk bakışta karışık görünebilir, ancak Arduino programlama için komut satırını kullanmanın ilk adımı Arduino fikrinin kurulumudur.
Arduino IDE zaten komut satırı için gerekli tüm araçları getiriyor: derleyici, formu yanıp sönme aracı, sol, arşiv ve çok daha fazlası.
Ancak bu araçlar sisteminizde tam olarak nerede?
Her şeyden önce, elbette, hangi araçlarla uğraştığımızla ilgili soru ortaya çıkıyor. İşte genel bir bakış için eksik bir liste.
Eğer geliştiriciler bu araçları komut satırından doğrudan ve manuel olarak çağırmalısa, kısa bir süre sonra eğlenceli bir programlama yapmazlar. Araçlar, seçenekler ve parametreler çok farklıdır. Şimdi ne var?
Tabii ki, Arduino Maker Universum Make & Makefile'daki tüm sorular sorununun cevabı. Tam nerede ve çalma? Meslektaşım Chris Drexler ninja komutlarından biri ve Arduino-MakeFile öneriyor. Bu projede (bkz. Arduino-MakeFile GitHub dizin), birkaç “aktivist” büyük ve çok esnek bir makefil yarattı. Bunu tek başına yapmaya benzer bir şey, zamanınızı yatırmanız gereken pratik olarak sonuncusu olmalıdır. Yalnızca bir referans olarak: makefile Arduino.mk Yaklaşık 60 kbyte (!) Fantastik.
Arduino Makefile Github aracılığıyla kullanılabilir
Arduino makyajlarının kullanımı için önkoşul iki şeydir:
Her halükarda, film yapımını üç şekilde alırsınız:
Şimdi geliştiriciler her bir eskiz için devasa makeFile'ı kopyalayabilir ve buna göre uyarlayabilir. Ancak, uzun vadeli inaktif olacaktır. Bunun yerine, önerilir Arduino.mk dizinde /Arduino-Makefile Çevrenize uyum sağlamak ve daha sonra daha küçük sıçramalar için belirli makefile eklemek için.
Bunu yapmak için önce çevrenin değişkenlerini belirtin. Örneğin, Windows'ta menü Kontrol Paneli VEYA Ayarlar Değişkenler eklemek için bir diyalog.
MacOS veya Linux'ta BASH kullanarak, dosyanın kurulumu/eklenmesi önerilir .bashrc. Örneğin, gerekli çizgiler macOS sistemimde:
export ARDUINO_DIR=/Applications/Arduino.app/Contents/Java
export ARDMK_DIR=/Users/Michael/Arduino-Makefile/
export AVR_TOOLS_DIR=/Applications/Arduino.app/Contents/Java/hardware/tools/avr/
Alternatif olarak, bu değişkenleri tanımlayın Arduino.mk.
Test için, bir konsol/terminal penceresi, klasörde açmak gerekir. Arduino-Makefile Örneğin alt dizine examples/Fade Değişim, e make Arama. Bu hata olmadan çalışırsa, ilk adım gerçekleştirilir.
Bu değişkenler ilgili eskizden bağımsızdır.
Eskiz için özel ayarlar da vardır.
Belirli ayarlar
Eskiz dizininde, belirli eskiz ayarlarına sahip bir film genellikle yeterlidir. Bunu yapmak için ithal etti Arduino.mk Küresel kurallarıyla. Çoğu zaman, eskiz için bir makefil sadece birkaç satırdan oluşur.
Daha önce bahsedilen solma örneği için, örneğin, bir filmin içeriği bir Leonardo kartı alırsak böyle olurdu. Belirtilen bağlantı noktası, bölgemde kullanılan USB bağlantı noktasıdır:
BOARD_TAG = leonardo
ARDUINO_PORT = /dev/cu.usbmodem14311
include $(ARDMK_DIR)/Arduino.mk
BOARD_TAG Özellikle kullanılan Arduino kartını tanımlar.
ARDUINO_PORT Kullanılan USB bağlantı noktasını belirtir.
İçinde include-biz gerçek yapım Arduino.mk.
İşte buradayız
Şimdi tüm hazırlıklar yapıldığına göre, gerçek kullanımı make başlangıç. Bunun için çok sayıda seçenek var. Uzay nedenlerinden dolayı, pratikte en önemlisi uygulamada tartışılmaktadır.
Make show_boards'da desteklenen kartların baskısı
Marka ile ikili eskiz oluşturma
Karttaki taslağı yüklemeyi sağlayın
Monitörü aradıktan sonra seri iletişim
Make -pree, seri monitör tarafından talep edilen Baudico Tasso'yu bağımsız olarak kurmaya çalışır. İflas durumunda, bir değişken aracılığıyla karşılık gelen değeri belirtme olasılığı vardır, ör.
MONITOR_BAUDRATE = 19200
Bu değişken aynı zamanda ilgili eskiz üretimine aittir.
make - compile the code
make upload - upload
make ispload - upload using an ISP
make raw_upload - upload without first resetting
make eeprom - upload the eep file
make raw_eeprom - upload the eep file without first resetting
make clean - remove all our dependencies
make depends - update dependencies
make reset - reset the Arduino by tickling DTR or changing baud
rate on the serial port.
make show_boards - list all the boards defined in boards.txt
make show_submenu - list all board submenus defined in boards.txt
make monitor - connect to the Arduino's serial port
make size - show the size of the compiled output (relative to
resources, if you have a patched avr-size).
make verify_size - verify that the size of the final file is less than
the capacity of the micro controller.
make symbol_sizes - generate a .sym file containing symbols and their
sizes.
make disasm - generate a .lss file that contains disassembly
of the compiled file interspersed with your
original source code.
make generate_assembly - generate a .s file containing the compiler
generated assembly of the main sketch.
make burn_bootloader - burn bootloader and fuses
make set_fuses - set fuses without burning bootloader
make help_vars - print all variables that can be overridden
make help - show this help
Bu ve bu
Kütüphaneler kullanırsanız, bunları yapmanızda paylaşın ARDUINO_LIBS ile.
Örnek olarak
ARDUINO_LIBS = Ethernet SPI LiquidCrystal
Sonuç olarak, kütüphaneleri bulun Ethernet,, SP VE Likit Kullanmak.
Blinkinavrc örneği (bkz. examples– $ARDMK_DIR) Her yarım saniyede bir kaçınılmaz LED yanıp sönmeye hizmet eden aşağıdaki C programını içerir.
#include <avr/io.h>
#include <util/delay.h>
void init_io(void)
{
// 1 = output, 0 = input
DDRB = 0b11111111; // All outputs
DDRC = 0b11111111; // All outputs
DDRD = 0b11111110; // PORTD (RX on PD0). Just for demo
}
int main(void)
{
init_io();
while (1)
{
PORTC = 0xFF;
PORTB = 0xFF;
PORTD = 0xFF;
_delay_ms(500);
PORTC = 0x00;
PORTB = 0x00;
PORTD = 0x00;
_delay_ms(500);
}
return 0;
}
Örnek liste, yapılacak aşağıdaki şeyleri sağlar:
NO_CORE = Yes
BOARD_TAG = atmega16
MCU = atmega16
F_CPU = 8000000L
ISP_PROG = stk500v1
AVRDUDE_ISP_BAUDRATE = 19200
include ../../Arduino.mk
Program bir ISS programı aracılığıyla kartta yanıp sönmesi gerektiğinden, bu amacı çağırıyor
make ispload
Bu konuda 19200 baud ile yapıyor. Tanımına göre ISP_PROG STK500V1 desteğine sahip ISS programcısının bir donanımı ise, birçok ekonomik programcıya da hakimdir.
Daha temel bilgileri denemek istiyorsanız. Arduino Makefile'in yazarı, katkıda farklı olasılıklarına iyi bir bakış sunuyor. Örneğin, ünlü yayıncının entegrasyonunun bir açıklamasını bulacaksınız. vim Arduino Makefile ile.
Özet
Bu ve son blogda Arduino projeleri için yazılım yaratma dünyasına geziler yaptık. Bir yandan, bunlar Arduino fikri yerine, diğer yandan kontrol satırı araçlarının kullanımı için alternatif geliştirme ortamlarıydı. Arduino ekosistemi bir dizi seçenek sunar, böylece her zevk ve farklı ihtiyaçlar için en azından yararlı bir çözüm bulunabilir.
Bir sonraki gönderiler hala somut projeler ve yararlı donanım bileşenleri ile ilgilidir.
()
Bunu tahmin etmek için: Geçmişte, grafik geliştirme ortamları kullanıcıları, gerçek profesyoneller kontrol araçlarını kullanırken ellerini kirletmek istemeyen tatlı bir tasarıma sahip geliştiriciler olarak kabul edildi. Bugün daha çok kişisel zevk ve tercihleriniz, nasıl doğru olan sorunu.
Profesyonel bir fikrin konforu ve işlevleri yelpazesi kendileri için konuşur. Öte yandan, örneğin geliştiricilerin çevirmene veya flash aracına seçenekler sunmak istedikleri durumlar vardır, bu nedenle bir IDE'deki ayarlarla ilgilidirler. Komut satırında saklanan geliştiriciler, editörlerinin kalınlığına ve geliştirme sırasında en hızlı teslimat süresine yemin ediyor.
Başlangıçta
İlk bakışta karışık görünebilir, ancak Arduino programlama için komut satırını kullanmanın ilk adımı Arduino fikrinin kurulumudur.
Arduino IDE zaten komut satırı için gerekli tüm araçları getiriyor: derleyici, formu yanıp sönme aracı, sol, arşiv ve çok daha fazlası.
Ancak bu araçlar sisteminizde tam olarak nerede?
- MacOS altında dizin /Applications/Arduino.app/Contents/Java
- Windows altında: <HAUPTLAUFWERK>
rogram Files (x86)Arduino
- Linux altında: /usr/share/arduino
Her şeyden önce, elbette, hangi araçlarla uğraştığımızla ilgili soru ortaya çıkıyor. İşte genel bir bakış için eksik bir liste.
- avr-gcc und avr-g++: GNU C ++ derleyicisi, AVR tarafından sağlanan araçların kalbidir. Burada iyi talimatlar bulabilirsiniz.
- avr-objcopy: Bu program nesnelerin dosyalarını değiştirir ve başka bir hedef formata dönüştürür.
- avr-objdump Nesne dosyasındaki kuleler için bilgiler.
- avr-size Nesnelerin dosyalarının veya verilerinin, kodları, … segmentlerinin boyutunu sağlar.
- avr-nm Bir nesne dosyasında bulunan sembolleri gösterin.
…
- avrdude AVR'den mikrodenetleyicideki kod ve verileri indirmek için kullanılır. Manpage “Atmel'in STK500 programcısı, AVRCE, Avrce, Avpisp MKII programcısı, ATR910 ve AVR109 Appnotte (Butterfly ve tüm Base'ler dahil olmak üzere ISP modunda da ISP modunda MKI ve MKII), programcının donanımına göre.
Eğer geliştiriciler bu araçları komut satırından doğrudan ve manuel olarak çağırmalısa, kısa bir süre sonra eğlenceli bir programlama yapmazlar. Araçlar, seçenekler ve parametreler çok farklıdır. Şimdi ne var?
Tabii ki, Arduino Maker Universum Make & Makefile'daki tüm sorular sorununun cevabı. Tam nerede ve çalma? Meslektaşım Chris Drexler ninja komutlarından biri ve Arduino-MakeFile öneriyor. Bu projede (bkz. Arduino-MakeFile GitHub dizin), birkaç “aktivist” büyük ve çok esnek bir makefil yarattı. Bunu tek başına yapmaya benzer bir şey, zamanınızı yatırmanız gereken pratik olarak sonuncusu olmalıdır. Yalnızca bir referans olarak: makefile Arduino.mk Yaklaşık 60 kbyte (!) Fantastik.

Arduino Makefile Github aracılığıyla kullanılabilir
Arduino makyajlarının kullanımı için önkoşul iki şeydir:
- Başlangıçta daha önce de belirtildiği gibi Arduino fikrinin kurulumu.
- Python ve pyseria kütüphanesinin kurulumu (seri kapılara erişim için).
Her halükarda, film yapımını üç şekilde alırsınız:
- Bahsedilen dosyadaki paketlerin yüklenmesi yoluyla Readme.md tarif edilen, VEYA,,
- GitHub Ödeme ile: git clone https://github.com/sudar/Arduino-Makefile.git VEYA,,
- .Zip dosyasını https://github.com/sud/arduino-makefile web sitesinden indirerek.
Şimdi geliştiriciler her bir eskiz için devasa makeFile'ı kopyalayabilir ve buna göre uyarlayabilir. Ancak, uzun vadeli inaktif olacaktır. Bunun yerine, önerilir Arduino.mk dizinde /Arduino-Makefile Çevrenize uyum sağlamak ve daha sonra daha küçük sıçramalar için belirli makefile eklemek için.
Bunu yapmak için önce çevrenin değişkenlerini belirtin. Örneğin, Windows'ta menü Kontrol Paneli VEYA Ayarlar Değişkenler eklemek için bir diyalog.
MacOS veya Linux'ta BASH kullanarak, dosyanın kurulumu/eklenmesi önerilir .bashrc. Örneğin, gerekli çizgiler macOS sistemimde:
export ARDUINO_DIR=/Applications/Arduino.app/Contents/Java
export ARDMK_DIR=/Users/Michael/Arduino-Makefile/
export AVR_TOOLS_DIR=/Applications/Arduino.app/Contents/Java/hardware/tools/avr/
Alternatif olarak, bu değişkenleri tanımlayın Arduino.mk.
Test için, bir konsol/terminal penceresi, klasörde açmak gerekir. Arduino-Makefile Örneğin alt dizine examples/Fade Değişim, e make Arama. Bu hata olmadan çalışırsa, ilk adım gerçekleştirilir.
Bu değişkenler ilgili eskizden bağımsızdır.
Eskiz için özel ayarlar da vardır.
Belirli ayarlar
Eskiz dizininde, belirli eskiz ayarlarına sahip bir film genellikle yeterlidir. Bunu yapmak için ithal etti Arduino.mk Küresel kurallarıyla. Çoğu zaman, eskiz için bir makefil sadece birkaç satırdan oluşur.
Daha önce bahsedilen solma örneği için, örneğin, bir filmin içeriği bir Leonardo kartı alırsak böyle olurdu. Belirtilen bağlantı noktası, bölgemde kullanılan USB bağlantı noktasıdır:
BOARD_TAG = leonardo
ARDUINO_PORT = /dev/cu.usbmodem14311
include $(ARDMK_DIR)/Arduino.mk
BOARD_TAG Özellikle kullanılan Arduino kartını tanımlar.
ARDUINO_PORT Kullanılan USB bağlantı noktasını belirtir.
İçinde include-biz gerçek yapım Arduino.mk.
İşte buradayız
Şimdi tüm hazırlıklar yapıldığına göre, gerçek kullanımı make başlangıç. Bunun için çok sayıda seçenek var. Uzay nedenlerinden dolayı, pratikte en önemlisi uygulamada tartışılmaktadır.
- make show_boards Desteklenen kartlar listesini yayar:

Make show_boards'da desteklenen kartların baskısı
- Çağrı make Yürütülebilir taslak gerçekleşir:

Marka ile ikili eskiz oluşturma
- make upload Yapmak avrdude Leonardo kartında çalışan eskiz yüklemek için:

Karttaki taslağı yüklemeyi sağlayın
- Çağrıldığında make monitor Blink programı için burada olduğu gibi bilgisayar ve Arduino kartı arasındaki seri iletişimi görelim:

Monitörü aradıktan sonra seri iletişim
Make -pree, seri monitör tarafından talep edilen Baudico Tasso'yu bağımsız olarak kurmaya çalışır. İflas durumunda, bir değişken aracılığıyla karşılık gelen değeri belirtme olasılığı vardır, ör.
MONITOR_BAUDRATE = 19200
Bu değişken aynı zamanda ilgili eskiz üretimine aittir.
- Bu arada, Makefile'ın daha fazla kullanımı hakkında daha fazla bilgiye ihtiyacınız varsa, bir istek make help:
make - compile the code
make upload - upload
make ispload - upload using an ISP
make raw_upload - upload without first resetting
make eeprom - upload the eep file
make raw_eeprom - upload the eep file without first resetting
make clean - remove all our dependencies
make depends - update dependencies
make reset - reset the Arduino by tickling DTR or changing baud
rate on the serial port.
make show_boards - list all the boards defined in boards.txt
make show_submenu - list all board submenus defined in boards.txt
make monitor - connect to the Arduino's serial port
make size - show the size of the compiled output (relative to
resources, if you have a patched avr-size).
make verify_size - verify that the size of the final file is less than
the capacity of the micro controller.
make symbol_sizes - generate a .sym file containing symbols and their
sizes.
make disasm - generate a .lss file that contains disassembly
of the compiled file interspersed with your
original source code.
make generate_assembly - generate a .s file containing the compiler
generated assembly of the main sketch.
make burn_bootloader - burn bootloader and fuses
make set_fuses - set fuses without burning bootloader
make help_vars - print all variables that can be overridden
make help - show this help
Bu ve bu
Kütüphaneler kullanırsanız, bunları yapmanızda paylaşın ARDUINO_LIBS ile.
Örnek olarak
ARDUINO_LIBS = Ethernet SPI LiquidCrystal
Sonuç olarak, kütüphaneleri bulun Ethernet,, SP VE Likit Kullanmak.
Blinkinavrc örneği (bkz. examples– $ARDMK_DIR) Her yarım saniyede bir kaçınılmaz LED yanıp sönmeye hizmet eden aşağıdaki C programını içerir.
#include <avr/io.h>
#include <util/delay.h>
void init_io(void)
{
// 1 = output, 0 = input
DDRB = 0b11111111; // All outputs
DDRC = 0b11111111; // All outputs
DDRD = 0b11111110; // PORTD (RX on PD0). Just for demo
}
int main(void)
{
init_io();
while (1)
{
PORTC = 0xFF;
PORTB = 0xFF;
PORTD = 0xFF;
_delay_ms(500);
PORTC = 0x00;
PORTB = 0x00;
PORTD = 0x00;
_delay_ms(500);
}
return 0;
}
Örnek liste, yapılacak aşağıdaki şeyleri sağlar:
NO_CORE = Yes
BOARD_TAG = atmega16
MCU = atmega16
F_CPU = 8000000L
ISP_PROG = stk500v1
AVRDUDE_ISP_BAUDRATE = 19200
include ../../Arduino.mk
Program bir ISS programı aracılığıyla kartta yanıp sönmesi gerektiğinden, bu amacı çağırıyor
make ispload
Bu konuda 19200 baud ile yapıyor. Tanımına göre ISP_PROG STK500V1 desteğine sahip ISS programcısının bir donanımı ise, birçok ekonomik programcıya da hakimdir.
Daha temel bilgileri denemek istiyorsanız. Arduino Makefile'in yazarı, katkıda farklı olasılıklarına iyi bir bakış sunuyor. Örneğin, ünlü yayıncının entegrasyonunun bir açıklamasını bulacaksınız. vim Arduino Makefile ile.
Özet
Bu ve son blogda Arduino projeleri için yazılım yaratma dünyasına geziler yaptık. Bir yandan, bunlar Arduino fikri yerine, diğer yandan kontrol satırı araçlarının kullanımı için alternatif geliştirme ortamlarıydı. Arduino ekosistemi bir dizi seçenek sunar, böylece her zevk ve farklı ihtiyaçlar için en azından yararlı bir çözüm bulunabilir.
Bir sonraki gönderiler hala somut projeler ve yararlı donanım bileşenleri ile ilgilidir.
()