Tổng quan mạch Raspberry

Một phần của tài liệu Hệ thống hỗ trợ giám sát an toàn trên ô tô (Trang 47)

- Đây là sản phẩm mới nhất trong gia đình Raspberry Pi, nổi bật với chip 4 nhân 64-bit có tốc độ 1.4GHz – nhanh nhất từ trước đến nay. Phiên bản mới còn hỗ trợ Wifi Dual-band 2.4GHz và 5GHz, Bluetooth 4.2/Bluetooth Low Energy, cổng Ethernet tốc độ cao (300Mbps) và Power over Ethernet (PoE) thông qua PoE HAT. - Ngồi những thay đổi đó, kích thước bề ngồi cũng như phần mềm của Raspberry Pi 3 Model B+ khơng thay đổi. Nghĩa là bạn hồn tồn có thể sử dụng các phụ kiện cũ như vỏ, thẻ nhớ, adapter (nguồn điện) hoặc các phần mềm đang chạy trên Raspbian/Ubuntu hiện tại. Tuy nhiên, về hệ điều hành thì các bạn cần tải bản mới nhất để có thể hỗ trợ được bo mạch mới nhất này.

- Có 2 phụ kiện bắt buộc phải có để có thể chạy Raspberry là: nguồn cung cấp và thẻ nhớ để cài hệ điều hành.

- Ngoài ra, để sử dụng tốt hơn những ứng dụng của Raspberry các bạn có thể lựa chọn thêm những sản phẩm hỗ trợ cho Raspberry. Như dây HDMI để kết nối với màn hình máy tính, cáp nối mạng hay camera.

 Chức năng của Raspberry Pi 3:

- Hiện nay, có thể thấy người ta dùng Raspberry Pi làm các thứ như:  Đầu coi phim HD giống như Android Box, hỗ trợ KODI đầy đủ.

 Máy chơi game cầm tay, console, game thùng. Chơi như máy điện tử băng ngày xưa, giả lập được nhiều hệ máy.

35  Cắm máy tải Torrent 24/24.

 Dùng làm VPN cá nhân.

 Biến ổ cứng bình thường thành ổ cứng mạng (NAS).  Làm camera an ninh, quan sát từ xa.

 Hiển thị thời tiết, hiển thị thông tin mạng nội bộ...  Máy nghe nhạc, máy đọc sách.

 Làm thành một cái máy Terminal di động có màn hình, bàn phím, pin dự phịng để sử dụng mọi lúc mọi nơi, dò pass Wi-Fi...

 Làm thiết bị điều khiển Smart Home, điều khiển mọi thiết bị điện tử trong nhà.  Điều khiển robot, máy in không dây từ xa, Airplay...

 Thông số kỹ thuật:

- Vi xử lý: Broadcom BCM2837B0, quad-core A53 (ARMv8) 64-bit SoC @1.4GHz.

- RAM: 1GB LPDDR2 SDRAM.

- Kết nối: 2.4GHz and 5GHz IEEE 802.11 b/g/n/ac wireless LAN, Bluetooth 4.2, BLE, Gigabit Ethernet over USB 2.0 (Tối đa 300Mbps).

- Cổng USB: 4 x 2.0. - Mở rộng: 40-pin GPIO.

- Video và âm thanh: 1 cổng full-sized HDMI, Cổng MIPI DSI Display, cổng MIPI CSI Camera, cổng stereo output và composite video 4 chân.

- Multimedia: H.264, MPEG-4 decode (1080p30), H.264 encode (1080p30), OpenGL ES 1.1, 2.0 graphics.

- Lưu trữ: MicroSD.

- Nguồn điện sử dụng: 5V/2.5A DC cổng microUSB, 5V DC trên chân GPIO, Power over Ethernet (PoE) (yêu cầu thêm PoE HAT).

36

4.2.2 Arduino Uno

 Giới thiệu:

- Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các dự án điện tử. Arduino bao gồm cả bảng mạch lập trình (thường được gọi là vi điều khiển) và một phần mềm hoặc IDE (Mơi trường phát triển tích hợp) chạy trên máy tính, được sử dụng để viết và tải mã máy tính lên bo mạch.

- Nền tảng Arduino giờ đã khá phổ biến với những người mới bắt đầu với thiết bị điện tử. Không giống như hầu hết các bo mạch lập trình trước đây, Arduino khơng cần phần cứng riêng để tải mã mới lên bo mạch - ta có thể chỉ cần sử dụng cáp USB. Ngoài ra, Arduino IDE sử dụng phiên bản đơn giản của C++, giúp việc học lập trình dễ dàng hơn. Arduino cung cấp một mẫu chuẩn giúp dễ tiếp cận các chức năng của bộ vi điều khiển hơn.

 Cấu tạo:

- Có nhiều loại bo mạch Arduino sử dụng cho các mục đích khác nhau, nhưng hầu hết Arduino có các thành phần như dưới đây:

37 - Gồm:

1. Nguồn (USB / BARREL JACK).

2. Các Chân (5V, 3.3V, GND, Digital, Analog, PWM, ISF).

3. Nút Reset (Reset Button).

4. Đèn Led báo nguồn (Power Led Indicator).

5. Led TX và RX (TX RX LEDs).

6. Ic chủ (Main IC).

7. Bộ điều chỉnh điện áp (Voltage Regulator).

 Thông số kỹ thuật:

Vi điều khiển Atmega328P

Điện áp hoạt động 5V

Điện áp cấp (hoạt động tốt) 7 – 12 V

Điện áp cấp (giới hạn) 6 – 12 V

Chân I/O digital 14 ( có 6 chân xuất xung PWM)

Chân Input analog 6 (A0 – A5)

Dòng điện mỗi chân I/O 20 mA

Dòng điện chân 3.3V 50 mA

Bộ nhớ Flash 32 kB (Atmega328P) – trong đó 0.5 kB

dùng cho bootloader. SRAM 2 kB (Atmega328P) EEPROM 1 kB (Atmega328P) Tốc độ xung nhịp 16 MHz Kích thước 68.6 x 53.4 mm Trọng lượng 25 g

38

 Ứng dụng của Arduino:

- Phần cứng và phần mềm Arduino được thiết kế cho các nghệ sĩ, nhà thiết kế, hacker và bất kỳ ai quan tâm đến việc tạo ra các đối tượng hoặc môi trường tương tác. Arduino có thể tương tác với các nút, đèn LED, động cơ, loa, đơn vị GPS, máy ảnh, internet và thậm chí cả điện thoại thơng minh hoặc TV. Sự linh hoạt này cộng với với phần mềm Arduino là miễn phí, các bo mạch phần cứng khá rẻ và cả phần mềm, phần cứng đều dễ học, nên nó có một cộng đồng người dùng lớn đã đóng góp mã và hướng dẫn cho một lượng lớn project dựa trên Arduino.

- Đối với tất cả mọi thứ từ robot và miếng sưởi ấm tay đến các máy dự đốn tương lai, Arduino có thể được sử dụng như bộ não đằng sau hầu hết các dự án điện tử.

4.2.3 Camera Raspberry Pi V2

 Giới thiệu:

- Tháng 4/2016, Raspberry Pi Foundation ra mắt thế hệ thứ 2 của sản phẩm Camera Module với nâng cấp đáng kể nhất là sử dụng sensor Sony IMX219 8 Megapixel.

Hình 4.3: Camera Raspberry Pi

- Raspberry Pi Camera Module V2 có một cảm biến 8-megapixel (MP) của Sony IMX219 (so với cảm biến 5-megapixel (MP) OmniVision OV5647 trên Camera Module phiên bản cũ).

39

- Camera Module có thể được sử dụng để quay video độ nét cao, cũng như chụp hình ảnh tĩnh. Nó khá dễ dàng để sử dụng cho người mới bắt đầu, nhưng cũng có rất nhiều giải pháp mở rộng để cung cấp cho người dùng yêu cầu cao. Có rất nhiều demo của người dùng về công dụng của Camera Module như chụp Time- Lapse, Slow-Motion và rất nhiều ứng dụng khác. Bạn có thể tham khảo thêm hướng dẫn sử dụng để tạo các hiệu ứng với chiếc camera này.

- Raspberry Pi Camera Module V2 là một bước nhảy vọt về chất lượng hình ảnh, màu sắc trung thực và hiệu suất ánh sáng thấp. Đặc biệt nó hỗ trợ video lên tới 1080P30, 720P60 và video mode VGA90, cũng như chế độ chụp hình. Dĩ nhiên, nó vẫn sử dụng đoạn cáp 15cm qua cổng CSI trên Raspberry Pi.

- Chiếc camera này tương thích với tất cả các phiên bản của Raspberry Pi.

 Thông số kỹ thuật:

- Ống kính tiêu cự cố định.

- Cảm biến độ phân giải 8 MP cho khả năng chụp ảnh kích thước 3280 x 2464. - Hỗ trợ video 1080p30, 720p60 và 640x480p90.

- Kích thước 25mm x 23mm x 9mm. - Trọng lượng chỉ hơn 3g.

- Kết nối với Raspberry Pi thông qua cáp ribbon đi kèm dài 15 cm.

4.2.4 Loa Buzzer

 Giới thiệu:

- Loa Buzzer 5V (Cịi chíp, cịi bíp) là sản phẩm còi báo thường được sử dụng trong các mạch điện tử, được thiết kế nhỏ gọn, chân cắm thích hợp sử dụng báo động, báo hiệu âm thanh cho tín hiệu.

40  Thông số kỹ thuật:

- Nguồn : 3.5V – 5.5V.

- Dòng điện tiêu thụ: <25mA.

- Tần số cộng hưởng: 2300Hz ± 500Hz. - Biên độ âm thanh: >80 dB.

- Nhiệt độ hoạt động:-20 °C đến +70 °C. - Kích thước : Đường kính 12mm, cao 9,7mm.

Hình 4.5: Sơ đồ nối mạch 4.2.5 Mạch động cơ L298N

 Giới thiệu:

- Mạch động cơ L298N là một module thông dụng với chức năng thông dụng và giá thành cực kỳ rẻ là lựa chọn của các bạn học sinh, sinh viên.

41

Hình 4.6: Mạch động cơ L298N và chú thích chi tiết

 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 mỗi cầu H là: 2A (=>2A cho mỗi motor). - Điện áp của tín hiệu điều khiển: +5 V ~ +7 V.

- Dịng của tín hiệu điều khiển: 0 ~ 36mA.

- Cơng suất hao phí: 20W (khi nhiệt độ T = 75 ℃). - Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃.

 L298 gồm các chân:

 12V power, 5V power. Đây là 2 chân cấp nguồn trực tiếp đến động cơ.

+ Ta có thể cấp nguồn 9-12V ở 12V. + Bên cạnh đó có jumper 5V.

 Power GND chân này là GND của nguồn cấp cho Động cơ.  2 Jump A enable và B enable.

42

 Gồm có 4 chân Input. IN1, IN2, IN3, IN4. Output A: nối với động cơ A.

4.3 Phần mềm

 Thiết lập hệ điều hành Raspberry Pi

- Cài đặt hệ điều hành NOOBS RASPBIAN vào thẻ microSD cắm vào mạch Raspberry. Sau khi cài đặt và khởi động lại, ta sẽ thấy xuất hiện một màn hình GUI đầy đủ như bên dưới, màn hình này tương tự với màn hình giao diện của Windows.

Hình 4.7: Giao diện hệ điều hành Raspberry Pi

- Trong quá trình cài đặt, Pi sẽ yêu cầu thay đổi mật khẩu cho người dùng mặc định. - Sau khi thiết lập xong các cài đặt ban đầu, ta sẽ nâng cấp lên phần mềm mới nhất.

 Thiết lập quyền truy cập từ xa

- Thiết lập truy cập từ xa cho phép máy tính Pi chạy khơng cần kết nối thiết bị ngoại vi (màn hình, chuột, bàn phím) với nó mọi lúc.

- Kết nối với Pi Car qua VNC từ Laptop.

- Cài đặt phần mềm Cascade-Trainer GUI để dạy xe ghi nhớ và so sánh hình ảnh.

4.4 Các tính năng trên xe mơ hình

 Hệ thống giữ làn đường tự động:

- Hệ thống giữ làn đường có hai thành phần: nhận biết (phát hiện làn đường) và lập kế hoạch đường đi (đánh lái). Cơng việc của tính năng phát hiện làn đường là quay video về con đường thành tọa độ của các vạch làn đường được phát hiện. Nhưng trước khi phát hiện được làn đường trong video ta cần phải phát hiện được làn đường trong 1 hình ảnh. Khi đó, việc phát hiện làn đường trong video chỉ đơn giản là việc lặp đi lặp lại các bước tương tự cho từng khung hình trong video.

43

- Xác định màu của làn đường: nhóm sử dụng băng keo màu trắng để tạo thành 1 làn đường với nét liền đậm màu trắng.

Hình 4.8: Mơ hình đường đi

- Trên đây là khung video được quay từ camera V2.1 gắn trên xe. Đầu tiên cần làm là cô lập các vùng màu trắng trên ảnh. Để thực hiện việc này, trước tiên ta cần chuyển không gian màu được sử dụng bởi hình ảnh là RGB (red, green, blue) thành khơng gian màu HSV (Hue, Saturation, Value). Mục đích chính cho việc thực hiện chuyển đổi này là trong hình ảnh RGB các phần khác nhau của màu lane đường (băng keo màu trắng) có thể được chiếu sáng bằng các màu sáng khác nhau dẫn đến xuất hiện dưới dạng màu trắng đậm hơn hay màu trắng nhạt hơn. Do đó, trong không gian màu HSV, thành phần Hue sẽ hiển thị toàn bộ băng màu trắng thành 1 màu bất kể độ bóng của màu đó.

Hình 4.9: Hình ảnh trong khơng gian màu HSV

- Do OpenCV đọc hình ảnh vào khơng gian màu BGR (Xanh lam, xanh lá cây, đỏ) theo mặc định thay vì khơng gian màu RGB (đỏ, xanh lá cây, xanh lam) được sử dụng phổ biến hơn. Về cơ bản, chúng là không gian màu tương đương, chỉ là thứ tự của các màu được hoán đổi.

44

- Sau khi hình ảnh ở trong HSV, chúng ta có thể lọc tất cả các màu trắng khỏi hình ảnh. Điều này là bằng cách chỉ định một dải màu trắng.

Hình 4.10: Xác định đường Lane Phát hiện các đường viền của làn đường: Phát hiện các đường viền của làn đường:

- Tiếp theo, chúng ta cần phát hiện các cạnh trong khối dải màu trắng để chúng ta có thể có một vài đường phân biệt đại diện cho các đường làn đường màu trắng. - Thực hiện lệnh Canny, đây là 1 lệnh chính xác để phát hiện các cạnh trong một hình ảnh.

Hình 4.11: Xác định đường viền ngồi của Lane Cơ lập khu vực quan tâm:

- Từ hình ảnh trên, chúng ta thấy rằng chúng ta đã phát hiện ra khá nhiều khu vực màu trắng KHÔNG phải là vạch phân làn đường của chúng ta. Quan sát kỹ hơn sẽ thấy rằng tất cả chúng đều nằm ở nửa trên của màn hình. Khi thực hiện điều hướng làn đường, ta chỉ quan tâm đến việc phát hiện các vạch kẻ làn đường gần xe hơn,

45

nơi cuối màn hình. Vì vậy, chúng ta sẽ đơn giản là cắt bỏ nửa trên. Hai vạch phân làn được đánh dấu rõ ràng như được thấy trên hình ảnh bên phải.

Hình 4.12: Vạch phân làn đường Phát hiện phân đoạn dòng: Phát hiện phân đoạn dòng:

- Trong hình ảnh các cạnh được cắt ở trên, đối với con người chúng ta, rõ ràng là chúng ta đã tìm thấy bốn đường biểu thị hai đường làn đường. Tuy nhiên, đối với máy tính, chúng chỉ là một loạt các pixel màu trắng trên nền đen. Chúng ta cần trích xuất tọa độ của các đường làn này từ các pixel màu trắng này. OpenCV có chứa một chức năng được gọi là Hough Transform, thực hiện chính xác điều này. Hough Transform là một kỹ thuật được sử dụng trong xử lý hình ảnh để trích xuất các đối tượng địa lý như đường thẳng, hình trịn và hình elip. Chúng ta sẽ sử dụng nó để tìm các đường thẳng từ một loạt các pixel dường như tạo thành một đường thẳng. Về cơ bản, hàm HoughLinesP khớp nhiều dòng qua tất cả các pixel màu trắng và trả về tập hợp các dịng có khả năng xảy ra cao nhất, tn theo các giới hạn ngưỡng tối thiểu nhất định.

46

- Nếu chúng ta in ra đoạn thẳng được phát hiện, nó sẽ hiển thị các điểm cuối (x1, y1) theo sau là (x2, y2) và độ dài của mỗi đoạn thẳng.

Kết hợp các đoạn đường thành hai làn đường:

- Bây giờ chúng ta có nhiều đoạn thẳng nhỏ với tọa độ điểm cuối của chúng (x1, y1) và (x2, y2), làm thế nào để chúng ta kết hợp chúng thành hai đường mà chúng ta thực sự quan tâm, đó là đường làn trái và phải. Một cách là phân loại các đoạn thẳng này theo độ dốc của chúng. Từ hình trên, chúng ta có thể thấy rằng tất cả các đoạn thẳng thuộc làn đường bên trái phải dốc lên và ở bên trái màn hình, trong khi tất cả các đoạn thẳng thuộc làn đường bên phải dốc xuống và ở bên phải của màn hình. Khi các đoạn đường được phân loại thành hai nhóm, chúng ta chỉ cần lấy trung bình cộng của độ dốc và điểm giao nhau của đoạn thẳng để có được độ dốc và điểm giao nhau của các đường làn bên trái và bên phải.

- Đây là hình ảnh cuối cùng với các đường làn được phát hiện được vẽ bằng màu xanh lá cây.

Hình 4.14: Đường phân làn được phát hiện Lập kế hoạch chuyển động: Lập kế hoạch chuyển động:

- Bây giờ chúng ta đã có tọa độ của các vạch làn đường, chúng ta cần điều khiển xe sao cho nó nằm trong vạch kẻ làn đường, tốt hơn nữa là chúng ta nên cố gắng giữ nó ở giữa làn đường. Về cơ bản, chúng ta cần tính tốn góc lái của ơ tơ, dựa trên các vạch làn được phát hiện.

47

Hai đường làn được phát hiện:

- Chúng ta có thể tính tốn hướng đi bằng cách lấy trung bình các điểm cuối xa của

cả hai đường làn. Dòng màu xanh hiển thị bên dưới là đường căn chỉnh. Lưu ý rằng, điểm dưới của đường căn chỉnh màu xanh luôn nằm ở giữa cuối màn hình, đó là bởi vì chúng ta đặt camera hành trình được lắp ở giữa xe và hướng thẳng về phía trước.

Hình 4.15: Đường căn chỉnh màu xanh ở giữa Góc lái: Góc lái:

- Để xe có thể rẽ hướng ta cần tính tốn được góc lái cho xe. Ta đặt góc lái cho xe

là 900 là hướng thẳng, 450–890 là rẽ trái và 910–1350 là rẽ phải.

Một phần của tài liệu Hệ thống hỗ trợ giám sát an toàn trên ô tô (Trang 47)