ฉันไม่ค่อยชำนาญภาษา C และฉันก็สงสัยว่ามีวิธีที่หลามสามารถใช้โปรแกรม Arduino หรือไม่ สิ่งนี้น่าจะต้องใช้ IDE ที่แตกต่างกันเพื่อให้สามารถดีบักสคริปต์ด้วยตนเองได้
ฉันไม่ค่อยชำนาญภาษา C และฉันก็สงสัยว่ามีวิธีที่หลามสามารถใช้โปรแกรม Arduino หรือไม่ สิ่งนี้น่าจะต้องใช้ IDE ที่แตกต่างกันเพื่อให้สามารถดีบักสคริปต์ด้วยตนเองได้
คำตอบ:
มันจะเป็นเรื่องยากมากที่จะทำให้ Python script ชนิดใดทำงานบน Arduino โดยตรง เหตุผลก็คือเป็นภาษาที่ตีความดังนั้นคุณจะต้องใช้ล่ามแปลภาษานอกเหนือจากสคริปต์ข้อความธรรมดา อาจมีหน่วยความจำไม่เพียงพอสำหรับทุกสิ่ง
ทางออกที่ดีที่สุดของคุณอาจจะหาวิธีในการรวบรวมสคริปต์ Python กับรหัสเครื่องพื้นเมือง (ซึ่งเป็นวิธีการทำงานของ C / C ++) ฉันเชื่อว่ามีโปรเจ็กต์รอบ ๆ ที่จะทำอะไรแบบนั้นกับแพลตฟอร์มอื่น ๆ (เท่าที่ฉันรู้) แต่มันก็ไม่สำเร็จสำหรับ Arduino เลย
คุณอาจพบข้อมูลที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับคำถามนี้ที่ Stack Overflow: มีวิธี "รวบรวม" ไพ ธ อนโค้ดบน Arduino (Uno)หรือไม่
ใช่เป็นไปได้ที่จะตั้งโปรแกรม Arduino โดยใช้ Python หนึ่งในโครงการดังกล่าวใน Github เป็นAPI v2 มันมีฟังก์ชั่นพื้นฐานมาก ๆ เช่น Digital I / O และ analog I / O
สามารถใช้สำหรับโครงการที่ง่ายมาก
* โปรเจคนี้เป็นบิตของการแฮ็คที่ "การเขียนโปรแกรม" บอร์ดโดยใช้การเชื่อมต่อแบบอนุกรม มันส่งคำสั่งผ่านการเชื่อมต่อแบบอนุกรมไปยังร่างที่เรียกใช้บนกระดานซึ่ง "ดำเนินการ" คำสั่ง Python
มีโครงการที่นำเป็นเครื่องเสมือนงูหลามจะไมโครคอนโทรลเลอร์รวมทั้งArduino เมกะ
นี่เป็นคำพูดจาก Ardunio Mega READMEซึ่งให้ความรู้สึกถึงสิ่งที่อาจเป็นเช่นนี้ (แม้ว่าฉันไม่ได้ทดสอบสิ่งนี้!):
ต่อไปนี้เป็นตัวอย่างเซสชันโดยใช้ ipm ::
ipm> import avr, sys ipm> avr.ddrA(0xff) ipm> avr.portA(0) # Pins 22-29 all at 0 V ipm> avr.portA(0xa5) ipm> sys.heap() (2622, 7424)
ฉันใช้ pyserial ที่ประสบความสำเร็จอย่างมากในการควบคุมพินบน arduino เวิร์กสเตชันของคุณ (แล็ปท็อปและอื่น ๆ ) เรียกใช้สคริปต์ไพ ธ อนจากนั้นสื่อสารแบบเรียลไทม์ไปยัง arduino
มันไม่เหมือนกับการเรียกใช้สคริปต์โดยตรงบน arduino แต่ฉันทำมากกว่านั้นเล็กน้อยที่ฉันคิดว่า arduino สามารถจัดการได้ (การวิเคราะห์เพลงการตี ri api ฯลฯ )
ตัวเลือกที่จะต้องพิจารณาก็คือArduino หยุน นอกจากชิป AVR ที่ Arduinos ส่วนใหญ่มีแล้วยังรวมถึงชิป MIPS ที่ใช้งานกับ Linux เนื่องจากเป็น linux คุณจึงสามารถเรียกใช้งานรหัสหลามได้อย่างง่ายดายและแพคเกจ pure-python ใด ๆ ก็สามารถติดตั้งได้อย่างง่ายดาย
อย่างไรก็ตามความสามารถในการรับเข้า / ส่งออกที่น่าสนใจทั้งหมดอยู่บนชิป AVR ไม่ใช่ในชิป MIPS โครงการต่าง ๆ เช่น Autobahn และLininoIOแก้ปัญหานี้โดยการเรียกใช้โปรแกรมพิเศษบนชิป AVR ซึ่งดำเนินการ I / O ภายใต้คำสั่งจากชิป MIPS
เรารู้ว่านี่เป็นปัญหาเปิดในการเขียนโปรแกรม Arduino และในโลกฝังตัวโดยทั่วไป มีโซลูชั่นหลากหลายที่มีอยู่ในตลาดเช่น MicroPython แต่ส่วนใหญ่จะทุ่มเทให้กับบอร์ดเฉพาะและไม่อนุญาตให้ทำให้ระบบเรียลไทม์ เรากำลังแก้ไขปัญหา! VIPER เป็นเครื่องเสมือน Python สำหรับ Arduino DUE และสถาปัตยกรรม ARM 32 บิตทั้งหมดที่ทำงานบนระบบปฏิบัติการแบบเรียลไทม์ ซึ่งหมายความว่าคุณสามารถพัฒนาสคริปต์ Python ที่สามารถประมวลผลได้โดย Arduino DUE, UDOO, Spark (ทุกบอร์ด) และบน ST นิวคลีโอบอร์ดใหม่ ยิ่งไปกว่านั้นหากคุณต้องการสมรรถนะสูงและคุณมีทักษะใน C คุณสามารถพัฒนาโมดูลเรียลไทม์สำหรับ VIPER ที่สามารถเรียกใช้และจัดการโดยสคริปต์ Python
คุณสามารถเห็นการทำงานของ VIPER ได้ที่นี่http://bit.ly/kickviper
ใช่. Python สามารถใช้โปรแกรม Arduino เพียงนำเข้า pyfirmata ซึ่งสามารถเชื่อมต่อ Arduino กับ Python ได้
ฉันกลัว Arduino IDE ไม่ได้ใช้ภาษา C / C ++ มันมาจากการประมวลผล IDE และค่อนข้างง่ายไวยากรณ์เหมือน C / Java