ฉันเข้าใจ Arduino: ตอนนี้อะไร


18

เอาล่ะฉันเล่นไปเรื่อย ๆ กับ Arduino ซึ่งฉันรู้สึกสบายใจกับมัน สิ่งที่ทำในตอนนี้คือการเรียนรู้ด้านอิเล็กทรอนิกส์มากกว่าด้านของ Arduino

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


คุณมีเป้าหมายที่เฉพาะเจาะจงหรือโครงการในใจ?

ฉันเห็นด้วย. สำหรับฉันนี่คือทั้งหมดที่เกี่ยวกับการทำสิ่งที่เฉพาะเจาะจง Arduino เป็นเพียงเครื่องมือที่ไม่เหมือนใคร
เดิร์

สิ่งที่ฉันกำลังทำอยู่ตอนนี้คืออาร์เรย์ LED แบบมัลติเพล็กซ์ ไม่ใช่เรื่องยากใน Arduino แต่ฉันต้องการกำจัดวงล้อฝึกอบรม ในที่สุดฉันก็หมายความว่ามี ATmega168 ชิปอยู่บนบอร์ด Arduino ถ้าฉันสามารถหาวิธีทำงานกับมันได้โดยตรงฉันคิดว่านั่นจะทำให้พอใจในสิ่งที่ฉันพยายามจะทำ
Chris B. Behrens

จริงๆแล้วคุณสวยตรงไปที่ชิปด้วย Arduino มันไม่ได้มีไดรเวอร์จำนวนมากหรืออะไรก็ตามที่ติดอยู่กับหมุด ส่วนหัวไปที่นั่นโดยตรง อาจจะเป็น Breadboarduino หรือไม่?
AngryEE

@angryee - ฉันคิดว่า Chris หมายถึงเขียนโปรแกรมชิป ATmega โดยตรงโดยไม่ต้องมีห้องสมุด Arduino IDE + ซึ่งอาจถูกมองว่าเป็นวงล้อฝึกอบรม
J. Polfer

คำตอบ:



12

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

เริ่มต้นด้วยโปรแกรมที่ใช้งานได้และแทนที่การเรียกใช้ไลบรารี Arduino ด้วยรุ่นของคุณเองทีละฟังก์ชั่น คุณจะได้เรียนรู้มากมายเกี่ยวกับการลงทะเบียนการควบคุมเวลาการทำงานของบิตและอื่น ๆ หากคุณไม่ได้ใช้งาน อ่านแผ่นข้อมูล ATMega328 ในเชิงลึก - ทุกสิ่งที่คุณต้องการอยู่ในนั้น

ลองใช้ IDE อื่นเช่น AVR Studio หรือ Code :: Blocks เรียนรู้เครื่องมือ GCC ลองใช้เทคนิคการเข้ารหัสขั้นสูงเพิ่มเติม - การทดสอบหน่วยการครอบคลุมการทำโปรไฟล์การตรวจสอบผ้าสำลี / เฝือก ใส่ RTOS ใน Arduino

โปรแกรมเมอร์ / คอนโทรลเลอร์แบบรวมไม่ได้เป็นสัญญาณของความอ่อนแอ แต่เป็นเพียงตัวเลือกการออกแบบ 'จุดอ่อน' เพียงอย่างเดียวที่อาจเกิดขึ้นได้คือการขาดการดีบักในวงจร ซื้อ AVR Dragon แล้วคุณจะได้ราคา $ 50


9

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

นี่คือจุดอ่อนของ Arduino:

  • การทำเกลียวซึ่งหมายถึงการรันโค้ดสองส่วนสอดแทรกเพื่อให้ดูเหมือนว่าพวกมันกำลังถูกเรียกใช้งานในเวลาเดียวกัน
  • เนื้อหาอินเทอร์เน็ตขนาดกลางหรือแบนด์วิดธ์สูงเช่นการสตรีมเสียง
  • การคำนวณที่จริงจังหรืองานที่ต้องการการคำนวณที่รวดเร็วเพื่อการตอบสนองที่รวดเร็ว
  • ทุกสิ่งที่ทำได้ง่ายขึ้นโดยมีระบบไฟล์รอบ ๆ เช่นการบันทึกข้อมูลหรือการจัดการกับรูปภาพ

ฉันนึกภาพออกได้สองทาง:

  1. บอร์ดฝังตัวที่ทรงพลังกว่าพร้อมระบบปฏิบัติการขนาดเล็กเช่น Beagleboard หรือ Gumstix
  2. บีบประสิทธิภาพมากขึ้นจากชิป Atmega ขนาดเล็กโดยใช้การขัดจังหวะฮาร์ดแวร์

ฉันสามารถเพิ่มรายละเอียดเพิ่มเติมหากคุณแสดงความคิดเห็นเกี่ยวกับทิศทางที่น่าสนใจยิ่งขึ้น (อันที่สองราคาถูกกว่าแน่นอน)


มันตลก ... การเขียนโปรแกรมชิปที่คล้ายกันเพื่อทำสิ่งเดียวกัน แต่ด้วยวิธีที่ยากขึ้นคือสิ่งที่ฉันมีอยู่ในใจ :) พื้นหลังเล็กน้อย - ฉันเป็นสถาปนิกซอฟต์แวร์ที่มีประสบการณ์หลายปี ซอฟต์แวร์การคำนวณระบบไฟล์ ... นั่นคือทั้งหมดที่ง่ายสำหรับฉัน สิ่งที่ฉันต้องการที่จะตบหัวฉันคืออิเล็กทรอนิกส์ เหตุผลที่ฉันต้องการก้าวไปไกลกว่า Arduino ก็คือฉันต้องการที่จะสามารถผลิตอุปกรณ์จุดประสงค์เดียวที่ไม่มีค่าใช้จ่ายทางกายภาพ (และราคา) ของบอร์ด Arduino ฉันคิดจากสิ่งที่คุณพูด # 2 คือสิ่งที่ฉันกำลังมองหา
Chris B. Behrens

ว้าว ... ความคิดเห็นนั้นฟังดูเป็นเรื่องจริง ฉันไม่ได้หมายความว่าอย่างนั้น ... อย่างไรก็ตามฉันแค่ตั้งใจว่าฉันต้องการกำจัดวงล้อฝึกอบรมฮาร์ดแวร์ที่ Arduino มอบให้ฉัน โดยเฉพาะอย่างยิ่งฉันกำลังทำงานกับอาร์เรย์ LED คล้ายกับ LOLShield แม้ว่าฉันคิดว่าฉันจะทวีคูณมันแทน ฉันสามารถทำได้ด้วย Arduino แต่ไม่จำเป็นต้องมีทิศทาง TIA
Chris B. Behrens

อ่าสิ่งต่าง ๆ ทางอิเล็กทรอนิกส์มากกว่าซอฟต์แวร์ - และอื่น ๆ ... บางทีคุณอาจได้รับประสบการณ์ที่ดีในการเชื่อมต่อเซ็นเซอร์ / บันทึกข้อมูล มันไม่ได้มีเสน่ห์ แต่การเชื่อมต่อเซ็นเซอร์กับบอร์ดของคุณคุณจะต้องเรียนรู้เพิ่มเติมเกี่ยวกับฮาร์ดแวร์ Arduino ไม่ได้มีล้อการฝึกอบรมฮาร์ดแวร์จำนวนมากแน่นอนไม่มากเท่าซอฟต์แวร์ อาจเป็นหุ่นยนต์ที่รวมเซ็นเซอร์หลายประเภทเช่นอัลตร้าซาวด์, ระยะ IR, ตัวเข้ารหัสเพลา ฯลฯ เป็นไปได้อย่างแน่นอนกับ Arduino และฮาร์ดแวร์อื่น ๆ อีกมากมาย
AngryEE

7

เรียนรู้ I2C, SPI, 1wire และลองเชื่อมต่อเซ็นเซอร์ด้วยอินเตอร์เฟสดังกล่าว อ่านเอกสารข้อมูลจำนวนมากของเซ็นเซอร์ดังกล่าวและพยายามทำความเข้าใจทุกสิ่งที่อยู่ในเซ็นเซอร์ ถามคำถามเมื่อติด เรียนรู้ MODBUS (RTU / ASCII / TCP) หรือโปรโตคอลที่คล้ายกันที่สามารถเปิดอุปกรณ์ของคุณไปทั่วโลกเมื่อคุณฝังไว้ในอุปกรณ์ เรียนรู้อุปกรณ์อิเล็กทรอนิกส์ทั่วไปและพยายามเชื่อมต่อรีเลย์ triac สิ่งที่ดึงขึ้นและลงสิ่งที่จัดหาและจมวิธีการวาดแผนงานและเชื่อมต่อไดรเวอร์พื้นฐานกับ MCU ของคุณ


6

คุณอาจต้องการย้ายจาก Arduino เป็นแพลตฟอร์มเป็น AVR เป็นแพลตฟอร์ม เช่นเรียนรู้วิธีการเขียนโปรแกรม / ใช้ไมโครคอนโทรลเลอร์ AVR บริสุทธิ์สำหรับโครงการของคุณแทน Arduino ด้วยวิธีนี้คุณจะไม่ต้องซื้อบอร์ด Arduino อีกต่อไปสำหรับแต่ละโครงการที่คุณทำหรือสำหรับการทำโปรเจ็กต์กับเพื่อน ๆ นี่เป็นขั้นตอนที่ค่อนข้างง่าย (Arduino เป็นเพียงไมโครคอนโทรลเลอร์ Atmel AVR ธรรมดา แต่มีบอร์ดพิเศษและ bootloader) แต่มันใหญ่สำหรับการขาย / ให้โครงการกับเพื่อน Toolchain ก็เหมือนกัน: คุณใช้ avr-gcc หรือ avr-g ++ พร้อมกับ make ร่วมกับยูทิลิตี้การเขียนโปรแกรมเพื่อติดตั้งโปรแกรมของคุณ


มันค่อนข้างง่ายในการโหลด bootloader บนชิปและประสานบอร์ดของคุณเองถ้าคุณต้องการแจกโปรเจ็กต์ หรือสั่งซื้อชุด RBBB ในราคา $ 12.50 ( goo.gl/0yqr ) ไม่จำเป็นต้องซื้อบอร์ดราคา $ 30 + สำหรับแต่ละโครงการ Arduino
Davorak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.