✨Arduino

Arduino

thumb|Loại: Bộ điều khiển đơn board Website: www.arduino.cc Arduino  tảng vi mạch thiết kế mở phần cứng (Open-source hardware) và phần mềm (Open-source software). Phần cứng Arduino là những bộ vi điều khiển bo mạch đơn (Single-board microcontroller) được tạo ra tại thị trấn Ivrea ở Ý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit. Những model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.

Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho mạch bằng ngôn ngữ Arduino, một ngôn ngữ riêng được phát triển dựa trên C/C++.

Giá của các board Arduino dao động xung quanh €20, hoặc $27, nếu được "làm giả" thì giá có thể giảm xuống thấp hơn $9. Các board Arduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy. Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở). Người ta ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới tay người dùng.

Lịch sử

Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy. Vào thời điểm đó các sinh viên sử dụng một "BASIC Stamp" (con tem Cơ Bản) có giá khoảng $100, xem như giá dành cho sinh viên. Massimo Banzi, một trong những người sáng lập, giảng dạy tại Ivrea. Cái tên "Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường xuyên gặp mặt. Bản thân quán bar này có được lấy tên là Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014.

Lý thuyết phần cứng được đóng góp bởi một sinh viên người Colombia tên là Hernando Barragan. Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã làm việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mã nguồn mở. Trường này cuối cùng bị đóng cửa, vì vậy các nhà nghiên cứu, một trong số đó là David Cuarlielles, đã phổ biến ý tưởng này.

Giá hiện tại của board mạch này dao động xung quanh $30 và được làm giả đến mức chỉ còn $9. Một mạch bắt chước đơn giản Arduino Mini Pro có lẽ được xuất phát từ Trung Quốc có giá rẻ hơn $4, đã trả phí bưu điện.

Phần cứng

thumb|Một mạch Arduino Uno chính thức với các mô tả về các cổng I/O thumb|Một board Arduino đời đầu gồm một cổng giao tiếp RS-232 (góc phía trên-bên trái) và một chip vi xử lý Atmel ATmega8 (màu đen, nằm góc phải-phía dưới); 14 chân I/O số nằm ở phía trên và 6 chân analog đầu vào ở phía đáy. Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield. Vài shield truyền thông với board Arduino trực tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song. Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560. Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị. Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài. Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình.

Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng. Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS232 sang TTL. Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. Vài biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác. (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)

Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài. Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/O số. Những chân này được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm). Nhiều shield ứng dụng plug-in cũng được thương mại hóa. Các board Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard.

Có nhiều biến thể như Arduino-compatible và Arduino-derived. Một vài trong số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại. Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra, thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp' và các robot nhỏ. Những board khác thường tương đương về điện nhưng có thay đổi về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không. Vài biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau.

Các board chính thức

Xem thêm: Danh sách các board Arduino và các hệ thống tương thích với chúng

Phần cứng Arduino gốc được sản xuất bởi công ty Italy tên là Smart Projects. Một vài board dẫn xuất từ Arduino cũng được thiết kế bởi công ty của Mỹ tên là SparkFun Electronics. Sáu phiên bản phần cứng của Arduino cũng đã được sản xuất thương mại tính đến thời điểm hiện tại.

Tập tin:Arduino Diecimila 6.jpg|Arduino Diecimila in Stoicheia Tập tin:Arduino Duemilanove 2009b.jpg|Arduino Duemilanove (rev 2009b) Tập tin:Arduino UNO unpacked.jpg|Arduino UNO R3 Tập tin:Arduino Leonardo.jpg|Arduino Leonardo Tập tin:Arduino Mega.jpg|Arduino Mega Tập tin:Arduino MEGA 2560 R3, front side.jpg|Arduino MEGA 2560 R3 (mặt trước) Tập tin:Arduino MEGA 2560 R3, back side.jpg|Arduino MEGA 2560 R3 (mặt sau) Tập tin:Arduino Nano.jpg|Arduino Nano Tập tin:Arduino Due.jpg|Arduino Due (nền tảng ARM) Tập tin:LilyPad Arduino Main Board.JPG|LilyPad Arduino (rev 2007)

Shield

Các board Arduino và Arduino-compatible sử dụng các shield— các board mạch in mở rộng được dùng bằng cách cắm vào các chân header của Arduino. Các shield có thể là module điều khiển cho động cơ, GPS, ethernet, LCD, hoặc cũng có thể là breadboard. Một số lượng lớn các shield cũng có thể được chế tạo bởi DIY (những người thích tự làm lấy các ứng dụng cho riêng họ).

Image:Arduino Protoboard Shields.jpg|Nhiều shield có thể được xếp chồng lên nhau. Trong ví dụ này shield ở trên cùng có chứa một breadboard chưa hàn Image:Wingshield on Arduino - ARSH-05-WI.jpg|Shield này sử dụng các đầu domino bắt vít dùng để đấu các đầu dây vào Image:Adafruit Motor Shield - ARSH-02-MS 01.jpg|Shield Adafruit Motor với các đầu domino dùng để kết nối với động cơ Image:ARSH-09-DL 03.jpg|Shield Adafruit Datalogging với một khe chứa thẻ nhớ SD và chip clock Real-Time

## Software Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross-platform (đa nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xử lý (Processing programming language) và project Wiring. Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm. Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile(biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột. Một chương trình hoặc code viết cho Arduino được gọi là một _sketch_.

Các chương trình Arduino được viết bằng ngôn ngữ Arduino dựa trên C/C++. Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:

  • setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt
  • loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch

Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làm cho một bóng đèn Led sáng/tắt. Trong môi trường Arduino, ta sẽ phải viết một chương trình giống như sau:

thumb|right|Đèn LED tích hợp với chân 13

#define LED_PIN 13

void setup () { pinMode (LED_PIN, OUTPUT); // Đặt chân 13 làm đầu ra digital }

void loop () { digitalWrite (LED_PIN, HIGH); // Bật LED on delay (1000); // chờ trong 1 giây (1000 mili giây) digitalWrite (LED_PIN, LOW); // Tắt LED off delay (1000); // chờ trong 1s }

Một đặc điểm của hầu hết các board Arduino là chúng có một đèn LED và điện trở nối giữa chân 13 với đất; một đặc điểm thuận tiện cho nhiều ứng dụng đơn giản. Đoạn code ở trên không thể đọc được bởi một compiler C++ chuẩn như là một chương trình đúng, vì vậy khi ta click vào nút "Upload to I/O board" trong IDE này, một bản copy của đoạn code này sẽ được ghi vào một file tạm với một extra include header ở phía trên cùng và một hàm main() đơn giản nằm ở phía đáy, để làm cho thành một chương trình C++ khả dụng.

Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chương trình, và sử dụng avrdude để upload chương trình lên board.

Vì nền tảng của Arduino là các vi điều khiển của Atmel, cho nên môi trường phát triển của Atmel, AVR Studio hoặc các phiên bản Atmel Studio mới hơn, cũng có thể được sử dụng để làm phần mềm phát triển cho Arduino.

Phát triển

Arduino là một nền tảng phần cứng mã nguồn mở: Các thiết kế phần cứng tham khảo của Arduino được phân phối dưới dạng Creative CommonsAttribution Share-Alike 2.5 license và có sẵn trên website của Arduino. Một vài phiên bản phần cứng của Arduino còn đưa lên cả file Layout và thành phẩm. Mã nguồn cho IDE này cũng khả dụng và được xuất bản dưới dạng GNU General Public License, version 2.

Mặc dù các thiết kế phần cứng và phần mềm là miễn phí dưới dạng copyleft license, các nhà phát triển cũng được yêu cầu cái tên "Arduino" chỉ được dành riêng cho các sản phẩm chính thức và không được sử dụng cho các sản phẩm phái sinh mà được sự cho phép. Các văn bản chính sách chính thức về việc sử dụng tên Arduino nhấn mạnh rằng dự án này là mở đối với những người khác trong việc cộng tác để tạo ra sản phẩm chính thức. Nhiều sản phẩm tương thích với Arduino phát hành thương mại đã tránh cái tên "Arduino" bằng cách sử dụng từ phái sinh "-duino".

Các ứng dụng

Xem thêm: Danh sách các dự án phần cứng mã nguồn mở

  • Xoscillo: oscilloscope mã nguồn mở
  • Các thiết bị khoa học
  • Arduinome: một thiết bị điều khiển MIDI bắt chước Monome
  • OBDuino: một máy tính hành trình sử dụng giao diện chẩn đoán on-board được tìm thấy trong hầu hết các loại xe hơi hiện đại
  • Thiết bị đọc sách cho con người: thiết bị điện tử giá rẻ với đầu ra TV có thể chứa một thư viện năm ngàn cuốn sách (ví dụ như các biên soạn offline Wikipedia) trên một thẻ nhớ microSD
  • Ardupilot: software / hardware máy bay không người lái
  • ArduinoPhone
👁️ 2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
thumb|Loại: Bộ điều khiển đơn board Website: www.arduino.cc **Arduino** tảng vi mạch thiết kế mở phần cứng (_Open-source hardware_) và phần mềm (_Open-source software_). Phần cứng Arduino là những bộ vi điều khiển bo mạch
Sách gồm 14 chương. CHƯƠNG 1 GIỚI THIỆU SÁCH. CHƯƠNG 2 TỔNG QUAN VỀ HỆ VẠN VẬT KẾT NỐI IoT. CHƯƠNG 3 LÀM QUEN VỚI ARDUINO. CHƯƠNG 4 ARDUINO VÀ BỘ CHUYỂN ĐỔI. CHƯƠNG 5
Chúc mừng các bạn, những lập trình viên C tiềm năng cho Arduino trong tương lai. Những năm gần đây, tầm quan trọng của lập trình Arduino và Raspberry đã trở thành một chủ đề
Sách - Arduino Và Lập Trình Iot Tác giả TS. Nguyễn Tất Bảo Thiện - KS. Phạm Quang Huy Nhà xuất bản NXB Thanh Niên Nhà phát hành Công ty TNHH Thương Mại STK Năm
Lập Trình Điểu Khiển Trên Arduino Cho Hệ Vạn Vật Kết Nối IoT Cuốn sách hướng đến những người đam mê công nghệ và những ai mới bắt đầu quan tâm đến lĩnh vực IoT
Stem với Adduin-Hướng dẫn sử dụng Arduino , cho người mới bắt đầu làm quen với Arduino qua các bài tập thực hành từ cơ bản đến nâng cao qua những ứng dụng điều khiển
Cuốn sách được soạn nhằm giúp người mới bắt đầu làm quen với vi xử lý, điều khiển, những kỹ sư ra trường đã lâu không có điều kiện cũng như thời gian để hiểu
Sách TỰ ĐỘNG HÓA VỚI CƠ ĐIỆN TỬ dùng làm tài liệu học tập cho sinh viên chuyên ngành Điện - Điện tử, cũng như làm tài liệu tham khảo cho sinh viên các trường
Hệ thống nhúng là một môn chuyên ngành ở một số trường kỹ thuật. Tại các trường, hai bo mạch được sử dụng nhiều nhất trong hệ thống nhúng là Arduino và raspberry Lập Trình
**ESP8266**, hay gọi đầy đủ là **ESP8266EX** là một vi mạch Wi-Fi giá rẻ, có hỗ trợ bộ giao thức TCP/IP và có thể tích hợp vào thành phần của vi điều khiển, được sản
**Raspberry Pi** là một dòng máy tính bo mạch đơn (hay còn gọi là máy tính nhúng) có kích thước chỉ bẳng một thẻ tín dụng được phát triển tại Anh bởi Raspberry Pi Foundation
**ESP32** là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có hỗ trợ WiFi và dual-mode Bluetooth (tạm dịch: Bluetooth chế độ kép). Dòng ESP32 sử dụng bộ
**Trí Nhân** là người máy trí tuệ nhân tạo đầu tiên của Việt Nam dựa trên hình dáng của robot InMoov với phần trợ lý ảo được nhóm tác giả tự thiết kế được đánh
Cuốn sách này được soạn nhằm giúp người mới bắt đầu làm quen với vi xử lý, vi điều khiển, các học sinh cấp 3 tại các trường triển khai giáo dục STEM, những kỹ
**Transistor lưỡng cực nối**, viết tắt theo tiếng Anh là **BJT** (_Bipolar junction transistor_) là loại linh kiện bán dẫn có cấu trúc 2 tiếp xúc của 3 khối chất bán dẫn có đặc tính
Dự án Hệ thống Finger Management - Ứng dụng "Quản lý sinh trắc học dấu vân tay" do Trung tâm CNTT & NN Trường Đại học Thông tin Liên lạc nghiên cứu vừa được hoàn
Môn học xử lý ảnh đã và đang được đưa vào giảng dạy tại các trường chuyên ngành Điện-Điện tử. Hầu như sinh viên các ngành Điện tử, Viễn thông, Tự động hóa, Điện công
Đây là danh sách chưa đầy đủ các nhà thực vật học theo tên viết tắt với tư cách là tác giả đặt tên các loài thực vật hoặc trong các công trình về thực
**I²C** (viết tắt của từ tiếng Anh "_Inter-Integrated Circuit_", phát âm tiếng Anh I-two-C, hoặc cũng có thể viết là **IIC**) là một loại bus nối tiếp hai chiều với hai dây tín hiệu được
nhỏ|Vi điều khiển **Vi điều khiển** là một máy tính được tích hợp trên một chip, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là
Máy bay ngày nay không ngừng phát triển và được nâng cấp. Trong 20 năm qua, việc sử dụng máy bay không người lái trong cả khu vực công và tư quân sự đã bùng
**Creative Commons** (viết tắt **CC**) (_Tài sản sáng tạo công cộng_) là một tổ chức phi lợi nhuận tập trung vào việc mở rộng số lượng tác phẩm có tính sáng tạo mà người khác
nhỏ|Vách đá cao 20 mét ở vịnh São Marcos, Alcântara, bang Maranhão, Brazil. Trầm tích nhóm Barreiras, tuổi Paleogen. **Kỷ Đệ Tam** (**_Tertiary_**) đã từng là một đơn vị chính trong niên đại địa chất,
**Đại Trung sinh** (**_Mesozoic_** ) là một trong ba đại địa chất thuộc thời Phanerozoic (thời Hiển sinh). Sự phân chia thời gian ra thành các đại bắt đầu từ thời kỳ của Giovanni Arduino
**Đại Cổ sinh** (tên tiếng Anh: _Paleozoic_) là một đơn vị phân chia chính trong niên đại địa chất, một trong bốn đại chính. Sự phân chia thời gian ra thành các đại, đơn vị
Mục đích của **danh sách các ngôn ngữ lập trình** này là bao gồm tất cả các ngôn ngữ lập trình hiện tại đáng chú ý, được sử dụng hiện tại và những ngôn ngữ
Năm **1714** (số La Mã MDCCXIV) là một năm thường bắt đầu vào thứ hai trong lịch Gregory (hoặc một năm thường bắt đầu vào thứ năm của lịch Julius chậm hơn 11 ngày). ##
**Rieti** là thị xã tỉnh lỵ tỉnh Rieti, Ý. Thị xã này thuộc vùng Lazio, miền trung Ý, với dân số khoảng 47.700 người. Trung tâm thị xã nằm trên một đỉnh đồi nhỏ, nhìn
**Giuseppe Betori** (sinh 1947) là một hồng y người Italia của Giáo hội Công giáo Rôma. Ông hiện đảm nhận cương vị Tổng giám mục Tổng giáo phận Firenze. ## Tiểu sử Hồng y Betori
**Associazione Calcio Isola Liri** là một câu lạc bộ bóng đá Ý đến từ Isola del Liri, Lazio. ## Lịch sử Câu lạc bộ được thành lập vào năm 1925. ### Lega Pro Seconda Divisione
nhỏ|Kết nối servo và bộ nhận nhỏ **Điều khiển servo** được thực hiện bằng cách gửi đi một servo tín hiệu PWM (điều chế độ rộng xung), một loạt các xung lặp lại có chiều
**Floppotron** là một nhạc cụ được tạo ra bởi kỹ sư người Ba Lan có tên là Paweł Zadrożniak. Nó được tạo ra bởi các mảng lập trình đồng bộ của phần cứng máy tính
nhỏ|300x300px|Mô hình CAD được sử dụng để in 3D. Quy trình lập mô hình thủ công chuẩn bị dữ liệu hình học cho đồ họa máy tính 3D tương tự nghệ thuật nhựa như điêu
**Sanguino3 G-Code** là giao thức mà các thiết bị điện tử của dự án RepRap thế hệ thứ ba giao tiếp với máy chủ của chúng, cũng như giao thức mà máy chủ RepRap giao