Việc truyền nhận sử dụng các khe thời gian. Chiều dài 1 khe thời gian thơng thường là 625µs. Một packet thường nằm trong khe đơn, nhưng cũng có thể mở rộng ra 3 hay 5 khe, yêu cầu tần số phải khơng đổi cho đến khi tồn bộ packet gửi xong.
Sử dụng packet đa khe, tốc độ truyền dữ liệu cao hơn nhờ phần header của mỗi packet chỉ địi hỏi 1 lần 220µs. có thể hiểu ngắn gọn là thời gian truyền 3 packets đơn khe sẽ lớn hơn thời gian truyền 1 packet 3 khe. Bù lại, trong mơi trường có nhiều tín hiệu truyền, các packet dài chiếm nhiều timeslot dễ bị nhiều hơn do đo dễ bị mất hơn. Mỗi packet chứa 3 phần: Access Code, Header, Payload. Kích thước của access code và header là cố định.
Access Code: Gồm 72bits, dùng trong việc đồng bộ dữ liệu, định danh, báo hiệu.
Header:
Hình 3.25: Cấu tạo của packet
Trong header có 54 bits:
52
+ 4 bits tiếp theo cho biết loại packet. + 1 bits điều khiển luồng.
+ 1 bits ARQ: cho biết packet là Broadcast khơng có ACK. + 1 bits Sequencing: lọc bỏ những packet trùng do truyền lại.
+ 8 bits HEC: kiểm tra tính tồn vẹn của header. Tổng cộng có 18bits, các bit đó được mã hóa với 1/3 FEC (Forward Error Correction ) để có được 54 bits.
PayLoad : phần chứa dữ liệu truyền đi, có thể thay đổi từ 0 tới
2744bit/packet. Payload có thể là dữ liệu data hoặc voice.
3.3.9 Module Bluetooth HC - 06
3.3.9.1 Giới thiệu về Module Bluetooth HC – 06
Hình 3.26: Module Bluetooth HC-06
Module Bluetooth HC-06 được thiết kế đễ sử dụng giao giao tiếp Bluetooth qua Serial Port, truyền dữ liệu nối tiếp qua wireless.
Đặc điểm kỹ thuật:
- Chuẩn Bluetooth: V2.0+EDR. - Điện áp hoạt động: 3,3VDC/ 30mA.
53
- Kích thước 28mm x 15mm x 2.35mm - Tần số: 2.4GHz ISM band. - Tốc độ: Asynchronous: 2.1 Mbs (Max)/160kbps Synchronous: Mbps/1Mbps.
- Bảo mật: Authentication and encryption. - Giao tiếp: Bluetooth serial port.
- Baud Rate mặc định: 38400, databits: 8, Stopbit: 1, Parity : No. Hỗ trợ tốc độ baud: 9600, 19200, 38400, 57600, 115200, 230400, 46080.
- Nhiệt độ làm việc: -20 ~ 75 độ C - Độ nhạy: -80dBm.
- Công suất truyền: +4dBm - Tự động kết nối với pincode mặc định “1234”. - Tự động reconnect trong 30 phút nếu bị đứt kết nối Module có 2 chế độ làm việc ( có thể chọn chế độ làm việc bằng cahcs thay đổ trạng thái chân KEY-34).
- Tự động kết nối.
- Đáp ứng theo lệnh: khi làm việc ở chế độ này, chúng ta có thể gửi các lệnh AT để giao tiếp với module Gaio tiếp với module bằng giao tiếp nối tiếp không đồng bộ qua hai đường RX và TX Bằng cách thay đổ trạng thái chân KEY chúng ta có thể cấu hình chế độ hoạt động cho Module.
- Để module làm việc ở chế độ tự động kết nối: KEY phải ở trạng thái Floating (trạng thái không kết nối).
- Để module làm việc ở chế độ đáp ứng theo lệnh: KEY= ’0’, cấp nguồn cho module, chuyển KEY= ‘1’, lúc này có thể giao tiếp với modul bằng tập lệnh AT Ở chế độ SLAVE: chúng ta cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dị tìm module và ghép nối với pincode mặc định ‘’1234’’.
Module tương thích với các vi diều khiển 5V mà khơng cần chuyển đổ mức giao tiếp 5V về 3.3V như nhiều loại module khác.
54
3.3.9.2 Đặc tả phần cứng
Module Bluetooth HC-06 được thiết kế để chuyển đổi giao tiếp nối tiếp không đồng bộ và thành giao tiếp không dây Bluetooth và ngược lại
55
Tên Chân STT
Chân Loại Chân Mô Tả Chân
GND 13,
21,22 VSS Chân nối đất
3.3v VCC 12 Chân 3,3v Chân nguồn
AIO0 9 2 Hướng Lập trình I/O
AIO1 10 2 Hướng Lập trình I/O
PIO0 23 2 Hướng RX EN
Lập trình I/O, điều khiển output cho LNA nếu được trang
bị.
PIO1 24 2 Hướng RT EN
Lập trình I/O, điều khiển LA nếu được
trang bị.
PIO2 25 2 Hướng Lập trình I/O
PIO3 26 2 Hướng Lập trình I/O
PIO4 27 2 Hướng Lập trình I/O
PIO5 28 2 Hướng Lập trình I/O
PIO6 29 2 Hướng Lập trình I/O
PIO7 30 2 Hướng Lập trình I/O
PIO8 31 2 Hướng Lập trình I/O
PIO9 32 2 Hướng Lập trình I/O
56
PIO11 34 2 Hướng Lập trình I/O
ResetB 11 Cmos input with weak
internal pull-up Reset nếu LOW
UART_RST 4 Cmos output, tri-stable with weak internal pullup.
UART yêu cầu khi gửi, hoạt động LOW.
UART_CTS 3 Cmos input with weak
internal pull-down.
UART xóa khi gửi, hoạt động LOW.
UART_RX 2 Cmos input with weak
internal pull-down Dữ liệu vào UART
UART_TX 1 Cmos output, tri-stable with
weak internal pullup. Dữ liệu ra UART
SPI_MOSI 17 Cmos input with weak
internal pull-down
Serial peripheral interface data input
SPI_CSB 16 Cmos input with weak
internal pull-up.
Chip select for serial peripheral interface,
active low.
SPI_CLK 19 Cmos input with weak
internal pull-down.
Serial peripheral interface clock.
SPI_MISO 18 Cmos input with weak
internal pull-down.
Serial peripheral interface data output
USB - 15 2 Hướng
USB + 20 2 Hướng
57
PCM_CLK 5 2 Hướng Synchronous PCM
data clock
PCM_OUT 6 Cmos output Synchronous PCM
data output
PCM_IN 7 Cmos input Synchronous PCM
data input
PCM_SYNC 8 2 Hướng Synchronous PCM
data strobe
Tập Lệnh AT cho Moduel Bluetooth HC – 06
Lệnh Trả Về Tham Số Chức Năng
AT OK None Test
AT+RESET OK None Reset
AT+VERSION? +VERSION: <Param> OK
Version number
Kiểm tra phiên bản
AT+ORGL OK None Khôi phục trạng
thái mặc định
AT+ADDR? +ADDR:<Param> OK Bluetooth
address
Địa chỉ Bluetooth
AT+NAME=<param> OK Đặt tên cho
module AT+NAME? 1. +NAME:<Param > OK---success 2. FAIL---failure Bluetooth device name Tên thiết bị (mặc định:HC- 06) AT+RNAME?<param 1> 1. +NAME:<Param 2> OK---success 2. FAIL- --failur Tên thiết bị
58 AT+ROLE? +ROLE:<Param> OK 0---Slave role 1---Master role 2---Slaver- Loop role Truy vấn chức năng modul Mặc định :0
AT+PSWD=<param> OK Pincode Đặt mã Pin Mặc
định:”1234”
AT+PSWD? +PSWD:<Param> Pincode Truy vấn mã
PIN
AT+UART=<Param>,
<Param2>,<Param3> OK
Param1: Baud rate Param2: stop bit Param:
parity bit Cấu hình cho cổg UART AT+UART? UART=<Param>,<Para m2>,<Param3> OK Param1: Baud rate Param2: stop bit Param:
parity bit
Truy vấn thông tin cổg UART
59
CHƯƠNG 4: QUY TRÌNH THIẾT KẾ 4.1 Chọn thiết bị:
_ Xe lăn dùng người khuyết tật
_ Động cơ xe đạp điện: động cơ 3 pha vận tốc 20-30km/h
_ Bình ắc quy và bộ sạc cho động cơ xe đạp điện (12v-12a) và (12v-14a) _ Bộ kết nối Bluetooth và điều khiển Bluetooth
_ Bộ thắng
_ Bộ báo động bằng âm thanh _ Bộ trục xoay cân bằng
4.2 Thông số kĩ thuật thiết bị
Kĩ thuật Số
Cường độ dòng điện bộ điều khiển 50A
Khí áp sâm xe 2KGF/M2
Bình ắc quy 24V 12AH
Quãng đường hành trình 10-20 km
Blutooth quay lùi xe có
Động cơ DC250*2PCS Độ cao chỗ tựa 445MM Độ cao chỗ để tay 210MM Độ rộng chỗ ngồi 510MM Độ sâu chỗ ngồi 450MM Độ cao chỗ ngồi 480MM Cự ly phanh thắng an toàn ≤1.5M Bán kính xoay xe ≤1.2M
Tính ổn định khi duy chuyển ≥6°
Nguồn điện DC220V 50H 5A
Tốc độ xe 0-6KM
Tải trọng an toàn ≤100KG
Tính ỏn định khi xe khơng di chuyển ≥9°
Đường kính bánh rước 25CM
Dường kính bánh sau 61CM
Trọng lượng tịnh 48KG
Trọng lượng 51KG
60
4.3 Thiết bị bên ngồi:
Hình 4.1:hình mơ phỏng thiết kế xe lăn
Hình 4.2: tổng qua phía bên xe lăn
61
4.4 Tổng quan bên trong, lập trình code:
• Cấu tạo của động cơ xe đạp điện:
Động cơ của xe đạp điện được thiết kế khép kín có khả năng chống nước cao. Vị trí đặt động cơ thường là bánh sau của xe, động cơ liền khối với vành xe. Động cơ xe đạp điện được thiết kế gồm 2 phần là vỏ và lõi. Vỏ động cơ là phần bên ngoài giúp bảo vệ động cơ chống lại các tác nhân gây hại, bên trong có nam châm để giúp động cơ quay khi có dịng điện đi qua lõi động cơ.Lõi động cơ được cuốn bằng các cuộn dây đồng, có trục động cơ và các mắt động cơ. Động cơ xe đạp điện thường là 3 pha và phân biệt là loại có chổi than và khơng có chổi than. Động cơ, motor lắp bánh sau 24v /36v; cho tốc độ từ 27- 30km/h.
Hình 4.4: động cơ xe đạp điện gắn vào e lăn • Bình ắc quy xe đạp điện:
Ắc quy xe đạp điện: (12v-12a) và (12v-14a)
Ắc quy nhỏ được dùng chủ yếu là cho các dịng xe đạp điện cơng suất dưới 500W như: Ninja, Honda A6, Giant M133, Yamaha icat, Vnbike và các dịng xe đạp điện khác... Thơng thường ắc quy nhỏ gồm có 3 cách mắc thơng dụng như sau:
Cách 1: mắc nối tiếp 2 bình với nhau: (24v-12a) và (24v-14a) Dùng để bắt cho các loại xe dưới 250W.
Cách 2: mắc nối tiếp 3 bình với nhau: (36v - 12a) và (36v-14a) Dùng để bắt cho các loại xe từ 250W-350W.
Cách 3: mắc nối tiếp 4 bình với nhau: (48v - 12a) và (48v-14a) Dùng để bắt cho các loại xe từ 350W - 500W.
62
Hình 4.5: hình bình ắc quy thực tế Chú ý: Chú ý:
1. So sánh giữa bình ắc quy 14a và 12a:
+ Bình ắc quy 14a có tuổi thọ cao hơn bình ắc quy 12a do mỗi lần sạc bình 14a sẽ tích đựơc nhiều lượng điện hơn.
+ Bình ắc quy 14a có gia thành cao hơn bình ắc quy 12a.
+ Bình ắc quy 14a giúp cho xe có thể chạy được nhanh hơn, khỏe hơn, xa hơn so với bình 12a.
+ Bình ắc quy 14a sạc lâu đầy hơn bình 12a nếu dùng chung 1 loại sạc.
2. Trong 3 cách mắc nói trên thì cách mắc 4 bình nối tiếp vơi nhau là thơng dụng nhất và được sử dụng nhiều nhất vì cách bắt này giúp cho khách hàng tiết kiệm được chi phí nhiều nhất, giải quyết được hiệu quả về vấn đề tích trữ nhiên liệu của xe đạp điện. 3. Những dịng xe dùng loại bình nhỏ này được gọi chung là xe đạp điện và không phải đăng ký biển số xe.
4. Khi mắc nối tiếp thì hiệu điện thế (V) được cộng dồn và cường độ dịng điện (A) khơng thay đổi.
5. Khi bắt ắc quy phải để ắc quy theo chiều đứng, tuyệt đối khơng được đặt nghiêng hoặc lật úp.
Lập trình code kết nối bluetooth _ Bản mạch thu và khuếch đại bluetooth
63 ➢ Sơ đồ kết nối [1]
Hình 4.6: thiết kế mạch kết nối bluetooth mơ hình
64
4.5 Code lập trình
65
4.5.2 Code thiết lập ở ARDUINO
#include <SoftwareSerial.h> char state;
int toc_do;
const int role1 = 2;// role la thuoc bo dieu khien dong co const int tip1 = 3;// tip la dong co
const int role2 = 4; const int tip2 = 5;
const int motor3 = 6 ;// dong co lung ghe const int motor4 = 9 ;// dong co chan trai const int motor5 = 10;// dong co chan phai void setup()
66
{
pinMode(role1, OUTPUT);// thiet lap chan ra pinMode(tip1 , OUTPUT);
pinMode(role2, OUTPUT); pinMode(tip2 , OUTPUT);
digitalWrite( role1, HIGH );// thiet lap tat dong co khi bat digitalWrite( tip1, HIGH );
digitalWrite( role2, HIGH ); digitalWrite( tip2, HIGH );
Serial.begin(9600);// khai bao toc do } void loop() { if(Serial.available() > 0){ state = Serial.read(); switch (state) {
case 'M'://neu nhan thanh truot toc do
toc_do = Serial.parseInt(); //bien toc do = gia tri thanh truot goi ve hc-06 toc_do = map(toc_do,0,255,255,0);//dao gia tri tren thanh truoc
break;
67 case'U'://chay toi while(!Serial.available()); analogWrite(tip1, toc_do); analogWrite(tip2, toc_do); digitalWrite(role1, HIGH); digitalWrite(role2, HIGH); break; case'D'://chay lui digitalWrite(role1, LOW); digitalWrite(role2, LOW); analogWrite(tip1, toc_do); analogWrite(tip2, toc_do); break; case'L'://sang trai digitalWrite(role1, LOW); digitalWrite(role2, HIGH); analogWrite(tip1, toc_do); analogWrite(tip2, toc_do); break; case'R'://sang phai digitalWrite(role1, HIGH);
68 digitalWrite(role2, LOW); analogWrite(tip1, toc_do); analogWrite(tip2, toc_do); break; case'S'://stop
digitalWrite( role1, HIGH ); digitalWrite( tip1, HIGH ); digitalWrite( role2, HIGH ); digitalWrite( tip2, HIGH ); break;
case '1'://nang lung ghe analogWrite(motor3, HIGH); break;
case '2'://nang chan trai analogWrite(motor4, HIGH); break;
case '3'://nang chan phai analogWrite(motor5, HIGH); break;
69
analogWrite(motor5, LOW); break;
case 'B'://ha chan trai
analogWrite(motor5, LOW); break;
case 'C'://ha chan phai
analogWrite(motor5, LOW); break; } } }
70
4.5.3 Code bluetooth
1. // Khai báo biến
2. char state;
3.
4. void setup() {
5. // Cài đặt các chân bạn
muốn điều khiển thành
thành Ouput 6. // Ở đây tôi sử dụng 4 chân 9, 10, 11, 1 7. pinMode(9, OUTPUT) 8. pinMode(10, OUTPUT) 9. pinMode(11, OUTPUT) 10. pinMode(12, OUTPUT) 11. Serial.begin(9600); // Kết nối bluetooth module ở tốc độ 960 12. } 13. 14. void loop() { 15. 16. if(Serial.available() > 0) 17. // Đọc giá trị nhận được từ bluetoot 18. state = Serial.read() 19. } else 20. state = 0 21. 22. Serial.println(state) 23. // Thực hiện điều khiển các chân 9, 10, 11, 12
24. // Ở đây tôi đã quy
ước sẵn các giá trị gửi và nhận dữ liệu giữa điện thoại và Arduino 25. switch (state) { 26. case '1' 27. digitalWrite(9, HIGH) 28. break 29. case '2' 30. digitalWrite(9, LOW) 31. break 32. case '3' 33. digitalWrite(10, HIGH) 34. break 35. case '4' 36. digitalWrite(10, LOW) 37. break 38. case '5' 39. digitalWrite(11, HIGH) 40. break 41. case '6' 42. digitalWrite(11, LOW) 43. break 44. case '7' 45. digitalWrite(12, HIGH) 46. break 47. case '8' 48. digitalWrite(12, LOW) 49. break; 50. 51. default: 52. break 53. } 54. 55.
71 ➢ Hình ảnh thực
Hình4.9: ảnh chạy thử mạch blueooth
4.6 Mơ hình mơ phỏng sơ lược:
72
4.7 Sơ đồ mạch điều khiển và động lực
Hình 4.11: Sơ đồ mạch động lực
Mạch động cơ có chức năng điều khiển động cơ chạy thuận hoặc chạy ngược. Ban đầu khi TIP41C và role chưa dẫn thì động cơ khơng hoạt động. Khi TIP41C dẫn thì động cơ sẽ được cấp điện để chạy thuận, tiếp đó kích thêm role thì động cơ chạy ngược.
4.8 Mạch kết nối Bluetooth và Aurino
73
4.9 Mạch tổng
Hình 4.13: Mạch tổng
74
Hình 4.15: Hình chạy mơ phỏng trên phần mềm
Hình 4.16: Mạch in
75
4.10 Tính tốn khối nguồn:
Hình 4.18: nguồn được sử dụng trên xe lăn
❖ Các thông số: [3] • Dung lượng pin: 12AH • Điện áp tiêu chuẩn: 24V • Sạc điện áp: 24V
• Tiêu chuẩn: GB/18278-2000 Cơng suất tiêu thụ:
Dòng ESP8266 1 chân GPIO là 20mA, trong hệ thống này sử dụng 8 chân GPIO nên dòng sẽ là 160mA.
Dòng module 1 chân là 40mA, sử dụng 2 chân nên số dịng là 80mA. Do đó, có tổng dịng là 240mA.
Cơng suất tiêu thụ của hệ thống là: P = U*I = 5 *0.24 = 1.2 W
Tính thời gian sử dụng của xe:
Do xe được điều khiển với 5 tốc độ nên ở mỗi mức độ sẽ có 1 thời gian sử dụng khác nhau, qua thực nghiệm và tính tốn đã cho ra kết quả:
• Thời gian sử dụng xe ở mức 1 (MIN): Áp lúc sử dụng: 1,7V Dòng điện: 2.3A Cơng suất là: 3.91W
76
Do đó, thời gian sử dụng của xe là:[3]
Tương tự, ta được kết quả thời gian sử dụng ở các mức tiếp theo. • Thời gian sử dụng xe ở mức 3 (TB) là hơn 6h.
• Thời gian sử dụng xe ở mức 5 (MAX) là hơn 3h.
4.11 Khối công suất điều khiển động cơ
Động cơ được chọn trong mơ hình là động cơ giảm tốc DC để điều khiển xe chạy tiến, lùi, xoay trái, xoay phải, điều chỉnh tốc độ nhanh chậm theo ý muốn.Ở đây nhóm chọn module BTS7960 để điều khiển động cơ do module đáp ứng đủ những điều kiện trên, giá thành của module là 139.000 VNĐ phù hợp cho sinh viên sử dụng trong mơ hình. Một số thơng số cơ bản của module BTS7960:
• Điện áp đầu vào: 6~27V
• Dịng điện tải mạch: 43A (tải trở), 15A (tải cảm).