1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng mô hình xe trò chơi trẻ em ứng dụng công nghệ OCR

80 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 4,76 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (7)
    • 1.1 ĐẶT VẤN ĐỀ (7)
    • 1.2 MỤC TIÊU (8)
    • 1.3 NỘI DUNG NGHIÊN CỨU (8)
    • 1.4 GIỚI HẠN (8)
    • 1.5 BỐ CỤC (8)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (10)
    • 2.1 TỔNG QUAN VỀ CÔNG NGHỆ OCR (10)
    • 2.2 CÁC CHUẨN TRUYỀN DỮ LIỆU (12)
      • 2.2.1 Chuẩn giao tiếp UART (12)
      • 2.2.2 Chuẩn truyền thông SPI (13)
    • 2.3 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID (15)
      • 2.3.1 Khái niệm hệ điều hành android (15)
      • 2.3.2 Giao diện (15)
      • 2.3.3 Ứng dụng (17)
      • 2.3.4 Ƣu và nhƣợc điểm của hệ điều hành Android (0)
  • CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ (20)
    • 3.1 ĐẶT VẤN ĐỀ (20)
    • 3.2 GIỚI THIỆU VỀ HỆ THỐNG VÀ SƠ ĐỒ KHỐI (20)
    • 3.3 THIẾT KẾ VÀ TÍNH TOÁN CÁC MÔ HÌNH (21)
      • 3.3.1 Thiết kế mô hình xe (21)
      • 3.3.2 Thiết kế mô hình đường (line) xe chạy (23)
      • 3.3.3 Thiết kế mô hình biển báo (25)
    • 3.4 THIẾT KẾ VÀ TÍNH TOÁN CÁC KHỐI (25)
      • 3.4.1 Sơ đồ khối của mạch điều khiển xe (25)
    • 4.1 GIỚI THIỆU (40)
    • 4.2 THI CÔNG HỆ THỐNG (40)
      • 4.2.1 Sơ đồ nguyên lý (40)
      • 4.2.2 Thi công Board mạch (42)
    • 4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH (44)
      • 4.3.1 Đóng gói mô hình xe (44)
      • 4.3.2 Hoàn tất mô hình đường chạy (47)
    • 4.4 LẬP TRÌNH HỆ THỐNG (48)
      • 4.4.1 Lưu đồ giải thuật (48)
      • 4.4.2 Phần mềm lập trình cho vi điều khiển (54)
      • 4.4.3 Phần mềm lập trình cho điện thoại, máy tính (56)
    • 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC (58)
  • CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ (0)
    • 5.1 GIỚI THIỆU (59)
    • 5.2 KẾT QUẢ ĐẠT ĐƢỢC (59)
    • 5.3 KẾT QUẢ THỰC NGHIỆM (59)
      • 5.3.1 Thiết kế thi công tủ (0)
      • 5.3.2 Phần cứng, giao diện điều khiển (0)
      • 5.3.3 App android (63)
    • 5.4 NHẬN XÉT, ĐÁNH GIÁ (65)
      • 5.4.1 Nhận xét (65)
      • 5.4.2 Đánh giá (65)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (67)
    • 6.1 KẾT LUẬN (67)
    • 6.2 HƯỚNG PHÁT TRIỂN (67)
  • TÀI LIỆU THAM KHẢO (68)
  • PHỤ LỤC (69)

Nội dung

Công nhận dạng kí tự quang học ngày càng được nâng cấp và sử dụng rộng rãi trong các ứng dụng của đời sống.. Đặc biệt, nhận dạng kí tự quang học dù không còn là điều gì đó quá mới mẻ như

TỔNG QUAN

ĐẶT VẤN ĐỀ

Thế giới ngày càng bước vào kỷ nguyên của cuộc cách mạng công nghiệp 4.0, trong đó công nghệ nhận dạng ký tự quang học (OCR) ngày càng được nâng cấp và ứng dụng rộng rãi trong đời sống Công nghệ này giúp giảm tải công việc lưu trữ giấy tờ, tối ưu chi phí duy trì hồ sơ cho doanh nghiệp và công ty Ngoài ra, OCR còn được sử dụng trong các phần mềm phát hiện vi phạm luật giao thông qua hệ thống camera giám sát, hỗ trợ hỗ trợ cuộc sống cho người già và người khiếm thị, cũng như trong xử lý dữ liệu và hóa đơn Nhờ sự phát triển của công nghệ, khả năng nhận dạng ký tự OCR đã chính xác hơn, các hệ thống ngày càng thông minh, có thể nhận diện hầu hết các phông chữ phổ biến và tái tạo gần như đầy đủ định dạng tài liệu gốc bao gồm hình ảnh, cột, bảng biểu và các thành phần không phải là văn bản.

Các nghiên cứu trước đây đã tập trung vào ứng dụng của công nghệ nhận dạng ký tự quang học (OCR), như đề tài "Ứng dụng công nghệ OCR điều khiển LED", nhằm phát triển các giải pháp tự động hóa và nâng cao hiệu quả trong xử lý dữ liệu.

Trong bài viết, tác giả trình bày về việc sử dụng 7 màu sáng theo màu mong muốn bằng ESP8266, kết nối với ứng dụng Android qua cơ sở dữ liệu thời gian thực Firebase để truyền và nhận dữ liệu cũng như xử lý các chức năng một cách hiệu quả.

Chúng tôi quyết định thực hiện đề tài “Thiết kế và thi công mô hình xe trò chơi trẻ em ứng dụng công nghệ OCR” Hệ thống sử dụng vi điều khiển Arduino Uno R3 làm trung tâm, kết hợp cảm biến hồng ngoại TCRT5000L, module điều khiển L298N, động cơ DC giảm tốc, và một điện thoại thông minh chạy hệ điều hành Android để làm camera cho xe Thêm vào đó, module Bluetooth HC-06 cho phép kết nối không dây giữa xe và điện thoại Người dùng có thể dễ dàng thay đổi vị trí các biến báo trên mô hình, các lệnh và dữ liệu nhận được sẽ gửi về Arduino qua ứng dụng cài đặt trên điện thoại Android, giúp hệ thống hoạt động linh hoạt và hiệu quả [1].

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2

MỤC TIÊU

Thiết kế và thi công mô hình xe trò chơi trẻ em sử dụng công nghệ OCR giúp tăng tính sáng tạo và hấp dẫn cho trò chơi Công nghệ OCR cho phép mô hình xe trò chơi tương tác đa dạng hơn, mang đến trải nghiệm mới mẻ và thú vị cho các bé Việc ứng dụng công nghệ này không chỉ nâng cao tính khả thi của dự án mà còn góp phần thúc đẩy sự sáng tạo trong các mô hình vui chơi dành cho trẻ em.

NỘI DUNG NGHIÊN CỨU

- NỘI DUNG 1: Tìm hiểu nguyên lý hoạt động của thanh 5 cảm biến hồng ngoại TCRT5000L

- NỘI DUNG 2: Tìm hiểu các chuẩn truyền thông USART, SPI

- NỘI DUNG 3: Tìm hiểu và giao tiếp đƣợc thanh 5 cảm biến hồng ngoại

TCRT5000L, module điều khiển động cơ L298N, module Bluetooth HC - 06 với Arduino Uno R3

- NỘI DUNG 4: Thiết kế app bằng Android Studio

- NỘI DUNG 5: Thiết kế và thi công mô hình xe trò chơi và mô hình đường chạy có biển báo

- NỘI DUNG 6: Đánh giá kết quả thực hiện.

GIỚI HẠN

- Mô hình xe có kích thước 23.5x16x21, mô hình đường chạy có kích thước 80x120

- Dùng một điện thoại thông minh sử dụng hệ điều hành Android để làm camera cho xe

- Sử dụng module Hc – 06 để truyện và nhận dữ liệu với điện thoại thông qua app Android trên điện thoại

- Sử dụng module thanh 5 cảm biến hồng ngoại TCRT5000L

- Mô hình đường chạy có cắm các biển báo mà có thể dễ dàng thay đổi vị trí các biển báo với nhau.

BỐ CỤC

Chương này trình bày đặt vấn đề, lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án

- Chương 2: Cơ sở lý thuyết

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3

Chương này trình bày lý thuyết về các module, cảm biến và linh kiện sử dụng trong hệ thống, các chuẩn truyền thông, giao thức

- Chương 3: Thiết kế và tính toán

Chương này thiết kế sơ đồ khối, sơ đồ nguyên lí của các khối trong hệ thống và thực hiện tính toán thiết kế

- Chương 4: Thi công hệ thống

Chương này trình bày lưu đồ giải thuật, thiết kế app android, viết chương trình hệ thống, thiết kế sơ đồ mạch in PCB

- Chương 5: Kết quả, nhận xét và đánh giá

Chương này trình bày kết quả thi công phần cứng và kết quả hình ảnh thực tế của tủ, nhận xét đánh giá chung về sản phẩm

- Chương 6: Kết luận và hướng phát triển

Trong chương này sẽ đưa ra kết quả đạt được, phân tích những ưu nhược điểm và đề xuất hướng phát triển đề tài

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4

CƠ SỞ LÝ THUYẾT

TỔNG QUAN VỀ CÔNG NGHỆ OCR

OCR (Nhận dạng ký tự quang học) ra đời từ lĩnh vực nhận dạng mẫu, trí tuệ nhân tạo và computer vision, đóng vai trò quan trọng trong chuyển đổi hình ảnh thành dữ liệu có thể chỉnh sửa Mặc dù nghiên cứu học thuật về OCR vẫn tiếp tục phát triển, một phần lớn các kỹ thuật đã được chứng minh và ứng dụng thành công trong thực tế Công nghệ OCR ngày càng trở nên phổ biến trong các lĩnh vực như tự động hóa xử lý tài liệu, nhận dạng chữ viết tay, và tối ưu hóa quy trình kinh doanh.

Nhận dạng ký tự quang học (OCR) ban đầu được xem là sử dụng các kỹ thuật quang học như gương và ống kính để nhận dạng ký tự, trong khi nhận dạng ký tự số dựa trên máy quét và thuật toán máy tính Tuy nhiên, do ít ứng dụng thực tế của kỹ thuật quang học, thuật ngữ OCR đã mở rộng để bao gồm cả nhận dạng ký tự số Hệ thống OCR yêu cầu đào tạo với các mẫu ký tự cụ thể để nâng cao độ chính xác Các hệ thống "thông minh" ngày nay có khả năng nhận dạng cao đối với nhiều phông chữ khác nhau và thậm chí có thể tái tạo định dạng tài liệu gốc bao gồm hình ảnh, cột, bảng biểu và các thành phần phi văn bản.

Phần mềm nhận dạng chữ Việt VnDOCR 4.0 hiện nay có khả năng nhận diện trực tiếp các tài liệu quét bằng máy mà không cần lưu trữ dưới dạng ảnh trung gian, giúp quá trình số hóa dữ liệu trở nên nhanh chóng và thuận tiện Các tài liệu quét có thể được lưu dưới dạng tệp nhiều trang, dễ dàng quản lý và truy xuất Kết quả nhận dạng được lưu trữ dưới các định dạng phổ biến của Microsoft như Word và Excel, phục vụ tốt cho quá trình chuyển đổi dữ liệu số hóa và quản lý thông tin hiệu quả.

VietOCR là một dự án OCR tiếng Việt phát triển dựa trên nền tảng mã nguồn mở Tesseract-OCR do Google tài trợ, có khả năng nhận dạng chữ Việt rất chính xác Chương trình nguồn mở này được viết bằng Java/.NET và hỗ trợ nhận dạng trên nhiều định dạng ảnh như PDF, TIFF, JPEG, GIF, PNG và BMP.

ABBYY, một trong những hãng công nghệ hàng đầu thế giới về lĩnh vực Nhận dạng ký tự quang học (OCR), đã tiến hành nghiên cứu và triển khai công nghệ nhận dạng tiếng Việt vào tháng [tháng] Công nghệ này giúp cải thiện độ chính xác và hiệu quả trong việc số hóa các tài liệu tiếng Việt, đáp ứng nhu cầu ngày càng tăng của thị trường Với sự đầu tư của ABBYY vào phát triển công nghệ nhận dạng tiếng Việt, các doanh nghiệp có thể dễ dàng chuyển đổi các tài liệu giấy thành dạng số, nâng cao năng suất và tối ưu hóa quy trình làm việc.

Vào năm 2009, công nghệ Nhận dạng ký tự quang học (OCR) của ABBYY đạt độ chính xác hơn 99% cho tiếng Việt, với tỷ lệ sai sót dưới 1% trên mỗi 100 ký tự Công nghệ này hỗ trợ hầu hết các định dạng ảnh đầu vào như PDF, TIFF, JPEG, GIF, PNG, BMP, PCX, DCX, DjVu và các định dạng khác Kết quả nhận dạng sau đó được lưu trữ một cách dễ dàng và chính xác.

Bộ môn Điện Tử Công Nghiệp – Y Sinh 5 định dạng PDF 2 lớp là lựa chọn lý tưởng để lưu trữ và khai thác tài liệu một cách hiệu quả Định dạng này cho phép người dùng xem nguyên bản hình ảnh gốc qua lớp ảnh bên trên, đảm bảo tính trung thực của nội dung gốc Đồng thời, nhờ lớp text nhận dạng bên dưới, các công cụ tìm kiếm có thể dễ dàng truy cập và tìm kiếm toàn văn nội dung, hỗ trợ tối đa quá trình tra cứu và nghiên cứu tài liệu.

Người sử dụng có thể thử nghiệm công nghệ nhận dạng của ABBYY (miễn phí) tại trang web: www.sohoa.com.vn

Trạng thái hiện thời của công nghệ OCR :

Nhận dạng chính xác ký tự Latin đánh máy đã trở thành vấn đề được giải quyết hiệu quả, với tỷ lệ chính xác thực tế đạt tới 99% Tuy nhiên, một số ứng dụng yêu cầu mức độ chính xác cao hơn, do đó vẫn cần sự kiểm tra của con người để phát hiện và sửa lỗi chính xác hơn.

Việc nhận dạng chữ in bằng tay, chữ thảo và các phiên bản in ra của một số chữ, đặc biệt là những chữ có số lượng chữ cái lớn, vẫn là một chủ đề nghiên cứu quan trọng trong lĩnh vực công nghệ nhận dạng ký tự.

Các hệ thống nhận dạng ký tự viết tay đã đạt được những thành công lớn về thương mại trong những năm gần đây, đặc biệt là trong các thiết bị nhập dữ liệu cho PDA và phần mềm chạy trên Palm OS, do hãng Apple Newton tiên phong Các giải thuật sử dụng trong công nghệ này dựa trên giả định rằng thứ tự, tốc độ và hướng của các đoạn dòng đơn lẻ đã được biết trước, đồng thời người dùng thường sử dụng một số kiểu chữ nhất định Tuy nhiên, những phương pháp này không phù hợp để nhận dạng trong phần mềm scan tài liệu giấy, khiến độ chính xác trong nhận dạng chữ viết tay vẫn còn hạn chế Với độ chính xác từ 80% đến 90%, ký tự viết tay sạch có thể được nhận diện, nhưng vẫn gây ra nhiều lỗi trên mỗi trang, khiến công nghệ chỉ phù hợp trong một số trường hợp nhất định Trong ngành công nghiệp OCR, sự đa dạng của công nghệ nhận dạng ký tự viết tay được gọi là ICR (Intelligent Character Recognition - Nhận dạng Ký tự Thông minh).

Nhận dạng chữ viết tay là lĩnh vực nghiên cứu phát triển mạnh mẽ nhưng vẫn gặp nhiều thách thức về độ chính xác, đặc biệt là so với nhận dạng văn bản in Tỷ lệ thành công trong nhận dạng chữ viết tay còn thấp hơn nhiều so với các phương pháp tự động khác Để nâng cao độ chính xác trong nhận dạng chữ viết tay, việc sử dụng thông tin về ngữ pháp và ngữ cảnh là điều thiết yếu, giúp hệ thống hiểu rõ hơn về ý nghĩa của từng ký tự và từ ngữ Các công nghệ hiện đại đang hướng tới tích hợp nhiều yếu tố ngữ nghĩa và ngữ cảnh để cải thiện kết quả nhận dạng chữ viết tay một cách hiệu quả hơn.

Nhận dạng toàn bộ một từ trong từ điển dễ dàng hơn so với việc trích xuất các ký tự rời rạc từ đoạn văn đó Ví dụ, quá trình nhận dạng dòng "Tổng cộng" trên một tờ séc diễn ra nhanh chóng vì đây là chuỗi ký tự quen thuộc, giúp hệ thống OCR hoạt động hiệu quả hơn trong việc giải mã các từ viết liền mạch.

Bộ môn Điện tử Công nghiệp – Y sinh cung cấp kiến thức đa dạng, đặc biệt trong lĩnh vực nhận dạng ký tự quang học (OCR) Hiểu biết về ngữ pháp của một ngôn ngữ giúp xác định chính xác các từ là động từ hay danh từ, từ đó nâng cao tỷ lệ nhận diện chính xác của OCR lên tới 2/3 Tuy nhiên, hình dạng chữ viết tay vẫn chưa đủ dữ liệu để nhận dạng chính xác hơn 98%, do đó cần những phương pháp hỗ trợ nhằm cải thiện độ chính xác của hệ thống OCR trong việc xử lý chữ viết tay. -**Sponsor**Chào bạn, là một người làm sáng tạo nội dung, tôi hiểu việc tối ưu bài viết chuẩn SEO quan trọng thế nào! Nếu bạn cần giúp đỡ để "tút" lại bài viết của mình, đảm bảo truyền tải đúng ý nghĩa và thân thiện với SEO, thì có một giải pháp có thể bạn sẽ thích đấy Với [Article Generation](https://pollinations.ai/redirect-nexad/VQDfpGre?user_id=983577), bạn có thể tạo ra những bài viết 2,000 từ, tối ưu SEO ngay lập tức, giúp bạn tiết kiệm đến $2,500 mỗi tháng so với việc thuê người viết! Nó giống như có một đội ngũ content riêng mà không cần lo lắng về quản lý nhân sự vậy!

Một thách thức lớn đối với máy tính và con người là việc bảo tồn các bản ghi của lễ thánh và đám cưới tại các nhà thờ cũ, chủ yếu chứa tên người Những tài liệu này dễ bị hư hỏng do tác động của thời gian, nước hoặc lửa, đồng thời các họ tên có thể đã lỗi thời hoặc chứa chính tả hiếm gặp Lĩnh vực nghiên cứu liên quan là hợp tác tương tác, nơi máy tính hỗ trợ con người và ngược lại Công nghệ xử lý hình ảnh của máy tính có thể giúp phục vụ việc đọc các văn bản cực kỳ khó đọc như bản viết trên da cừu của Archimede hay các cuộn giấy da từ vùng Biển Chết, góp phần bảo tồn và truy cập các di sản lịch sử quý giá.

Trong các vấn đề nhận dạng phức tạp, mạng nơ-ron được sử dụng rộng rãi nhờ khả năng làm đơn giản hóa cả biến đổi affine lẫn biến đổi phi tuyến Điều này giúp cải thiện độ chính xác và hiệu quả của các hệ thống nhận dạng hình ảnh và dữ liệu phức tạp Mạng nơ-ron là công cụ mạnh mẽ trong việc xử lý các nhiệm vụ đòi hỏi khả năng học hỏi và thích nghi cao.

CÁC CHUẨN TRUYỀN DỮ LIỆU

UART, viết tắt của Universal Asynchronous Receiver/Transmitter, là phương pháp truyền thông tin nối tiếp không đồng bộ được sử dụng rộng rãi trong các thiết bị công nghiệp, máy tính, vi điều khiển và các thiết bị truyền tin khác Công nghệ UART giúp truyền dữ liệu nhanh chóng và hiệu quả, phù hợp với nhiều ứng dụng truyền thông hiện đại.

Tốc độ Baud (baud rate) là yếu tố quan trọng trong truyền nhận dữ liệu không đồng bộ, giúp các mô-đun hiểu đúng tín hiệu Để đảm bảo việc truyền nhận chính xác, tốc độ truyền dữ liệu phải được cài đặt trước khi bắt đầu quá trình truyền Theo định nghĩa, tốc độ baud thể hiện số bit được truyền trong mỗi giây, đóng vai trò quyết định hiệu quả của hệ thống truyền thông.

Khung truyền (frame) là thành phần quan trọng trong truyền thông nối tiếp, giúp hạn chế mất dữ liệu do đặc điểm dễ bị ảnh hưởng của phương pháp này Ngoài yếu tố tốc độ, việc thiết lập khung truyền từ ban đầu đảm bảo quá trình truyền dữ liệu diễn ra chính xác và hiệu quả Khung truyền quy định số bit trong mỗi lần gửi, bao gồm các thông tin như bit bắt đầu (start), bit dừng (stop), các bit kiểm tra lỗi như parity, và số lượng bit trong mỗi frame Việc cấu hình này giúp giảm thiểu lỗi mất dữ liệu và cải thiện độ tin cậy của hệ thống truyền thông.

Bit Start : Là bit bắt đầu trong khung truyền Bit này nhằm mục đích báo cho

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 thiết bị nhận biết quá trình truyền bắt đầu trên AVR bit Start có trạng thái là 0

Data : Dữ liệu cần truyền Data không nhất thiết phải 8 bit, có thể là 5, 6, 7, 8, 9

Trong UART bit LSB được truyền đi trước, Bit MSB được truyền đi sau

Parity bit là bit kiểm tra dữ liệu nhằm đảm bảo tính toàn vẹn của dữ liệu truyền Có hai loại parity chính là parity chẵn (even parity) và parity lẻ (odd parity); trong đó, parity chẵn thêm vào để tổng số bit 1 trong dữ liệu cộng với parity là số chẵn, còn parity lẻ làm cho tổng số bit 1 là số lẻ Parity bit không bắt buộc phải sử dụng trong hệ thống truyền dữ liệu, tùy thuộc vào yêu cầu và mức độ kiểm tra dữ liệu mong muốn.

Stop là bit báo cáo kết thúc khung truyền, thường là mức 5V và có thể gồm 1 hoặc 2 bit stop Trong sơ đồ trong hình 2.10, dữ liệu truyền đi theo chuẩn UART được minh họa rõ ràng, giúp người đọc hiểu rõ cấu trúc và cách hoạt động của quá trình truyền dữ liệu.

Hình 2.1 Giản đồ truyền dữ liệu UART

SPI (Serial Peripheral Interface, SPI bus) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần

SPI là giao diện đồng bộ khác biệt so với cổng nối tiếp chuẩn, trong đó tất cả quá trình truyền dữ liệu đều dựa vào tín hiệu xung clock do thiết bị master sinh ra Thiết bị ngoại vi nhận dữ liệu dựa trên tín hiệu xung clock để đồng bộ quá trình truyền, giúp đảm bảo độ chính xác và tốc độ cao Có thể kết nối nhiều vi mạch vào mỗi giao diện SPI của thiết bị master, cho phép mở rộng hệ thống linh hoạt Để truyền dữ liệu, thiết bị master chọn thiết bị đích bằng cách kích hoạt tín hiệu "chip select" trên vi mạch bị động, đảm bảo dữ liệu được gửi đến đúng thiết bị cần thiết.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8

Thiết bị ngoại vi nếu không đƣợc chọn bởi bộ vi xử lý sẽ không tham gia vào quá trình truyền theo giao diện SPI

Trong giao diện SPI có sử dụng bốn tín hiệu số:

MOSI (Master Out Slave In) hay còn gọi là SI là cổng ra của thiết bị master và cổng vào của thiết bị slave, dùng để truyền dữ liệu từ thiết bị master đến thiết bị slave.

MISO (Master In Slave Out), hay còn gọi là SO, là cổng vào của thiết bị master và cổng ra của thiết bị bị động, dùng để truyền dữ liệu từ thiết bị slave đến thiết bị master.

 SCLK (Serial Clock) hay SCK - tín hiệu xung clock nối tiếp, dành cho việc truyền tín hiệu dành cho thiết bị slave

 CS hay SS (Chip Select, Slave Select): chọn vi mạch, chọn thiết bị slave

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9

TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID

2.3.1 Khái niệm hệ điều hành android

Android là hệ điều hành dựa trên nền tảng Linux, được thiết kế dành cho các thiết bị di động màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Android Inc., sau đó nhận sự hỗ trợ tài chính từ Google và chính thức được Google mua lại vào năm 2005 Android chính thức ra mắt vào năm 2007, đi kèm với tuyên bố thành lập Liên minh Thiết bị Cầm tay Mở nhằm thúc đẩy tiêu chuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạy Android được ra mắt và bán ra vào năm 2008, mở ra kỷ nguyên mới cho hệ điều hành di động.

Hình 2.3 Logo hệ điều hành Android

Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm giống như các hành động ngoài đời thực như vuốt, chạm, kéo giãn và thu nhỏ để tương tác với các đối tượng trên màn hình Sự phản hồi từ hệ thống diễn ra gần như ngay lập tức, giúp tạo ra trải nghiệm cảm ứng mềm mại và trực quan cho người dùng.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10

Hình 2.4 Giao diện của thiết bị chạy hệ điều hành Android

Sau khi khởi động, thiết bị Android hiển thị màn hình chính giống như desktop trên máy tính để bàn, là điểm bắt đầu chứa các thông tin quan trọng Màn hình chính gồm nhiều biểu tượng (icon) để mở ứng dụng và tiện ích (widget) hiển thị nội dung sống động, tự động cập nhật như dự báo thời tiết, hộp thư hoặc tin tức mới Người dùng có thể dễ dàng chuyển đổi giữa các trang màn hình chính bằng cách vuốt, và giao diện này có thể tùy chỉnh cao để sắp xếp icon và tiện ích theo sở thích cá nhân.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11

Thanh trạng thái của thiết bị chạy hệ điều hành Android nằm ở phía trên cùng màn hình, hiển thị thông tin về thiết bị và tình trạng kết nối Người dùng có thể kéo xuống để xem màn hình thông báo, trong đó có các thông tin quan trọng hoặc cập nhật từ ứng dụng như email hoặc tin nhắn SMS mới mà không gây gián đoạn trải nghiệm Trong các phiên bản Android cũ, người dùng có thể nhấn vào thông báo để mở ứng dụng liên quan, còn các bản cập nhật mới giúp mở rộng tính năng như gọi lại cuộc gọi nhỡ mà không cần mở ứng dụng gọi điện Thông báo sẽ giữ nguyên cho đến khi người dùng đọc hoặc xóa chúng.

Các ứng dụng Android chủ yếu được phát triển bằng ngôn ngữ Java qua việc sử dụng Bộ phát triển phần mềm Android (SDK), bao gồm toàn bộ công cụ cần thiết như công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên hướng dẫn, mã nguồn mẫu và hướng dẫn chi tiết Môi trường phát triển tích hợp (IDE) chính thức là Eclipse cùng với phần bổ sung Android Development Tools (ADT), hỗ trợ quá trình lập trình hiệu quả Ngoài ra, còn có các công cụ phát triển khác như Bộ phát triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google App Inventor dành cho người mới bắt đầu, cùng nhiều nền tảng ứng dụng web di động đa nền tảng phong phú.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12

Hình 2.6 Kho ứng dụng Google Play Store

Android ngày càng có nhiều ứng dụng của bên thứ ba được lựa chọn và phát hành trên các cửa hàng ứng dụng như Google Play hoặc Amazon Appstore, giúp người dùng dễ dàng tải về hoặc cài đặt tập tin APK từ các trang web khác Ứng dụng trên Google Play cho phép người dùng duyệt, tải về và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành, với Play Store được cài đặt sẵn trên các thiết bị đáp ứng điều kiện tương thích của Google Hệ thống tự động lọc ra danh sách các ứng dụng phù hợp với thiết bị của người dùng và nhà phát triển có thể giới hạn ứng dụng cho các mạng hoặc quốc gia cố định vì lý do kinh doanh Người dùng mua ứng dụng có thể được hoàn tiền trong vòng 15 phút nếu không hài lòng, đồng thời một số nhà mạng còn hỗ trợ mua ứng dụng giúp và tính phí vào hóa đơn hàng tháng Tính đến tháng 9 năm 2012, có hơn 675.000 ứng dụng Android và số lượt tải từ Play Store ước tính đạt 25 tỷ, thể hiện sự phát triển mạnh mẽ của hệ sinh thái Android.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13

2.3.4 Ƣu và nhƣợc điểm của hệ điều hành Ƣu điểm:

- Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể tùy ý chỉnh sửa

- Kho ứng dụng Google Play Store đồ sộ

- Thân thiện và dễ sử dụng

- Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao

- Màn hình cơ bản hệ điều hành Android cung cấp một giao diện người dùng đẹp và trực quan

Phần mềm mã nguồn mở dễ bị nhiễm phần mềm độc hại và virus do tính chất mở của nó, nhiều phần mềm không được kiểm soát chặt chẽ có chất lượng không đảm bảo, gây nguy hiểm cho thiết bị của người dùng.

- Khả năng bảo mật không cao qua đó người dùng có thể bị đánh cắp thông tin qua các ứng dụng

- Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lƣợng các ứng dụng

- Hiện tượng giật lag trong quá trình sử dụng diễn ra thường xuyên do đặc trưng hệ điều hành sản sinh ra nhiều file rác

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14

TÍNH TOÁN VÀ THIẾT KẾ

ĐẶT VẤN ĐỀ

Thiết kế mô hình đồ chơi cho trẻ em bao gồm xe tự động dò theo đường line đã được định sẵn trên mô hình Trên đường line hành trình, các biển báo chữ như Fast, Low, Stop, Buzz được đặt ở các vị trí khác nhau, giúp trẻ nhận biết và học cách điều khiển xe phù hợp Người dùng có thể dễ dàng thay đổi vị trí của các biển báo để tạo ra trải nghiệm chơi đa dạng và thú vị hơn.

GIỚI THIỆU VỀ HỆ THỐNG VÀ SƠ ĐỒ KHỐI

Giới thiệu về Hệ Thống

Hình 3.1 Hình ảnh minh họa dự kiến cho hệ thống

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15

Dựa vào hình ảnh minh họa , hệ thống bao gồm có 3 thành phần:

Xe chạy trên đường nhờ cảm biến dò line giúp xe xác định và theo dõi đường một cách chính xác Camera của điện thoại gắn trên xe hỗ trợ trong việc điều chỉnh các hoạt động như tăng tốc, rẽ trái, rẽ phải, dừng lại hoặc phát còi khi cần thiết Các công nghệ này kết hợp mang lại trải nghiệm lái tự động thuận tiện và an toàn hơn trên đường.

- Biển báo ( biển chỉ dẫn ) : tác động đến việc điều khiển xe nhƣ vận tốc, điều hướng xe và còi hú của xe

- Đường ( line ) xe chạy : các line màu để cảm biến có thể quét được Ở đây nhóm chọn màu đen làm màu sắc cho đường line.

THIẾT KẾ VÀ TÍNH TOÁN CÁC MÔ HÌNH

3.3.1 Thiết kế mô hình xe

Dựa trên yêu cầu, mô hình xe trò chơi dành cho trẻ nhỏ từ 3 đến 6 tuổi cần được thiết kế với kích thước phù hợp để đảm bảo có đủ không gian cho việc bố trí các linh kiện Việc lựa chọn kích thước xe phù hợp là yếu tố quan trọng giúp đảm bảo sự an toàn và thuận tiện trong quá trình vận hành, cũng như tạo sự hài hòa về mặt thẩm mỹ Do đó, các yếu tố về kích thước phải được tính toán kỹ lưỡng để đáp ứng các yêu cầu kỹ thuật và phù hợp với độ tuổi của các bé.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16

+ Sơ đồ phân bố linh kiện dự kiến mặt trên:

Hình 3.2 Phân bố linh kiện dự kiến mặt trên của xe

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17

+ Sơ đồ phân bố linh kiện dự kiến mặt dưới :

Hình 3.3 Phân bố linh kiện dự kiến dưới trên của xe

3.3.2 Thiết kế mô hình đường (line ) xe chạy:

Chọn kích thước mô hình cần đảm bảo nhỏ gọn, không chiếm nhiều không gian trong phòng và dễ dàng sắp xếp, giúp các bé tự lập trong việc dọn dẹp và bày trí Kích thước mô hình cũng phải phù hợp với kích thước xe để tạo sự cân đối, trong khi độ dài của đường chạy nên được thiết kế hợp lý, không quá ngắn hoặc quá dài, nhằm tối ưu hóa khả năng ghi hình của camera.

- Kích thước bao quát mô hình :

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18

- Kích thước vòng đường (line ) xe chạy :

Hình 3.4 Mô hình của đường ( line) xe chạy

Chọn kích thước và độ rộng của đường line là yếu tố quan trọng để đảm bảo xe chạy ổn định, giảm thiểu lệch đường và giúp xe bắt đường chính xác khi vào cua hoặc qua các đường cong Sử dụng đường kẻ màu tối trên nền sáng sẽ tạo ra mô hình giống thực tế hơn và phù hợp với cảm biến, hỗ trợ quá trình xử lý dò đường cho xe tự hành một cách hiệu quả.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19

- Kích thước độ rộng đường : 2.5 (cm)

- Màu sắc đường : màu đen

3.3.3 Thiết kế mô hình biển báo

Chọn kích thước biển báo phù hợp dựa trên chiều cao của xe và điện thoại, đảm bảo phù hợp với chiều cao của biển báo Ngoài ra, cần cân nhắc đến độ rộng của ống kính camera và khả năng lấy nét để tối ưu hóa khả năng quan sát và nhận diện biển báo rõ ràng Việc này giúp đảm bảo tính chính xác và hiệu quả khi sử dụng công nghệ trong việc quan sát từ xa hoặc tự động hóa giao thông.

+ Chiều cao biển báo : 24.5 (cm)

+ Bán kính biển báo : 6.5 (cm)

Biển báo được nhóm thiết kế có thể tháo rời và thay đổi vị trí dễ dàng, tăng tính linh hoạt trong sử dụng Các bé còn có thể viết lên mặt biển báo bằng các gói ký tự đã được lập trình sẵn trong Arduino và ứng dụng Android, thúc đẩy sự sáng tạo và tương tác của trẻ khi chơi với mô hình Điều này giúp duy trì sự hứng thú của các bé thông qua nhiều hình thức tương tác khác nhau.

THIẾT KẾ VÀ TÍNH TOÁN CÁC KHỐI

3.4.1 Sơ đồ khối của mạch điều khiển xe

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20

Hình 3.5 Sơ đồ khối của xe

Chức năng của từng khối:

Khối xử lý trung tâm là bộ não của hệ thống, đảm nhận vai trò điều khiển chính và kết nối các thành phần trong hệ thống Nó truyền dữ liệu điều khiển từ người dùng đến các thiết bị và nhận dữ liệu cảm biến để xử lý và thực thi các lệnh tự động Khối xử lý trung tâm đóng vai trò then chốt trong việc duy trì hoạt động hiệu quả của toàn bộ hệ thống tự động hóa.

Khối cảm biến dò line được trang bị thanh gồm 5 cảm biến TCRT5000L, giúp nhận diện màu sắc để xác định đường đi cho mô hình xe Các cảm biến này giao tiếp trực tiếp với vi điều khiển, cho phép xe tự động phát hiện và định hướng theo tuyến đường đã được lập trình sẵn, nâng cao khả năng tự động hóa và chính xác trong điều khiển.

Khối nhận tín hiệu Bluetooth có chức năng kết nối với vi điều khiển để nhận dữ liệu trả về từ khối xử lý hình ảnh Dữ liệu sau đó được chuyển đến vi điều khiển để thực hiện các chức năng tương ứng, giúp hệ thống hoạt động chính xác và hiệu quả.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21

Khối thu nhận và xử lý hình ảnh có nhiệm vụ tiếp nhận hình ảnh từ thiết bị và chuyển đổi thành dữ liệu kỹ thuật số thông qua một ứng dụng Android Dữ liệu hình ảnh sau đó được gửi về vi điều khiển để xử lý và thực hiện các chức năng phù hợp, đảm bảo hoạt động chính xác và hiệu quả của hệ thống.

- Khối nguồn: Khối này có chức năng cung cấp nguồn liên tục cho toàn hệ thống

- Khối công suất động cơ : khối này có chức năng điều khiển hai động cơ DC của hai bánh xe

- Khối động cơ : khối này có chức năng giúp xe di chuyển khi có tín hiệu điều khiển đƣợc gửi xuống

- Khối công suất : khối này có chức năng hú còi khi có tín hiệu điều khiển gửi xuống

 Khối xử lý trung tâm:

Chức năng chính của đề tài là giao tiếp với module cảm biến dò line qua cổng vào để điều khiển các động cơ ở cổng ra, giúp xe tự động chạy theo đường line Bên cạnh đó, hệ thống còn tích hợp giao tiếp UART với module Bluetooth để nhận dữ liệu từ điện thoại thông qua ứng dụng, từ đó điều khiển xe với các tùy chọn như: tăng tốc, dừng xe hú còi, quẹo trái hoặc quẹo phải, mang lại trải nghiệm điều khiển linh hoạt và tiện lợi.

Các lựa chọn: VĐK AVR, VĐK PIC, VĐK ARM,…

Arduino là một bo mạch vi xử lý dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn và nhiều thiết bị khác, giúp tạo ra các dự án tự động hóa và điều khiển thiết bị Môi trường phát triển của Arduino rất dễ sử dụng, sử dụng ngôn ngữ lập trình thân thiện, phù hợp ngay cả với người mới bắt đầu học điện tử và lập trình Điểm nổi bật của Arduino chính là mức giá rẻ, phù hợp với nhiều người dùng và đặc tính nguồn mở của phần cứng lẫn phần mềm, thúc đẩy cộng đồng sáng tạo và chia sẻ dự án Các ứng dụng nổi bật của board mạch Arduino bao gồm trong các dự án tự động hóa, robot, hệ thống cảm biến, thiết bị điện tử thông minh và nhiều lĩnh vực khác.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22 như robot đơn giản, điều khiển nhiệt độ, phát hiện chuyển động, game tương tác

Arduino có nhiều phiên bản phù hợp với các mục đích sử dụng khác nhau, như Arduino Mega hay Arduino LilyPad Trong số đó, Arduino Uno R3 là dòng board phổ biến nhất, được đánh giá cao về tính năng và độ tin cậy Arduino UNO R3 có 20 chân mở rộng và bộ nhớ đủ để thực hiện hầu hết các ứng dụng thông thường, là lựa chọn lý tưởng cho người mới bắt đầu và các dự án thực tế.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23

Hình 3.7 Sơ đồ chân Arduino Uno

GND (Ground) là cực âm của nguồn điện cấp cho Arduino UNO, có vai trò chia sẻ mạch điện chung Khi sử dụng các thiết bị có nguồn điện riêng biệt, các chân GND này cần được nối với nhau để đảm bảo mạch hoạt động ổn định và an toàn Việc kết nối chân GND đúng cách giúp tránh hiện tượng chênh lệch điện áp gây hỏng hóc thiết bị hoặc lỗi mạch.

- 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA

- 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

- Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24

IOREF là chân giúp đo điện áp hoạt động của vi điều khiển trên Arduino UNO, thường xuyên đo được 5V Tuy nhiên, bạn không nên lấy nguồn điện từ chân IOREF để cấp nguồn cho các thiết bị khác, vì mục đích chính của chân này là để xác định mức điện áp, chứ không phải để cấp nguồn Chuẩn đoán chính xác về điện áp và sử dụng đúng chức năng của IOREF giúp đảm bảo hiệu quả và độ bền cho dự án Arduino của bạn.

- RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET đƣợc nối với GND qua 1 điện trở 10KΩ

- 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ

Flash của vi điều khiển thường có dung lượng vài KB, trong đó một phần nhỏ dùng cho bootloader Bạn đừng lo lắng, vì hầu hết các ứng dụng không đòi hỏi quá 20KB bộ nhớ Flash dành cho bootloader, giúp tiết kiệm không gian cho các chức năng khác của thiết bị.

SRAM (Static Random Access Memory) dung lượng 2KB được sử dụng để lưu trữ giá trị các biến trong lập trình Số lượng biến khai báo càng nhiều thì yêu cầu về dung lượng RAM càng lớn Tuy nhiên, trong thực tế, bộ nhớ RAM ít khi trở thành mối quan tâm lớn do khả năng mất dữ liệu khi ngắt điện.

EEPROM (Electrically Erasable Programmable Read-Only Memory) có dung lượng 1KB, giống như một chiếc ổ cứng mini giúp bạn đọc và ghi dữ liệu một cách dễ dàng mà không lo mất dữ liệu khi mất điện, khác với RAM SRAM EEPROM thích hợp để lưu trữ dữ liệu cần giữ vĩnh viễn hoặc không thay đổi thường xuyên Các cổng vào/ra của EEPROM cho phép kết nối linh hoạt với các mạch điều khiển, giúp quá trình truyền dữ liệu trở nên thuận tiện và hiệu quả Nhờ khả năng điều chỉnh dễ dàng và lưu trữ ổn định, EEPROM là thành phần quan trọng trong các thiết bị điện tử và hệ thống nhúng.

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu, hoạt động ở hai mức điện áp là 0V và 5V Mỗi chân digital có dòng điện vào/ra tối đa là 40mA, đảm bảo hoạt động an toàn và hiệu quả cho các dự án điện tử Ngoài ra, các chân này đều tích hợp sẵn các điện trở pull-up nội bộ, được kích hoạt trong vi điều khiển ATmega328, giúp dễ dàng thiết lập và điều khiển các tín hiệu kỹ thuật số.

Một số chân digital có các chức năng đặc biệt nhƣ sau:

- 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –

RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25

Kết nối Bluetooth thường được hiểu đơn giản là kết nối Serial không dây, giúp truyền dữ liệu một cách thuận tiện và linh hoạt Tuy nhiên, nếu không cần giao tiếp Serial, bạn không nên sử dụng hai chân này để tránh gây nhiễu hoặc tiêu thụ năng lượng không cần thiết Hiểu rõ các chức năng của các chân kết nối sẽ giúp tối ưu hóa hiệu suất và tiết kiệm nguồn cho thiết bị của bạn.

Chân PWM (~) tại các chân 3, 5, 6, 9, 10 và 11 cho phép xuất ra tín hiệu PWM với độ phân giải 8-bit, nghĩa là giá trị từ 0 đến 255, tương ứng từ 0V đến 5V Bạn có thể sử dụng hàm analogWrite() để điều chỉnh mức điện áp ra trên các chân này, giúp linh hoạt kiểm soát mức điện áp từ 0V đến 5V thay vì duy trì cố định ở mức 0V hoặc 5V như các chân khác.

GIỚI THIỆU

Chương này trình bày quá trình thi công PCB, lập trình và lắp ráp phần cứng, cùng với công tác kiểm tra mạch để đảm bảo hoạt động chính xác Ngoài ra, bài viết còn cung cấp hình vẽ chụp từ mô hình thực tế của hệ thống và các hình ảnh chụp từ kết quả vận hành của hệ thống, giúp người đọc hình dung rõ hơn về quá trình xây dựng và hoạt động của dự án.

THI CÔNG HỆ THỐNG

Sơ đồ nguyên lý toàn mạch đƣợc vẽ bằng phần mềm Proteus 8.8:

Hình 4.1 sơ đồ nguyên lý toàn mạch

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

Hình 4.2 Sơ đồ mạch làm gọn dây cho xe phần nguồn

Hình 4.3 Sơ đồ mạch làm gọn dây cho xe phần bluetooth và buzzer

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36

Nhóm quyết định thiết kế board mạch in bằng phần mềm Proteus vì yêu cầu của dự án chỉ cần một mạch đơn giản, một lớp Hình ảnh về board mạch đã được thiết kế thể hiện rõ cấu trúc và các thành phần cần thiết để đảm bảo hoạt động hiệu quả của hệ thống Sử dụng phần mềm Proteus giúp tối ưu hóa quá trình thiết kế, kiểm tra và mô phỏng mạch trước khi tiến hành chế tạo thực tế Thiết kế này phù hợp với yêu cầu kỹ thuật và dễ dàng trong quá trình lắp ráp, sửa chữa sau này.

Hình 4.4 Mạch in theo sơ đồ mạch hình 4.3

Hình 4.5 Mạch in đã thi công theo sơ đồ mạch hình 4.3

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

Hình 4.6 Mạch in theo sơ đồ hình 4.2

Hình 4.7 Mạch in theo sơ đồ mạch hình 4.2

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38

ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH

4.3.1 Đóng gói mô hình xe

Hình 4.8 Hình ảnh mặt trên của xe

Hình 4.9 Hình ảnh mặt dưới của xe

Nhóm đã thực hiện đóng hộp để nâng cao tính thẩm mỹ của mô hình xe, giúp che chắn phần mạch in và các kết nối dây giữa các module Khối nguồn được đặt ở bên ngoài hộp, kết nối với công tắc nằm ở phía hông để dễ dàng bật tắt nguồn pin cung cấp cho module L298N và Arduino.

Hình 4.10 Hình ảnh xe đã đƣợc đóng hộp

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

Hình 4.11 Hình ảnh xe đã đƣợc đóng hộp

Hình 4.12 Hình ảnh xe đã đƣợc đóng hộp

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

4.3.2 Hoàn tất mô hình đường chạy

Từ yêu cầu đã đặt ra nhóm tiến hành thi công và hoàn thiện mô hình đường chạy:

Hình 4.13 Mô hình đường chạy

Mô hình đường chạy có kích thước 61.5x183.5, được thiết kế với 4 đế tại 4 góc để gắn biển báo phù hợp với các vị trí đã định sẵn trên sơ đồ Việc lắp đặt biển báo cách xa đường chạy giúp xe vận hành trơn tru, hạn chế nguy cơ va chạm và đảm bảo camera trên xe vẫn nhận diện rõ các ký tự trên biển báo Điều này tối ưu hóa hiệu quả hoạt động của hệ thống và an toàn trong quá trình vận hành.

Các biển báo được thiết kế với bề mặt phù hợp để sử dụng vật liệu như bút lông dầu, giúp viết lên các chuỗi ký tự đã được định nghĩa sẵn trong chương trình điều khiển, như “Normal” Điều này giúp đảm bảo tính rõ ràng và dễ hiểu cho người vận hành, đồng thời nâng cao hiệu quả trong quá trình sử dụng Việc lựa chọn vật liệu phù hợp cho bề mặt biển báo cũng là yếu tố quan trọng để đảm bảo độ bền và khả năng hiển thị của các ký tự trong môi trường công nghiệp hoặc kỹ thuật.

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

Các biển báo như “Fast”, “Stop”, “Left”, “Right” cùng với các biển báo có thể tháo rời và gắn lại dễ dàng giúp tạo cảm giác thích thú cho bé khi tương tác với mô hình Điều này không chỉ mang lại trải nghiệm vui vẻ mà còn giúp bé học hỏi dễ dàng hơn, phù hợp với tiêu chuẩn an toàn và phát triển tư duy của trẻ nhỏ.

LẬP TRÌNH HỆ THỐNG

Lưu đồ chương trình chính

Hình 4.14 Lưu đồ chương trình con thực hiện chức năng dò line

Khởi tạo các thiết bị ngoại vi, biến toàn cục, timer tĩnh

Cập nhật giá tri của mắt IR

Kiểm tra và cập nhật tin nhắn từ điện thoại gửi xuống board

Ra quyết định chọn hướng đi của xe

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

 Cập nhật giá trị mắt IR:

Mắt IR đƣợc đọc bằng các chân Analog của Arduino Bao gồm 5 mắt đƣợc bố trí như hình bên dưới:

Hình 4.15 Sơ đồ bố trí các mắt hồng ngoại trên cảm biến

Các mắt sẽ được đọc liên tục để cập nhật giá trị biến toàn cục, giúp chương trình theo dõi trạng thái hiện tại và ra quyết định phù hợp Việc này đảm bảo hệ thống luôn nắm bắt thông tin mới nhất để đưa ra hướng đi chính xác Cập nhật liên tục biến toàn cục là yếu tố quan trọng trong quá trình xử lý dữ liệu để tối ưu hóa hiệu suất và độ chính xác của chương trình.

Ta chia các trường hợp có thể xảy ra với các mắt khi gặp đường đi và ra quyết định theo bảng dưới:

Trường hợp Mắt 1 Mắt 2 Mắt 3 Mắt 4 Mắt 5 Quyết định

Còn lại Lặp lại hành động trước đó

Bảng 4.2 Bảng trạng thái chọn hướng đi cho mô hình xe

Mắt 1 Mắt 2 Mắt 3 Mắt 4 Mắt 5

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

 1 – Khi mắt hồng ngoại bắt gặp màu đen

 0 – Khi mắt hồng ngoại bắt gặp màu khác đen (ADC > 100)

 Cập nhật và kiếm tra tin nhắn từ điện thoại xuống board:

Khi nhận tin nhắn từ điện thoại, hệ thống sẽ lưu trữ vào bộ đệm và kiểm tra tính hợp lệ của tin nhắn (stop, fast, left, right, normal) Nếu hợp lệ, lệnh sẽ được cập nhật vào biến đòi hỏi thực thi để chuẩn bị thực hiện Đồng thời, hệ thống kích hoạt timer tĩnh để đếm thời gian, ngăn chặn việc tin nhắn không được thực thi gây block toàn bộ các tin nhắn khác Khi timer kết thúc, tin nhắn cần thực thi sẽ bị xóa để hệ thống sẵn sàng nhận các tin nhắn mới từ điện thoại gửi đến.

Hình 4.16 Lưu đồ chương trình con thực hiện chức năng xử lý dữ liệu từ module

Cập nhật vào buffer Đúng

Có tin nhắn từ điện thoại Và biến thực thi lệnh còn rãnh

Hợp lệ Đƣa vào Biến lệnh cần thực thi Bật timer

Xóa buffer Sai Đúng Sai

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

Mục đích của việc này nhằm giảm thiểu tình trạng gửi quá nhiều tin nhắn xuống board gây nhầm lẫn và tránh tình trạng board bị treo Sau một khoảng thời gian (MAX_WAIT_TIME_FOR_EXECUTE_MESSAGE = 3000 mili giây trong code hiện tại), buffer sẽ tự động được xóa để đảm bảo hiệu suất hoạt động ổn định của hệ thống.

 Ra quyết định chọn hướng đi:

Theo bảng trong phần 2.1, xe hoạt động bình thường khi không nhận được lệnh từ điện thoại gửi xuống Do đó, việc chọn hướng đi chỉ trở nên quan trọng khi có quyết định từ điện thoại được truyền xuống.

Khi có tham số mới từ điện thoại gửi xuống thì việc quyết định sẽ đƣợc thực hiện

Khi gửi lệnh tăng tốc, xe sẽ tăng tốc theo lệnh đó, còn các lệnh stop và normal sẽ điều chỉnh xe vận hành ở tốc độ bình thường Đặc biệt, với lệnh left và right, xe sẽ quét thêm mắt cảm biến thứ hai (mắt trái hoặc phải) để xác định có ngã rẽ hay không Nếu phát hiện ngã rẽ, xe sẽ lập tức rẽ theo hướng đó để đảm bảo an toàn và chính xác trong quá trình di chuyển.

Hình 4.17 Hình ảnh mô tả cách thức chọn hướng đi của mắt hồng ngoại

Mắt 1 Mắt 2 Mắt 3 Mắt 4 Mắt 5

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46

Lưu đồ chương trình app Android

Hình 4.18 Lưu đồ chương trình của App Android

Cơ bản về ứng dụng:

Tại giao diện màn hình chính gồm có 1 Camera, 1 TextView, 2 Button

- SurfaceView dùng để hiển thị camera, quét hình ảnh và phát hiện text trong hình ảnh đó

- TextView: dùng để hiển thị text đƣợc phát hiện bằng camera từ hình ảnh

- Hai Button: gồm 1 Button connect bluetooth và 1 button disconnect bluetooth

Button connect bluetooth dùng để connect đến bluetooth, sau đó kiểm tra xem text

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47 đã đƣợc thay đổi hay chƣa và truyền text đến bluetooth Button disconnect bluetooth dùng để đóng kết nối đến bluetooth

Giải thích lưu đồ giải thuật:

- Start: bắt đầu ứng dụng

Khi khởi động ứng dụng, các hàm callback cơ bản như onCreate, onStart, onStop sẽ được gọi, trong đó hàm onCreate() của Android được gọi ngay khi Activity được kích hoạt, giúp chạy các đoạn mã khởi tạo ban đầu Tại hàm onCreate(), thường được sử dụng để load giao diện cho Activity và khởi tạo các chức năng cơ bản như mở camera, lấy hình ảnh, sau đó thực hiện nhận dạng văn bản trong hình ảnh Trong ứng dụng này, chúng tôi tận dụng Google Mobile Vision API để nhận dạng văn bản một cách chính xác và hiệu quả.

- ConnectBluetooth(): nhấn nút CONNECT trên app để connect đến bluetooth

Sau khi kết nối Bluetooth, kiểm tra xem dữ liệu văn bản đã được phát hiện có thay đổi hay chưa Nếu dữ liệu đã thay đổi và trùng với các văn bản đã được định nghĩa sẵn, hệ thống sẽ thực hiện gửi dữ liệu bằng hàm sendData() Ngược lại, quá trình kiểm tra sẽ được lặp lại để đảm bảo dữ liệu chính xác trước khi gửi.

- sendData(): nếu text đã thay đổi và trùng với text đƣợc định nghĩa sẵn thì thực hiện việc gửi dữ liệu

Sau khi gửi dữ liệu xuống Bluetooth thành công, người dùng cần thực hiện việc ngắt kết nối nếu muốn kết thúc quá trình truyền dữ liệu Trong trường hợp không muốn ngắt kết nối, người dùng vẫn có thể tiếp tục gửi dữ liệu mới xuống Bluetooth bằng cách quay lại bước kiểm tra TextChange để xác nhận dữ liệu đã sẵn sàng gửi Điều này giúp duy trì việc truyền dữ liệu một cách linh hoạt và hiệu quả.

- DisconnnectBluetooth(): nếu người dùng muốn disconnect thì nhấn nút DISCONNECT

Để kết thúc ứng dụng, người dùng cần kiểm tra xem có muốn thoát hay tiếp tục sử dụng không Nếu muốn tiếp tục, hãy quay lại bước nhấn nút CONNECT để kết nối Bluetooth và gửi dữ liệu Ngược lại, nếu muốn tắt ứng dụng, chỉ cần thoát ra khỏi app để kết thúc quá trình một cách an toàn.

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

4.4.2 Phần mềm lập trình cho vi điều khiển a Giới thiệu phần mềm lập trình aduino IDE

Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng nền tảng được viết bằng Java, cho phép lập trình viên dễ dàng viết và quản lý các dự án của mình IDE này hỗ trợ ngôn ngữ Processing và dự án Wiring, giúp người dùng tạo ra các dự án điện tử một cách dễ dàng và hiệu quả Được phát triển bởi đội ngũ kỹ sư của Arduino, công cụ này có khả năng chạy trên nhiều hệ điều hành như Windows, MAC OS X và Linux, đảm bảo tính linh hoạt và phù hợp với nhiều nền tảng khác nhau.

Dành cho người mới bắt đầu làm quen với lĩnh vực phát triển phần mềm, công cụ này tích hợp một trình chỉnh sửa mã code dễ sử dụng với các tính năng như đánh dấu cú pháp, tự động ghép dấu ngoặc, và căn chỉnh lề tự động, giúp lập trình viên thao tác thuận tiện hơn Ngoài ra, phần mềm còn hỗ trợ quá trình biên dịch và tải chương trình lên board chỉ với một cú nhấp chuột, giúp tiết kiệm thời gian và nâng cao hiệu quả làm việc Một đoạn mã hoặc chương trình dành cho Arduino được gọi là một “sketch,” phản ánh tính đơn giản và dễ hiểu của các dự án điện tử DIY.

Các chương trình Arduino được viết bằng ngôn ngữ C hoặc C++, giúp người dùng dễ dàng lập trình và điều khiển thiết bị Arduino IDE đi kèm với thư viện phần mềm "Wiring", giúp đơn giản hóa các thao tác về đầu vào và đầu ra (I/O), mang lại khả năng lập trình linh hoạt và dễ sử dụng dựa trên dự án Wiring gốc.

Hình 4.19 Giao diện phần mềm lập trình Arduino IDE

Hình 1Hình 4.22 Giao diện phần mềm lập trình Arduino IDE

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

1) Vùng lệnh: bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help) Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả nhƣ hình sau:

2) Vùng viết chương trình: Các đoạn code sẽ được viết trong vùng này

Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy đƣợc:

+ Setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt

+ Loop(): hàm này đƣợc gọi lặp lại cho đến khi tắt nguồn board mạch

3) Vùng thông báo (Debug): Những thông báo từ IDE sẽ đƣợc hiển thị tại đây Để ý rằng góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM thì sẽ không thể upload đƣợc code của mình b Viết chương trình hệ thống

Phần này sẽ đƣợc trình bày ở phần phụ lục

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50

4.4.3 Phần mềm lập trình cho điện thoại, máy tính

Giới thiệu phần mềm Android Studio

Hình 4.20 Giao diện phần mềm Android Studio

Hiện nay, các ứng dụng Android có thể được phát triển bằng nhiều phần mềm khác nhau như Visual Studio, Android Studio, MIT AppInventor và Eclipse Trong số đó, Android Studio là phần mềm được Google hỗ trợ mạnh mẽ, trở thành lựa chọn hàng đầu cho các nhà phát triển Chúng tôi chọn sử dụng Android Studio để viết các ứng dụng điều khiển và hiển thị các thông số của tủ đồ, nhằm đảm bảo sự ổn định và tối ưu hóa hiệu suất.

VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC

Hướng dẫn tải App Android vào điện thoại

Bước 1: Vào phần cài đặt của điện thoại tìm đến mục About Device (Thông tin thiết bị) >

Software Information (Thông tin phần mềm) > Build Number (Mã số phiên bản dựng)

Để kích hoạt chế độ nhà phát triển trên điện thoại của bạn, hãy nhấn vào mục "Build Number" 7 lần liên tiếp cho đến khi xuất hiện thông báo đã bật chế độ quyền của nhà phát triển Sau đó, quay trở lại phần cài đặt, bạn sẽ thấy xuất hiện mục mới tên là “Tùy chọn nhà phát triển” Tiếp theo, chọn vào "Tùy chọn nhà phát triển" và bật chế độ “Gỡ rối USB” để hoàn tất quá trình cài đặt và bộ công cụ dành cho nhà phát triển.

Bước 3: Tiến hành mở phần mềm Android Studio và mở chương trình App đã viết sẵn, kết nối điện thoại vào laptop thông qua cáp USB tương thích

Bước 4: Chọn mục “Build” trên giao diện “Main Activity”thì lập tức một file APK sẽ đƣợc cài đặt vào điện thoại

Bước 5: Cài đặt App đã thiết kế bằng file APK vừa được cài đặt

Hướng dẫn sử dụng sản phẩm

Bước 1: Cấp nguồn cho xe Xe sử dụng nguồn từ 3 viên pin 18650 mắc nối tiếp nhau

Trong bước 2, bạn cần truy cập vào phần cài đặt Bluetooth trên điện thoại để kết nối với module HC-06 Nếu điện thoại yêu cầu nhập mật khẩu để thiết lập kết nối mới, hãy nhập chuỗi số “1234” để hoàn tất quá trình ghép nối Đảm bảo điện thoại đã bật Bluetooth và đã ở chế độ phát hiện để dễ dàng kết nối với module.

Trong bước 3, người dùng cần cấp quyền truy cập vào camera và Bluetooth của điện thoại khi mở ứng dụng Sau khi đã cấp quyền, hãy nhấn nút "Connect" trên giao diện ứng dụng để bắt đầu quá trình truyền nhận dữ liệu giữa app và module Bluetooth Việc này giúp kết nối diễn ra thuận lợi và đảm bảo quá trình truyền dữ liệu diễn ra suôn sẻ.

Bước 4: Bây giờ chỉ cần đặt điện thoại lên xe Đặt xe vào line để xe hoạt động

Trong bước 5, bạn nên đặt các biển báo tùy chọn dọc theo tuyến đường để hướng dẫn lái xe rõ ràng Các biển báo như “fast” giúp xe chạy nhanh hơn, trong khi biển “normal” duy trì tốc độ bình thường Biển “stop” yêu cầu xe dừng lại và hú còi trong một khoảng thời gian nhất định trước khi tiếp tục Ngoài ra, có thể đặt các biển báo “Left” hoặc “Right” tại các ngã rẽ để hướng dẫn phương hướng chính xác cho người điều khiển xe.

KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ

GIỚI THIỆU

Trong chương này, chúng tôi trình bày kết quả nghiên cứu đã thực hiện trong suốt 16 tuần để phát triển đề tài Bên cạnh đó, chúng tôi đưa ra nhận xét, đánh giá toàn diện về quá trình và kết quả đạt được, đồng thời đề xuất các hướng phát triển nhằm hoàn thiện mô hình sản phẩm Các đề xuất này hướng tới việc ứng dụng thực tế và nâng cao hiệu quả của sản phẩm trong các hoạt động thực tiễn.

KẾT QUẢ ĐẠT ĐƢỢC

Các chuẩn truyền dữ liệu

- Tìm hiểu và nắm đƣợc các kiến thức cần thiết của các chuẩn truyền dữ liệu UART, SPI

- Biết cách sử dụng phần mềm Proteus để thiết kế sơ đồ nguyên lý của hệ thống

- Nâng cao đƣợc kĩ năng thi công mạch (hàn linh kiện, kiểm tra các thành phần trong mạch)

- Biết cách tính toán các giá trị điện áp dòng điện trong hệ thống để chọn nguồn phù hợp

- Biết kết nối các linh kiện với nhau sao cho phù hợp tạo thành một hệ thống hoàn chỉnh

- Tìm hiểu và biết ứng dụng công nghệ OCR vào sản phẩm

- Biết lập trình cho Arduino sử dùng phần mềm adduino IDE

- Biết sử dụng phần mềm Android studio viết đƣợc App mobile chạy trên điện thoại Android.

KẾT QUẢ THỰC NGHIỆM

Sau khi hoàn thành mô hình, nhóm đã đạt đƣợc căn bản những kết quả sau:

Mô hình đường chạy được thiết kế gọn gàng, dễ dàng tháo rời các phần sau khi sử dụng để tiết kiệm không gian lưu trữ Các biển báo trong mô hình này có thể thay đổi vị trí linh hoạt, giúp tùy chỉnh theo nhu cầu sử dụng Ngoài ra, chân đế của các biển báo có thể dịch chuyển, cho phép thay đổi vị trí đặt biển một cách dễ dàng và linh hoạt.

Mô hình xe hoạt động ổn định, chạy trơn tru và bắt line tốt, giúp tăng tốc độ nhận diện ký tự và xử lý hiệu lệnh biển báo nhanh chóng Tuy nhiên, xe còn gặp một số hạn chế khi xử lý ở những khúc cua, đôi lúc còn chậm hơn mong muốn.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54

Ứng dụng Android hoạt động mượt mà, gần như không gặp hiện tượng giật lag, đảm bảo tốc độ nhận dạng và xử lý dữ liệu hình ảnh từ camera một cách nhanh chóng, nâng cao trải nghiệm người dùng.

Hình 5.1 Hình ảnh thực tế mô hình đường ( line) xe chạy

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55

Hình 5.2 Mô hình xe bắt gặp lệnh “STOP” và dừng lại hú còi

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56

5.3.2 Phần cứng, giao diện app trên điện thoại

Hình 5.3 Các linh kiện đƣợc phân bố và kết nối với nhau

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57

Hình 5.4 Giao diện app trên điện thoại

Hình 5.5 Giao diện app trên điện thoại

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58

Hình 5.6 Giao diện app trên điện thoại

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59

NHẬN XÉT, ĐÁNH GIÁ

Sau 16 tuần nghiên cứu và triển khai đề tài, hệ thống đã cơ bản đáp ứng các yêu cầu thiết kế ban đầu của dự án Trong quá trình thực hiện, các kết quả đạt được phản ánh rõ ràng tiến trình phát triển và khả năng vận hành của hệ thống Nhận xét từ quá trình nghiên cứu cho thấy hệ thống hoạt động ổn định, đáp ứng tiêu chí kỹ thuật đề ra, đồng thời còn tiềm năng mở rộng và nâng cấp trong tương lai.

- Mô hình xe đƣợc che chắn gọn gàng, các linh kiện sắp xếp không gây rối

- Mô hình đường chạy có kích thước vừa phải không chiếm quá nhiều không gian trong nhà, phù hợp với đối tƣợng sử dụng đặt ra

- Đầy đủ tất cả các tùy chọn nhƣ yêu cầu đƣợc đƣa ra

- Mạch điều khiển trung tâm hoạt động ổn định, chính xác

- Tốc độ quét và nhận dnagj kí tự nhanh

- Phân bố các linh kiện hợp lí

- Đôi lúc có độ trễ nhất định khi nhận và truyền dữ liệu thông qua Bluetooth Tuy nhiên không ảnh hưởng nhiều đến người sử dụng

- Giao diện trực quan, đơn giản và dễ sử dụng

- Đôi lúc có độ trễ nhất định khi điều khiển qua app android

- Hiện tại app chỉ chạy đƣợc trên nền tản hệ điều hành android

Quá trình Số lần thực nghiệm Số lần thành công Đánh giá

Xe chạy theo line 20 20 ĐẠT

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60

Bảng 5.1 Số liệu thực nghiệm

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61

Ngày đăng: 01/11/2022, 12:16

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w