Và trải qua các công đoạn ngắn gọn như sau: Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết
Trang 12020
Trang 2PHẦN A : TỔNG QUAN VỀ CÁC PHẦN MỀM SỬ DỤNG
Chương 1: Tổng quan về Arduino Uno
Lập trình thì không khó học, chỉ khó ở giai đoạn thiết kế mạch điều khiển là khó khăn nhất đối với những ai chưa biết về làm mạch thì càng khó hơn ( còn được gọi thiết kế truyền thống) Và phải trải qua rất nhiều công đoạn như sau:
Tuy nhiên có một thứ làm cho mọi chuyện trở nên rất dễ dàng, có tên gọi là ―Arduino” Và trải qua các công đoạn ngắn gọn như sau:
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm
Arduino Uno là sử dụng chip Atmega328 Nó có 14 chân digital I/O, 6 chân đầu vào (input) analog, thạch anh dao động 16Mhz
Một số thông số kỹ thuật như sau :
Trang 3Điện áp đầu vào (input) (kiến
nghị )
7-12V
Điện áp đầu vào(giới hạn) 6-20V
Số chân Digital I/O 14 (có 6 chân điều chế độ rộng xung PWM)
Số chân Analog (Input ) 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Trang 4Chân 5V và chân 3.3V (Output voltage) : các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp cho Arduino Lưu ý : không được cấp nguồn vào các chân này vì sẽ làm hỏng Arduino GND: chân mass
Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đó là:
Serial : chân 0 (Rx ), chân 1 ( Tx) Hai chân này dùng để truyền (Tx) và nhận (Rx) dữ liêu nối tiếp TTL Chúng ta có thể sử dụng nó để giao tiếp với cổng COM của một số thiết bị hoặc các linh kiện
có chuẩn giao tiếp nối tiếp
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu “~” là các chân PWM chúng ta có thể sử dụng nó để điều khiển tốc độ động cơ, độ sáng của đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗ trợ giao tiếp theo chuẩn SPI I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C Các chân A4 (SDA) và A5 (SCL) cho phép chúng tao giao tiếp giửa Arduino với các linh kiện có chuẩn giao tiếp là I2C
Reset (7): dùng để reset Arduino
2 Cài đặt chương trình Arduino IDE và Driver cho Arduino
➢ Cài đặt chương trình Arduino IDE
Các bạn truy cập vào trang web http://arduino.cc/en/Main/Software và tải về chương trình Arduino IDE phù hợp với hệ điều hành của máy mình bao gồm Windown, Mac OS hay Linux Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần giải nén và chạy chương trình không cần cài đặt
Trang 5Bạn hãy mở trang arduino.cc chọn mục Downloads trong menu Software như hình sau:
Hoặc bạn có thể mở trực tiếp từ link này https://www.arduino.cc/en/Main/Software Sau đó kéo
xuống tìm Download the Arduino IDE để tải ứng dụng
Bạn nên chọn “Windows installer, for Windows XP and up” vì trong gói này sẽ giúp bạn cài
driver cần thiết cho board Arduino ở cuối tiến trình cài đặt Sau khi nhấn vào liên kết trên, bạn sẽ được chuyển qua trang Donate:
Trang 6Nhấn vào Just Download để tải ngay
Nếu được, bạn có thể ủng hộ họ hoặc nhấn vào Just Download để tải ngay Sau khi tải xong sẽ có
được file cài như sau:
Số “1.8.10” trong hình trên là số phiên bản của Arduino IDE Khi bạn tải về số này có thể khác nhé
Trang 7Vì file “arduino-1.8.10-windows.exe” sẽ thực hiện cài đặt vào trong máy tính và có những thiết lập ở
mức hệ thống nên User Account Control muốn “xác minh” thao tác của chúng ta Bạn hãy nhấn Yes để tiếp tục Tiến trình cài đặt diễn ra vô cùng dễ dàng Bạn sẽ gặp các màn hình như sau:
• Arduino Setup: License Agreement
Arduino Setup: License Agreement
Nhấn I Agree để qua bước kế tiếp
• Arduino Setup: Installation Options
Arduino Setup: Installation Folder
Nếu bạn không cần thay đổi thư mục cài đặt thì nhấn Install để đi tiếp
• Arduino Setup: Installing
Trang 8Tiến trình cài đang diễn ra, ta hãy chờ Windows Security sẽ hỏi bạn có muốn cài driver không qua các thông báo như sau:
Cài driver từ “Adafruit Industries”
Cài driver từ “Arduino srl”
Cài driver từ “Arduino LLC”
Với các thông báo như trên thì tất nhiên phải chọn cài hết Bạn chọn như hình và nhấn Install để các driver cần thiết được cài nha
Trang 9Sau khi cài driver thì việc cài Arduino IDE đã hoàn thành Bạn hãy kiểm tra trên Desktop sẽ thấy shortcut của Arduino như hình dưới đây:
Sau khi cài đặt xong thì giao diện chương trình như sau:
Hình 1.2: Arduino IDE
Trang 10Cài đặt Driver
Sử dụng cáp USB kết nối Arduino với máy tính, lúc này bạn sẽ thấy đèn led power của bo sáng Máy tính sẽ nhận dạng thiết bị và bạn sẽ nhận được thông báo:
“Device driver software was not successfully installed”
Hình 1.3: Driver Software Installation
Bây giờ bạn click vào Start Menu chọn Control Panel kế đến chúng ta chọn System and Security, click System và sau đó chọn Device Manager
Hình 1.4: Device Manager
Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino Click chuột phải trên Arduino Uno icon sau đó chọn “Update Driver Software”
Hình 1.5: Right click và chọn ”Update Driver
Software” Chọn “Browse my computer for driver software”
Trang 11Hình 1.6: Click chọn “Browse my computer for driver software”
Chọn đường dẫn tới folder “driver” nơi mà phần mềm Arduino được lưu trữ
Click “Next” Windown tự động cài đặt driver, qua trình cài đặt driver hoàn tất
Trang 12Verify : kiểm tra code có lỗi hay không
Upload: nạp code đang soạn thảo vào Arduino
New, Open, Save : Tạo mới, mở và Save sketch
Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính
Arduino IDE Menu:
Trang 13Edit menu:
Hình 1.12: Edit menu
Sketch menu
Hình 1.13: Sketch menu
Trong Sketch menu :
Verify/ Compile : chức năng kiểm tra lỗi code
Show Sketch Folder : hiển thị nơi code được lưu
Add File : thêm vào một Tap code mới
Import Library : thêm thư viện cho IDE
Tool memu:
Trang 14Hình 1.14: Tool menu
Trong Tool menu ta quan tâm các mục Board và Serial Port
Mục Board : các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo mà bạn sử dụng nếu là Arduino Uno thì phải chọn như hình:
Những board mạch Arduino trên thị trường
Hiện nay trên thị trường có hàng trăm board mạch Arduino khác nhau, c húng đa phần là các biến thể PCB (các board mạch điện) của những board mạch chính đến từ nhà sản xuất Arduino Những board mạch này hoặc có thêm 1 số tính năng cải tiến nào đó hoặc đơn giản là được thiết kế lại nhằm giảm giá thành sản phẩm để có thể tới tay người dùng nhiều hơn Chúng ta hãy cùng điểm qua 1 số board mạch Arduino chính như bên dưới :
1 Arduino Uno R3
Đây là board mạch được đánh giá là tốt nhất cho những người mới bắt đầu về điện tử và lập trình Nó được
sử dụng nhiều nhất trong các board mạch thuộc họ Arduino Hình ảnh và các chức năng của board Arduino Uno R3 :
Trang 15Arduino Leonardo
Trang 16Arduino Leonardo sử dụng vi điều khiển ATmega32u4, một số điểm khác biệt chính so với board
Arduino Uno được liệt kê bên dưới:
Bên trong chip ATmega32u4 được tích hợp 1 chip usb to serial thay vì phải dùng 2 mcu trên board
Có thể giả lập board Leonardo như chuột, bàn phím, joystick thay vì phải dùng 1 thiết bị serial khác
Chúng ta sẽ tìm hiểu tính năng này ở phần USB-serial
Giá thành rẻ hơn (€18.00 trên www.arduino.cc)
20 digital I/O (7 chân PWM)
12 chân Analog (các chân PWM có thể được dùng như Analog)
Arduino mega2560
Hình 1.18: Arduino Mega 2560
Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi là Arduino Mega 1280
Sự khác biệt lớn nhất với Arduino Mega 1280 chính là chip nhân
Còn đây là Arduino Mega 2560 phiên bản hiện đang được sử dụng rộng rãi và ứng dụng nhiều hơn Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4 KB cho bộ nhớ EEPROM Giúp cho người dùng thêm khả năng viết những chương trình phức tạp và điều khiển các thiết bị lớn hơn như máy in 3D, điều khiển robot
Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip ATmega2560 Bao gồm:
Trang 17• 54 chân digital (trong đó có 15 chân có thể được sủ dụng như những chân PWM là từ chân số
2 → 13 và chân 44 45 46)
• 6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt 5), chân 19 (interrupt 4), chân 20 (interrupt 3), and chân 21 (interrupt 2)
• 16 chân vào analog (từ A0 đến A15)
• 4 cổng Serial giao tiếp với phần cứng:
• 1 thạch anh với tần số dao động 16 MHz
• 1 cổng kết nối USB
• 1 jack cắm điện
• 1 đầu ICSP
• 1 nút reset
Đối với những ai quan tâm tới Matlab thì Arduino Mega 2560 cũng là một sự chọn lựa tuyệt vời Vì
nó còn được tích hợp sẵn thư viện dành cho MatLab Với viêc kết hợp giữa Matlab và Arduino là một sự kết hợp thú vị Ở đây chỉ giới thiệu cho các bạn ngoài ra các bạn có thể tìm hiểu thêm tại Arduino Mega 2560 có thể sử dụng hầu hết các shiled dành cho các mạch Arduino Uno hay hoặc các mạch trước đây như Duemilanove hay Diecimila với cách cài đặt và nối chân tương tự như Arduino Uno
Hiện nay có một số shiled hỗ trợ cho Arduino Mega rất nhiều như:
Hình 1.19:Mạch điều khiển máy in 3D RAMPS 1.4
CỔNG SERIAL CHÂN RX CHÂN TX
Trang 18Thông số kĩ thuật
Điện áp vào (đề nghị) 7V-15V Điện áp vào (giới hạn) 6V-20V Cường độ dòng điện trên mỗi 3.3V pin 50 mA Cường độ dòng điện trên mỗi I/O pin 20 mA
Một vài lưu ý khi sử dụng Arduino Mega
Khi bắt đầu sử dụng Arduino Mega 2560, bạn nên chú ý lựa chọn lại board Bằng cách vào Tool → Board → Arduino Mega 2560 Nhằm tránh trước đó bạn đã sử dụng loại Arduino khác cổng vẫn còn nhận là board cũ nên khi build bạn sẽ gặp lỗi
Khi sử dụng chân RX, TX cuả Arduino, các bạn nên nhớ tiêu thụ dây cắm tại 2 chân này ra rồi hãy bắt đầu upload Sau đó hãy cắm lại bình thường và sử dụng để tránh gặp phải lỗi
Không được phép cắm trực tiếp chân GND vào chân nguồn 5V, có thể dẫn tới hỏng mạch
3 Lập trình ESP8266 bằng Arduino IDE
Giới thiệu
Để bắt đầu với những dự án Wifi với Arduino các bạn cần ESP8266 với giá thành rẻ, và dễ dàng sử dụng Đặc biệt, ESP8266 có thể được lập trình bằng Arduino IDE Trước khi bắt đầu
Trang 19những chuỗi dự án hay ho với ESP8266, ở bài viết này, mình sẽ chia sẻ cách cài đặt Arduino IDE để nạp code cho ESP8266
Hình 1.20: Giao diện Arduino IDE
Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE các bạn làm như sau:
Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường link sau
vào http://arduino.esp8266.com/stable/package_esp8266com_index.json
Click OK để chấp nhận
Trang 20Tiếp theo vào Tool→Board→Boards Manager
đợi một lát để chương trình tìm kiếm Ta kéo xuống và click vào ESP8266 by ESP8266
Community, click vào Install Chờ phần mềm tự động download và cài đặt
Chọn Board để lập trình cho ESP8266:
Trang 21Kết nối mudule USB-to-UART vào máy tính Vào Tool→Board→Generic ESP8266 Module,
chọn cổng COM tương ứng với module USB-to-UART tương ứng
Chọn chế độ nạp Arduino as ISP Vậy là ta đã có môi trường lập trình cho esp8266 rất thân thiện
Sau khi kết nối UART vs ESP8266 các bạn có thể test code ESP8266 ở đây:
Trang 22ARDUINO IOT VIETNAM - 91
11 Traffic Lights(Đèn giao thông)
Introduction
Trong dự án này, bạn sẽ xây dựng một hệ thống đèn giao thông:
• Có 3 đèn LED với các màu khác nhau (xanh lá cây, vàng và đỏ) để mô phỏng đèn giao thông cho xe
Arduino UNO – read Best Arduino Starter Kits
3x 5mm LED (1x red, 1x yellow, 1x green)
Trang 23ARDUINO IOT VIETNAM - 92
2x 3mm LED (1x red, 1x green)
5x 220Ohm Resistor
1x 10kOhm Resistor
1x pushbutton
Jumper Wires
Sử dụng đèn LED có kích cỡ khác nhau nhưng nếu bạn không có đèn LED có kích cỡ khác nhau
thì không sao Dự án vẫn hoạt động
• Khi ai đó nhấn nút ở đây, điều gì xảy ra:
• Đèn xe chuyển sang màu vàng và sau đó chuyển sang màu đỏ
• Đèn dành cho người đi bộ chuyển sang màu xanh lá cây
Đèn ở trạng thái này trong một thời gian (trong mã lần này là biến đổi thời gian)
• Đèn xanh của người đi bộ nhấp nháy và chuyển sang màu đỏ
• Đèn xe chuyển từ đỏ sang xanh
Tất cả những hành động này sẽ nằm trong hàm ChangeLights () Mỗi khi bạn muốn thay đổi đèn, bạn chỉ cần gọi hàm changeLights ()
Sao chép mã sau vào Arduino IDE của bạn và tải nó lên bảng Arduino của bạn Hãy chắc chắn rằng bạn đã chọn đúng bảng và cổng COM
Trang 24
ARDUINO IOT VIETNAM 93
// here we are initializing our pins as outputs
//turn on the green light
Serial.begin(9600);
}
void loop() {
// this variable will tell us if the button is pressed
int state = digitalRead(button);
Serial.println(state);
// if the button is pressed and if it has passed 5 seconds since last button press
if (state == HIGH && (millis() - changeTime) > 5000) {
//call the function to change the lights
changeLights();
}
}
void changeLights() {
delay(2000);
Trang 25ARDUINO IOT VIETNAM 94
Trang 26ARDUINO IOT VIETNAM 95
Sau khi crosstime, đèn led xanh của người đi bộ nhấp nháy và chuyển sang màu đỏ Ánh sáng cho những chiếc xe thay đổi từ màu đỏ sang màu xanh lá cây
Kết thúc
Nếu bạn bắt đầu với Arduino, một bài tập tốt là thay đổi giá trị của một số biến như crossTime và changeTime và xem điều gì sẽ xảy ra
Nếu bạn muốn một cái gì đó khó khăn hơn một chút, hãy thử bắt chước những gì xảy ra trong một ngã
ba, với một vài đèn chiếu sáng cho một vài chiếc xe hơi và người đi bộ
12 Điều khiển led đơn qua giao tiếp serial giữa Arduino và PC
Thư viện Serial được dùng trong việc giao tiếp giữa các board mạch với nhau (hoặc board mạch với
máy tính hoặc với các thiết bị khác) Tất cả các mạch Arduino đều có ít nhất 1 cổng Serial (hay còn
được gọi là UART hoặc USART) Giao tiếp Serial được thực hiện qua 2 cổng digital 0 (RX) và 1 (TX) hoặc qua cổng USB tới máy tính Vì vậy, nếu bạn đang sử dụng các hàm của thư viện Serial này, bạn không thể sử dụng các chân digital 0 và digital 1 để làm việc khác được!
Bạn có thể sử dụng bảng Serial monitor có sẵn trong Arduino IDE để giao tiếp với Arduino qua giao thức Serial Kích vào biểu tượng Serial Monitor (hình kính lúp bên góc phải trên cùng ) hoặc nhấn tổ hợp phím Ctrl+Shift+M để mở bảng Serial Monitor, sau đó bạn kích chuột vào bảng chọn như hình dưới để chọn baudrate giống với baudrate được dùng trong quá trình lập trình của bạn Mặc định là
9600