3.2.1 Thiết kế sơ đồ khối
24
Chức năng từng khối:
- Khối nguồn:cung cấp nguồn cho toàn hệ thống.
- Khối điều khiển và xử lý trung tâm:Bao gồm Jetson Nano nhận dữ liệu hình ảnh từ khối thu thập hình ảnh để xứ lý và đưa ra tín hiệu truyền xuống Arduino Uno R3.khi đó Arduino Uno R3 sẽ nhận tín hiệu đó sau đó sẽ điều khiển động cơ và điều khiển góc lái của động cơ bước.
- Khối thu thập hình ảnh:Thu thấp hình ảnh lane và biển báo để gửi về bộ xử lý trung tâm.
-Khối động cơ:Nhận tín hiệu từ khối điều khiển và xử lý trung tâm để di chuyển. -Khối điều khiển lái:Bao gồm Driver TB6600 sẽ nhận tín hiệu từ khối điều khiển để điều khiển hướng lái của chiếc xe.
3.2.2 Các khối trong hệ thống
3.2.2.1 Khối điều khiển và xử lý trung tâm
Jetson Nano
Jetson Nano là sản phẩm của nhà phát triển Nvidia.Nó là một máy tính nhúng có kích thước nhỏ.Jetson Nano gồm những phần chính:
CPU 4 nhân 64-bit dựa trên ARM Cortex-A57 với tốc độ đọc là 1.43 GHz,có thể chạy được hệ điều hành Linux.Thêm vào đó là Card đồ họa(GPU) 128 Core Maxwell 472 GFLOPs(FP16).GPU này mạnh mẽ có thể chơi một số game phổ thông và chạy video chuẩn full HD.
Jack nguồn DC OD 5.5mm,5V/4A hoặc nguồn 5V/2A khi sử dụng jack microUSB. 40 ngõ GPIO (General Purpose Input Output): Giống như các chân của vi điều khiển,các IO này của Jetson Nano cũng được sử dụng để xuất tín hiệu ra led,thiết bị,..hoặc đọc tín hiệu vào từ các nút nhấn,công tắc,cảm biến…Ngoài ra còn có các IO tích hợp các chuẩn truyền dữ liệu UART,I2C và SPI.
Ngõ HDMI:Dùng để kêt nối Jetson Nano với màn hình máy tính hay tivi có hỗ trợ cổng HDMI.
25
Cổng Display:Dùng để kết nối LCD hoặc màn hình OLED.
Cổng USB:Một điểm mạnh của Jetson Nano là tích hợp 4 cổng usb 3.0.Đủ để cắm các ngoại vi cần thiết như chuột,bàn phím,và usb Wifi.
Cổng Ethernet:Cho phép kết nối Internet dễ dàng.Cắm dây mạng vào Jetson Nano,kết nối với màn hình máy tính hay tivi và bàn phím,chuột là bạn có thể lướt web dễ dàng.
Khe cắm thẻ nhớ SD: Jetson Nano không tích hợp ổ cứng.Thay vào đó có thể sử dụng thẻ SD để lưu trữ dữ liệu.Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích thước thẻ đủ lớn để lưu trữ toàn bộ dữ liệu.
Cổng CSI ( Camera Serial Interface):Cổng này dùng để kết nối với module camera MIPI.Modelue này thu được hình ảnh chất lượng lên đến 1080p.
Ngoài ra,Jetson Nano có thể kết nối bluetooth 4.1 đồng thời có thể gắn thêm card Wifi để kết nối internt không dây cho thiết bị.
26 Hình 3.3: Sơ đồ cấu tạo của Jetson Nano
27
Arduino Uno R3
Arduino Uno R3 là kit Arduino Uno thế hệ thứ 3,với khả năng lập trình cho các ứng dụng phức tạp do được trang bị cấu hình mạnh trong các loại bộ nhớ ROM,RAM và Flash,các ngõ vào ra Digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM,các ngõ đọc tín hiệu Analog vad các chuẩn giao tiếp đa dạng như UART, SPI,TWI(I2C).
Hình 3.5: Sơ đồ cấu tạo của Arduino Uno R3
Nguồn cấp cho Arduino Uno R3 có thể là 5V thông qua USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC cho kit Arduino Uno.Nếu nguồn vượt quá ngưỡng giới hạn 20V kit sẽ cháy,nên tuyệt đối cẩn thận khi cấp nguồn ngoài cho kit.
GND (Ground): đất của nguồn điện cấp cho kit. Khi bạn dùng các ứng dụng sử dụng nguồn điện riêng hoặc nhiều nguồn thì phải nối những chân GND này với nhau .
5V: Đầu ra điện áp 5V . Các bạn phải lưu ý là dòng tối đa cho phép cấp ở pin này là 0.5A.
3.3V: Đầu ra điện áp 3.3V . Dòng tối đa cho phép cấp ở pin này là 0.05A.
Vin (Voltage Input): Cấp nguồn ngoài cho kit. Khi kết nối, tiến hành nối cực dương của nguồn với pin này và cực âm của nguồn với pin GND.
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO. Bạn có thể dùng đồng hồ đo được ở pin này. Khi đo bạn sẽ thấy nó luôn là 5V. Tuy nhiên ko được lấy nguồn từ pin này cấp đi chỗ khác, vì đơn giản chức năng của nó không phải là cấp nguồn
28
RESET: Chân reset sẽ được nối với nút bấm. Khi bạn nhấn nút Reset, kit sẽ reset vi điều khiển. Nguyên lý là chân RESET sẽ được nối với Groundqua 1 điện trở 10KΩ.
2 chân Serial:1 (TX) và 0 (RX):dùng để nhận (receive-RX) và gửi (transmit-TX) dữ liệu TTL Serial.Arduino Uno có thể giao tiếp với thiết bị khác qua 2 chân này.
Chân PWM(~);3,5,6,9,10 và 11:cho phép bạn băm xung PWM với độ phân giải 8 bit(giá trị từ0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite().
Chân giao tiếp SPI: 10(SS), 11(MOSI) , 12(MISO), 13(SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền dữ liệu bằng giao thức SPI với các thiết bị khác.
Analog Pin: 6 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 trong khoảng 0V → 5V. Bạn có thể để đưa vào chân AREF trên board điện áp tham chiếu khi sử dụng các chân analog. Nói cách khác, khi bạn cấp điện áp 2.5V vào chân này thì bạn có thể đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Giao tiếp I2C: 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
29 3.2.2.2 Khối thu thập hình ảnh
Camera logitech C270 được sử dụng để thu thập hình ảnh của lane đường và biển báo.Được kết nối với Jetson Nano thông qua cổng USB 3.0.
Hình 3.7: Camera logitech C270
Thông số kỹ thuật của Camera logitech C270: - Độ phân giải: lên đến 3MP
- Quay video: lên tới 1024 x 720 pixel
- Công nghê: Công nghệ tinh thể lỏng Logitech Fluid Crystal - Giao tiếp: USB 2.0 tốc độ cao
- Kích thước:15x10x5 cm - Khối lượng: 0.2 KG
3.2.2.3 Khối động cơ
Chức năng chính của khối động cơ là nhận tín hiệu từ Arduino Uno R3 được truyền từ Jetson Nano để xe có thể di chuyển tiến thẳng và dừng lại khi gặp biển báo.
Việc lựa chọn động cơ phải phù hợp với trọng lượng của chiếc xe,các thông số vòng/phút,điện áp hoạt động,công suất của động cơ,..ảnh hưởng trực tiếp đến sự di chuyển của xe,nhất là khi xe di chuyển trên địa hình thực tế,sự ma sát của mặt đường là rất lớn.
Thông qua việc tính toán sơ bộ như trên về tải trọng tối đa mà xe có thể chở được,cũng như là xe di chuyển với vận tốc mong muốn thì động cơ được chọn là loại động cơ RS550
30 Hình 3.8: Động cơ RS550 Thông số kỹ thuật: - Điện áp hoạt động: 12V - Công suất: 35W -Tốc độ: 15000 RPM -Đường kính động cơ: 36mm -Chiều dài thân động cơ: 85mm
31
Để điều khiển được tốc độ của động cơ,đồng thời tránh hiện tượng cháy do quá dòng khi sử dụng module L298.Nên nhóm em đã sử dụng module BTS7960 43A để điều khiển từng động cơ.
Hình 3.10: Module BTS7960 43A
BTS7960 là bộ điều khiển động cơ cho phép điều khiển tốc độ và hướng của động cơ DC.Module có thể điều khiển động cơ có điện áp 6~27V, với dòng điện tối đa lên đến 43A.Tín hiệu logic điều khiển là 3.3~5V.Tần số điều khiển tối đa là 25KHz.Module sẽ tự động shutdown khi điện áp thấp hơn 5.5V.
32
Sơ đồ chân:
- VCC : Nguồn tạo mức logic điều khiển ( 5V – 3V3 ) - GND : Chân đất.
- R_EN = 0 Disable nửa cầu H phải. R_EN = 1 : Enable nửa cầu H phải. - L_EN = 0 Disable nửa cầu H trái. L_EN = 1 : Enable nửa cầu H trái. - RPWM và LPWM : chân điều khiển đảo chiều và tốc độ động cơ. - RPWM = 1 và LPWM = 0 : Mô tơ quay thuận.
- RPWM = 0 và LPWM = 1 : Mô tơ quay nghịch
- RPWM = 1 và LPWM = 1 hoặc RPWM = 0 và LPWM = 0 : Dừng. - R_IS và L_IS : kết hợp với điện trở để giới hạn dòng qua cầu H
Với ứng dụng bình thường RPWM,LPWM nối với GPIO (VD : chân digital 2,3) để điều khiển chiều quay của động cơ.
Chân R_EN , L_EN nối chung lại rồi nối với PWM (VD chân digital 5) để điều khiển tốc độ động cơ.
33 3.2.2.4 Khối điều khiển lái
Chức năng của khối điều khiển lái là nhận tín hiệu từ Arduino Uno R3 truyền xuống sau khi đã qua xử lý của Jetson Nano để điều khiển xe di chuyển sang trái,phải hay ở giữa.
Để dẫn động hướng cho xe nhóm em đã sử dụng động cơ bước size 57.Động cơ có moment xoắn lớn,chạy êm- không gây nhiều tiếng ồn,động cơ có thể tùy chỉnh.
Hình 3.13: Động cơ bước
Thông số của động cơ: - Góc bước: 1.8 độ - Số pha: 2 pha - Dòng điện: 3.0A - Momen xoắn: 1.8Nm - Khối lượng: 1.05KG - Đường kính trục: 6.35mm - Số dây: 4 dây
34
Các chế độ điều khiển động cơ bước:
Hình 3.14: Phương pháp điều khiển động cơ bước
- Điều khiển dạng sóng (Wave): là phương pháp điều khiển cấp xung điều khiển lần lượt theo thứ tự chon từng cuộn dây pha.
- Điều khiển bước đủ (Full step): là phương pháp điều khiển cấp xung đồng thời cho 2 cuộn dây pha kế tiếp nhau.
- Điều khiển nửa bước (Half step): là phương pháp điều khiển kết hợp cả 2 phương pháp đều khiển dạng sóng và điều khiển bước đủ. Khi điều khiển theo phương pháp này thì giá trị góc bước nhỏ hơn hai lần và số bước của động cơ bước tăng lên 2 lần so với phương pháp điều khiển bước đủ tuy nhiên phương pháp này có bộ phát xung điều khiển phức tạp.
- Điều khiển vi bước (Microstep): là phương pháp mới được áp dụng trong việc điều khiển động cơ bước cho phép động cơ bước dừng và định vị tại vị trí nửa bước giữa 2 bước đủ. Ưu điểm của phương pháp này là động cơ có thể hoạt động với góc bước nhỏ,độ chính xác cao. Do xung cấp có dạng sóng nên động cơ hoạt động êm hơn,hạn chế được vấn đề cộng hưởng khi động cơ hoạt động.
Để điều khiển động cơ bước một cách chính xác và dễ dàng hơn thì cách tối ưu nhất là nên sử dụng driver điều khiển động cơ bước.Vì vậy nhóm em sử dụng TB6600 để điều khiển động cơ bước trên.
35
Mạch điều khiển động cơ bước TB6600 sử dụng IC TB6600HQ/HG,dùng cho các loại động cơ bước:42/57/86 2 pha hoặc 4 dây,có dòng tải là 5A/42V DC. Ứng dụng trong làm các máy như CNC,Laser hay các máy tự động khác.
Hình 3.15: Driver TB6600
Điện áp cấp cho driver có thể từ 12- 48V,với dòng điện đầu ra tối đa là 5A đủ để cung cấp cho động cơ bước trên.
TB6600 cách ly Input và Output bằng opto,bảo vệ quá áp,thấp áp,quá dòng,bảo vệ ngắn mạch,tránh gây cháy động cơ.Nhiệt độ hoạt động từ -10 đến 45 độ C.
Cài đặt và ghép nối:
- DC+: Nối với nguồn điện từ 9 - 40VDC - DC- : Điện áp (-) âm của nguồn
- A+ và A -: Nối vào cặp cuộn dây của động cơ bước - B+ và B- : Nối với cặp cuộn dây còn lại của động cơ
- PUL+: Tín hiệu cấp xung điều khiển tốc độ (+5V) từ BOB cho M6600 - PUL-: Tín hiệu cấp xung điều khiển tốc độ (-) từ BOB cho M6600
36
- DIR+: Tín hiệu cấp xung đảo chiều (+5V) từ BOB cho M6600 - DIR-: Tín hiệu cấp xung đảo chiều (-) từ BOB cho M6600
- ENA+ và ENA -: khi cấp tín hiệu cho cặp này động cơ sẽ không có lực momen giữ và quay nữa
- Có thể đấu tín hiệu dương (+) chung hoặc tín hiệu âm (-) chung
Hình 3.16: Sơ đồ kết nối TB6600 3.2.2.5 Khối nguồn
Khối nguồn cung cấp dòng điện và điện áp cho các khối khác hoạt động,dựa vào ngõ vào điện áp,dòng điện cấp vào của các thiết bị để chọn lựa nguồn cho thích hợp.
Dòng điện và điện áp hoạt động của Jetson Nano là 4A và 5 VDC,của Arduino Uno R3 là 30mA và 5VDC.Lựa chọn nguồn cung cấp cho Jetson Nano và Arduino hoạt động cần chú ý đến điện áp và dòng điện.Đặc biệt là dòng điện.
Công suất tải trong mạch: - Jetson Nano: 5 x 4 = 20 (W)
37
- Động cơ DC: 2 x 35 W= 70 (W) - Step motor: 12 x 3 = 36 (W) - Tổng công suất P = 126.15 (W)
Lựa chọn bình ắc quy cung cấp nguồn cho sự hoạt động của xe là điều vô cùng quan trọng.Thời gian sử dụng ắc quy được tính như sau:
t = 𝐴 × 𝑉 ×𝑛
𝑃 = 90 ×12 ×0.7
126.15 =6 (h)
Với:A là dung lượng của ắc quy; V là điện áp ngõ ra của ắc quy; n là hệ số sử dụng của ắc quy ( thông thường là 0.7); P là công suất tải (tổng công suất trên mạch).
Hình 3.17: Bình ắc quy Đồng Nai
Thông số kỹ thuật của bình ắc quy Đồng Nai: - Dung lượng: 12V – 90Ah
38 3.2.3 Sơ đồ nguyên lý toàn mạch
Cuối cùng tiến hành vẽ mạch nguyên lý toàn mạch kết nối các khối đã thiết kế lại như sau:
39 3.3 CHUẨN BỊ LINH KIỆN – MÔ ĐUN
Dựa vào các cơ sở lý thuyết, sơ đồ khối, sự hoạt động của từng khối, sơ đồ mạch nguyên lý đã thiết kế ở phần trước để chuẩn bị linh kiện – mô đun cho phần thi công mô hình.
Bảng 3.1: Các linh kiện, mô đun sử dụng
STT Tên linh kiện/Mô đun Số lượng
1 Jetson Nano 1 2 Camera Logitech C270 2 3 Arduino Uno R3 1 4 Động cơ DC RS550 2 5 Module BTS7960 2 6 Step Motor 1 7 Driver BT6600 1 8 Servo 2 9 Acquy Đồng Nai 1 10 LCD TFT 1
11 Mô hình xe điện mini 1
3.4 MÔ HÌNH XE TỰ HÀNH
Để mô phỏng hình dáng chiếc xe so với thực tế nhóm em sử dụng phần mềm Inventor.Autodesk Inventor là phần mềm xây dựng mô hình 3D, thiết kế, hình mẫu và kiểm tra sản phẩm.Các công cụ mô phỏng, phân tích được tích hợp trong Inventor cho phép người dùng thiết kế từ cơ bản đến nâng cao như thiết kế chi tiết máy, trực quan hóa sản phẩm.Inventor còn được tích hợp CAD và các công cụ giao tiếp thiết kế nhằm nâng cao năng suất làm việc của CAD và giảm thiểu phát sinh lỗi,tiết kiệm thời gian.Inventor cũng cung cấp một môi trường thiết kế và phím tắt tương tự với AutoCAD,cho phép người dùng chuyển từ môi trường vẽ 2D hiện hành sang xây dựng mô hình 3D.
40
Mô hình xe tự hành sau khi vẽ bằng Inventor:
Hình 3.19: Mô phỏng xe tự hành
41 3.5 LẬP TRÌNH HỆ THỐNG
3.5.1 Cài đặt hệ điều hành cho jetson nano
Việc cài đặt hệ điều hành cho jetson nano có thể cài đặt trên cả ba hệ điều hành thông dụng là windows, linux, mac os. Với mỗi hệ điều hành sẽ có một chút khác biệt nhỏ dựa trên đặt điểm của hệ điều hành, cơ bản sẽ bao gồm các bước như sau (đối với Windows):
- Bước 1: Tiến hành format thẻ nhớ bằng phần mềm chuyên dụng, ví dụ như SD Memory Card Formatter ( đối với windows). Nên sử dụng phần mềm chuyên dụng thay vì format mặc định của windows không thể format thẻ nhớ đã được cài đặt hệ điều hành jetson nano (linux không cần phần mềm chuyên dụng).
42
- Bước 2: Tải phiên bản hệ điều hành của jetson nano tại trang chủ (https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write) và Etcher để tiến hành ghi đè hệ điều hành lên thẻ nhớ. Với phần select image tiến hành chọn phiên bản của hệ điều hành ( chúng em sử dụng jetpack 4.3), select drive để chọn ổ đĩa ghi đè (thẻ nhớ). Và ta tiến hành cài đặt hệ điều hành, quá trình này tốn khoảng 30 phút.