Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
1,04 MB
Nội dung
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO MÔN: THỰC HÀNH CƠ SỞ ĐIỀU KHIỂN ÔTÔ MÔ HÌNH QUA BLUETOOTH Giảng viên: Sinh viên: NGUYỄN HỮU MẠNH - B13DCDT069 LÃ DUY KHÁNH – B13DCDT064 LỜI MỞ ĐẦU Trong năm qua, khoa học máy tính xử lý thông tin có bước tiến vượt bậc ngày có đóng góp to lớn vào cách mạng khoa học kỹ thuật đại Đặc biệt đời phát triển nhanh chóng kỹ thuật số làm cho ngành điện tử trở nên phong phú đa dạng Nó góp phần lớn việc đưa kỹ thuật đại thâm nhập rộng rãi vào lĩnh vực hoạt động sản xuất, kinh tế đời sống xã hội Từ hệ thống máy tính lớn đến hệ thống máy tính cá nhân, từ việc điều khiển máy công nghiệp đến thiết bị phục vụ đời sống ngày người Trong hệ thống đó, việc trao đổi thông tin vô quan trọng Công nghệ truyền tin không dây ngày phát triển, đặc biệt công nghệ Bluetooth phổ biến hầu hết thiết bị điện tử di động Bản báo cào trình bày kết nghiên cứu công nghệ không dây Bluetooth thiết bị điện tử chạy hệ điều hành Android ứng dụng vào thiết kế mô hình xe điều khiển từ thiết bị Android qua kết nối không dây Bluetooth Tuy nhiên trình nghiên cứu làm báo cáo nhóm có số vấn đề thiếu xót chưa trình bày sâu xắc Rất mong đóng góp ý kiến thầy bạn để báo cáo hoàn thiện Chúng em xin cám ơn! Phần I : Linh kiện sử dụng Arduino Uno R3 a Các thông số Arduino Uno R3: Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bootloader SRAM KB (ATmega328) EEPROM b KB (ATmega328) Vi điều khiển: 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 c Năng Lượng: 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 vuông 9V hợp lí bạn sẵn nguồn từ cổng USB Nếu cấp nguồn vượt ngưỡng giới hạn làm hỏng Arduino UNO d Các chân lượng: GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với 5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA 3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA Vin (Voltage Input): để cấp nguồn cho Arduino UNO, nối cực dương nguồn với chân cực âm nguồn với chân GND IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân Và dĩ nhiên 5V Mặc dù không lấy nguồn 5V từ chân để sử dụng chức cấp nguồn 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Ω e Bộ nhớ: Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng: • • • 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à ta 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à lo bị cúp điện giống liệu SRAM f Các chân vào – ra: 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 đặc biệt 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, 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ừ → 8-1 tương ứng với 0V → 5V) hàm analogWrite() Nói cách đơn giả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) Ngoà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 Arduino UNO có chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp khoảng 0V → 5V Với chân AREF board, để đưa vào điện áp tham chiếu sử dụng chân analog Tức bạn cấp điện áp 2.5V vào chân bạn dùng chân analog để đo điện áp khoảng từ 0V → 2.5V với độ phân giải 10bit Đặc biệt, Arduino UNO có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác 2 Mạch cầu H L298 Mạch Điều Khiển Động Cơ L298 giúp bạn điều khiển tốc độ chiều quay động DC cách dễ dàng, ramodule L298 điều khiển động bước lưỡng cực mạch cầu H l298 động có điện áp từ 5V đến 35V Mạch Điều Khiển Động Cơ L298 có tích hợp IC nguồn 7805 để tạo nguồn 5V để cung cấp cho thiết bị khác Thông số kỹ thuật - Driver: L298N tích hợp hai mạch cầu H -Điện áp điều khiển: +5 V ~ +35 V - Dòng tối đa cho cầu H là: 2A - Điện áp tín hiệu điều khiển: +5 V ~ +7 V - Dòng tín hiệu điều khiển: ~ 36mA - Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃) - Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃ Các chân tín hiệu 10 11 12 DC motor "+" stepper motor A+ DC motor "-" stepper motor A12V jumper - tháo jumper qra sử dụng nguồn 12V Jumper dùng để cấp nguồn cho IC ổn áp tạo nguồn 5V nguồn 12V làm cháy IC Nguồn cằm dây nguồn cung cấp điện áp cho motor vào từ 6V đến 35V cắm chân GND nguồn vào ngõ nguồn 5V, jumper đầu vào không rút Chân Enable Motor 1, chân dùng để cấp xung PWM cho motor dùng VDK rút jumper cắm chân PWM vào Giữ nguyên dùng với động bước IN1 IN2 IN3 IN4 Chân Enable Motor 2, chân dùng để cấp xung PWM cho motor dùng VDK rút jumper cắm chân PWM vào Giữ nguyên dùng với động bước 13 14 DC motor "+" stepper motor B+ DC motor "-" stepper motor B- Module bluetooth HC-06 Bluetooth module SLAVE cho phép vi điều khiển kết nối với thiết bị ngoại vi: smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi nhận tín hiệu chiều Module bluetooth tích hợp board cho phép bạn sử dụng nguồn từ 3.5V đến 6V cung cấp cho board mà không cần lo lắng chênh lệch điện áp 3V - 5V gây hỏng board Bluetooth module gồm chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE Đây module bluetooth SLAVE nghĩa bạn chủ động kết nối vi điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb để dò tín hiệu kết nối (pair) từ smartphone, laptop, bluetooth usb Sau pair thành công, bạn gửi nhận tín hiệu từ vi điều khiển đến thiết bị Hướng dẫn nối dây Bluetooth module Arduino VCC 5V GND GND TX RX RX TX Tần số làm việc: 2.4GHz Kích thước module: 44mm x 16mm x 7mm Có sẵn dây nối dài bus 18cm Sau pair nối dây cho module bluetooth, nhận liệu cổng Serial thông thường 4.IC 7805 - IC 7805 IC ổn áp tạo nguồn 5v ổn định cung cấp cho mạch cầu, atmega module bluetooth - Cấu tạo : gồm chân : INPUT, OUTPUT GND Thạch anh Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (20 MHz) cho dao động của Atmega Tụ gốm Chức năng: tụ gốm 104 (~ 100nF) sẽ được sử dụng để lọc nhiễu cho dao động thạch anh Tụ hóa Chức năng: Tụ hóa 1000μF và 470μF sử dụng khối cấp nguồn để lọc phẳng tín hiệu Điện trơ Chức năng:Dùng để cản trơ dòng điện Phần mềm: Bluetooth remote control car for android Giao diện phần mềm điều khiển Phím điều khiến oto tiến phía trước Phím điều khiển oto lùi phía sau Phím điều khiển oto rẽ sang bên trái Phím điều khiển oto rẽ sang bên phải Phim điều khiển oto dừng lại Động - Trong mạch ta dùng loại motor DC-motor chổi than,chạy dòng điện chiều,có cồn suất nhỏ - Motor hoạt động giải điện áp 3v-12v - Motor thiết kế thêm giảm tốc để tăng lực kéo vận hành PHẦN II: SƠ ĐỒ - NGUYÊN LÝ MẠCH KHỐI NGUỒN MODULE sa ARDUINO BLUETOOTH HC06 MẠCH CẦU H ĐỘNG ĐỘNG CƠ CƠ TRÁI PHẢI ` begin Khối giao diện Thông báo & yêu cầu bất bluetooth Bluetooth on tìm kiếm xe Đợi thao tác Chuyển sang giao diên điều khiển up Sent “9” down Sent “3” lef Sent “4” right Sent “2” stop Sent “8” exit End disco nect Ngắt kết nối Khối nguồn khối vi điều khiển * Khối nguồn - Nguồn đầu vào nuôi pin 7,4V qua IC 7805 ghim mức điện áp 5V cung cấp cho ATMEGA, mạch cầu H Module bluetooth HC-0 - Tụ gốm dùng để lọc nguồn, tụ hóa dùng để san phẳng tín hiệu đầu cho chất lượng tín hiệu tốt - Sử dụng led để báo nguồn - Nguồn pin 7,4V đưa trực tiếp vào chân J10 để làm nguồn nuôi - điều khiển motor cho IC mạch cầu Lối IC 7805 nguồn 5V đưa vào chân cung cấp cho IC L298 bên khối mạch cầu Chân lại GND * Khối vi điều khiển ATmega328 vi điều khiển board mạch Arduino ATmega328 có tên đầy đủ ATmega328P-PU ATmega328 linh hồn board mạch Arduino, sức mạnh phần cứng mà Arduino Uno có từ Hình ảnh board arduino đơn giản với ATmega328 Các vi điều khiển ATmega328 ghi sẵn bootloader Arduino Bootloader Arduino cho phép bạn gửi mã chương trình cho ATmega328 thông qua giao thức Serial (dùng cổng COM) mà không yêu cầu bạn phải có nạp ROM đặc biệt Các thông số vi điều khiển Atmega328P-PU sau: + Kiến trúc: AVR 8bit + Xung nhịp lớn nhất: 20Mhz + Bộ nhớ chương trình (FLASH): 32KB + Bộ nhớ EEPROM: 1KB + Bộ nhớ RAM: 2KB + Điện áp hoạt động rộng: 1.8V - 5.5V + Số timer: timer gồm timer 8-bit timer 16-bit + Số kênh xung PWM: kênh (1timer kênh) Khối mạch cầu Hình ảnh thực tế khối mạch cầu Sơ đồ nguyên lý khối mạch cầu - - - - - IC L298 là một IC tích hợp nguyên khối gồm mạch cầu H bên Với điện áp làm tăng công suất đầu từ 5V – 47V, dòng lên đến 4A, L298 thích hợp ứng dụng công suất nhỏ động DC loại vừa … Khối mạch cầu điều khiển mạch cầu nhận nguồn 7.4V từ nguồn vào chân V s là nguồn riêng điều khiển hai động IC L298 nhận nguồn 5V từ chân V của IC 7805 nuôi mạch chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với chân 5, 7, 10, 12 của L298 Đây là chân nhận tín hiệu điều khiển chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với chân INPUT) được nối với chân 2, 3, 13, 14 của L298 Các chân này sẽ được nối với động Hai chân ENA và ENB dùng để điều khiển mạch cầu H L298 Nếu mức logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, mức logic “0” mạch cầu H không hoạt động Khi ENA = 0: Động không quay với mọi đầu vào Khi ENA = 1: IN1 = 1; IN2 = 0: động quay thuân IN1 = 0; IN2 = 1: động quay nghịch IN1 = IN2: động dừng tức - Khi ENB = 0: Động không quay với mọi đầu vào Khi ENB = 1: IN3 = 1; IN4 = 0: động quay thuân IN3 = 0; IN4 = 1: động quay nghịch IN3 = IN4: động dừng tức - Dùng diode chỉnh lưu để dập xung tải gây ( tải thường motor – động cơ) Khi tải hoạt động và ngừng lại, tải cảm đó sẽ lưu trữ một dòng điện, vậy ngừng hoạt động tải cảm này sẽ sinh một dòng ngược, dòng ngược này nguy hiểm cho Transistor nên cần phải dập PHẦN III: CODE CHƯƠNG TRÌNH #define START_CMD_CHAR '*' #define END_CMD_CHAR '#' #define DIV_CMD_CHAR '|' #define CMD_DIGITALWRITE 10 #define CMD_ANALOGWRITE 11 #define CMD_TEXT 12 #define CMD_READ_ARDUDROID 13 #define MAX_COMMAND 20 // max command number code used for error checking #define MIN_COMMAND 10 // minimum command number code used for error checking #define IN_STRING_LENGHT 40 #define MAX_ANALOGWRITE 255 #define PIN_HIGH #define PIN_LOW #define ENA #define ENB 10 #define IN1 #define IN2 #define IN3 11 #define IN4 12 String inText; void setup() { Serial.begin(9600); Serial.println("ArduDroid 0.12 Alpha by TechBitar (2013)"); Serial.flush(); } void loop() { pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN4, OUTPUT); Serial.flush(); int ard_command = 0; int pin_num = 0; int pin_value = 0; char get_char = ' '; //read serial // wait for incoming data if (Serial.available() < 1) return; // if serial empty, return to loop() // parse incoming command start flag get_char = Serial.read(); if (get_char != START_CMD_CHAR) return; // if no command start flag, return to loop() // parse incoming command type ard_command = Serial.parseInt(); // read the command // parse incoming pin# and value pin_num = Serial.parseInt(); // read the pin pin_value = Serial.parseInt(); // read the value // 1) GET TEXT COMMAND FROM ARDUDROID if (ard_command == CMD_TEXT){ inText =""; //clears variable for new input while (Serial.available()) { char c = Serial.read(); //gets one byte from serial buffer delay(5); if (c == END_CMD_CHAR) { // if we the complete string has been read // add your code here break; } else { if (c != DIV_CMD_CHAR) { inText += c; delay(5); } } } } // 2) GET digitalWrite DATA FROM ARDUDROID if (ard_command == CMD_DIGITALWRITE){ if (pin_value == PIN_LOW) pin_value = LOW; else if (pin_value == PIN_HIGH) pin_value = HIGH; else return; // error in pin value return set_digitalwrite( pin_num, pin_value); this function if you wish to use return; // return from start of loop() } // Uncomment // 3) GET analogWrite DATA FROM ARDUDROID if (ard_command == CMD_ANALOGWRITE) { analogWrite( pin_num, pin_value ); // add your code here return; // Done return to loop(); } // 4) SEND DATA TO ARDUDROID if (ard_command == CMD_READ_ARDUDROID) { // char send_to_android[] = "Place your text here." ; // Serial.println(send_to_android); // Example: Sending text Serial.print(" Analog = "); Serial.println(analogRead(A0)); // Example: Read and send Analog pin value to Arduino return; // Done return to loop(); } } // 2a) select the requested pin# for DigitalWrite action void set_digitalwrite(int pin_num, int pin_value) { switch (pin_num) { case 13: pinMode(13, OUTPUT); digitalWrite(13, pin_value); // add your code here break; case 12: pinMode(12, OUTPUT); digitalWrite(12, pin_value); // add your code here break; case 11: pinMode(11, OUTPUT); digitalWrite(11, pin_value); // add your code here break; case 10: pinMode(10, OUTPUT); digitalWrite(10, pin_value); // add your code here break; case 9: pinMode(9, OUTPUT); digitalWrite(9, pin_value); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, 200); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENB, 200); // add your code here break; case 8: pinMode(8, OUTPUT); digitalWrite(8, pin_value); digitalWrite(9, pin_value); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); analogWrite(ENA, 200); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); analogWrite(ENB, 200); // add your code here break; case 7: pinMode(7, OUTPUT); digitalWrite(7, pin_value); // add your code here break; case 6: pinMode(6, OUTPUT); digitalWrite(6, pin_value); // add your code here break; case 5: pinMode(5, OUTPUT); digitalWrite(5, pin_value); // add your code here break; case 4: pinMode(4, OUTPUT); digitalWrite(4, pin_value); // add your code here break; case 3: pinMode(3, OUTPUT); digitalWrite(3, pin_value); // add your code here break; case 2: pinMode(2, OUTPUT); digitalWrite(2, pin_value); // add your code here break; // default: // if nothing else matches, the default // default is optional } } Phần IV:Kết hướng phát triển 4.1 Kết dạt - Nắm rõ giao tiếp Bluetooth - Tìm hiểu hệ điều hành android - Thực viết ứng dụng Android - Thực kết nối trao đổi liệu thiết bị cầm tay Arduino UNO qua module Bluetooth - Tìm hiều bo mạch Arduino - Thiết kế kết cấu khí cho khung xe - Thiết kế mạch điện cho xe 4.2 Hướng phát triển đề tài - Tích hợp thêm nhiều chức cho xe như: - truyền hình ảnh, đo nhiệt độ, độ ẩm, khoảng cách vật cản, đo độ nghiêng - Phản hồi cố thiết bị cầm tay - Ứng dụng công nghệ Bluetooth vào hệ thống khác [...]... lọc phẳng tín hiệu 4 Điện trơ Chức năng:Dùng để cản trơ dòng điện 5 Phần mềm: Bluetooth remote control car for android Giao diện phần mềm điều khiển Phím 9 điều khiến oto tiến về phía trước Phím 3 điều khiển oto lùi về phía sau Phím 2 điều khiển oto rẽ sang bên trái Phím 4 điều khiển oto rẽ sang bên phải Phim 8 điều khiển oto dừng lại 6 Động cơ - Trong mạch ta dùng loại motor DC-motor chổi than,chạy... MODULE sa ARDUINO BLUETOOTH HC06 MẠCH CẦU H ĐỘNG ĐỘNG CƠ CƠ TRÁI PHẢI ` begin Khối giao diện Thông báo & yêu cầu bất bluetooth Bluetooth on tìm kiếm xe Đợi thao tác Chuyển sang giao diên điều khiển up Sent “9” down Sent “3” lef Sent “4” right Sent “2” stop Sent “8” exit End disco nect Ngắt kết nối 1 Khối nguồn và khối vi điều khiển * Khối nguồn - Nguồn đầu vào được nuôi bởi pin 7,4V qua IC 7805 ghim... khiển ATmega328 là vi điều khiển trong board mạch Arduino ATmega328 có tên đầy đủ là ATmega328P-PU ATmega328 là linh hồn của board mạch Arduino, sức mạnh phần cứng mà Arduino Uno có được là từ đây Hình ảnh board arduino đơn giản với ATmega328 Các vi điều khiển ATmega328 đều được ghi sẵn bootloader Arduino Bootloader Arduino cho phép bạn gửi mã chương trình cho ATmega328 thông qua giao thức Serial (dùng... Module bluetooth HC-0 - Tụ gốm được dùng để lọc nguồn, tụ hóa dùng để san phẳng tín hiệu đầu ra cho chất lượng tín hiệu tốt hơn - Sử dụng 1 con led để báo nguồn - Nguồn của pin 7,4V được đưa trực tiếp vào chân 1 của J10 để làm nguồn nuôi - điều khiển motor cho IC mạch cầu Lối ra của IC 7805 là nguồn 5V được đưa vào chân 2 cung cấp cho IC L298 bên khối mạch cầu Chân 3 còn lại là GND * Khối vi điều khiển. .. lý của khối mạch cầu - - - - - IC L298 là mô t IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong Với điện áp làm tăng công suất đầu ra từ 5V – 47V, dòng lên đến 4A, L298 rất thích hợp trong những ứng dụng công suất nhỏ như động cơ DC loại vừa … Khối mạch cầu điều khiển mạch cầu nhận nguồn 7.4V từ nguồn vào chân V s là nguồn riêng điều khiển hai động cơ IC L298 nhận nguồn 5V... điều khiển 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của L298 Các chân này sẽ được nối với động cơ Hai chân ENA và ENB dùng để điều khiển các mạch cầu H trong L298 Nếu ơ mức logic “1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ơ mức logic “0” thì mạch cầu H không hoạt động Khi ENA = 0: Động cơ không quay... ENA = 0: Động cơ không quay với mọi đầu vào Khi ENA = 1: IN1 = 1; IN2 = 0: động cơ quay thuân IN1 = 0; IN2 = 1: động cơ quay nghịch IN1 = IN2: động cơ dừng ngay tức thì - Khi ENB = 0: Động cơ không quay với mọi đầu vào Khi ENB = 1: IN3 = 1; IN4 = 0: động cơ quay thuân IN3 = 0; IN4 = 1: động cơ quay nghịch IN3 = IN4: động cơ dừng ngay tức thì - Dùng 8 diode chỉnh lưu để dập xung... Nắm rõ được giao tiếp Bluetooth - Tìm hiểu về hệ điều hành android - Thực hiện viết ứng dụng trên Android - Thực hiện kết nối và trao đổi dữ liệu giữa thiết bị cầm tay và Arduino UNO qua module Bluetooth - Tìm hiều bo mạch Arduino - Thiết kế kết cấu cơ khí cho khung xe - Thiết kế các mạch điện cho xe 4.2 Hướng phát triển đề tài - Tích hợp thêm nhiều chức năng cho xe như: - truyền hình ảnh, đo nhiệt độ,... ROM đặc biệt nào cả Các thông số chính của vi điều khiển Atmega328P-PU như sau: + Kiến trúc: AVR 8bit + Xung nhịp lớn nhất: 20Mhz + Bộ nhớ chương trình (FLASH): 32KB + Bộ nhớ EEPROM: 1KB + Bộ nhớ RAM: 2KB + Điện áp hoạt động rộng: 1.8V - 5.5V + Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit + Số kênh xung PWM: 6 kênh (1timer 2 kênh) 2 Khối mạch cầu Hình ảnh thực tế của khối mạch cầu Sơ đồ nguyên... thì - Dùng 8 diode chỉnh lưu để dập xung do tải gây ra ( tải thường do motor – động cơ) Khi tải hoạt động và ngừng lại, thì do tải cảm trong đó sẽ lưu trữ mô t dòng điện, vì vậy khi ngừng hoạt động tải cảm này sẽ sinh ra mô t dòng ngược, dòng ngược này nguy hiểm cho các Transistor nên cần phải dập đi PHẦN III: CODE CHƯƠNG TRÌNH #define START_CMD_CHAR '*' #define END_CMD_CHAR '#'