Điều khiển xe mô hình bằng điện thoại android và bluetooth, lập trình bằng CCS cho PIC16F887 và lập trình ứng dụng cho điện thoại android, điều khiền xe bằng phương pháp nghiêng lắc điện thoại sử dụng cảm biến gia tốc (accelerometer)
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO ĐỒ ÁN MÔN HỌC Đề tài: XE ĐIỀU KHIỂN TỪ XA DÙNG ĐIỆN THOẠI ANDROID VÀ BLUETOOTH GVHD : Ths.NGUYỄN THANH BÌNH SVTH : LÊ TẤN ĐẠT MSSV : 12141047 Tp.Hồ Chí Minh, ngày tháng năm 2016 MỤC LỤC LIỆT KÊ HÌNH ẢNH Hình Trang Hình 1: Khả kết nối thiết bị qua Bluetooth………………………………… Hình 2: Mặt trước sau Module Blutooth HC05…………………………………5 Hình 3: Sơ đồ chân PIC16F887…………………………………………………….… Hình 4: Thanh ghi RCSTA…………………………………………………………… Hình 5: Tóm tắt chức bit ghi…………………………………….8 Hình 6: Sơ đồ khối khối nhận liệu PIC16F887……………………………… 10 Hình 7: Dạng song nhận liệu………………………………………………………11 Hình 8: Sơ đồ khối PWM PIC16F887……………………………………………13 Hình 9: Dạng sóng PWM…………………………………………………………… 14 Hình 10: Giao diện lập trình CCS………………………………………………….….15 Hình 11: Các phiên hệ điều hành android………………………………… 17 Hình 12: Kiến trúc hệ điều hành Android…………………………………………….18 Hình 13: Môi trường lập trình cho Android………………………………………… 19 Hình 14: AndroidManifest.xml……………………………………………………….20 Hình 15: Vòng đời Activity………………………………………………….22 Hình 16: Sơ đồ phần cứng hệ thống………………………………………………24 Hình 17: Sơ đồ nguyên lý khối nguồn……………………………………………… 26 Hình 18: Sơ đồ nguyên lý khối xữ lý trung tâm………………………………………27 Hình 19: Trở treo…………………………………………………………………… 28 Hình 20: Cửa sổ thiết kế giao diện Android Studio………………………….……… 33 Hình 21: Mục chỉnh sữa thuộc tính control………………………………… 33 Hình 22: Giao diện hình tiêu đề…………………………………………………34 Hình 23: Activity login……………………………………………………………… 35 Hình 24: Activity điều khiển……………………………………… …………….….36 Hình 25: Các file Java Project……………………………………………….….36 Hình 26: Giao diện Proteus 7.8………………………………………………….…….40 Hình 27: Cách lấy linh kiện Proteus 7.8…………………………………….… 41 Hình 28: Sơ đồ nguyên lý khối nguồn khối xử lý trung tâm………………………42 Hình 29: Sơ đồ mạch in khối nguồn điều khiển trung tâm……………………… 42 Hình 30: Kết thi công phần cứng…………………………………………………43 Hình 31: Kết thi công phần mềm…………………………………………………44 Hình 32: Vi điều khiển PIC16F887………………………………………………… 46 Hình 33: Bluetooth HC 05…………………………………………………………….46 Hình 34: Driver L298…………………………………………………………………47 Hình 35: Động DC lắp ghép với bánh xe……………………………………47 ĐỒ ÁN MÔN HỌC LỜI CAM ĐOAN VÀ CÁM ƠN Đề tài tự thực dựa vào số tài liệu không chép từ tài liệu hay công trình có trước Nếu có chép hoàn toàn chịu trách nhiệm Em xin chân thành cảm ơn thầy NGUYỄN THANH BÌNH tận tình hướng dẫn, bảo, tạo mọi điều kiện thuận lợi giúp chúng em hoàn thành đồ án với kết tốt SVTH: LÊ TẤN ĐẠT-1241047 Trang ĐỒ ÁN MÔN HỌC CHƯƠNG : GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI 1.1 GIỚI THIỆU - - Trong năm gần công nghệ truyền nhận liệu không dây có bước phát triển mạnh mẽ, góp công lớn việc phát triển hệ thống điều khiển, giám sát từ xa, đặc biệt hệ thống thông minh Hiện nay, có nhiều công nghệ không truyền nhận liệu không dây RF, Wifi, Bluetooth, NFC,…Trong đó, Bluetooth công nghệ phát triển từ lâu cải tiến để nâng cao tốc độ khả bảo mật Trên thị trường Việt Nam chưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số sản phẩm có nhập từ nước với giá thành cao Việc nghiên cứu thiết kế sản phẩm ứng dụng công nghệ không dây có ý nghĩa lớn Do em định chọn đề tài “ Điều khiển xe từ xa điện thoại Android Bluetooth” Đề tài ứng dụng công nghệ Bluetooth phổ biến nhiều thiết bị, đặc biệt điểm đề tài so với sản phẩm có điều khiển thông qua điện thoại giúp tận dụng SmartPhone có sẵn người dùng - Yêu cầu đề tài: • Thiết kế xe mô hình gọn nhẹ hoạt động ổn định • Phần mềm điều khiển điện thoại dung lượng nhỏ, giao diện đơn giản, dễ dàng sử dụng Hỗ trợ nhiều dòng điện thoại chạy hệ điều hành Android 1.2 GIỚI HẠN - Hiện nay, thị trường có nhiều sản phẩm có chức điều khiển thiết bị điện thoại di động Bên cạnh em làm quen với lập trình Android nên sản phẩm em có số chức bản: • Xe di chuyển với bốn hướng Tiến, Lùi, Trái, Phải • Phần mềm kết nối với Bluetooth cố định biết trước địa • Phần mềm gửi liệu xuống Bluetooth • Cho phép tài khoản sử dụng cố định - Một số tính chưa có sản phẩm: • Chưa di chuyển đa hướng • Phần mềm chưa chọn kết nối với Bluetooth • Phần mêm chưa cập nhật trạng thái từ điều khiển trung tâm • Chưa cho phép đăng ký sử dụng chương trình SVTH: LÊ TẤN ĐẠT-1241047 Trang ĐỒ ÁN MÔN HỌC : CƠ SỞ LÝ THUYẾT 2.1 CÔNG NGHỆ KHÔNG DÂY BLUETOOTH 1.2.1 Khái niệm Bluetooth công nghệ cho phép truyền thông thiết bị với mà không cần dây dẫn Nó chuẩn điện tử, điều có nghĩa hãng sản xuất muốn có đặc tính sản phẩm họ phải tuân theo yêu cầu chuẩn cho sản phẩm Những tiêu chuẩn kỹ thuật đảm bảo cho thiết bị nhận tương tác với sử dụng công nghệ Bluetooth Ngày phần lớn nhà máy sản xuất thiết bị có swur dụng công nghệ Bluetooth Các thiết bị gồm có điện thoại di động, máy tính thiết bị hỗ trợ cá nhân PDA (Prosonal Digital Assistant) Công nghệ Bluetooth công nghệ dựa tần số vô tuyến thiết bị có tích hợp bên công nghệ truyền thông với thiết bị khác với khoảng cách định cự ly để đảm bảo công suất cho việc phát nhận sóng Công nghệ thường sử dụng để truyền thông hai loại thiết bị khác Ví dụ: Bạn hoạt động máy tính với bàn phím không dây, sử dụng tai nghe không dây để nói chuyện điện thoại di động bạn bổ sung thêm hẹn vào lịch biểu PDA người bạn từ PDA bạn 1.2.2 Đặc điểm công nghệ Bluetooth 2.1.1.1 Ưu điểm - Tiêu thụ lượng thấp - Cho phép ứng dụng nhiều loại thiết bị bao gồm thiết bị cầm tay điện thoại di động - Giá thành ngày giảm - Khoảng cách giao tiếp cho phép hai thiết bị kết nối lên đến 100m - Bluetooth sử dụng băng tần 2.4GHz, tốc độ truyền liệu đạt tới mức tới đa 1Mbps mà thiết bị không cần phải trực tiếp thấy - Dễ dàng việc phát triển ứng dụng: Bluetooth kết nối ứng dụng với ứng dụng khác thông qua chuẩn Bluetooth, độc lập phần cứng hệ điều hành sử dụng - Tính tương thích cao, nhiều nhà sản xuất phần cứng phần mềm hỗ trợ 2.1.1.2 Nhược điểm - Khoảng cách kết nối ngắn so với công nghệ kết nối không dây khác SVTH: LÊ TẤN ĐẠT-1241047 Trang ĐỒ ÁN MÔN HỌC - 1.2.3 Hoạt động Bluetooth chuẩn kết nối không dây tầm ngắn, thiết kế cho kết nối thiết bị cá nhân hay mạng cục nhỏ phạm vi băng tần từ 2.4GHz đến 2.485GHz Bluetooth thiết kế hoạt động 79 tần số đơn lẻ Khi kết nối , tự động tìm tần số tương thích để di chuyển đến thiết bị cần kết nối khu vực nhằm đảm bảo liên tục Hình 1: Khả kết nối thiết bị qua Bluetooth 1.2.4 Lịch sử phát triển Bluetooth Blutooth 1.0 (7/1999): phiên đưa thị trường với tốc độ kết nối ban đầu 1Mbps Tuy nhiên, thực tế tốc độ kết nối hệ chưa đạt mức 700Kbps Bluetooth 1.1 (2001): Đánh dấu bước phát triển công nghệ Bluetooth nhiều lĩnh vực khác với quan tâm nhiều nhà sản xuất Bluetooth 1.2 (11/2003): Bắt đầu có nhiều tiến đáng kể Chuẩn hoạt động dự a băng tần 2.4GHz tăng cường kết nối thoại Bluetooth 2.0+ERD (2004): Bắt đầu nâng cao tốc độ giảm thiểu nửa lượng tiêu thụ so với trước Tốc độ chuẩn Bluetooth lên đến 2.1Mbps với chế độ cải thiện kết nối truyền tải–ERD (Enhanced data rate) SVTH: LÊ TẤN ĐẠT-1241047 Trang ĐỒ ÁN MÔN HỌC Bluetooth 2.1+ERD (2004): hệ nâng cấp Bluetooth 2.0 có hiệu cao tiết kiệm lượng Bluetooth 3.0+HS (2008): có tốc độ truyền liệu đạt mức 24Mbps – sóng Blutooth – High Speed, tương đương chuẩnWifi hệ đầu tiên, phạm vi hiệu vòng 10m Bluetooth 4.0 (30/06/2010): chuẩn Bluetooth Bluetooth 4.0 kết hợp “classic Bluetooth” (Bluetooth 2.1 3.0), “Bluetooth high speed” ( Bluetooth 3.0 + HS) “ Bluetooth low energy -Bluetooth lượng thấp (Bluetooth Smart Ready/ Bluetooth Smart) “Bluetooth low enegry” phần Bluetooth 4.0 với giao thức tiêu chuẩn Bluetooth 1.0 vào 4.0 nhằm phục vụ cho ứng dụng lượng cực thấp 1.2.5 Module Bluetooth HC 05 2.1.5.1 Giới thiệu Module Bluetooth HC 05 Module Bluetooth HC-06 thiết kế để chuyển đổi giao tiếp nối tiếp không đồng thành giao tiếp không dây Bluetooth ngược lại Hình 2: Mặt trước sau Module Blutooth HC05 2.1.5.2 Đặt điểm kỹ thuật Module Blutooth HC05 Điện hoạt động UART 3.3 - 5V Dòng điện hoạt động: Pairing 30 mA, sau pairing hoạt động truyền nhận bình thường mA Baudrate UART chọn được: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 SVTH: LÊ TẤN ĐẠT-1241047 Trang ĐỒ ÁN MÔN HỌC Kích thước module chính: 28 mm x 15 mm x 2.35 mm Dải tần sóng hoạt động: 2.4GHz Bluetooth protocol: Bluetooth Specification v2.0+EDRo Thiết lập mặt định: - Baud rate: 9600 - Check parity: None - Bits: - Stop bit: - Pairing code: 1234 1.3 VI ĐIỀU KHIỂN PIC16F887A 1.3.1 Tổng quan PIC16F887 [1] PIC16F887 vi điều khiển 8-bit có kiến trúc Harvard Microchip có thông số kỹ thuật sau: Clock hoạt động tối đa 20MHz Chu kỳ máy bốn lần chu kỳ xung clock Chip có nhiều dạng vỏ khác nhau, loại chip sử dụng đề tài loại 40 chân PDIP Điện áp hoạt động rộng từ 2V đến 5.5V Bộ nhớ liệu nhớ chương trình tách biệt nhau, bus địa bus liệu riêng biệt Bộ nhớ chương trình Flash 8K ô nhớ cho phép ghi 100,000 lần Mỗi ô nhớ có 14 bit Bộ nhớ liệu RAM có 512 Byte gồm ghi chức đặc biệt ghi đa mục đích Ngoài PIC16F887 tích hợp 256 Byte EEPROM cho phép ghi đến 1,000,000 lần 35 chân I/O port điều khiển PortA, PortB, PortC, PortD, PortE Bộ chuyển đổi ADC 10-bit với 14 kênh Bộ timer0 8-bit, timer1 16-bit timer2 8-bit Module Capture, Compare PWM Module Enhanced USART hỗ trợ RS-485, RS-232 SVTH: LÊ TẤN ĐẠT-1241047 Trang ĐỒ ÁN MÔN HỌC 1.3.2 Sơ đồ chân PIC16F887 Hình : Sơ đồ chân PIC16F887 1.3.3 Truyền liệu EUSART Vi điều khiển PIC16F887 có khối truyền liệu đồng bộ, bất đồng đa cải tiến Khối truyền liệu nối tiếp đa bao gồm phát xung clock tạo tốc độ truyền, ghi dịch đệm liệu cần thiết để thực truyền nhận liệu nối tiếp cách độc lập Khối EUSART xem giao tiếp truyền liệu nối tiếp SCI (Serial Communication Interface), định cấu hình cho truyền liệu bất đồng song công đồng bán song công Truyền liệu song công sử dụng để truyền liệu hệ thống ngoại vi thiết bị đầu cuối CRT máy tính Truyền liệu đồng bán song công sử dụng để truyền liệu hệ thống ngoại vi ADC, DAC, nhớ nối tiếp Eeprom vi điều khiển Các thiết bị thường nguồn xung clock bên để tạo tốc độ baud nên cần phải sử dụng nguồn xung clock từ bên Khối truyền liệu PIC16F887 có khả năng: • • • Hoạt động truyền liệu song công bất đồng Bộ đệm nhận chứa kí tự Bộ đệm phát chứa kí tự SVTH: LÊ TẤN ĐẠT-1241047 Trang 10 ĐỒ ÁN MÔN HỌC Hình 31: Kết thi công phần mềm CHƯƠNG : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 KẾT LUẬN - - Đồ án hoàn thành mục tiêu đề ban đầu, tiến độ Giải toán kết nối điện thoại mạch điều khiển qua kết nối Bluetooth Sản phẩm chưa thử nghiệm với thời gian dài với nhiều môi trường khác nên chưa xác định độ ổn định hoạt động thời gian dài Mạch chạy có số lỗi, : tự ngắt kết nối, Module không nhận liệu…., cần phải tối ưu lại code điều khiển thiết kế giao diện thẩm mỹ 4.2 HƯỚNG PHÁT TRIỂN - Điều khiển xe chạy tối ưu áp dụng thuật toán PID vào điều khiển động Sửa lỗi thường mắc phải Chỉnh sửa giao diện thẩm mỹ tối ưu Nâng cao khả bảo mật Cho phép nhiều user sử dụng cập nhật thời gian truy cập SVTH: LÊ TẤN ĐẠT-1241047 Trang 48 ĐỒ ÁN MÔN HỌC PHỤ LỤC 1: LINH KIỆN DÙNG TRONG HỆ THỐNG Vi điều khiển PIC16F887 Hình 32: Vi điều khiển PIC16F887 Module Bluetooth HC05 SVTH: LÊ TẤN ĐẠT-1241047 Trang 49 ĐỒ ÁN MÔN HỌC Hình 33: Bluetooth HC 05 Driver điều khiển động L298 Hình 34: Driver L298 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 ~ +12 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 SVTH: LÊ TẤN ĐẠT-1241047 Trang 50 ĐỒ ÁN MÔN HỌC Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃) Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃ • • Động DC Động DC giảm tốc V1 loại lựa chọn sử dụng nhiều cho thiết kế Robot đơn giản Hình 35: Động DC lắp ghép với bánh xe Thông số kỹ thuật: - Điện áp hoạt động : 3-9VDC - Dòng điện tiêu thụ: 110-140mA - Tỉ số truyền: 1:120 - Số vòng/1phút: - • 50 vòng/ phút 3VDC • 83 vòng/ phút 5VDC Moment: 1.0KG.CM IC ổn áp 7805 SVTH: LÊ TẤN ĐẠT-1241047 Trang 51 ĐỒ ÁN MÔN HỌC Hình 36: IC ổn áp 7805 Một số linh kiện khác: Tụ điện, điện trở, đế IC, domino,… SVTH: LÊ TẤN ĐẠT-1241047 Trang 52 ĐỒ ÁN MÔN HỌC PHỤ LUC 2: CODE VI ĐIỀU KHIỂN VÀ CODE JAVA ỨNG DỤNG Code vi điều khiển #INCLUDE #USE DELAY(CLOCK=4MHZ) #FUSES NOWDT,NOPROTECT,NOPUT,NOLVP,XT,NOCPD,NOWRT,NODEBUG #FUSES BROWNOUT #USE standard_io(d) #USE RS232(BAUD=9600,parity=N,XMIT=PIN_C6,RCV=PIN_C7,bits=8) #DEFINE LED pin_b0 #DEFINE LED1 pin_b1 #DEFINE LED2 pin_b2 #DEFINE LED3 pin_b3 #include char DATA; INT SPEED=0; #INT_RDA void ngat_bluetooth() { DATA=GETC(); } VOID MAIN() { SET_TRIS_D(0X00); SET_TRIS_C(0x80); ENABLE_INTERRUPTS(GLOBAL); ENABLE_INTERRUPTS(INT_RDA); SETUP_TIMER_2(T2_DIV_BY_16,99,1); SETUP_CCP1(CCP_PWM); SETUP_CCP2(CCP_PWM); WHILE(TRUE) { SWITCH(DATA) { CASE '1': SPEED=40; SVTH: LÊ TẤN ĐẠT-1241047 Trang 53 ĐỒ ÁN MÔN HỌC BREAK; CASE '2': SPEED=50; BREAK; CASE '3': SPEED=60; BREAK; CASE '4': SPEED=70; BREAK; CASE 'F': output_high(led1); //sang led1 led lai tat output_low(led); output_low(led2); output_low(led3); output_d(0x0A); SET_PWM1_DUTY(SPEED);// pwm SET_PWM2_DUTY(SPEED);// pwm BREAK; CASE 'B': output_high(led); //sang led led lai tat output_low(led2); output_low(led3); output_low(led1); output_d(0x05); SET_PWM1_DUTY(SPEED);// pwm SET_PWM2_DUTY(SPEED);// pwm break; CASE 'L': output_high(led3); //sang led output_low(led); output_low(led1); output_low(led2); output_d(0x08); SET_PWM1_DUTY(SPEED);// pwm SET_PWM2_DUTY(SPEED);// pwm BREAK; SVTH: LÊ TẤN ĐẠT-1241047 Trang 54 ĐỒ ÁN MÔN HỌC CASE 'R': output_high(led2); //sang led output_low(led3); output_low(led); output_low(led1); output_d(0x02); SET_PWM1_DUTY(SPEED);// pwm SET_PWM2_DUTY(SPEED);// pwm break; CASE 'S': output_low(led); output_low(led1); output_low(led2); output_low(led3); output_d(0x00); break; } } } Code JAVA ứng dụng điều khiển package vn.edu.hcmute.tandat.doan2; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.graphics.Color; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.io.IOException; import java.io.OutputStream; SVTH: LÊ TẤN ĐẠT-1241047 Trang 55 ĐỒ ÁN MÔN HỌC import java.util.UUID; public class DIEUKHIEN extends AppCompatActivity implements SensorEventListener { ImageView f, b, l, r; Sensor sensor; SensorManager sm; TextView hienthi; float x, y, z; Button so1,so2,so3,so4; private static final String TAG = "HC-05"; private BluetoothAdapter mBluetoothAdapter = null; private BluetoothSocket btSocket = null; private OutputStream outStream = null; private static String address = "98:D3:31:40:37:77";//"98:D3:31:30:56:92"; private static final UUID MY_UUID = UUID fromString("00001101-0000-1000-8000-00805F9B34FB"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dieukhien); f = (ImageView) findViewById(R.id.forward); l = (ImageView) findViewById(R.id.left); b = (ImageView) findViewById(R.id.back); r = (ImageView) findViewById(R.id.right); so1=(Button)findViewById(R.id.so1); so2=(Button)findViewById(R.id.so2); so3=(Button)findViewById(R.id.so3); so4=(Button)findViewById(R.id.so4); hienthi=(TextView)findViewById(R.id.hienthi); sm = (SensorManager) getSystemService(SENSOR_SERVICE); sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); SVTH: LÊ TẤN ĐẠT-1241047 Trang 56 ĐỒ ÁN MÔN HỌC sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); CheckBt(); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); Log.e("HC-05", device.toString()); Connect(); so1.setBackgroundColor(Color.GREEN); so2.setBackgroundColor(Color.GRAY); so3.setBackgroundColor(Color.GRAY); so4.setBackgroundColor(Color.GRAY); writeData("1"); so1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { so1.setBackgroundColor(Color.GREEN); so2.setBackgroundColor(Color.GRAY); so3.setBackgroundColor(Color.GRAY); so4.setBackgroundColor(Color.GRAY); writeData("1"); } }); so2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { so2.setBackgroundColor(Color.GREEN); so1.setBackgroundColor(Color.GRAY); so3.setBackgroundColor(Color.GRAY); so4.setBackgroundColor(Color.GRAY); writeData("2"); } }); so3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { so3.setBackgroundColor(Color.GREEN); so2.setBackgroundColor(Color.GRAY); SVTH: LÊ TẤN ĐẠT-1241047 Trang 57 ĐỒ ÁN MÔN HỌC so1.setBackgroundColor(Color.GRAY); so4.setBackgroundColor(Color.GRAY); writeData("3"); } }); so4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { so4.setBackgroundColor(Color.GREEN); so2.setBackgroundColor(Color.GRAY); so3.setBackgroundColor(Color.GRAY); so1.setBackgroundColor(Color.GRAY); writeData("4"); } }); } private void CheckBt() { mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (!mBluetoothAdapter.isEnabled()) { Toast.makeText(getApplicationContext(), "Bluetooth Disabled !", Toast.LENGTH_SHORT).show(); } if (mBluetoothAdapter == null) { Toast.makeText(getApplicationContext(), "Bluetooth null !", Toast.LENGTH_SHORT) show(); } } public void Connect() { Log.d(TAG, address); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); Log.d(TAG, "Connecting to " + device); mBluetoothAdapter.cancelDiscovery(); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); btSocket.connect(); Log.d(TAG, "Connection made."); SVTH: LÊ TẤN ĐẠT-1241047 Trang 58 ĐỒ ÁN MÔN HỌC } catch (IOException e) { try { btSocket.close(); } catch (IOException e2) { Log.d(TAG, "Unable to end the connection"); } Log.d(TAG, "Socket creation failed"); } } private void writeData(String data) { try { outStream = btSocket.getOutputStream(); } catch (IOException e) { Log.d(TAG, "Bug BEFORE Sending stuff", e); } String message = data; byte[] msgBuffer = message.getBytes(); try { outStream.write(msgBuffer); } catch (IOException e) { Log.d(TAG, "Bug while sending stuff", e); } } @Override public void onSensorChanged(SensorEvent event) { x = event.values[0]; y = event.values[1]; z = event.values[2]; hienthi.setText(String.format("X=%s",x)+String.format("\nY=") +y+String.format("\nZ=")+z); if ((x < -4)) { writeData("F"); f.setBackgroundResource(R.drawable.f); b.setBackgroundResource(R.drawable.b); r.setBackgroundResource(R.drawable.r); l.setBackgroundResource(R.drawable.l); } if (x > 4) { SVTH: LÊ TẤN ĐẠT-1241047 Trang 59 ĐỒ ÁN MÔN HỌC writeData("B"); f.setBackgroundResource(R.drawable.f1); b.setBackgroundResource(R.drawable.b1); r.setBackgroundResource(R.drawable.r); l.setBackgroundResource(R.drawable.l); } /*if ((x>0)) { TT="0"; writeData(TT); dung.setBackgroundColor(Color.BLUE); tien.setBackgroundColor(0); }*/ if (y < -4) { f.setBackgroundResource(R.drawable.f1); b.setBackgroundResource(R.drawable.b); r.setBackgroundResource(R.drawable.r); l.setBackgroundResource(R.drawable.l1); writeData("L"); } if ((y > 4)) { writeData("R"); f.setBackgroundResource(R.drawable.f1); b.setBackgroundResource(R.drawable.b); r.setBackgroundResource(R.drawable.r1); l.setBackgroundResource(R.drawable.l); } if (z > 9) { writeData("S"); f.setBackgroundResource(R.drawable.f1); b.setBackgroundResource(R.drawable.b); r.setBackgroundResource(R.drawable.r); l.setBackgroundResource(R.drawable.l); } } @Override SVTH: LÊ TẤN ĐẠT-1241047 Trang 60 ĐỒ ÁN MÔN HỌC public void onAccuracyChanged(Sensor sensor, int accuracy) { } protected void onDestroy() { super.onDestroy(); try { btSocket.close(); } catch (IOException e) { } } } SVTH: LÊ TẤN ĐẠT-1241047 Trang 61 ĐỒ ÁN MÔN HỌC TÀI LIỆU THAM KHẢO Sách tham khảo - [1] Nguyễn Đình Phú, “Giáo trình Vi Xử Lý”, Xuất ĐH Sư Phạm Kỹ Thuật Tp HCM, 2014 Website tham khảo www.dientuvietnam.net www.ccsinfo.com http://developer.android.com hshop.vn - SVTH: LÊ TẤN ĐẠT-1241047 Trang 62 [...]... hướng di chuyển - Điều khiển thiết bị: điều khiển hướng di chuyển của mô hình, bộ điều khiển trung tâm sẽ phân tích dữ liệu nhận được từ Module Bluetooth và gửi tín hiệu điều khiển chiều xoay, tốc độ đến Module L298 c Module Bluetooth HC05 Chức năng: Làm cầu nối giữa khối điều khiển trung tâm và điện thoại điều khiển Nhận dự liệu từ điện thoại và gửi đến khối điều khiển trung tâm Module Bluetooth HC-05... mô hình bằng ứng dụng Bluetooth Control trên điện thoại Android Từ mục tiêu đặt ra ta thấy bộ sản phẩm có hai phần chính: Phần cứng (mô hình xe) : - Giao tiếp truyền nhận dữ liệu với điện thoại qua kết nối Bluetooth - Đây là phần sẽ kết nối với động cơ của mô hình - Việc điều khiển tắt mở phụ thuộc vào tín hiệu điều khiển từ điện thoại - Chỉ có người lập trình mới điều khiển xe được vì biết dữ liệu... với khối điều khiển trung tâm thông qua chuẩn kết nối UART d Module L298 điều khiển động cơ Chức năng: nhận dữ liệu từ bộ điều khiển trung tâm điều khiển chiều dòng điện để điều khiển chiều quay của động cơ DC Bên cạnh đó Module còn có thể điều khiển tốc độ động cơ từ tín hiệu điều khiển của bộ điều khiển trung tâm e Khối động cơ DC Gồm 2 động cơ giúp mô hình có thể di chuyển theo tín hiệu điều khiển. .. bằng ’1’ SPEED bằng 40, thoát S Đ DATA bằng ’2’ SPEED bằng 50, thoát S Đ DATA bằng ’3’ SPEED bằng 60, thoát S Đ DATA bằng ’4’ SPEED bằng 70, thoát S Đ DATA bằng ’F’ Xuất tín hiệu điều khiển chạy tiến ra port D ,điều khiển S Đ DATA Sbằng ’B’ Xuất tín hiệu điều khiển chạy lùi ra port D ,điều khiển led,thoát S 1 SVTH: LÊ TẤN ĐẠT-1241047 2 Trang 34 ĐỒ ÁN MÔN HỌC 2 2 1 Đ DATA bằng ’L’ Xuất tín hiệu điều khiển. .. 27 ĐỒ ÁN MÔN HỌC 2 - Mạch sử dụng nguồn Pin 6V để cấp cho 2 động cơ DC và từ nguồn Pin 6V qua IC ổn áp LM7805 để cấp nguồn 5V cho mạch b Khối xử lý trung tâm - Chức năng: điều khiển toàn bộ hoạt động của xe mô hình - Quản lí truyền và nhận dữ liệu với điện thoại: Khối này giao tiếp với Module Bluetooth HC-05 Khối sẽ nhận dữ liệu từ Module Bluetooth HC05 để điều khiển các động cơ của mô hình và led hiển... mềm (ứng dụng điều khiển Bluetooth Control Device): - Giao diện đơn giản, phân bố các thành phần hợp lý - Có màn hình giới thiệu về đề tài - Cung cấp đầy đủ thông tin về tình trạng kết nối đến bộ điều khiển - Điều khiển hướng chạy của xe mô hình, cập nhật trạng thái hướng di chuyển trên điện thoại - Có màng hình đăng nhập nếu muốn điều khiển xe SVTH: LÊ TẤN ĐẠT-1241047 Trang 26 ĐỒ ÁN MÔN HỌC 2 2.2... dung xem khi ứng dụng được chạy lần đầu Mỗi activity sau đó có thể bắt đầu activity khác để thực hiện hành động khác nhau Hình 15: Vòng đời của một Activity SVTH: LÊ TẤN ĐẠT-1241047 Trang 25 ĐỒ ÁN MÔN HỌC 2 CHƯƠNG 2 : THIẾT KẾ 2.1 YÊU CẦU THIẾT KẾ Mục tiêu của đề tài là thiết kế sản phẩm gồm: mô hình xe và ứng dụng Bluetooth Control trên điện thoại Bộ sản phẩm có chức năng điều khiển xe mô hình bằng. .. DATA bằng ’L’ Xuất tín hiệu điều khiển xe xoay trái ra port D ,điều khiển led,thoát S Đ DATA bằng ’R’ Xuất tín hiệu điều khiển xe xoay phải ra port D ,điều khiển led,thoát S DEFAULT: Xuất tín hiệu điều khiển xe dừng ra port D ,điều khiển led,thoát 3 Chương trình ngắt: Ngắt nhận dữ liệu Nhận dữ liệu gán vào biến DATA Quay về SVTH: LÊ TẤN ĐẠT-1241047 Trang 35 ĐỒ ÁN MÔN HỌC 2 2.3 THIẾT KẾ PHẦN MỀM 2.3.1 Thiết... 3/11/2014 Android 5.0 Lollipop đã ra mắt và chính thức được cập nhật cho các thiết bị Và hiện nay phiên bản mới nhất của android là Android 6.0 Marshmallow được tung ra thị trường vào ngày 5/10/2015 SVTH: LÊ TẤN ĐẠT-1241047 Trang 19 ĐỒ ÁN MÔN HỌC 2 Hình 11 : Các phiên bản của hệ điều hành android Kiến trúc hệ điều hành Android SVTH: LÊ TẤN ĐẠT-1241047 Trang 20 ĐỒ ÁN MÔN HỌC 2 Hình 12: Kiến trúc hệ điều. .. cầu chỉ điều khiển xe mô hình theo 4 hướng nên em quyết SVTH: LÊ TẤN ĐẠT-1241047 Trang 32 ĐỒ ÁN MÔN HỌC 2 định chọn loại động cơ DC giảm tốc thướng với ưu điểm là giá thành rẽ và dễ điều khiển 2.2.4 Lập trình vi điều khiển Chương trình chính: BEGIN SVTH: LÊ TẤN ĐẠT-1241047 Trang 33 ĐỒ ÁN MÔN HỌC 2 CẤU HÌNH PHẦN CỨNG, KHỞI TẠO PWM,CHO PHÉP NGẮT NHẬN DỮ LIỆU 3 Đ Có ngắt RDA Nhận dữ liệu gán vào DATA ... độ sáng bóng đèn, … 2. 2.5 .2 Cấu trúc khối điều chế độ rộng xung PWM 2. 2.5.1 SVTH: LÊ TẤN ĐẠT- 124 1047 Trang 15 ĐỒ ÁN MÔN HỌC - - Hình 8: Sơ đồ khối PWM PIC16F887 Khối PWM gồm có mạch so sánh:... chọn được: 120 0, 24 00, 4800, 9600, 1 920 0, 38400, 57600, 11 520 0 SVTH: LÊ TẤN ĐẠT- 124 1047 Trang ĐỒ ÁN MÔN HỌC Kích thước module chính: 28 mm x 15 mm x 2. 35 mm Dải tần sóng hoạt động: 2. 4GHz ... timer1 16-bit timer2 8-bit Module Capture, Compare PWM Module Enhanced USART hỗ trợ RS-485, RS -23 2 SVTH: LÊ TẤN ĐẠT- 124 1047 Trang ĐỒ ÁN MÔN HỌC 1.3 .2 Sơ đồ chân PIC16F887 Hình : Sơ đồ chân PIC16F887