KODE CRAFT: MENGGUNAKAN ECLIPSE UNTUK PENGEMBANGAN ARDUINO



Harga
Deskripsi Produk KODE CRAFT: MENGGUNAKAN ECLIPSE UNTUK PENGEMBANGAN ARDUINO

Saat kami mengerjakan proyek, kami sering meningkatkan alat kami. Besi solder dasar itu memberi jalan untuk satu dengan kontrol suhu. Pengenalan 3D printer menghasilkan satu lebih cepat dan lebih mampu. Salah satu alasannya adalah kita tidak benar-benar memahami batasan alat pengantar tingkat. Terkadang kita menyadari hal ini secara langsung saat alat gagal dalam suatu tugas. Lain kali kita melihat hacker lain menggunakan alat yang lebih baik dan sadar kita harus memilikinya !.

Hal yang sama terjadi dengan perangkat lunak. IDE Arduino adalah alat yang bagus untuk memulai. Mudah digunakan mana yang hebat jika Anda belum pernah menulis perangkat lunak sebelumnya. Perpustakaan dan cara menghubungkannya dengan baik ke dalam ekosistem perangkat keras adalah anugerah.

Ketika Anda memulai proyek yang lebih besar, katakanlah Anda melakukan upgrade ke Due or Teensy untuk lebih banyak kode atau ruang memori, IDE Arduino dapat menghambat produktivitas Anda. Bergerak melampaui keterbatasan ini membutuhkan alat baru yang lebih baik.

Dimana kita menemukan alat yang lebih baik? Untuk memulai, kenali, seperti [Elliot] menunjukkan bahwa Tidak ada Arduino "Language", sebenarnya kami pemrograman di C atau C ++. Kami memilih bahasa mana yang melalui ekstensi pada file, 'c' untuk C dan 'cpp' untuk C ++. Perpustakaan pendukung Arduino dapat ditulis dalam bahasa C atau C ++ bergantung pada preferensi pengembang. Ini semua cocok.

Berpotensi semua lingkungan yang mendukung C / C ++ bisa menggantikan Arduino IDE. Sayangnya, ini tidak mudah dilakukan, setidaknya bagi pengembang yang tidak berpengalaman, karena ini berarti menyiapkan ragam alat bahasa dan alat untuk diunggah ke papan tulis. Seorang pengembang dengan banyak pengalaman bisa menghindari lingkungan pengembangan yang terintegrasi sama sekali, langsung menggunakan makefile seperti yang digambarkan dalam Arduino Development; Ada Makefile untuk itu.

Kenyataannya adalah IDE Arduino tidak lebih dari sekedar editor teks dengan kemampuan untuk memanggil alat yang dibutuhkan untuk mengkompilasi dan mendownload kodenya ke Arduino. IDE profesional tidak hanya menangani detail tapi juga menyediakan kemampuan tambahan yang mempermudah proses pengembangan perangkat lunak.


ECLIPSE CDT & ARDUINO PLUG-IN
Eclipse IDE
Alternatif IDE Arduino adalah Eclipse, lingkungan pengembangan yang digunakan oleh pengembang hobi dan profesional. Ini adalah perangkat lunak open-source dan dapat diperluas melalui plugin. Banyak pengembang telah berkontribusi dalam pengembangannya, termasuk beberapa dengan dukungan korporat.

Pengembangan Arduino berbasis Eclipse menggunakan dua tambahan pada IDE Eclipse dasar. Salah satunya adalah C / C ++ Development Tooling (CDT). CDT tidak hanya menambahkan kemampuan pengembangan C / C ++ namun juga alat untuk penyelesaian dan penyisipan kode otomatis, dan juga beberapa kode refactoring. Percayalah, begitu Anda mengerti bagaimana menggunakan kemampuan ini, Anda akan sangat merindukannya bila tidak tersedia.

Tambahan lainnya adalah plug-in yang dikembangkan oleh [Jantje Baeyens]. Plug-innya gratis dan open-source.

Pengaturan ini bekerja dalam kombinasi dengan lingkungan build untuk Arduino IDE. Anda masih membutuhkan IDE yang terpasang; Anda hanya tidak perlu menggunakannya.

Awal tahun ini saya memasang Eclipse Luna dengan plug-in dan Arduino 1.6.0 IDE saat menjalankan Ubuntu 14.04. Saya hanya mengikuti petunjuk pemasangan di situs Eclipse dan plug-in dan berjalan lancar. Sejak saat itu [Jantze] merilis versi Eclipse Luna dengan versi terbaru plug-in yang telah terpasang. Saya mendownloadnya dan IDE Arduino 1.6.5r5 baru-baru ini. Ini bekerja dengan baik dan menginstal pembaruan untuk plug-in ditangani secara otomatis oleh Eclipse.

Saat membuat peralihan seperti ini, Anda perlu tahu di mana alat saat ini tidak memadai, bagaimana alat baru mengatasi keterbatasan tersebut, dan manfaat tambahan apa yang akan timbul. Kami akan mengatasi keterbatasan dan bagaimana mereka ditangani terlebih dahulu, dan kemudian manfaat tambahannya.

BATASAN IDE ARDUINO


Tab Editor
Ketika proyek menjadi lebih besar, mereka jelas memiliki lebih banyak baris kode. Memiliki ratusan atau ribuan baris kode dalam satu file adalah mimpi buruk. Menggulir file besar itu untuk menemukan satu baris kode adalah memakan waktu. Itulah sebabnya kompiler mendukung pemisahan kode menjadi beberapa file. Bergerak di antara jendela editor jauh lebih mudah daripada bergulir.

Arduino IDE mendukung beberapa file dengan menambahkan lebih banyak tab. Jika Anda menggunakan file INO, Anda hanya menambahkan satu per satu, tapi jika Anda menggunakan header C / C ++ dan file sumber, itu dua pada saat bersamaan. Dengan Arduino IDE semua file harus ada di jendela yang terbuka agar bisa diproses oleh kompilator. Cepat atau lambat Anda kehabisan ruang di bagian atas layar untuk lebih banyak tab.

gerhana proyek explorerMy 23? monitor mendukung sekitar 18 tab dan 19 saya? monitor samping sekitar selusin. Tab untuk file tambahan bergulir ke kanan. Mereka dapat dihubungi dengan menggunakan Ctrl-ALT-Right, atau melalui daftar drop-down di sebelah kanan, yang tidak praktis untuk digunakan. Untuk menambahkan penghinaan, pada sistem Ubuntu saya Ctrl-ALT-Right digunakan untuk mengubah ruang kerja sehingga tidak dapat digunakan untuk mengubah tab.

Eclipse juga menggunakan tab tapi hanya terlibat dengan editing. File untuk sebuah proyek tercantum dalam sub-jendela Project Explorer. File apapun bisa dibuka di editor dan ditutup saat pengeditan atau tampilan selesai. Setelah hanya file yang terbuka yang berkaitan dengan aktivitas Anda saat ini mengurangi gangguan. Eclipse juga memungkinkan akses ke beberapa proyek tersedia pada waktu bersamaan. Ini berguna jika Anda ingin mendapatkan potongan kode untuk proyek Anda saat ini dari yang lebih tua, atau jika Anda mengerjakan dua Arduinos yang bekerja sama satu sama lain.

Kecepatan Kompilasi
IDE Arduino menyalin setiap file ke direktori sementara sebagai langkah awal dalam proses pembuatan. Ini memaksa lingkungan membangun untuk melihat setiap file berubah, yang pada gilirannya berarti semua file dikompilasi.

Di bawah Eclipse build tidak memindahkan file. Rantai alat mengenali bahwa begitu sebuah file dikompilasi, tidak perlu dikompilasi lagi sampai terjadi perubahan pada sumbernya. Dalam proyek komersial yang sangat besar ini benar-benar dapat menghemat waktu berjam-jam. Bahkan dalam proyek hobi besar penghematan waktu bisa menjadi substansial.

Berburu untuk Kesalahan
Konsol di bagian bawah Arduino IDE menampilkan proses kompilasi dan kesalahan yang terjadi. Kesalahan dicantumkan dengan file, nomor baris, dan kolom kesalahan:

somefile.cpp: 11: 3: error: expected '}' before 'else'
Untuk memperbaiki kesalahan yang Anda butuhkan untuk menemukan file - aduh! jika ada di daftar drop-down - dan kemudian cari baris di file. Ini memakan waktu.

Eclipse melaporkan kesalahan dengan dua cara. Yang pertama adalah jendela konsol yang mirip dengan yang ada untuk Arduino. Bedanya Anda bisa klik pada sebuah kesalahan dan dibawa ke garis kode. Eclipse bahkan akan membuka file jika saat ini tidak aktif dalam editor. Penghemat waktu nyata.

Yang kedua adalah daftar kesalahan di jendela "Masalah" yang dilucuti dari semua gobbledygook kompiler. Membaca daftar ini jauh lebih cepat daripada jendela konsol IDE. Dengan memindai daftar Anda mungkin melihat bahwa kesalahan yang dilaporkan bukan kesalahan yang perlu diperbaiki. Terkadang kesalahan, kesalahan ketik misalnya, dilaporkan terjadi di beberapa lokasi namun koreksi ada di tempat lain. Jendela konsol masih penting karena menyediakan informasi tambahan yang terkadang dibutuhkan untuk memahami dengan tepat apa yang menyebabkan masalah.

jendela masalah

Terminal Annoyance
Jengkel dengan Arduino IDE adalah kebutuhan untuk mematikan terminal port serial saat Anda ingin mengunggah kode baru. Solusi Eclipse mengelola ini sambil menjaga agar jendela terminal tetap terbuka.

Catatan: Ini tampaknya telah berubah dari versi 1.60 ke versi 1.6.5 dari Arduino IDE. Jika Anda bekerja dengan versi yang lebih lama dan tetap berpegang pada IDE Arduino, Anda harus melakukan upgrade ke versi terbaru.

PENINGKATAN ECLIPSE
Eclipse menyediakan perangkat tambahan selain perbaikan yang dibahas di atas. Beberapa di antaranya adalah kemampuan yang tidak Anda sadari butuhkan, tapi akan sangat mencintai jika Anda memilikinya.

dialog kelas baru Penyelesaian kode adalah perangkat tambahan sederhana yang dapat menghemat penekanan tombol dan mencegah kesalahan dengan menambahkan kurung penutup, tanda petik, tanda kurung, tanda kurung, dll. Ini mengurangi kesalahan karena kelalaian, dan membantu menjaga kode tetap teratur. (Anda memasang kawat gigi di sekitar klausa jika Anda, bukan? Apple tidak melakukannya, yang menciptakan lubang keamanan dalam pemrosesan SSL mereka, walaupun ada sejumlah masalah lain dengan kode itu.)

Saat Anda bekerja Anda sering menyadari nama fungsi, variabel, atau kelas yang tidak tepat. Perlu diubah. Memburu nama di beberapa file sangat menakutkan sehingga Anda membiarkannya pergi. Eclipse memungkinkan Anda memilih sebuah nama, memberitahukannya untuk melakukan perubahan, dan semua kejadian akan berubah.

Menambahkan kelas baru membutuhkan pembuatan header dan file sumber baru. Penyihir melakukan ini untuk Anda. Anda memasukkan nama kelas, nama kelas dasar jika diperlukan, dan pilih apakah Anda menginginkan constructor dan destructor dibuat. File-file tersebut dibuat dengan kode sumber skeleton dan ditambahkan ke proyek.

Wizards juga bisa membuat sumber baru atau file header.

Menciptakan fungsi atau anggota kelas juga otomatis begitu fungsi dideklarasikan. Anda pertama kali membuat deklarasi di file header:

1
int sesuatu (const int a);
lalu klik kanan, pilih 'Source' dan 'Implement Method'. Definisi kerangka dimasukkan ke dalam file sumber:

1
2
int sesuatu (const int a) {
}
Hal ini sangat berguna bila fungsi memiliki daftar parameter yang panjang.

Seringkali Anda menyadari bahwa beberapa baris kode akan lebih baik sebagai fungsi baru. Ini bisa jadi bisa digunakan kembali di lokasi lain, atau hanya untuk mempermudah arus di lokasi saat ini. Mengangkat kode ke fungsi baru hanya memerlukan pemilihan kode, klik kanan, pilih 'Refactor', dan 'Extract Function'. Wizard akan terbuka bagi Anda untuk menyetujui daftar parameter fungsi baru dan bila Anda menerima panggilan ini fungsi akan menggantikan baris dan fungsi baru dibuat.

Sebagai ilustrasi, satu set kode duplikat dalam lingkaran () dapat diekstraksi ke dalam fungsi, outPins, dan kode duplikat dapat diganti secara manual dengan panggilan ke fungsi baru. Bukan contoh gemetar bumi, memang, tapi ini menunjukkan kemungkinannya. Kode dimulai sebagai:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void loop () {
    statis unsigned char cnt = 0;
    state bool statis = false;

    analogWrite (pin09, cnt);
        
    // kode untuk diekstrak untuk membuat fungsi baru
    digitalWrite (pin11, negara bagian);
    digitalWrite (pin13, negara bagian);
    delay (blink_time);

    negara =! negara;

    // duplikat kode
    digitalWrite (pin11, negara bagian);
    digitalWrite (pin13, negara bagian);
    delay (blink_time);
}
dan setelah refactoring menjadi:

1
2
3
4
5
6
7
8
9
10
11
12
13
void loop () {
    statis unsigned char cnt = 0;
    state bool statis = false;

    analogWrite (pin09, cnt);

    outPins (negara bagian);
    negara =! negara;
    // ganti tiga baris berikut dengan outPins (negara bagian);
    digitalWrite (pin11, negara bagian);
    digitalWrite (pin13, negara bagian);
    delay (blink_time);
}
dan setelah sedikit dipotong dan paste loop () menjadi lebih sederhana dan pemeliharaan garis sekarang di outPins () lebih mudah:

1
2
3
4
5
6
7
8
9
void loop () {
    statis unsigned char cnt = 0;
    state bool statis = false;

    analogWrite (pin09, cnt);
    outPins (negara bagian);
    negara =! negara;
    outPins (negara bagian);
}
Banyak dari kemampuan ini adalah refactoring kode, topik yang kompleks yang layak dipelajari jika Anda akan mengerjakan proyek yang lebih besar. Teknik yang terlibat memperbaiki kode organisasi Anda tanpa mengubah operasinya.

Perhatian: Eclipse akan membuat perubahan yang Anda minta jadi pastikan Anda memilikinya dengan benar. Memperbaiki perubahan otomatis masif bisa menjadi mimpi buruk. Berada di sana, lakukan itu.

Ini hanyalah gambaran keuntungan menggunakan Eclipse dalam proyek yang lebih besar. Jika Anda sudah familiar dengan Eclipse berpadu dengan kemampuan lain dalam komentar.

PLUG-IN NICETIES
dialog pluginSemua yang di atas adalah apa yang dibawa Eclipse. Plugin Arduino juga menyediakan dialog yang memberi Anda kontrol atas parameter pengembangan dengan mengganti menu drop Arduino IDE. Anda tidak lagi harus masuk ke menu untuk terlebih dahulu memilih papan dan kemudian kembali ke atas untuk memilih port. Selain itu, dialog ini memungkinkan Anda menentukan opsi kompiler yang dimakamkan di file konfigurasi dengan Arduino IDE. Misalnya, Anda dapat mengubah dari standar yang mengoptimalkan ruang untuk mengoptimalkan kecepatan.

Penambahan plug-in membawa jendela grafik 'osiloskop' yang menampilkan data yang diformat dengan benar sebagai kurva. Ini bagus untuk melihat bagaimana sensor bereaksi terhadap lingkungan.

BUNGKUS
Saya telah beralih sepenuhnya menggunakan Eclipse untuk proyek Arduino saya. Saya sudah merasa nyaman dengan Eclipse untuk proyek lain, jadi rasanya enak kembali ke Arduino. Penyelesaian refactoring dan auto-code sangat dirindukan dan fitur lainnya adalah lapisan gula pada kue.Baca juga: harga plakat
5 24
Copyright © 2015. OKEbutik Template Allright reserved.