Menulis Program C di luar Arduino IDE?

12

Saya suka ide menggunakan Arduino IDE untuk proyek-proyek sederhana dan untuk memulai dengan Arduino, tetapi konsensus yang saya dapatkan sejauh ini adalah bagi mereka yang baru mengenal Arduino dan / atau pemrograman pada umumnya.

Pemahaman saya adalah bahwa dimungkinkan untuk menulis program C dari awal, benar-benar di luar Arduino IDE, dan kemudian menggunakan alat seperti AVRDUDE untuk mengunggahnya ke MCU Arduino. Opsi ini, meskipun menarik dan menarik, membuat saya khawatir:

  • Pustaka Arduino apa yang perlu diimpor / ditautkan oleh program "mentah C" seperti itu? Saya berasumsi bahwa ketika sebuah program berbasis Arduino IDE mengeksekusi digitalWrite(...)itu benar - benar memanggil C lib, mungkin disediakan oleh Arduino, di bawah tenda. Saya khawatir tentang memastikan semua "lib yang mendasarinya" ini disertakan dengan program C saya. Pikiran?
  • Apakah ada hal lain yang "hilang" dengan terbang sendiri dan berkeliaran di luar Arduino IDE? Adakah kemampuan / fitur yang sekarang harus saya "roll sendiri"?
smeeb
sumber
arduino.stackexchange.com/questions/9538/... Jawaban atas pertanyaan saya membantu saya mengaturnya. Anda dapat mengganti / meninggalkan apa pun dari arduino. Anda dapat: -Buat papan Anda sendiri. -Gunakan IDE Anda sendiri. -Gunakan perpustakaan Anda sendiri.
Paul

Jawaban:

4

Di sini Anda adalah dua artikel bagus bagaimana Arduino sebenarnya bekerja di latar belakang. Bagaimana menghapus gesekan dari pemrograman mikrokontroler.

  1. Tur Arduino Internal: Bagaimana cara Hello World bekerja?
  2. Arduino dan GCC, menyusun dan mengunggah program hanya menggunakan makefile

Itu juga dibahas di sini Apakah ada cara atau tutorial untuk mengubah kode Arduino ke kode C?

Michal Foksa
sumber
Terima kasih @Michal Foksa (+1) - Saya kira saya hanya terkejut bahwa jawaban untuk ini tidak jauh lebih terkenal! Saya akan berpikir bahwa Arduino IDE memiliki, katakanlah, lib/suatu tempat direktori di bawah akar instalasi yang memiliki hal-hal seperti arduino-core.dll, arduino-io.dll, dll
smeeb
@smeeb: Anda benar, instalasi Arduino IDE memang - harus - menyertakan pustaka fungsi run-time dasar plus yang disediakan pengguna. Di tengah jalan halaman 2, di makefile, simbol LIBS menunjuk ke mereka. Mereka bukan .dlls (yang di Windows, dipanggil saat run-time); mereka adalah file objek (.o di bawah sistem unix-like, mungkin sama dengan Windows) yang secara statis dihubungkan dengan file objek yang dikompilasi ke dalam (akhirnya) file load .hex, yang merupakan gambar loader lengkap. ...
JRobert
... Sudah dikenal banyak orang yang menulis program untuk mencari nafkah, tetapi para perancang alat Arduino (merek) sengaja menyembunyikan sebanyak mungkin detail berantakan untuk membuat penerapan elektronik digital tersedia bagi orang tanpa harus menjadi profesional. programmer dan insinyur untuk melakukannya. Sejauh Anda menemukan informasi ini sulit ditemukan di komunitas Arduino, mereka telah berhasil!
JRobert
Sayangnya, untuk alasan warisan, Anda membuat perangkat lunak Arduino sangat berbeda dari cara standar yang diterima. Dalam 'menghilangkan gesekan' untuk membuatnya sederhana, mereka menciptakan komunitas besar yang tidak kompatibel. Setiap 'plugin' IDE adalah upaya untuk membuat sesuatu yang tidak standar berfungsi dengan cara yang hampir standar. Ingatlah hal itu saat Anda mengalami masalah.
5

Anda benar tentang perlunya menautkan ke perpustakaan lain. Namun, Anda tidak perlu khawatir tentang semua detail sendiri, kecuali jika Anda ingin / perlu melakukan sesuatu yang tidak biasa. Beberapa IDE alternatif sudah mendukung Arduino, biasanya melalui plugin yang menangani banyak detail secara otomatis.

Saya biasanya merekomendasikan Eclipse karena ini adalah IDE yang sangat banyak digunakan untuk berbagai keperluan. Namun, ada beberapa kemungkinan lain. Lihat pertanyaan ini untuk informasi lebih lanjut:

Peter Bloomfield
sumber
Terima kasih @Peter R. Bloomfield (+1) - namun saya benar-benar mencari jawaban sentris non-IDE. Bukannya saya menentang IDE, hanya saja untuk memahami "lansekap perpustakaan" Arduino, saya merasa bahwa IDE hanyalah perantara yang tidak perlu. Karena itu, saya akan berasumsi bahwa ada 1+ "lib inti" yang harus ditautkan oleh SEMUA aplikasi Arduino, dan ada lib opsional yang mungkin Anda perlukan atau mungkin tidak, tergantung pada apa yang sebenarnya dilakukan aplikasi Anda. Bisakah Anda mengarahkan saya ke daftar "lib inti" ini, serta yang opsional lainnya? Terima kasih lagi!
smeeb
Dan untuk memenuhi syarat apa yang saya katakan di atas tentang IDE menjadi "perantara tidak perlu", apa yang saya benar-benar berarti adalah: saya harus bisa menulis di luar C aplikasi dari setiap IDE (Arduino, Eclipse, atau sebaliknya), link ke libs Arduino yang kebutuhan aplikasi saya, dan masih mengkompilasi / menyebarkan aplikasi ke perangkat keras Arduino. Saya bertanya-tanya apa perpustakaan itu, dan di mana saya dapat menemukan dokumentasi tentang mereka.
smeeb
@ Smeeb Mengingat bahwa Arduino ditujukan untuk pemula, saya tidak berpikir ada banyak (jika ada) dokumentasi resmi di sepanjang garis itu. Saya berharap cara terbaik untuk meneliti itu akan mencari online untuk contoh-contoh dari makefile Arduino. Ada beberapa contoh lama di dekat bagian bawah halaman ini .
Peter Bloomfield
@smeeb: Seperti Anda, saya bukan penggemar IDE. Ada beberapa makefile Arduino generik yang mengambang di Web. Pada dasarnya anda harus mengkompilasi perpustakaan inti Arduino ke libore.a, kemudian mengkompilasi file .ino Anda dengan -x c++ -include Arduino.huntuk compiler Anda untuk memahaminya (ditambah sekelompok -D, -I, dll) dan hubungan dengan libcore.a.
Edgar Bonet
0

Ya, Anda dapat menulis program di luar Arduino IDE. Misalnya saya mencoba Eclipse IDE dengan plug-in AVR dan sekarang saya tetap dengan AVR Studio. Tentu saja, Anda tidak akan memiliki beberapa fungsi yang biasanya Anda gunakan saat menulis di Arduino IDE dan juga beberapa perpustakaan. Tapi, mengapa tidak mencoba menerapkan hal-hal. Mengapa membatasi diri pada fungsi dan perpustakaan yang dibuat oleh orang lain ketika Anda dapat belajar dan menulis milik Anda, mungkin lebih baik daripada yang sudah ada.

23ars
sumber
-3

ESP8266 + Arduino IDE 1.6.4 Portable - Panduan Instalasi Cepat Penuh www.instructables.com / .../ ESP8266-Arduino-IDE-164-Portable-F ...

Semua file Arduino IDE v 1.6.4 Anda, termasuk ekstensi ESP8266, sketsa, libra yang terinstal, dll. Harus ditempatkan hanya di bawah folder "arduino-1.6.4" yang baru dibuat.

SMILEA
sumber
Ini bukan jawaban yang sangat membantu. Tautan tersebut bukan tautan asli. Dan bahkan jika itu terjadi, Stack Exchange mengerutkan kening pada jawaban hanya tautan, karena situs tertaut dapat turun. Harap perluas jawaban Anda.
Nick Gammon