Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
2,53 MB
Nội dung
2020 PHẦN A : TỔNG QUAN VỀ CÁC PHẦN MỀM SỬ DỤNG Chương 1: Tổng quan Arduino Uno Lập trình khơng khó học, khó giai đoạn thiết kế mạch điều khiển khó khăn những chưa biết làm mạch khó ( cịn gọi thiết kế truyền thống) Và phải trải qua nhiều công đoạn sau: Tuy nhiên có thứ làm cho chuyện trở nên dễ dàng, có tên gọi ―Arduino” Và trải qua công đoạn ngắn gọn sau: Arduino thật bo mạch vi xử lý dùng để lập trình tương tác với thiết bị phần cứng cảm biến, động cơ, đèn thiết bị khác Đặc điểm bật Arduino môi trường phát triển ứng dụng dễ sử dụng, với ngơn ngữ lập trình học cách nhanh chóng với người am hiểu điện tử lập trình Và điều làm nên tượng Arduino mức giá thấp tính chất nguồn mở từ phần cứng tới phần mềm Arduino Uno sử dụng chip Atmega328 Nó có 14 chân digital I/O, chân đầu vào (input) analog, thạch anh dao động 16Mhz Một số thông số kỹ thuật sau : Chip ATmega328 Điện áp cấp nguồn 5V ARDUINO IOT VIETNAM- Đ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ó chân điều chế độ rộng xung PWM) Số chân Analog (Input ) DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32KB (ATmega328) bootloader SRAM KB (ATmega328) EEPROM KB (ATmega328) Xung nhịp 16 MHz với 0.5KB sử dụng Sơ đồ chân Arduino Hình 1.1 Arduino Uno USB (1) Arduino sử dụng cáp USB để giao tiếp với máy tính Thơng qua cáp USB Upload chương trình cho Arduino hoạt động, ngồi USB cịn nguồn cho Arduino Nguồn ( ) Khi không sử dụng USB làm nguồn sử dụng nguồn ngồi thơng qua jack cắm 2.1mm ( cực dương giửa ) sử dụng chân Vin GND để cấp nguồn cho Arduino Bo mạch hoạt động với nguồn điện áp từ – 20 volt Chúng ta cấp áp lớn nhiên chân 5V có mực điện áp lớn volt Và sử dụng nguồn lớn 12 volt có tượng nóng làm hỏng bo mạch Khuyết cáo bạn nên dùng nguồn ổn định đến 12 volt ARDUINO IOT VIETNAM- Chân 5V chân 3.3V (Output voltage) : chân dùng để lấy nguồn từ nguồn mà cung cấp cho Arduino Lưu ý : không cấp nguồn vào chân làm hỏng Arduino GND: chân mass Chip Atmega328 Chip Atmega328 Có 32K nhớ flash 0.5k sử dụng cho bootloader Ngồi cịn có 2K SRAM, 1K EEPROM Input Output ( 4, 6) Arduino Uno có 14 chân digital với chức input output sử dụng hàm pinMode(), digitalWrite() digitalRead() để điều khiển chân đề cập chúng phần sau Cũng 14 chân digital số chân chức là: Serial : chân (Rx ), chân ( Tx) Hai chân dùng để truyền (Tx) nhận (Rx) dữ liêu nối tiếp TTL Chúng ta sử dụng để giao tiếp với cổng COM số thiết bị linh kiện có chuẩn giao tiếp nối tiếp PWM (pulse width modulation): chân 3, 5, 6, 9, 10, 11 bo mạch có dấu “~” chân PWM sử dụng để điều khiển tốc độ động cơ, độ sáng đèn… SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), chân hỗ trợ giao chuẩn SPI I2C: Arduino hỗ trợ giao chuẩn I2C Các chân A4 (SDA) A5 (SCL) cho phép chúng tao giao tiếp giửa Arduino với linh kiện có chuẩn giao tiếp I2C Reset (7): dùng để reset Arduino Cài đặt chương trình Arduino IDE 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 tải chương trình Arduino IDE phù hợp với hệ điều hành máy bao gồm Windown, Mac OS hay Linux Đối với Windown có cài đặt (.exe) Zip, Zip cần giải nén chạy chương trình khơng cần cài đặt ARDUINO IOT VIETNAM- Bạn mở trang arduino.cc chọn mục Downloads menu Software hình sau: Hoặc bạn mở trực tiếp từ link 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” gói giúp bạn cài driver cần thiết cho board Arduino cuối tiến trình cài đặt Sau nhấn vào liên kết trên, bạn chuyển qua trang Donate: ARDUINO IOT VIETNAM- Nhấn vào Just Download để tải Nếu được, bạn ủng hộ họ nhấn vào Just Download để tải Sau tải xong có file cài sau: Số “1.8.10” hình số phiên Arduino IDE Khi bạn tải số khác Tiến hành cài đặt Bây bạn double click vào file vừa tải để tiến hành cài đặt Khi tiến trình cài vừa bắt đầu bạn thấy hình lên thơng báo: User Account Control ARDUINO IOT VIETNAM- • Vì file “arduino-1.8.10-windows.exe” thực cài đặt vào máy tính 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 Bạn nhấn Yes để tiếp tục Tiến trình cài đặt diễn vơ dễ dàng Bạn gặp sau: Arduino Setup: License Agreement • Arduino Setup: License Agreement Nhấn I Agree để qua bước Arduino Setup: Installation Options Arduino Setup: Installation Folder Nếu bạn không cần thay đổi thư mục cài đặt nhấn Install để tiếp • Arduino Setup: Installing ARDUINO IOT VIETNAM- Tiến trình cài diễn ra, ta chờ Windows Security hỏi bạn có muốn cài driver khơng qua thông báo sau: Cài driver từ “Adafruit Industries” Cài driver từ “Arduino srl” Cài driver từ “Arduino LLC” Với thơng báo tất nhiên phải chọn cài hết Bạn chọn hình nhấn Install để driver cần thiết cài nha ARDUINO IOT VIETNAM- Sau cài driver việc cài Arduino IDE hoàn thành Bạn kiểm tra Desktop thấy shortcut Arduino hình đây: Sau cài đặt xong giao diện chương trình sau: Hình 1.2: Arduino IDE ARDUINO IOT VIETNAM- 10 Cài đặt Driver Sử dụng cáp USB kết nối Arduino với máy tính, lúc bạn thấy đèn led power bo sáng Máy tính nhận dạng thiết bị bạn nhận thông báo: “Device driver software was not successfully installed” Hình 1.3: Driver Software Installation Bây bạn click vào Start Menu chọn Control Panel chọn System and Security, click System sau chọn Device Manager Hình 1.4: Device Manager Chúng ta thấy cảnh báo màu vàng thiếu driver Arduino Click chuột phải Arduino Uno icon sau chọn “Update Driver Software” Hình 1.5: Right click chọn ”Update Driver Software” Chọn “Browse my computer for driver software” ARDUINO IOT VIETNAM- 11 Verify : kiểm tra code có lỗi hay không Upload: nạp code soạn thảo vào Arduino New, Open, Save : Tạo mới, mở Save sketch Serial Monitor : Đây hình hiển thị dữ liệu từ Arduino gửi lên máy tính Arduino IDE Menu: Hình 1.9: IDE Menu File menu: Hình 1.10: File menu Trong file menu quan tâm tới mục Examples nơi chứa code mẫu ví dụ như: cách sử dụng chân digital, analog, sensor … Hình 1.11: Click Examples ARDUINO IOT VIETNAM- 13 Edit menu: Hình 1.12: Edit menu Sketch menu Hình 1.13: Sketch menu Trong Sketch menu : Verify/ Compile : chức kiểm tra lỗi code Show Sketch Folder : hiển thị nơi code lưu Add File : thêm vào Tap code Import Library : thêm thư viện cho IDE Tool memu: ARDUINO IOT VIETNAM- 14 Hình 1.14: Tool menu Trong Tool menu ta quan tâm mục Board Serial Port Mục Board : 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 Arduino Uno phải chọn hình: Hình 1.15: Chọn Board Nếu bạn sử dụng loại bo khác phải chọn loại bo mà có sai code Upload vào chip bị lỗi Serial Port: nơi lựa chọn cổng Com Arduino Khi cài đặt driver máy tính thơng báo tên cổng Com Arduino bao nhiêu, ta việc vào Serial Port chọn cổng Com để nạp code, chọn sai khơng thể nạp code cho Arduino Những board mạch Arduino thị trường Hiện thị trường có hàng trăm board mạch Arduino khác nhau, chúng đa phần biến thể PCB (các board mạch điện) những board mạch đến từ nhà sản xuất Arduino Những board mạch có thêm số tính cải tiến đơn giản thiết kế lại nhằm giảm giá thành sản phẩm để tới tay người dùng nhiều Chúng ta điểm qua số board mạch Arduino bên : Arduino Uno R3 Đây board mạch đánh giá tốt cho những người bắt đầu điện tử lập trình Nó sử dụng nhiều board mạch thuộc họ Arduino Hình ảnh chức board Arduino Uno R3 : ARDUINO IOT VIETNAM- 15 Hình 1.16: Arduino Uno R3 Arduino Nano Hình 1.17: Arduino Nano Arduino Nano board mạch sử dụng chip ATmega328 (loại Arduino Nano 3.x) dùng ATmega168 (Arduino Nano 2.x), nhiên có kích thước nhỏ gọn để tích hợp vào hệ thống, kèm với vài điểm khác so sánh với board Arduino Uno R3 : Arduino Leonardo ARDUINO IOT VIETNAM- 16 Arduino Leonardo sử dụng vi điều khiển ATmega32u4, số điểm khác biệt so với board Arduino Uno liệt kê bên dưới: Bên chip ATmega32u4 tích hợp chip usb to serial thay phải dùng mcu board Có thể giả lập board Leonardo chuột, bàn phím, joystick thay phải dùng thiết bị serial khác Chúng ta tìm hiểu tính phần USB-serial Giá thành rẻ (€18.00 www.arduino.cc) 20 digital I/O (7 chân PWM) 12 chân Analog (các chân PWM dùng Analog) Arduino mega2560 Hình 1.18: Arduino Mega 2560 Arduino Mega 2560 phiên nâng cấp Arduino Mega hay gọi Arduino Mega 1280 Sự khác biệt lớn với Arduino Mega 1280 chip nhân Còn Arduino Mega 2560 phiên sử dụng rộng rãi ứng dụng nhiều Với chip ATmega2560 có nhớ flash memory 256 KB, 8KB cho nhớ SRAM, KB cho nhớ EEPROM Giúp cho người dùng thêm khả viết những chương trình phức tạp điều khiển thiết bị lớn máy in 3D, điều khiển robot Arduino Mega 2560 vi điều khiển hoạt động dựa chip ATmega2560 Bao gồm: ARDUINO IOT VIETNAM- 17 54 chân digital (trong có 15 chân sủ dụng những chân PWM từ chân số → 13 chân 44 45 46) • ngắt ngoài: chân (interrupt 0), chân (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) • • • • • • • CỔNG SERIAL CHÂN RXCHÂN TX Cổng 0 Cổng 19 18 Cổng 17 16 Cổng 15 14 cổng Serial giao tiếp với phần cứng: thạch anh với tần số dao động 16 MHz cổng kết nối USB jack cắm điện đầu ICSP nút reset Đối với những quan tâm tới Matlab Arduino Mega 2560 chọn lựa tuyệt vời Vì cịn tích hợp sẵn thư viện dành cho MatLab Với viêc kết hợp giữa Matlab Arduino kết hợp thú vị Ở giới thiệu cho bạn ngồi bạn tìm hiểu thêm Arduino Mega 2560 sử dụng hầu hết shiled dành cho mạch Arduino Uno hay mạch trước Duemilanove hay Diecimila với cách cài đặt nối chân tương tự Arduino Uno Hiện có số shiled hỗ trợ cho Arduino Mega nhiều như: Hình 1.19:Mạch điều khiển máy in 3D RAMPS 1.4 ARDUINO IOT VIETNAM- 18 Thông số kĩ thuật Chip xử lý ATmega2560 Điện áp hoạt động 5V Đ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 3.3V50pin mA Cường độ dòng điện I/O pin 20 mA Flash Memory 256 KB SRAM KB EEPROM KB Clock Speed 16 MHz Ứng dụng thực tế: Với tiện ích vơ lớn Arduino Mega 2560, mạnh mẽ với nhớ flash lớn, số chân nhiều số lượng shield hỗ trợ không nhỏ Arduino Mega đưa vào dự án lớn xử lý thông tin nhiều luồng, điều khiền nhiều động cơ, xe điều khiển từ xa, LED cube hay mở rộng cánh cửa với giới IoT Một vài lưu ý sử dụng Arduino Mega Khi bắt đầu sử dụng Arduino Mega 2560, bạn nên ý 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 nhận board cũ nên build bạn gặp lỗi Khi sử dụng chân RX, TX cuả Arduino, bạn nên nhớ tiêu thụ dây cắm chân bắt đầu upload Sau cắm lại bình thường sử dụng để tránh gặp phải lỗi Không phép cắm trực tiếp chân GND vào chân nguồn 5V, dẫn tới hỏng mạch Lập trình ESP8266 Arduino IDE Giới thiệu Để bắt đầu với những dự án Wifi với Arduino bạn cần ESP8266 với giá thành rẻ, dễ dàng sử dụng Đặc biệt, ESP8266 lập trình Arduino IDE Trước bắt đầu ARDUINO IOT VIETNAM- 19 những chuỗi dự án hay ho với ESP8266, viết này, chia sẻ cách cài đặt Arduino IDE để nạp code cho ESP8266 Chuẩn bị x ESP8266 v1 x USB TTL (ví dụ PL2303 hoăc CP210x) x Arduino IDE Tiến hành Sau down Arduino IDE, bạn tiến hành cài đặt bình thường mở chương trình Hình 1.20: Giao diện Arduino IDE Để tiến hành cài đặt thư viện chức nạp code cho IDE bạn làm 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 ARDUINO IOT VIETNAM- 20 Tiếp theo vào Tool→Board→Boards Manager đợi lát để chương trình tìm kiếm Ta kéo xuống click vào ESP8266 by ESP8266 Community, click vào Install Chờ phần mềm tự động download cài đặt Chọn Board để lập trình cho ESP8266: ARDUINO IOT VIETNAM- 21 Kế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 ta có mơi trường lập trình cho esp8266 thân thiện Sau kết nối UART vs ESP8266 bạn test code ESP8266 đây: int pin = 2; void setup() { pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); delay(1000); digitalWrite(pin, LOW); delay(1000); } ARDUINO IOT VIETNAM- //bật led //dừng 1s //tắt led //dừng 1s 22 11 TrafficLights(Đèn giao thông) Introduction Trong dự án này, bạn xây dựng hệ thống đèn giao thông: • Có đèn LED với màu khác (xanh cây, vàng đỏ) để mô đèn giao thơng cho xe tơ • Có đèn LED với màu khác (xanh đỏ) để mô đèn giao thông cho người • Có nút bấm để bắt chước những đèn giao thông dành cho người Parts Required Grab all the needed components for this project 1x Breadboard Arduino UNO – read Best Arduino Starter Kits 3x 5mm LED (1x red, 1x yellow, 1x green) ARDUINO IOT VIETNAM - 91 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 bạn khơng có đèn LED có kích cỡ khác khơng Dự án hoạt động Schematics Code Bạn không cần thư viện cho mã Mã đơn giản Dưới đây, số lời khuyên để hiểu rõ những diễn • Đèn xe sáng màu xanh cây, đèn dành cho người ln có màu đỏ trừ có nhấn nút • Khi nhấn nút đây, điều xảy ra: • Đèn xe chuyển sang màu vàng sau chuyển sang màu đỏ • Đèn dành cho người chuyển sang màu xanh Đèn trạng thái thời gian (trong mã lần biến đổi thời gian) • Đèn xanh người nhấp nháy chuyển sang màu đỏ • Đèn xe chuyển từ đỏ sang xanh Tất những hành động nằm hàm ChangeLights () Mỗi bạn muốn thay đổi đèn, bạn cần gọi hàm changeLights () Sao chép mã sau vào Arduino IDE bạn tải lên bảng Arduino bạn Hãy chắn bạn chọn bảng cổng COM ARDUINO IOT VIETNAM - 92 Code: int redCar = 13; int yellowCar = 12; int greenCar = 11; int greenPed = 2; int redPed = 3; int button = 7; int crossTime = 2000; unsigned long changeTime; void setup() { // initialize timer changeTime = millis(); // here we are initializing our pins as outputs pinMode(redCar, OUTPUT); pinMode(yellowCar, OUTPUT); pinMode(greenCar, OUTPUT); pinMode(redPed, OUTPUT); pinMode(greenPed, OUTPUT); pinMode(button, INPUT); //turn on the green light digitalWrite(greenCar, HIGH); digitalWrite(redPed, HIGH); digitalWrite(redCar, LOW); digitalWrite(yellowCar, LOW); digitalWrite(greenPed, LOW); 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 seconds since last button press if (state == HIGH && (millis() - changeTime) > 5000) { //call the function to change the lights changeLights(); } } void changeLights() { digitalWrite(greenCar, LOW); // the green LED will turn off digitalWrite(yellowCar, HIGH); // the yellow LED will turn on for second delay(2000); digitalWrite(yellowCar, LOW); // the yellow LED will turn off digitalWrite(redCar, HIGH); // the red LED will turn on for seconds digitalWrite(redPed, LOW); ARDUINO IOT VIETNAM 93 digitalWrite(greenPed, HIGH); delay(crossTime); // flash the ped green for (int x=0; x