Arduino Basic Tutorial สำหรับผู้เริ่มต้น: 6 ขั้นตอน
Arduino Basic Tutorial สำหรับผู้เริ่มต้น: 6 ขั้นตอน
Anonim
Arduino Basic Tutorial สำหรับผู้เริ่มต้น
Arduino Basic Tutorial สำหรับผู้เริ่มต้น
Arduino Basic Tutorial สำหรับผู้เริ่มต้น
Arduino Basic Tutorial สำหรับผู้เริ่มต้น

1. Arduino คืออะไร?

Arduino เป็นแพลตฟอร์มสำหรับระบบฝังตัว ซึ่งส่วนใหญ่ใช้ไมโครคอนโทรลเลอร์ 8 บิตจากตระกูล AVR ข้อยกเว้นคือ Arduino Due ซึ่งใช้แกน ARM Cortex แบบ 32 บิต กล่าวคือ เป็นแผงวงจรพิมพ์ที่มีไมโครคอนโทรลเลอร์และเอาท์พุตที่สามารถใช้งานอุปกรณ์ภายนอกได้ เช่น เซ็นเซอร์ ตัวควบคุมมอเตอร์ จอภาพ ฯลฯ ด้วยขั้วต่อแบบหมุดทอง ทำให้โมดูลต่างๆ สามารถเชื่อมต่อได้โดยใช้สายเชื่อมต่อที่เปิดเผยต่อสาธารณะ

Arduino เวอร์ชันส่วนใหญ่ไม่ต้องการโปรแกรมเมอร์ภายนอกใดๆ สิ่งที่คุณต้องทำคือเชื่อมต่อกับคอมพิวเตอร์ด้วยสาย miniUSB-USB

ข้อดีอย่างหนึ่งของแพลตฟอร์มนี้คือสภาพแวดล้อมอิสระที่มีไลบรารี ตัวอย่าง แบบฝึกหัดสำหรับการจัดการอุปกรณ์ภายนอกประเภทต่างๆ มากมาย

2. เวทีนี้เหมาะกับใคร?

Arduino มีไว้สำหรับทั้งผู้เริ่มต้นและโปรแกรมเมอร์อิเล็กทรอนิกส์ขั้นสูง

ผู้ที่เริ่มต้นการผจญภัยด้วยระบบประเภทนี้จะช่วยประหยัดเวลาและความกังวลอย่างมากในการกำหนดค่าโปรแกรมเมอร์ ตรวจสอบการเชื่อมต่อ และติดตั้งไดรเวอร์ เป็นที่ทราบกันดีว่าควรเรียนรู้จากตัวอย่าง สำหรับ Arduino มีมากมายบนเว็บไซต์ของโครงการและบนอินเทอร์เน็ตทั้งหมด

ผู้ใช้ขั้นสูงจะชอบไลบรารีจำนวนมาก ทั้งไลบรารีเริ่มต้น (รวมถึง: EEPROM, Ethernet, Display, Servo, SPI, TWI, WiFi) รวมถึงไฟล์ที่ผู้ผลิตโมดูลอิเล็กทรอนิกส์ให้บริการ (เช่น ซัพพลายเออร์ของเรา - Pololu)

ตัวอย่าง:

การรองรับจอ LCD ขนาด 16x2 ยอดนิยมทำให้โค้ดง่ายๆ ไม่กี่บรรทัด:

LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // การเพิ่มโอกาสในการขาย

lcd.begin (16, 2); // ระบุประเภทการแสดงผลแบบ 16 คอลัมน์ 2 บรรทัด

lcd.print ("สวัสดีชาวโลก"); // ระบุข้อความที่จะแสดง

สามารถอ่านโค้ดแบบเต็มที่แสดงคำว่า "Hello World" และแผนภาพการเชื่อมต่อของจอแสดงผลได้ที่ Arduino.cc

3. เลือกรุ่นไหนดี?

ทางเลือกของรุ่นขึ้นอยู่กับวัตถุประสงค์การใช้งานของโมดูล ในร้านของเรามี:

ขั้นตอนที่ 1: Arduino Uno R3

Arduino Uno R3
Arduino Uno R3

Arduino Uno R3

โมดูลรุ่นที่ง่ายที่สุด บนจานคุณจะพบ:

· ไมโครคอนโทรลเลอร์ Atmega328 (แฟลช 32kB, SRAM 2kB, ความเร็วสัญญาณนาฬิกา 16MHz)

· 14 อินพุต / เอาท์พุตดิจิตอล - ซึ่งสามารถเชื่อมต่อได้เช่น LED, ปุ่ม, จอแสดงผล ฯลฯ

· เอาต์พุต PWM 6 ช่อง - ตัวอย่างเช่น สำหรับควบคุมความเร็วในการหมุนของมอเตอร์ การตั้งค่าตำแหน่งเซอร์โว

· 6 อินพุตแบบอะนาล็อก - ช่วยให้ใช้งานเซ็นเซอร์ทุกชนิด ทรานสดิวเซอร์ที่มีเอาต์พุตแบบอะนาล็อก

อินเทอร์เฟซการสื่อสาร:

· UART - หนึ่งในวิธีที่ง่ายที่สุดในการแลกเปลี่ยนข้อมูลกับพีซี

· I2C / TWI - รองรับเซ็นเซอร์, วงจรเวลา

· SPI - การสื่อสารกับทรานสดิวเซอร์หรือหน่วยความจำภายนอกที่รวดเร็ว

แหล่งจ่ายไฟ:

· USB หรือแหล่งภายนอก (เช่นอะแดปเตอร์ AC)

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

ขั้นตอนที่ 2: Arduino Leonardo

Arduino Leonardo
Arduino Leonardo

Arduino Leonardo

· เวอร์ชันอื่นที่เราสามารถพบ:

· ไมโครคอนโทรลเลอร์ ATmega32u4 (แฟลช 32kB, SRAM 2.5kB, ความเร็วสัญญาณนาฬิกา 16MHz)

· 20 อินพุต / เอาท์พุตดิจิตอล - ซึ่งสามารถเชื่อมต่อได้เช่น LED, ปุ่ม, จอแสดงผล ฯลฯ

· 7 เอาต์พุต PWM

· อินพุตแบบอะนาล็อก 12 ช่อง - มากกว่ารุ่น Uno ถึงสองเท่า หมายความว่าสามารถเชื่อมต่อเซ็นเซอร์จำนวนมากขึ้นด้วยเอาต์พุตแบบอะนาล็อก

อินเทอร์เฟซการสื่อสาร:

· UART - หนึ่งในวิธีที่ง่ายที่สุดในการแลกเปลี่ยนข้อมูลกับพีซี

· I2C / TWI - รองรับเซ็นเซอร์, วงจรเวลา

· SPI - การสื่อสารกับทรานสดิวเซอร์หรือหน่วยความจำภายนอกที่รวดเร็ว

· USB - ให้คุณเชื่อมต่ออุปกรณ์คอมพิวเตอร์ยอดนิยม

· แหล่งจ่ายไฟ: USB หรือแหล่งภายนอก (เช่น อะแดปเตอร์ AC)

หากโครงการของเราคือการใช้อุปกรณ์ที่เชื่อมต่อผ่านอินเทอร์เฟซ USB Arduino Leonardo จะเป็นตัวเลือกที่สมบูรณ์แบบ ระบบมีตัวควบคุม USB ในตัว ซึ่งแตกต่างจากตัวอื่นๆ

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

ขั้นตอนที่ 3: Arduino Mega 2560

Arduino Mega 2560
Arduino Mega 2560

Arduino Mega 2560

เวอร์ชันที่ออกแบบมาเพื่อใช้งานโครงการที่กว้างขวางยิ่งขึ้น มีอินพุต / เอาท์พุตดิจิตอลมากถึง 54 รายการ หน่วยความจำและอินเทอร์เฟซการสื่อสารมากกว่า Arduino UNO และ Leonardo แผ่นประกอบด้วย: ATmega2560 จากตระกูล AVR (แฟลช 256kB, SRAM 8kB, EEPROM 4kb ความเร็วสัญญาณนาฬิกา 16MHz)54 อินพุต / เอาต์พุตดิจิตอลเอนกประสงค์14 เอาต์พุต PWM16 อินพุตอะนาล็อก -อินเทอร์เฟซการสื่อสาร:4 xUART - หนึ่งในวิธีที่ง่ายที่สุดในการแลกเปลี่ยนข้อมูลกับ PCI2C / TWI - รองรับเซ็นเซอร์, วงจรเวลาSPI - การสื่อสารกับทรานสดิวเซอร์ที่รวดเร็วหรือหน่วยความจำภายนอก แหล่งจ่ายไฟ: USB หรือแหล่งภายนอก (เช่นอะแดปเตอร์ AC) โมดูลมีราคาแพงกว่ารุ่นก่อนหน้า แต่มีตัวเลือกมากกว่า ไมโครคอนโทรลเลอร์ Atmega2560 มีขอบที่สมบูรณ์และหน่วยความจำจำนวนมาก 256kB Flash - ให้คุณรองรับโค้ดเสริม 4kB EEPROMU สำหรับการเขียนข้อมูลจำนวนมาก

ขั้นตอนที่ 4: Arduino Mega ADK

Arduino Mega ADK

นอกจากข้อดีของ Arduino Mega แล้ว ADK ยังมีความสามารถในการเชื่อมต่อกับระบบ Android ผ่านอินเทอร์เฟซ USB ที่ควบคุมโดยชิป MAX34210 ข้อกำหนดโมดูลคล้ายกับ Arduino Mega:

· ATmega2560 จากตระกูล AVR (Flash 256kB, SRAM 8kB, EEPROM 4kb clock speed 16MHz)

· 54 อินพุต / เอาท์พุตดิจิตอลเอนกประสงค์

· 14 เอาต์พุต PWM

· 16 อินพุตแบบอะนาล็อก

อินเทอร์เฟซการสื่อสาร:

· 4 xUART - หนึ่งในวิธีที่ง่ายที่สุดในการแลกเปลี่ยนข้อมูลกับพีซี

· I2C / TWI - รองรับเซ็นเซอร์, วงจรเวลา

· SPI - การสื่อสารกับทรานสดิวเซอร์หรือหน่วยความจำภายนอกที่รวดเร็ว

· แหล่งจ่ายไฟ: USB หรือแหล่งภายนอก (เช่น อะแดปเตอร์ AC)

เวอร์ชัน ADK ออกแบบมาสำหรับโครงการที่ใช้การสื่อสารกับ Android ตัวควบคุม USB ในตัวยังช่วยให้คุณเชื่อมต่อกล้อง ตัวควบคุมเกม หรือตัวควบคุมการเคลื่อนไหว

ขั้นตอนที่ 5: Arduino Leonardo Ethernet

Arduino Leonardo Ethernet

ข้อได้เปรียบหลักของโมดูลคือการเชื่อมต่อกับเครือข่ายได้ง่าย โมดูลนี้มีซ็อกเก็ตเครือข่ายพร้อมตัวควบคุมอีเทอร์เน็ต นอกจากนี้ยังมีช่องเสียบการ์ดหน่วยความจำ microSD บนบอร์ด ข้อมูลจำเพาะคล้ายกับ Arduino Leonardo:

· ไมโครคอนโทรลเลอร์ Atmega32u4 (แฟลช 32kB, SRAM 2.5kB, · ความเร็วสัญญาณนาฬิกา 16MHz)

· 20 อินพุต / เอาต์พุตดิจิตอล - ซึ่งสามารถเชื่อมต่อได้เช่น LED, ปุ่ม, จอแสดงผล ฯลฯ

· เอาต์พุต PWM 7 ช่อง - ตัวอย่างเช่น สำหรับควบคุมความเร็วในการหมุนของมอเตอร์ การตั้งค่าตำแหน่งเซอร์โว

· 12 อินพุตแบบอะนาล็อก - อนุญาตให้ใช้งานเซ็นเซอร์ทุกประเภท ทรานสดิวเซอร์ที่มีเอาต์พุตแบบอะนาล็อก

อินเทอร์เฟซการสื่อสาร:

· UART - หนึ่งในวิธีที่ง่ายที่สุดในการแลกเปลี่ยนข้อมูลกับพีซี

· I2C / TWI - รองรับเซ็นเซอร์, วงจรเวลา

· SPI - การสื่อสารกับทรานสดิวเซอร์หรือหน่วยความจำภายนอกที่รวดเร็ว

· พลังงาน: แหล่งภายนอก (เช่น อะแดปเตอร์ AC)

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

ขั้นตอนที่ 6: Arduino Due

Arduino Due
Arduino Due

Arduino Due

ด้วย Arduino Due ผู้ใช้สามารถสร้างระบบโดยใช้ไมโครคอนโทรลเลอร์ ARM 32 บิต Cortex M3 บนพื้นฐานของไลบรารี Arduino ข้อกำหนดมีดังนี้:

· แรงดันไฟฟ้า: 7V ถึง 12V (แนะนำ), 6V-20V (สูงสุด)

· Mikrokontroler: AT91 SAM3X8E, rdzeń 32 บิต ARM Cortex M3

· ความถี่สัญญาณนาฬิกาสูงสุด: 84MHz

· หน่วยความจำ SRAM: 96 kB หน่วยความจำแฟลช: 512 kB

· พิน I / O: 54

· ช่องสัญญาณ PWM: 12

· จำนวนอินพุตแบบอะนาล็อก: 12 (ช่องแปลง A / D)

· ตัวแปลง D / A (ดิจิตอล-อนาล็อก)

·ตัวควบคุม DMA

· อินเทอร์เฟซแบบอนุกรม: UART, SPI, I2C, CAN, USB

· ดีบักเกอร์ JTAG

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

นอกเหนือจากข้างต้น Arduino ยังมี:

Arduino Zero M0 Pro - Cortex M0 32 บิต - Atmel ATSAMD21G18 โมดูลไมโครคอนโทรลเลอร์ 32 บิตที่ติดตั้งแกน ARM Cortex M-0 มีหน่วยความจำแฟลช 256 KB, RAM 32 KB, I / Os ดิจิตอล 14 ช่อง, ช่อง PWM 12 ช่อง, อินพุตแบบอะนาล็อก 6 ช่องและเอาต์พุตหนึ่งช่อง และอินเทอร์เฟซการสื่อสารยอดนิยม โมดูลทำงานร่วมกับ 3.3 V.

Arduino Yún - WiFi - การเชื่อมต่อ Arduino และระบบ Linux โมดูลที่ใช้ระบบ ATmega32u4 ที่ใช้ใน Leonardo ช่วยให้คุณสามารถตั้งโปรแกรมและควบคุมอุปกรณ์แบบไร้สายผ่านเครือข่าย WiFi และห้องสมุดที่เหมาะสม นอกจากนี้ยังมีรุ่น Arduino Yun PoE ซึ่งขับเคลื่อนจากเครือข่ายอีเธอร์เน็ต

Arduino Micro - โมดูลขนาดเล็กที่ใช้ Arduino Leonardo มีขนาดเล็ก มีไมโครคอนโทรลเลอร์ AVR Atmega32U4 พร้อมกับ 20 I / O ดิจิตอลและอินเทอร์เฟซการสื่อสารยอดนิยม

4. ตัวอย่างการใช้งาน

- Arduino และการวางแนวในพื้นที่สามมิติ

ตัวอย่างการใช้ไจโรสโคป 3 แกน มาตรความเร่ง และเครื่องวัดความเข้มข้นของสนามแม่เหล็ก (ระบบ MinImu9) สำหรับการวางแนวในพื้นที่ 3 มิติ

- Arduino และจอ LCD

รองรับจอ LCD พร้อมคอนโทรลเลอร์ HD44780 โดยใช้โมดูล Arduino

- การควบคุมมอเตอร์กระแสตรงโดยใช้แพลตฟอร์ม Arduino

ตัวอย่างโมดูลการจัดการ (H-bridge) ที่ใช้ในการควบคุมทิศทางและความเร็วของมอเตอร์กระแสตรง

- การเชื่อมต่อกับเครือข่ายอีเธอร์เน็ต

การเชื่อมต่อ Arduino กับโมดูล Ethernet ENC28J60