กำลังเขียนโปรแกรม C นอก Arduino IDE?


12

ฉันชอบความคิดในการใช้ Arduino IDE สำหรับโครงการที่เรียบง่ายและสำหรับการเริ่มต้นกับ Arduino แต่ฉันทามติที่ฉันได้รับมาจนถึงตอนนี้ก็คือสำหรับผู้ที่เพิ่งเริ่มใช้ Arduino และ / หรือการเขียนโปรแกรมทั่วไป

ความเข้าใจของฉันคือมันเป็นไปได้ที่จะเขียนโปรแกรม C ตั้งแต่เริ่มต้นนอกเหนือจาก Arduino IDE อย่างสมบูรณ์แล้วใช้เครื่องมือเช่น AVRDUDE เพื่ออัปโหลดไปยัง Arduino MCU ตัวเลือกนี้แม้ว่าจะน่าสนใจและน่าสนใจทำให้ฉันมีข้อกังวลเล็กน้อย:

  • ห้องสมุด Arduino ใดที่จะต้องนำเข้า / เชื่อมโยงโดยโปรแกรม "raw C" ดังกล่าว ฉันคิดว่าเมื่อโปรแกรมที่ใช้ Arduino IDE ดำเนินการdigitalWrite(...)มันเรียก C lib จริง ๆซึ่งอาจมาจาก Arduino ภายใต้ประทุน ฉันกังวลเกี่ยวกับการทำให้แน่ใจว่า "libs พื้นฐาน" เหล่านี้ทั้งหมดได้รวมอยู่ในโปรแกรม C ของฉัน คิด?
  • มีอะไรอีกที่ "หายไป" จากการบินเดี่ยวและออกไปข้างนอก Arduino IDE? ความสามารถ / ฟีเจอร์ใด ๆ ที่ฉันจะต้อง "ม้วนตัวเอง" ตอนนี้?

arduino.stackexchange.com/questions/9538/…คำตอบสำหรับคำถามของฉันช่วยให้ฉันตั้งค่าได้ คุณสามารถแทนที่ / ปล่อยอะไรจาก arduino คุณสามารถ: - ทำบอร์ดของคุณเอง - ใช้ IDE ของคุณเอง - ใช้ห้องสมุดของคุณเอง
พอล

คำตอบ:


4

ที่นี่คุณเป็นสองบทความที่ดีว่า Arduino ใช้งานได้จริงในพื้นหลังอย่างไร วิธีกำจัดแรงเสียดทานจากการเขียนโปรแกรมไมโครคอนโทรลเลอร์

  1. ทัวร์ทั่วโลกของ Arduino: Hello World ทำงานอย่างไร?
  2. Arduino และ GCC รวบรวมและอัพโหลดโปรแกรมโดยใช้ไฟล์สร้างไฟล์เท่านั้น

มีการพูดคุยกันที่นี่มีวิธีหรือแบบฝึกหัดในการแปลงรหัส Arduino เป็นรหัส C หรือไม่?


ขอบคุณ @Michal Foksa (+1) - ฉันคิดว่าฉันแค่ตกใจที่คำตอบนี้ไม่เป็นที่รู้จักมากขึ้น! ผมจะคิดว่า Arduino IDE มีการพูดlib/ที่ไหนสักแห่งไดเรกทอรีภายใต้รากติดตั้งที่มีสิ่งที่ชอบarduino-core.dll, arduino-io.dllฯลฯ
smeeb

@smeeb: ถูกต้องการติดตั้ง Arduino IDE ทำ - ต้อง - รวมไลบรารีของฟังก์ชันการทำงานพื้นฐาน หน้าครึ่งของลิงก์ 2 ใน makefile สัญลักษณ์ LIBS จะชี้ไปที่พวกเขา พวกเขาไม่ใช่. dll (ซึ่งใน Windows นั้นถูกเรียกใช้ในเวลาทำงาน); มันเป็นไฟล์ออบเจ็กต์ (.o ภายใต้ระบบที่เหมือนยูนิกซ์อาจจะเหมือนกันใน Windows) ที่เชื่อมโยงกับไฟล์ออบเจ็กต์ที่คอมไพล์ของคุณในรูปแบบคงที่ (ในที่สุด) ไฟล์โหลด. hex ซึ่งเป็นอิมเมจโหลดเดอร์ที่สมบูรณ์ ...
JRobert

... เป็นที่รู้จักกันดีสำหรับผู้ที่เขียนโปรแกรมเพื่อการใช้ชีวิต แต่นักออกแบบเครื่องมือ Arduino (แบรนด์) ได้ซ่อนรายละเอียดที่ยุ่งเหยิงให้มากที่สุดเท่าที่จะเป็นไปได้เพื่อให้การใช้งานอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลกับผู้คนโดยไม่ต้องเป็นมืออาชีพ โปรแกรมเมอร์และวิศวกรที่จะทำ เท่าที่คุณหาข้อมูลนี้ยากที่จะพบในชุมชน Arduino พวกเขาประสบความสำเร็จ!
JRobert

น่าเสียดายที่ด้วยเหตุผลดั้งเดิมคุณสร้างซอฟต์แวร์ Arduino ค่อนข้างแตกต่างจากวิธีมาตรฐานที่ยอมรับ ใน 'การลบแรงเสียดทาน' เพื่อให้ง่ายพวกเขาสร้างชุมชนที่เข้ากันไม่ได้ขนาดใหญ่ 'ปลั๊กอิน' ของ IDE ทุกตัวเป็นความพยายามที่จะทำให้บางสิ่งที่ไม่ได้มาตรฐานทำงานใกล้เคียงกับมาตรฐาน พึงระลึกไว้เสมอว่าคุณประสบปัญหา

5

คุณพูดถูกต้องเกี่ยวกับการเชื่อมโยงกับห้องสมุดอื่น ๆ อย่างไรก็ตามคุณไม่จำเป็นต้องกังวลเกี่ยวกับรายละเอียดทั้งหมดด้วยตัวคุณเองเว้นแต่ว่าคุณต้องการ / จำเป็นต้องทำสิ่งผิดปกติ IDEs ทางเลือกหลายตัวรองรับ Arduino โดยทั่วไปแล้วผ่านปลั๊กอินที่จัดการรายละเอียดจำนวนมากโดยอัตโนมัติ

ฉันมักจะแนะนำ Eclipse เพราะมันเป็น IDE ที่ใช้กันอย่างแพร่หลายสำหรับวัตถุประสงค์ต่างๆ อย่างไรก็ตามมีความเป็นไปได้อื่น ๆ อีกมากมาย ดูคำถามนี้สำหรับข้อมูลเพิ่มเติม:


ขอบคุณ @Peter R. Bloomfield (+1) - แต่ฉันกำลังมองหาคำตอบที่ไม่ใช่ IDE ไม่ใช่ว่าฉันมีอะไรที่ขัดกับ IDEs มันแค่นั้นเพื่อที่จะเข้าใจ "ภูมิทัศน์ในห้องสมุด" ของ Arduino ฉันรู้สึกว่า IDEs เป็นแค่คนกลางที่ไม่จำเป็น ต้องบอกว่าฉันจะสมมติว่ามี 1+ "core libs" ที่แอพ Arduino ทั้งหมดต้องเชื่อมโยงด้วยและมี libs เพิ่มเติมที่คุณอาจหรือไม่จำเป็นขึ้นอยู่กับสิ่งที่แอปของคุณทำ คุณช่วยชี้ให้ฉันดูรายการ "core libs" เหล่านี้รวมถึงรายการเสริมอื่น ๆ ได้หรือไม่ ขอบคุณอีกครั้ง!
smeeb

และเพื่อให้มีคุณสมบัติสิ่งที่ฉันพูดข้างต้นเกี่ยวกับ IDEs เป็น "คนกลางที่ไม่จำเป็น" สิ่งที่ฉันหมายถึงจริงๆ : ฉันควรจะสามารถเขียนแอป C นอกIDE ใด ๆ (Arduino, Eclipse หรืออื่น ๆ ) เชื่อมโยงไปยัง Arduino libs ที่ แอพของฉันต้องการและยังคงรวบรวม / ปรับใช้แอพกับฮาร์ดแวร์ Arduino ฉันสงสัยว่าห้องสมุดเหล่านั้นคืออะไรและฉันสามารถหาเอกสารของพวกเขาได้จากที่ไหน
smeeb

@smeeb เนื่องจาก Arduino มีจุดประสงค์เพื่อผู้เริ่มต้นฉันไม่คิดว่าจะมีเอกสารอย่างเป็นทางการ (ถ้ามี) ตามบรรทัดเหล่านั้น ฉันคาดหวังวิธีที่ดีที่สุดในการวิจัยมันคือการค้นหาออนไลน์สำหรับตัวอย่างของ makefiles Arduino มีตัวอย่างเก่าอยู่ด้านล่างของหน้านี้
Peter Bloomfield

@smeeb: เช่นเดียวกับคุณฉันไม่ใช่แฟนของ IDEs มี makefiles Arduino ทั่วไปสองสามตัวที่ลอยอยู่บนเว็บ คุณโดยทั่วไปมีการรวบรวมห้องสมุดหลัก Arduino เข้า libore.a แล้วรวบรวมไฟล์ .ino ของคุณด้วย-x c++ -include Arduino.hสำหรับคอมไพเลอร์ของคุณจะเข้าใจมัน (บวกพวงของ-D, -Iฯลฯ ) และเชื่อมโยงกับ libcore.a
Edgar Bonet

0

ใช่คุณสามารถเขียนโปรแกรมนอก Arduino IDE ตัวอย่างเช่นฉันลอง Eclipse IDE พร้อมด้วยปลั๊กอิน AVR และตอนนี้ฉันติดกับ AVR Studio แน่นอนว่าคุณจะไม่มีฟังก์ชั่นบางอย่างที่คุณมักจะใช้เมื่อคุณเขียนใน Arduino IDE และบางไลบรารี แต่ทำไมไม่ลองใช้สิ่งต่าง ๆ เหตุใดจึงต้อง จำกัด ตัวเองกับหน้าที่และไลบรารีที่ผู้อื่นทำเมื่อคุณสามารถเรียนรู้และเขียนความเป็นเจ้าของของคุณได้อาจจะดีกว่าของที่มีอยู่เดิม


-3

ESP8266 + Arduino IDE 1.6.4 แบบพกพา - คู่มือการติดตั้งอย่างรวดเร็วแบบเต็ม www.instructables.com /.../ ESP8266-Arduino-IDE-164-Portable-F ...

ไฟล์ Arduino IDE v 1.6.4 ทั้งหมดของคุณรวมถึงส่วนขยาย ESP8266 ภาพร่างการติดตั้ง libraies ฯลฯ ควรอยู่ภายใต้โฟลเดอร์ "arduino-1.6.4" ที่สร้างขึ้นใหม่


นี่ไม่ใช่คำตอบที่เป็นประโยชน์มาก ลิงค์ไม่ใช่ลิงค์จริง และถึงแม้ว่ามันจะเป็นแบบนั้นการแลกเปลี่ยนแบบสแต็คก็ขมวดคิ้วเมื่อตอบเพียงลิงก์เท่านั้นเนื่องจากไซต์ที่เชื่อมโยงสามารถลงได้ โปรดขยายคำตอบของคุณ
Nick Gammon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.