Báo cáo thực hành ghép nối Arduino với máy tinh

53 871 19
Báo cáo thực hành ghép nối Arduino với máy tinh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

báo cáo thực hành ghép nối máy tính với arduino, ghép nối vi xữ lý arduino với máy tính để điều khiển các thiết bị ngoại vi, như cảm biến nhiệt độ, sensor, động cơ 1 chiều DC, màn hình LCD

ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN TỬ - VIỄN THÔNG  - BÁO CÁO TOÀN VĂN THỰC HÀNH CƠ SỞ ĐIỆN TỬ - VIỄN THÔNG II SINH VIÊN THỰC HIỆN : 1- Trần Tấn Phú 2- Trương Công Nhật GIÁO VIÊN HƯỚNG DẪN : Thầy : Nguyễn Nhật Quang Huế -2017 MỤC LỤ I HIỂN THỊ LCD 16x2 THEO NỘI DUNG NHẬP TỪ BÀN PHÍM BẰNG MÁY TÍNH 1.1 Lưu đồ thuật tốn điều khiển………………………………………………………….1 1.2 Bằng phần mềm Arduino UNO R3……………………………………………………1 1.3 Bằng phần mềm Visual Studio……………………………………………………… 1.4 Hình ảnh sổ chụp từ hình PC……………………………………………… 1.5 Kết thực thực tế nhận xét………………………………………… 1.5.1 kết thực thực tế………………………………………………………4 1.5.2 nhận xét…………………………………………………………………………… 1.6 Hai đoạn code tương ứng cho hai chương trình viết Arduino uno r3…………….5 1.6.1 Code viết Arduino ……………………………………………………………6 1.6.2 Code viết Visual Studio…………………………………………………… BÀI 02: ĐIỀU KHIỂN CƠ BƯỚC BẰNG MÁY TÍNH 2.1 Lưu đồ thuật toán điều khiển………………………………………………………….9 2.1.1 Bằng phần mềm Arduino UNO R3…………………………………………………9 2.1.2 Bằng phần mềm Visual Studio…………………………………………………….10 2.2 Hình ảnh sổ chụp từ hình PC………………………………………………11 2.3 Kết thực thực tế nhận xét…………………………………………11 2.3.1 kết thực thực tế…………………………………………………… 11 2.3.2 nhận xét…………………………………………………………………………….11 2.6 Hai đoạn code tương ứng cho hai chương trình viết Arduino uno r3………… 12 2.6.1 Code viết Arduino ……………………………………………………… 12 2.6.2 Code viết Visual Studio…………………………………………………… 13 BÀI 03 : ĐIỀU KHIỂN ĐỘNG CƠ DC BẰNG MÁY TÍNH 3.1 Lưu đồ thuật tốn điều khiển……………………………………………………… 14 3.1.1 Bằng phần mềm Arduino UNO R3……………………………………………… 14 3.1.2 Bằng phần mềm Visual Studio…………………………………………………….15 3.2 Hình ảnh giao diện chụp từ hình PC……………………………………………16 3.3 Kết thực thực tế nhận xét…………………………………………16 3.3.1 kết thực thực tế…………………………………………………… 16 3.3.2 nhận xét…………………………………………………………………………….16 3.4 Hai đoạn code tương ứng cho hai chương trình viết Arduino uno r3………… 17 3.4.1 Code viết Arduino ………………………………………………………… 18 3.4.2 Code viết Visual Studio…………………………………………………… 19 BÀI 04: GIAO TIẾP GIỮA CẢM BIẾN NHIỆT ĐỘ VÀ ĐỘ ẨM BẰNG MÁY TÍNH 4.1 Lưu đồ thuật tốn điều khiển……………………………………………………… 19 4.1.1 Bằng phần mềm Arduino UNO R3……………………………………………… 19 4.1.2 Bằng phần mềm Visual Studio…………………………………………………….20 4.4 Hình ảnh sổ chụp từ hình PC……………………………………………….21 4.5 Kết thực thực tế nhận xét…………………………………………21 4.5.1 kết thực thực tế…………………………………………………… 21 4.5.2 nhận xét…………………………………………………………………………….21 4.6 Hai đoạn code tương ứng cho hai chương trình viết Arduino uno r3………… 22 4.6.1 Code viết Arduino ………………………………………………………… 22 4.6.2 Code viết Visual Studio…………………………………………………… 23 BÀI 05: HIỂN THỊ LCD 16x2,ĐIỀU KHIỂN ĐỘNG CƠ DC VÀ ĐỘNG CƠ BƯỚC,ĐO NHIỆT ĐỘ ĐỘ ẨM BẰNG MÁY TÍNH 5.1 Lưu đồ thuật toán điều khiển……………………………………………………… 24 5.2 Bằng phần mềm Arduino UNO R3………………………………………………… 24 5.3 Bằng phần mềm Visual Studio………………………………………………… … 25 5.4 Hình ảnh sổ chụp từ hình PC……………………………………………….26 5.5 Kết thực thực tế nhận xét…………………………………………26 5.5.1 kết thực thực tế…………………………………………………… 26 5.5.2 nhận xét…………………………………………………………………………….26 5.6 Hai đoạn code tương ứng cho hai chương trình viết Arduino uno r3………… 27 5.6.1 Code viết Arduino ………………………………………………………… 28 5.6.2 Code viết Visual Studio…………………………………………………… 39 KẾT LUẬN……………………………………………………………………………… TÀI LIỆU THAM KHẢO………………………………………………………………… DANH SÁCH CÁC HÌNH VẼ Hình 1: Minh họa sơ đồ khối board Arduino uno r3…………………………………… vi Hình 2: Minh họa hình ảnh thực tế VĐK ATmega328………………………………….vii Hình 3: minh họa cổng vào boar Arduino UNO R3…………………………viii Hình 4: Minh họa giao diện lập trình Arduino IDE ( Integrated Development Environment )……………………………………………………………………………x Hình 5: Minh họa vùng ToolBar giao diện Arduino IDE ( Integrated Development Environment )…………………………………………………………………………….x Hình 6: Minh họa chọn board Arduino phù hợp…………………………………………xi Hình 7: Minh họa chọn cổng COM giao tiếp phù hợp………………………………… xii Hình 8: Minh họa vùng viết chương trình……………………………………………….xii Hình 9: Minh họa vùng thơng báo………………………………………………………… xiii Hình 10: Giao diện chương trình hiển thị LCD (Liquid Crystal Display)……………………4 Hình 11: Giao diện chương trình điều khiển động chiều ………………………… 11 Hình 12: giao diện điều khiển động servo……………………………………………16 Hình 13: Giao diện chương độ……………………………………………… 21 trình đo nhiệt Hình 14: Giao diện điều khiển toàn bộ……………………………………………………… 26 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Diễn giải Dịch nghĩa COM Computer Output on Micro Cổng COM nối thiết bị chơi game,máy in… IDE Integrated Development Environment Môi trường phát triển tích hợp SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp UART Universal Asynchronous Reveiver - Transmitter Bộ truyền nhận không đồng USB Universal Serial Bus Bộ kết nối thiết bị ngoại vi TX Transmitter Gửi liệu GND Ground Đất LED Light Emitting Diode Đốt phát quang PC Personal Computer Máy tính cá nhân LCD Liquid Crystal Display Màn hình tinh thể lỏng RX Receiver Nhận liệu VIN Voltage Input Nguồn MỞ ĐẦU I MÔ TẢ PHẦN CỨNG Mạch Arduino uno dòng mạch phổ biến,khi bắt đầu làm quen, lập trình với arduino mạch Arduino thường nói tới Arduino uno.Hiện dòng mạch phát đến hệ thứ 3(Arduino uno r3) Arduino uno dòng bản,linh hoạt,thường sử dụng cho người bắt đầu.Bạn sử dụng dòng arduino khác như: Arduino MEGA,Arduino NANO…Nhưng với ứng dụng mạch Arduino uno lựa chọn phù hợp Hình 1: Minh họa sơ đồ khối board Arduino uno r3 NGUỒN CẤP CHO Arduino UNO R3: Arduino UNO cấp nguồn 5V thơng qua cổng USB cấp nguồn với điện áp khuyên dùng 7-12V DC giới hạn 6-20V Thường cấp nguồn pin vng 9V hợp lí bạn khơng có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt ngưỡng giới hạn trên, bạn làm hỏng Arduino UNO Arduino UNO sử dụng vi điều khiển họ 8bit AVR ATmega8, ATmega168, ATmega328 Bộ não xử lí tác vụ đơn giản điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD,… hay ứng dụng khác 32KB nhớ Flash: đoạn lệnh bạn lập trình lưu trữ nhớ Flash vi điều khiển Thường có khoảng vài KB số dùng cho bootloader đừng lo, bạn cần 20KB nhớ đâu 2KB cho SRAM (Static Random Access Memory): giá trị biến bạn khai báo lập trình lưu Bạn khai báo nhiều biến cần nhiều nhớ RAM Tuy vậy, thực nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi điện, liệu SRAM bị 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): giống ổ cứng mini – nơi bạn đọc ghi liệu vào mà khơng phải lo bị cúp điện giống liệu SRAM Hình 2: Minh họa hình ảnh thực tế VĐK ATmega328 CÁC CHÂN NĂNG LƯỢNG: GND (Ground): cực âm nguồn điện cấp cho Arduino UNO.Khi bạn dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối tiếp với 5V: Cấp điện áp 5V đầu ra.Dòng tối đa cho phép chân 500mA 3.3V: Cấp điện áp 5V đầu ra.Dòng tối đa cho phép chân 50mA VIN (Voltage Input): để cấp nguồn cho Arduino UNO IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân này,và ln 5V RESET: việc nhấn nút Reset board để reset vi điều khiển tương đương với việc chân reset nối với GND qua điện trở 10KΩ CÁC CỔNG VÀO RA : Hình 3: minh họa cổng vào boar Arduino UNO R3 Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt vi điều khiển ATmega328 (mặc định điện trở khơng kết nối) Một số chân digital có chức sau: chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thơng qua chân Kết nối bluetooth thường thấy nói nơm na kết nối Serial khơng dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng chân không cần thiết Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép bạn xuất xung PWM với độ phân giải 8bit (giá trị từ → 28-1 tương ứng với 0V → 5V) hàm analogWrite() Nói cách đơn giản, bạn điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngồi chức thơng thường, chân dùng để truyền phát liệu giao thức SPI với thiết bị khác LED 13: Arduino UNO có đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn thấy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng Ngồi board hỗ trợ khối chức thể nhiệm vụ mở rộng sau: - Kết nối Ethernet 10/100 - Khe cắm PCI Express đầy đủ, với tính PCIe phù hợp - Kết nối USB Host 2.0 Hỗ trợ lên đến 128 thiết bị kết cuối - Kết nối USB Client Sử dụng để nạp chương trình Sketch - 10 chân JTAG tiêu chuẩn sử dụng để gỡ rối (debug) - Nút Reboot để khởi động lại vi xử lý - Các tùy chọn lưu trữ II Phương pháp lập trình trình biên dịch IDE ( Integrated Development Environment ) Chúng ta 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 Mơi trường phát triển tích hợp (IDE) Arduino ứng dụng đa tảng viết Java.Nó thiết kế để dành cho nhà phát triển người tập tành làm quen với lĩnh vực phát triển phần mềm Nó bao gồm trình biên tập mã nguồn (code editor) với chức đánh 25 5.1.2 Bằng phần mềm Visual Studio 5.2 Hình ảnh cửa sổ điều khiển chụp từ hình PC ( Personal Computer ) Hình 14: Giao diện điều khiển toàn 5.3 Kết thực thực tế nhận xét 5.3.1 Kết thực thực tế Khi điều khiển phần mềm Arduino Uno r3 Visual Studio mạch giao tiếp với cổng COM ổn định có kết với lý thuyết Mạch điều khiển đo nhiệt độ độ ẩm thông qua cảm biến sử dụng Kit Arduino Uno r3.Viết code đo nhiệt độ độ ẩm Arduino Uno R3 2, hoàn thành chương trình đo nhiệt độ độ ẩm Visual Studio 5.3.2 Nhận xét Mạch hoạt động ổn định 26 5.4 Hai đoạn code ứng với hai chương trình viết Arduino Integrated Development Environment hay Visual Studio 5.4.1 Code Arduino uno r3 #include #include #include #include #include LiquidCrystal_I2C lcd(0x27, 16,2); //khai báo LCD Servo myservo; //khai báo servo AF_DCMotor motor(3, MOTOR34_64KHZ); const int DHTPIN = 2; const int DHTTYPE = DHT11; DHT dht(DHTPIN,DHTTYPE); String chuoi1; String chuoi2; int i; String t;//dung cho LCD String dc; //dung cho motor int h; int t0; //dung cho sensor int val; //dung cho servo String check; //chuoi kiểm tra void LCD(); // ham LCD void SERVO(); // ham Servo void MOTOR(); //ham motor void SENSOR(); //ham sensor 27 void setup() { // put your setup code here, to run once: Serial.begin(115200); //khai báo tốc độ baud lcd.init(); lcd.backlight(); lcd.clear(); myservo.attach(9); //khai báo chân OUT servo } void loop() { if (check == "lcd") { //Serial.println("Chon LCD"); LCD(); } if (check == "servo") { //Serial.println("Chon servo"); SERVO(); } if (check == "dc") { 28 lcd.clear(); //Serial.println("Chon motorDC"); MOTOR(); } if (check == "sensor") // Kiểm tra điều kiện chọn SENSOR để điều khiển { lcd.clear(); //Serial.println("Chon sensor"); SENSOR(); } while (Serial.available()) { check = Serial.readString(); if (check == "lcd") // Kiểm tra điều kiện chọn LCD để điều khiển { //Serial.println("Chon LCD"); LCD(); } if (check == "servo") // Kiểm tra điều kiện chọn SERVO để điều khiển { //Serial.println("Chon servo"); SERVO(); } 29 if (check == "dc") // Kiểm tra điều kiện chọn MOTOR để điều khiển { lcd.clear(); //Serial.println("Chon motorDC"); MOTOR(); } if (check == "sensor") // Kiểm tra điều kiện chọn SENSOR để điều khiển { lcd.clear(); //Serial.println("Chon sensor"); SENSOR(); } } } // Hàm LCD void LCD() { while(1) { if (Serial.available()>0) { String t = Serial.readString(); 30 if ( t=="servo") { check = t; return; } if (t=="sensor") { check = t; return; } if (t=="dc") { check = t; return; } lcd.clear(); if(t.length()=0;i ) { if(t.charAt(i)==' ') { chuoi1.remove(i,t.length()-i); t.remove(0,i+1); break; } } while(t.length()>0) { lcd.setCursor(0,0); lcd.print(chuoi1); if(t.length()=0;i ) { if(t.charAt(i)==' ') { chuoi2.remove(i,t.length()-i); t.remove(0,i+1); break; } } lcd.setCursor(0,1); lcd.print(chuoi2); chuoi1 = chuoi2; } delay(2000); lcd.clear(); } } } } } // Hàm SERVO void SERVO() 33 { while(1) { if (Serial.available()>0) { String goc = Serial.readString(); if ( goc=="dc") { check = goc; return; } if ( goc=="sensor") { check = goc; return; } if (goc == "lcd") { check = goc; return; } lcd.clear(); val=Serial.parseInt(); 34 myservo.write(val); } } } // hàm MOTOR void MOTOR() { while (1) while(Serial.available()>0) { String dc=Serial.readString(); if (dc =="servo") { check = dc; return; } if (dc =="lcd") { check = dc; return; } 35 if (dc=="sensor") { check =dc; return; } } if (dc=="1") { motor.run(FORWARD); // động tiến // motor.setSpeed(t); } if (dc=="2"){ motor.run(BACKWARD); // động lùi // motor.setSpeed(t); } if (dc=="3") { motor.run(RELEASE); // dừng động } } 36 //hàm SENSOR void SENSOR() { while (1) { while (Serial.available()) { String c = Serial.readString(); if (c == "servo") { check = c; return; } if (c == "dc") { check = c; return; } if (c == "lcd") { check = c; return; } 37 } dht.begin(); h= dht.readHumidity(); t0= dht.readTemperature(); lcd.clear(); lcd.setCursor(0,0); lcd.print("Do Am:"); lcd.setCursor(7,0); lcd.println(h); lcd.setCursor(9,0); lcd.print(" % "); lcd.setCursor(0,1); lcd.print("Nhiet Do:"); lcd.setCursor(10,1); lcd.print(t0); lcd.setCursor(12,1); lcd.print(" C "); } } 5.4.2 Code visual studio 38 KẾT LUẬN Bài báo cáo soạn thảo mức draft, chưa phải bái báo cáo hồn thiện Tuy nhiên, báo cáo dùng để soạn báo cáo nhóm để hình thành báo cáo có thống cấu trúc, format… tiện lợi cho việc tổng hợp báo cáo sau TÀI LIỆU THAM KHẢO 39

Ngày đăng: 27/12/2017, 14:41

Từ khóa liên quan

Mục lục

  • DANH SÁCH CÁC HÌNH VẼ

  • DANH MỤC CÁC TỪ VIẾT TẮT

  • MỞ ĐẦU

  • BÀI 01: HIỂN THỊ LCD 16x2 THEO NỘI DUNG NHẬP TỪ BÀN PHÍM

    • 1.1. Lưu đồ thuật toán điều khiển

      • 1.1.1. Bằng phần mềm Arduino IDE ( Integrated Development Environment )

      • 1.1.2. Bằng phần mềm Visual Studio

      • 1.2. Hình ảnh cửa sổ điều khiển chụp từ màn hình PC ( Personal Computer )

      • 1.3. Kết quả thực hiện trong thực tế và nhận xét

        • 1.3.1. Kết quả thực hiện trong thực tế

        • 1.3.2. Nhận xét

        • 1.4. Hai đoạn code tương ứng với hai chương trình viết trên Arduino Integrated Development Environment hay Visual Studio

          • 1.4.1. Code trên Arduino Uno r3

          • BÀI 02: ĐIỀU KHIỂN HOẠT ĐỘNG ĐỘNG CƠ ĐIỆN MỘT CHIỀU BẰNG MÁY TÍNH

            • 2.1. Lưu đồ thuật toán điều khiển

              • 2.1.1. Bằng phần mềm Arduino IDE ( Integrated Development Environment )

              • 2.1.2. Bằng phần mềm Visual Studio

              • 2.2. Hình ảnh điều khiển chụp từ màn hình PC ( Personal Computer )

              • 2.3. Kết quả thực hiện trong thực tế và nhận xét

                • 2.3.1. Kết quả thực hiện

                • 2.3.2. Nhận xét

                • 2.4. Hai đoạn code ứng với hai chương trình viết trên Arduino Integrated Development Environment hay Visual Studio

                  • 2.4.1. Code trên Arduino uno r3

                  • BÀI 03: ĐIỀU KHIỂN ĐỘNG CƠ SERVO BẰNG MÁY TÍNH

                    • 3.1.1 Bằng phần mềm Arduino IDE ( Integrated Development Environment)

                    • 3.1.2. Bằng phần mềm Visual Studio

                    • 3.2. Hình ảnh cửa sổ điều khiển chụp từ màn hình PC ( Personal Computer )

Tài liệu cùng người dùng

Tài liệu liên quan