อะไรคือความแตกต่างระหว่าง Arduino ไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์? ฉันกำลังพยายามหาสิ่งที่ดีที่สุดในการใช้งานหน้าจอสัมผัสแบบต้านทานราคาถูก
อะไรคือความแตกต่างระหว่าง Arduino ไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์? ฉันกำลังพยายามหาสิ่งที่ดีที่สุดในการใช้งานหน้าจอสัมผัสแบบต้านทานราคาถูก
คำตอบ:
โดยทั่วไปแล้วจะพบได้ในพีซีเดสก์ท็อปหรือแล็ปท็อปและมีซีพียูและหน่วยความจำภายนอกรวมถึง I / O บัสต่างๆเพื่อเชื่อมต่อกับโลกภายนอกเช่น SPI, I2C, UART, USB, LCD และอื่น ๆ ไมโครโปรเซสเซอร์จะมีผลึกภายนอกเพื่อให้นาฬิกา
ไมโครโปรเซสเซอร์ส่วนใหญ่ไม่มีหน่วยความจำแบบอ่านอย่างเดียวบนชิป มีชิปภายนอกอยู่บนเมนบอร์ดซึ่งมีรหัสการบู๊ตเริ่มต้นแทน บนพีซีที่ใช้ Intel เรียกว่าระบบอินพุต / เอาท์พุตพื้นฐาน (BIOS) และยังมีรูทีน I / O เพิ่มเติมจากรหัสบูตเริ่มต้น รหัสการบู๊ตเริ่มต้นจากการทดสอบด้วยตนเองเมื่อเปิดเครื่อง (POST) จากนั้นดูว่าจะโหลดตำแหน่งใดในขั้นตอนถัดไปของรหัสบูต - จากฮาร์ดไดรฟ์ซีดี (หรือในสมัยก่อน) ลงในฟลอปปี้ดิสก์ การบูตระดับที่สองนี้จะโหลดระบบปฏิบัติการ (อาจมีรหัสบูตสามระดับในบางระบบ)
ไมโครโปรเซสเซอร์บางตัว (โดยปกติจะเป็นเป้าหมายสำหรับสมาร์ทโฟนและแท็บเล็ตซึ่งมีตัวเลือกการบูต จำกัด ) มีหน่วยความจำแบบอ่านอย่างเดียวจำนวนเล็กน้อยที่มีรหัสบูตเริ่มต้น
ฉันอ้างถึงรหัสบูตเป็นแบบอ่านอย่างเดียว จริงๆแล้วในบางระบบก็สามารถอัพเดทได้ อย่างไรก็ตามเรื่องนี้ค่อนข้างเสี่ยง หากมีสิ่งผิดปกติระบบอาจไม่สามารถบู๊ตได้อีกต่อไป
แตกต่างจากไมโครคอนโทรลเลอร์ที่รันโปรแกรมจากหน่วยความจำแบบอ่านอย่างเดียวหลังจากบูตไมโครโปรเซสเซอร์โหลดโปรแกรมลงใน RAM ภายนอกและรันจากที่นั่น
ในทางกลับกันเป็นชิปเดี่ยวแบบสแตนด์อโลนที่มี CPU, หน่วยความจำแบบอ่านอย่างเดียวในการจัดเก็บโปรแกรม, RAM เพื่อจัดเก็บตัวแปรที่ใช้ในการดำเนินการของโปรแกรมและ I / O บัสต่างๆเพื่อเชื่อมต่อกับโลกภายนอก เช่น SPI, I2C, UART และอื่น ๆ ด้วยตัวเองมันไม่สามารถรันโปรแกรมใด ๆ โดยไม่ได้ตั้งโปรแกรมผ่านอินเทอร์เฟซภายนอกกับพีซี ไมโครคอนโทรลเลอร์อาจต้องการคริสตัลภายนอกเพื่อจัดเตรียมนาฬิกาอย่างไรก็ตามบางตัวมีนาฬิกาภายใน
ไมโครคอนโทรลเลอร์บางตัว (เช่น PIC32 ของ Microchip) มีหน่วยความจำแฟลชสองส่วน หนึ่งเพื่อเก็บรหัสการเริ่มต้น (บูต) และอื่น ๆ เพื่อจัดเก็บแอปพลิเคชัน ทำให้ง่ายต่อการอัปเดตรหัสแอปพลิเคชันในสถานที่
เพื่อจุดประสงค์ของคุณคุณต้องการใช้ไมโครคอนโทรลเลอร์ไม่ใช่ไมโครโปรเซสเซอร์ ในการใช้ไมโครคอนโทรลเลอร์คุณจะต้องออกแบบบอร์ดของคุณเองหรือซื้อบอร์ดพัฒนาบางประเภท
เป็นบอร์ดเช่นนี้และมีไมโครคอนโทรลเลอร์โดยทั่วไปจะเป็น 8-bit AVR เช่น ATmega8, ATmega168, ATmega328, ATmega1280 และ ATmega2560 รวมถึงพาวเวอร์ซัพพลายคริสตัลและส่วนหัวของหญิงเพื่อเชื่อมต่อกับบอร์ดต่อพ่วงต่างๆ
แผงต่อพ่วงเหล่านี้เรียกว่าshieldsและถูกออกแบบให้วางซ้อนกันบน (ซึ่งมีหมุดตัวผู้ที่ด้านล่างของบอร์ดเพื่อเชื่อมต่อกับ Arduino เองหรือตัวป้องกันอื่น ๆ และหัวส่วนบนของหญิงเพื่อยอมรับหมุดตัวผู้ของ โล่ซ้อนกันอยู่ด้านบนของมัน)
ตัวอย่างโล่คือแผงควบคุมมอเตอร์แผง I / O ทั่วไปแผงรีเลย์แผงวงจรอีเธอร์เน็ตและ LCD โดยทั่วไปจะมีหน้าจอสัมผัส อย่างไรก็ตามฉันไม่รู้เกี่ยวกับหน้าจอสัมผัสแบบต้านทานใด ๆ ที่จะใช้สำหรับการตรวจจับ (ไม่มี LCD)
นอกเหนือจากฮาร์ดแวร์ที่อธิบายไว้ข้างต้น Arduino ยังมาพร้อมกับข้ามแพลตฟอร์มการพัฒนารวมสภาพแวดล้อม (IDE) เขียนใน Java มันถูกออกแบบมาเพื่อแนะนำการเขียนโปรแกรมให้กับศิลปินและผู้เริ่มต้นอื่น ๆ ได้มากพอ ๆ กับภาษาเบสิกเมื่อ 50 ปีก่อน โปรแกรมสำหรับ Arduino จะเรียกว่าเป็นร่าง
โปรแกรม Arduino เขียนด้วย C หรือ C ++ อย่างไรก็ตามรายละเอียดจำนวนมากถูกซ่อนไว้จากผู้ใช้: ต้องกำหนดฟังก์ชั่นเพียงสองตัว (เรียกโดยระบบ) เพื่อให้โปรแกรมที่วนซ้ำอย่างต่อเนื่อง (ซึ่งโดยปกติจะเป็นโปรแกรมฝังตัว)
setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off
IDE มาพร้อมกับไลบรารีซอฟต์แวร์ที่ชื่อว่า "Wiring" ซึ่งสามารถใช้สำหรับการดำเนินการอินพุต / เอาต์พุตทั่วไป
Arduino เป็น PCB ที่มีไมโครคอนโทรลเลอร์ Atmel AVR และมักจะให้ชุดตัวเชื่อมต่อในรูปแบบมาตรฐาน โดยทั่วไปแล้วไมโครคอนโทรลเลอร์จะได้รับการโปรแกรมล่วงหน้าด้วยโปรแกรม "bootloader" ที่อนุญาตให้โหลดโปรแกรม (เรียกว่า "ภาพร่าง") ลงในไมโครคอนโทรลเลอร์ผ่านการเชื่อมต่อแบบอนุกรม TTY (หรืออนุกรมเสมือนผ่านการเชื่อมต่อ USB) จากพีซี
ไมโครโปรเซสเซอร์คือ IC ที่มีหน่วยประมวลผลกลาง (CPU) เท่านั้น IC ไม่มี RAM, ROM หรืออุปกรณ์ต่อพ่วงอื่น ๆ IC อาจมีหน่วยความจำแคช แต่ไม่ได้ออกแบบมาให้ใช้งานได้หากไม่มีหน่วยความจำภายนอก
ไมโครโปรเซสเซอร์ไม่สามารถจัดเก็บโปรแกรมภายในและโดยทั่วไปแล้วจะโหลดซอฟต์แวร์เมื่อเปิดเครื่องซึ่งมักจะเกี่ยวข้องกับกระบวนการ "บูต" ที่ซับซ้อนหลายขั้นตอนซึ่ง "เฟิร์มแวร์" ถูกโหลดจาก ROM ภายนอกและในที่สุดระบบปฏิบัติการจะโหลดจากสื่อบันทึกอื่น ๆ )
โดยทั่วไปแล้วจะพบในคอมพิวเตอร์ส่วนบุคคล
ไมโครคอนโทรลเลอร์เป็น IC ที่ประกอบด้วย CPU รวมถึงจำนวนหรือ RAM, ROM และอุปกรณ์ต่อพ่วงอื่น ๆ ไมโครคอนโทรลเลอร์สามารถทำงานได้โดยไม่ต้องมีหน่วยความจำภายนอกหรือที่เก็บข้อมูล
โดยปกติแล้วไมโครคอนโทรลเลอร์จะถูกตั้งโปรแกรมไว้ก่อนที่จะถูกบัดกรีเข้ากับ PCB หรือตั้งโปรแกรมได้โดยใช้ตัวเชื่อมต่อ In-System-Programming (ISP หรือ ICSP) ผ่านอุปกรณ์ "โปรแกรมเมอร์" พิเศษที่ต่ออยู่กับคอมพิวเตอร์ส่วนบุคคล
ไมโครคอนโทรลเลอร์ทั่วไปนั้นเรียบง่ายกว่าและช้ากว่าไมโครโปรเซสเซอร์ทั่วไป แต่ฉันเชื่อว่าความแตกต่างส่วนใหญ่เป็นขนาดและแอปพลิเคชัน
ตัวอย่างเช่นพบได้ในเครื่องใช้ไฟฟ้าอย่างง่ายเช่นเครื่องซักผ้าธรรมดา
"Arduino" เป็นสภาพแวดล้อมการพัฒนาซอฟต์แวร์และบอร์ดไมโครคอนโทรลเลอร์หลายตัวที่สภาพแวดล้อมซอฟต์แวร์สามารถพัฒนาโปรแกรมสำหรับ บอร์ดส่วนใหญ่ใช้ไมโครคอนโทรลเลอร์ Atmel AVR
Arduino เป็นแพลตฟอร์มที่ใช้ไมโครคอนโทรลเลอร์ (ATMEGA 328 สำหรับ UNO) โดยทั่วไปตัวควบคุมแบบไมโครเหมาะกว่าไมโครโพรเซสเซอร์กับทุกสิ่งที่ต้องการการตรวจจับอินพุต นั่นเป็นเพราะตัวควบคุมไมโครเช่น ATMEGA 328 มีตัวแปลงอนาล็อกเป็นดิจิตอล (ADC) เพื่อตรวจจับแรงดันไฟฟ้าและยังมีเอาต์พุต PWM เช่นเดียวกับดิจิตอล I / Os
ด้วย Arduino คุณยังมีระบบ Arduino Dev ซึ่งง่ายต่อการโปรแกรมสำหรับมือใหม่และมีชุมชนที่ดีสำหรับการสนับสนุนและห้องสมุด
หน้าจอสัมผัสแบบต้านทานจะทำงานเหมือนโพเทนชิโอมิเตอร์ หนึ่งสำหรับ x และหนึ่งสำหรับ y ดังนั้นคุณสามารถใส่สิ่งเหล่านั้นลงในอินพุตอะนาล็อก Arduino ดูที่นี่สำหรับรายละเอียด
อีกทางเลือกหนึ่งคือการแปลงเป็น SPI หรือ I2C ด้วยสิ่งนี้และอ่านด้วย Arduino
ฉันคิดว่า Arduino เป็นตัวเลือกที่ดี
Arduino ประกอบด้วยไมโครคอนโทรลเลอร์ (ATmega328 บนเวอร์ชั่น UNO) ดังนั้น Arduino จึงเป็น PCB ที่มีหมุดของไมโครคอนโทรลเลอร์แยกออกได้อย่างดีคือ poweruply คริสตัลและ FTDI สำหรับการเชื่อมต่อ USB ด้วยเฟิร์มแวร์ออนบอร์ดเพื่อให้คุณสามารถตั้งโปรแกรมด้วย IDE ของตัวเองได้อย่างง่ายดาย นี่คือรายการเกี่ยวกับองค์ประกอบ arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq