Bảng giá trị bit LCD

Một phần của tài liệu Sử dụng kit raspberry chế tạo xe tự vận hành (Trang 36)

Y2 Y1 Y0 Position of Y-Address 0 0 0 Bank 0 0 0 1 Bank 1 0 1 0 Bank 2 0 1 1 Bank 3 1 0 0 Bank 4 1 0 1 Bank 5

Lệnh Set địa chỉ cột (Set X address)

Hình 3.18. Lệnh Set địa chỉ cột

LCD Nokia 5110 có tất cả 84 cột (0 ->83), nên cần đến 7 bít (X0->X6) để chứa giá trị lựa chọn cột hiển thị.

Lệnh cài đặt hiển thị (Display Control).

Hình 3.19. Lệnh cài đặt hiển thị Bảng 3.5. Ý nghĩa các bit D, E Bảng 3.5. Ý nghĩa các bit D, E

CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 29

0 0 Chế độ không hiển thị

0 1 Hiện thị tất cả các điểm ảnh lên 1 0 Chế độ hiển thị thông thường 1 1 Chế độ nền đen, chữ trắng

Kết nối LCD Nokia 5110 với kit Raspberry:

- Chân GND nối vào GROUND (PIN 6). - Chân BL nối với chân nguồn 3,3 V - Chân VCC nối với chân nguồn 3,3 V

- Chân tín hiệu CLK kết nối với GPIO 11(PIN 23). - Chân tín hiệu DIN kết nối với GPIO 10(PIN19) - Chân tín hiệu DC kết nối với GPIO 23(PIN16) - Chân tín hiệu CE kết nối với GPIO 8(PIN24) - Chân tín hiệu RST kết nối với GPIO 24(PIN18)

CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ

BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 30

Yêu cầu 5: Bên cạnh chế độ xe tự hành nhóm cịn phát triển thêm chế độ xe theo dõi

(di chuyển theo vật cản) ở chế độ này xe chỉ phát hiện vât cản sau đó đưa tín hiệu về kit xử lý sao cho xe di chuyển theo khi vật chuyển hướng, chỉ có chức năng nhận biết đơn giản vật cản có xuất hiện hay khơng nên nhóm lựa chọn 2 module cảm biến hồng ngoại đặt vào 2 bên của xe để có thể nhận biết được khi vật ở đối diện và 2 bên hông xe dễ dàng hơn.

Hình 3.21. Module cảm biến vật cản hồng ngoại HN2

Đây là một loại cảm biến thông dụng được dùng rất nhiều trong Beam cảm biến cửa tự động thơng minh, cảm biến an tồn của cổng tự động cũng như barrie tự động, cổng co giãn inox tự động đó là cảm biến phát hiện vật cản hồng ngoại hay cảm biến IR

(IR detectr).

Thông số kỹ thuật

Module phát hiện vật cản trong khoảng cách từ 2 - 60cm, góc phát hiện là 35 độ. Khi phát hiện vật cản, tín hiệu đầu ra OUT ở mức thấp và đèn led màu xanh sáng. Có thể điều chỉnh được khoảng cách bằng biến trở. Chỉnh chiết áp để tăng khoảng cách theo chiều kim đồng hồ, và ngược lại để giảm khoảng cách

Cổng ra OUT có thể điều khiển trực tiếp 1 Rơ le 5V hoặc cổng IO của MCU. Điện áp cung cấp: 3 - 5VDC

Nguyên lý hoạt động

Mắt phát hồng ngoại sẽ phát ra sóng ánh sáng có bước sóng hồng ngoại, ở mắt thu bình thường thì có nội trở rất lớn (khoảng vài trăm kilo ohm), khi mắt thu bị tia hồng ngoại chiếu vào thì nội trở của nó giảm xuống (khoảng vài chục ohm).

CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 31

Kết nối 2 module cảm biến hồng ngoại vật cản với kit Raspberry:

Mỗi module cần 1 chân tí hiệu OUT nên chọn 2 chân tín hiệu xuất nhập của kit là GPIO 19 và GPIO 26.

Hình 3.22. Sơ đồ kết nối 2 module cảm biến hồng ngoại vật cản với kit Raspberry

Yêu cầu 5 :Kết nối khối nút nhấn với kit Raspberry tăng giảm giá trị và chọn chế độ

Chọn 4 chân tín hiệu GPIO GPIO GPIO GPIO giao tiếp với 4 nút nhấn. - Nút nhấn MODE kết nối với chân tín hiệu GPIO 13(PIN 33)

- Nút nhấn OK kết nối với chân tín hiệu GPIO 14(PIN 8) - Nút nhấn TĂNG kết nối với chân tín hiệu GPIO 9(PIN 21) - Nút nhấn GIẢM kết nối với chân tín hiệu GPIO 5(PIN 29)

CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 32

Sơ đồ nguyên lý của hệ thống:

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 35

Chương 4: THI CƠNG HỆ THỐNG

Chương này trình bày về 2 phần: phần thứ nhất thi cơng mơ hình xe và phần thứ 2 là thi cơng lập trình phần mềm cho xe bao gồm lưu đồ và chương trình.

4.1 THI CƠNG MƠ HÌNH XE

Với các số liệu ban đầu của khung xe tiến hành bố trí KIT, cảm biến, LCD, động cơ servo, động cơ DC.

Với chiều dài tổng thể của khung xe là dài 20cm rộng 15cm tiến hành sắp xếp bố trí tổng thể như hình dưới đây là cách bố trí mơ hình xe nhìn từ phía trên xuống bao gồm KIT, nguồn pin cung cấp cho hệ thống, cảm biến, LCD, động cơ servo, module hồng ngoại vật cản và module L9110 được bố trí gọn gàng lên bề mặt khung xe.

Dưới đây là cách bố trí phía trên của mơ hình xe.

Hình 4.1. Cách bố trí tổng thể mơ hình xe nhìn từ trên xuống

Phía dưới xe là bố trí nguồn pin gồm 6 cục pin và 2 động cơ DC điề khiển bánh xe. Dưới đây là hình ảnh phía dưới của mơ hình xe.

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP 36

Hình 4.2. Cách bố trí tổng thể mơ hình xe nhìn từ phía dưới xe

Dưới đây là hình tổng thể mơ hình xe được nhìn từ phía trước.

Hình 4.3. Cách bố trí tổng thể mơ hình xe nhìn từ phía trước

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 37

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP 38

4.2 LẬP TRÌNH HỆ THỐNG

Sau khi thi cơng mơ hình xe kế tiếp là phần lập trình để vận hành xe bao gồm thiết lập lưu đồ và viết chương trình cho hệ thống.

4.2.1. Thi công lưu đồ giải thuật

Thành lập lưu đồ của tồn hệ thống: Khi bắt đầu chương trình thì việc đầu tiên là khởi tạo motor servo, motor (bánh xe), cảm biến (cài đặt chân trig, echo), LCD, Thiết lập giá trị 0 cho biến. Sau đó kiểm tra có nhấn MODE hay khơng nếu không nhấn không làm gì hết nếu có nhấn thì kiếm tra giới hạn cho phép và tăng giá trị biến MODE thêm 1 đơn vị, so sánh để xác định 2 chế độ xe chạy: chế độ một là tự vận hành; chế độ 2 là chạy theo dỗi. Dưới đây là lưu đồ giải thuật chương trình chính của hệ thống.  Lưu đồ chương trình chính: BEGIN KHỞI TẠO SERVO, CẢM BIẾN, MOTOR, LCD

THIẾT LẬP GIÁ TRỊ BAN ĐẦU BẰNG 0 CHO TÁT CẢ CÁC BIẾN NHẤN MODE MODE=1 ? XỬ LÍ CHẾ ĐỘ XE TỰ HÀNH MODE=2 ? XỬ LÍ CHẾ ĐỘ XE THEO DỖI END Đ Đ S Đ S XE DỪNG S

Hình 4.5. Lưu đồ giải thuật chương trình chính

Nếu mode = 1 xử lí chế độ một là xe tự hành. Đầu tiên xác lập trạng thái xe kế đến vào chương trình đo khoảng cách, sau khi lấy được giá trị đo khoảng cách về thì

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 39

chúng ta bắt đầu kiểm tra giá trị khoảng cách: Nếu giá trị khoảng cách lớn hơn 20 cm thì xử lý cho xe chạy thẳng sau khi xử lý chạy thẳng xong thì chúng ta bắt đầu một chu kỳ mới bắt đầu từ đo và lấy về giá trị khoảng cách mới ngược lại thì chuyển hướng sang chương trình quét dò trái, phải. Sau đây là lưu đồ điều khiển chế độ thứ nhất tự vận hành của xe.

Lưu đồ chương trình con xử lí chế độ xe tự hành:

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 40

Đo khoảng cách xử dụng cảm biến SRF05 là quá trình đo khoảng thời gian phát ra và thu về một xung xuất ngõ ra chân Trig mức logic 1 sau đó delay khoảng thời gian là 0.00001 giây xong xuất ngõ ra chân Trig mức logic 0. Bằng việc này thì quá trình đo khoảng cách chỉ qua là quá trình dếm thời gian. khoảng cách được tính bằng công thức:

d = (𝑡𝑒𝑛𝑑−𝑡𝑠𝑡𝑎𝑟𝑡) 𝑥 34300

2 (cm) (4.1) tend: thời gian cuối cùng khi chân echo ở mức cao

tstart: thời gian bắt đầu khi chân echo ở mức cao d: khoảng cách từ cảm biến đến vật (cm)

Dưới đây là lưu đồ chương trình đó khoảng cách

Lưu đồ chương trình đo khoảng cách

BEGIN XUẤT NGÕ RA CHÂN TRIG MỨC LOGIC 1 DELAY 0.00001 GIÂY XUẤT NGÕ RA CHÂN TRIG MỨC LOGIC 0 ECHO =0 ? ECHO =1 ? START BẰNG THỜI GIAN HIỆN TẠI

STOP BẰNG THỜI GIAN HIỆN TẠI

KHOẢNG CÁCH=(STOP- START)*17500 END Đ S Đ S

Hình 4.7. Lưu đồ chương trình đo khoảng cách.

Nếu mode = 2 xe chạy chế độ theo dõi nếu cảm biến trái =0 và cảm biến phải =0 đúng ta xét nếu khoảng cách lớn hơn 10cm thì xe chạy thẳng ngược lại xe dừng.

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 41

 Nếu Cảm biến trái =0 và Cảm biến phải =1: xe chạy phải

 Nếu Cảm biến trái =1 và Cảm biến phải =0: xe chạy trái

 Nếu Cảm biến trái =1 và Cảm biến phải =1: xe dừng

Lưu đồ chương trình con xử lí chế độ xe theo dõi:

BEGIN XÁC LẬP TRẠNG THÁI XE CẢM BIẾN TRÁI=0 và CẢM BIẾN PHẢI=0 ? CẢM BIẾN TRÁI=0 và CẢM BIẾN PHẢI=1 ? CẢM BIẾN TRÁI=1 và CẢM BIẾN PHẢI=0 ? KHOẢNG CÁCH>10CM END Đ S S S XE CHẠY THẲNG Đ XE CHẠY PHẢI Đ XE CHẠY TRÁI XE DỪNG S

Hình 4.8. Lưu đồ giải thuật chương trình con xe theo dõi

Để xử lý được 2 chế độ trong lúc xe đang vận hành để thiết lập được các giá trị thông số ban đầu như tốc độ 2 bánh, tốc độ quẹo thì thành lập một lưu đồ con tên là xác lập trạng thái chạy tự động bằng việc xử lý các nút nhấn được đặt tên là OK, UP, DW. Nếu OK=1 thì điều chỉnh tốc độ bành trái tăng hoặc giảm; nếu OK=2 thì điều chỉnh tốc độ bánh phải tăng hoặc giảm; nếu OK=3 thì điều chỉnh tốc độ quẹo tăng hoặc giảm. Sau đây là lưu đồ giải thuật chương trình xác lập trạng thái xe.

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 42

Lưu đồ chương trình con xác lập trạng thái xe

BEGIN

OK=1 ? OK=2 ? OK=3 ?

NHẤN UP NHẤN

DWN

KIỂM TRA GIỚI HẠN CHO PHÉP,TĂNG BIẾN

QUAY TRÁI LÊN 5 CẤP ĐỘ

KIỂM TRA GIỚI HẠN CHO PHÉP,GIẢM BIẾN QUAY TRÁI XUỐNG 5 CẤP ĐỘ NHẤN UP NHẤN DWN NHẤN UP NHẤN DWN

KIỂM TRA GIỚI HẠN CHO PHÉP,TĂNG BIẾN QUAY PHẢI LÊN 5 CẤP

ĐỘ

KIỂM TRA GIỚI HẠN CHO PHÉP,GIẢM BIẾN QUAY PHẢI XUỐNG 5

CẤP ĐỘ

KIỂM TRA GIỚI HẠN CHO PHÉP,TĂNG BIẾN QUẸO LÊN

5 CẤP ĐỘ KIỂM TRA GIỚI HẠNCHO PHÉP,GIẢM BIẾN QUẸO XUỐNG 5 CẤP ĐỘ END Đ Đ Đ S S S Đ Đ S Đ Đ Đ S S S S

Hình 4.9. Lưu đồ giải thuật chương trình con xác lập trạng thái xe 4.2.2 Chương trình chính xử lý của hệ thống 4.2.2 Chương trình chính xử lý của hệ thống

Code xử lý đo khoảng cách :

def send_trigger_pulse():

GPIO.output(trigger_pin, True) time.sleep(0.0001)

GPIO.output(trigger_pin, False) def wait_for_echo(value, timeout): count = timeout

while GPIO.input(echo_pin) != value and count > 0: count = count - 1

def get_distance(): send_trigger_pulse()

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 43

wait_for_echo(True, 10000) start = time.time()

wait_for_echo(False, 10000) finish = time.time()

pulse_len = finish - start

distance_cm = pulse_len / 0.000058 return distance_cm

Code xử lý nút nhấn

if input_ok == False: #chọn biến để thay đổi trong xác lập trạng thái xe time.sleep(0.2) if input_ok == False: temp2 = temp2 + 1 if temp2 > 3: temp2 = 0 time.sleep(0.2) if input_mode == False: #chọn chế độ xe time.sleep(0.2) if input_mode == False: lcd.cls() temp3 = temp3 + 1 if temp3 > 3: temp3 = 0 time.sleep(0.2)

if input_tang == False: #tăng tốc độ xe time.sleep(0.2)

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 44

temp = temp + 5 chuc = temp/10 dv = temp%10 print(temp) time.sleep(0.2)

if input_giam == False: # giảm tốc độ xe time.sleep(0.2) if input_giam == False: temp = temp - 5 chuc = temp/10 dv = temp%10 print(temp) time.sleep(0.2) Code chế độ xe tự hành

if get_distance() < 20: # đo khoảng cách và so sánh với 20cm chaylui() time.sleep(1) dungxe() for dc in range(1300,2450,10): servo.set_servo(25, dc) time.sleep(0.005) if dc == 2440:

tam1 = get_distance() # đo khoảng cách ở góc 180 độ for dc in range(2450,200,-10):

servo.set_servo(25, dc) time.sleep(0.005) if dc == 210:

tam2 = get_distance() # đo khoảng cách ở góc 0 độ if tam1 > tam2: # so sánh khoảng cách đưa ra hướng đi hợp lý servo.set_servo(25, dc)

trai = 1 phai = 0

CHƯƠNG 4: THI CÔNG HỆ THỐNG

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 45

else: servo.set_servo(25, dc) trai = 0 phai = 1 if phai == 1: chayphai() tam3 = 0 phai = 0 if trai == 1: chaytrai() tam3 = 1 trai = 0 if tam3 == 1: chaythang_left() else: chaythang()

Code chế độ theo dõi

if get_distance() > 10: # đo khoảng cách từ vật đến xe chaythang_2()

else: dungxe()

if input_left == False and input_right == True: # so sánh cảm biến trái và phải chayphai_2()

if input_left == True and input_right == False: # so sánh cảm biến trái và phải chaytrai_2()

if input_left == True and input_right == True: # so sánh cảm biến trái và phải dungxe()

CHƯƠNG 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 47

Chương 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ

5.1 KẾT QUẢ

Sau khoảng thời gian gần 12 tuần nghiên cứu và tìm hiểu tài liệu chun mơn, tài liệu tiếng anh, nghiên cứu tài liệu trên Internet, đồ án của các anh chị đi trước cùng với sự giúp đỡ tận tình của giáo viên hướng dẫn Th.S Nguyễn Duy Thảo chúng em đã đạt được những kết quả như mong muốn. Xe có thể chạy theo 2 chế độ riêng biệt; chế độ thứ nhất xe tự chạy tránh vật cản và chế độ thứ 2 xe di chuyển theo vật cản phía trước. Xe có thể di chuyển tương đối tốt ở môi trường bề mặt đường đi của xe tưng đối bằng phẳng, ít dốc, khơng gian xung quanh phải khơng có những vật có thể thu phát sóng siêu âm. Ngược lại bề mặt đường đi dốc, gồ ghề xe gặp khó khăn trong việc di chuyển.

CHƯƠNG 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 48

Bảng 5.1. Bảng thông số kỹ thuật của xe tự vận hành

Tên loại xe XE TỰ VẬN HÀNH

Tốc độ Mặc định: 0.1 m/s, có thể thay đổi lên đến 0.5 m/s.

Khoảng cách nhận biết vật cản

Khoảng cách dừng lại xử lý quay phải, trái, đi thẳng: 20cm. Khoảng cách nhìn thấy vật cản xa nhất: 50cm. Khoảng cách nhìn thấy vật cản gần nhất: 3cm. Loại sóng sử dụng

Sóng siêu âm (Tần số: 235Khz hoặc cao hơn). Nguồn hoạt động 5VDC – 2A. Cân nặng 1.6 kg Độ sai số khi đo khoảng cách Từ -5cm đến 5cm.

Loại vật cản Không hấp thụ, phản xạ sóng siêu âm. Vật cản có chiều cao từ 15cm trở lên tính từ mặt đường.

Chiều cao, dài, rộng

15 cm, 20cm, 15cm.

Công suất 7W Tải trọng 0.5 kg

5.2 NHẬN XÉT VÀ ĐÁNH GIÁ

CHƯƠNG 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 49

Nhóm đạt khoảng 80% yêu cầu nội dung của đề tài.

Kết cấu xe thô sơ, đơn giản, sắp xếp các khối khơng mang lại tính thẩm mỹ cao. Trong suốt q trình chạy thực tiễn, xe có thể chạy tương đối ổn định được 2 chế độ độc lập nhau và tự vận hành trong quá trình di chuyển. Cơ bản xe tự tránh được vật cản trước mặt và có thể di chuyển theo vật cản và đưa ra kết quả tương đối đúng. Khoảng cách xe dừng khi thấy (phát hiện vật cản) là 20cm. Trong quá trình vận hành xe khi quẹo trái xe chạy không được ổn định và khi chạy với tốc độ nhanh khi gặp vật cản xe sẽ xử lý không được tối ưu nên xe sẽ lùi lại với khoảng cách rất xa do thời gian xử lí của xe cịn chậm. Nguồn pin cung cấp cho kit để điều khiển xe có thể chạy liên tục khoảng 3 tiếng đồng hồ. Nguồn pin cung cấp cho động cơ sử dụng khoảng 5 tiếng

Một phần của tài liệu Sử dụng kit raspberry chế tạo xe tự vận hành (Trang 36)

Tải bản đầy đủ (PDF)

(64 trang)