THI CÔNG HỆ THỐNG

Một phần của tài liệu Thiết kế và thi công khung ảnh điện tử (Trang 50)

4.2.1 Thi công board mạch

Mạch in trong đồ án tốt nghiệp này được thiết kế bằng phần mềm Altium Designer. Mạch in gồm 2 lớp: lớp trên và lớp dưới.

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

Hình 4.1 Sơ đồ bố trí linh kiện trong mạch

Mạch in lớp dưới:

Hình 4.2 Mạch in lớp dưới

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

Hình 4.2 Mạch in lớp trên

Hình 3D của mạch:

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

Bảng 4.1 Danh sách các linh kiện sử dụng

STT Tên linh kiện Loại/Giá trị Chú thích

1 Vi điều khiển STM32F407VET6 SMD

2 Board màn hình LCD TFT 7 inch Hãng Waveshare

3 NODE MCU ESP 8266 V1 Module

4 Cảm biến chuyển động PIR mini Module

5 Tụ thạch anh 8Mhz, 32.768Khz SMD 6 Transistor PNP B772 SMD 7 Diode SS34, ZMM3.3 SMD 8 Cuộn cảm 10uH SMD 9 Điện trở 10, 510, 1K, 10K (Ohm) SMD 10 Tụ điện 22p, 220uF, 103, 106 SMD 11 IC nguồn 3.3V LM1117 3.3V SMD 12 Nút nhấn Nút nhấn đơn 2 chân SMD

13 Jack DC Jack DC cái SMT

14 Khay thẻ nhớ Micro SD SMD

15 Jack micro usb Micro usb SMD

4.2.2 Lắp ráp và kiểm tra

Sau khi hoàn thành board mạch in, tiến hành lắp ráp các linh kiện và các module sử dụng trên mạch in.

4.2.2.1 Lắp ráp khối nguồn

Nguồn 5V DC được lấy từ nguồn adapter, tiến hành hàn gắn IC nguồn LM1117 và các linh kiện của khối nguồn.

Sau khi hàn xong dùng VOM để kiểm tra lại nguồn 5V và 3.3V DC đã đúng chưa để nguồn cấp cho mạch ổn định.

4.2.2.2 Lắp ráp các khối còn lại

Lắp ráp module ESP 8266, cảm biến PIR, màn hình và hàn gắn các linh kiện còn lại của các khối để hoàn chỉnh mạch.

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

Hình 4.5 Mạch sau khi lắp ráp hoàn chỉnh

Chú thích:

• Số 1: Rào cắm màn hình (adsbygoogle = window.adsbygoogle || []).push({});

• Số 2: Khe cắm thẻ nhớ micro SD

• Số 3: Cắm USB TTL để debug trong quá trình lập trình

• Số 4: Cắm cảm biến PIR

• Số 5: Cắm mạch nạp chương trình cho vi điều khiển

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

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

Hình 4.6 Mặt trước sản phẩm sau khi đóng gói

4.4 LẬP TRÌNH HỆ THỐNG 4.4.1 Lưu đồ giải thuật STM32F4 4.4.1 Lưu đồ giải thuật STM32F4

Để lập trình cho hệ thống hoạt động như yêu cầu trước tiên ta phải xây dựng lưu đồ giải thuật. Nhóm đã xây dựng và đưa ra lưu đồ giải thuật cho hệ thống như sau:

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

Bắt đầu

Cấu hình vi điều khiển, GPIO và AFIO Khởi tạo màn hình TFT Chế độ = 0 Sai Đúng Cập nhật đồng hồ RTC Scan cảm ứng Chế độ = 1 Trình chiếu

hình ảnh thời gianHiển thị Đúng Sai Kết thúc Hiển thị thời tiết Hiển thị hình nền chờ Chế độ = 2 Sai Đúng Cảm biến PIR Hình 4.7 Lưu đồ chương trình chính Giải thích lưu đồ:

Khi vi điều khiển bắt đầu hoạt động ta phải cấu hình xung clock cho nó để vi điều khiển hoạt động với tốc độ tối đa chính là cấu hình RCC cho vi điều khiển. Ở đây sử dụng nguồn xung ngoại tốc độ cao (HSE) để nó đạt được tốc độ tối đa 168Mhz và không bị sai các chức năng liên quan đến thời gian, tiếp đến là cấu hình cho bộ RTC để có thể sử dụng được thời gian thực, ngoài ra còn cấu hình GPIO để sử dụng các chân I/O và AFIO để sử dụng các chức năng thay thế gồm UART, FSMC, SDIO và ngắt.

Để giao tiếp và hiển thị được lên màn hình TFT ta phải khởi tạo nó, bao gồm thiết lập chuẩn giao tiếp, cấu hình thanh ghi và cài đặt các thông số ban đầu.

Thời gian là thông số thay đổi liên tục vì vậy ta phải cập nhật nó liên tục trong vòng lặp while, chương trình con “Cảm biến PIR” thực hiện chức năng đọc giá trị của cảm biến chuyển động PIR và từ đó điều khiển màn hình hiển thị, chương trình con “Scan cảm ứng” quét liên tục để xác định có hay không cảm ứng và số điểm chạm là bao nhiêu.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 Như yêu cầu đã đề ra hệ thống sẽ có 3 chế độ hoạt động:

• Chế độ 0: Hiển thị màn hình chờ để thông báo hệ thống đã hoạt động khi cắm

điện.

• Chế độ 1: Trình chiếu hình ảnh, hình ảnh được đọc từ thẻ nhớ ngoài

• Chế độ 2: Hiển thị đồng hồ thời gian thực gồm: thứ, ngày, tháng, năm, giờ, phút, giây.

• Chế độ 3: Hiển thị thời tiết trong ngày được lấy từ internet thông qua ESP 8266 bao gồm các thông số: nhiệt độ, độ ẩm, áp xuất, tốc độ gió, icon thời tiết và hiển thị thêm thời gian thực.

Chế độ nào sẽ tùy thuộc vào người sử dụng, thay đổi bằng cách chạm cùng lúc 2 tay vào màn hình để chuyển lần lượt các chế độ.

Bắt đầu Kết thúc Cảm biến mức 1 Cho phép màn hình hiển thị Đúng Sai Đủ 30 giây Không cho phép màn hình hiển thị Đúng Sai

Hình 4.8 Lưu đồ chương trình con cảm biến PIR

Giá trị của cảm biến sẽ được đọc từ vi điều khiển trung tâm, khi có mức 1 tức là có chuyển động hay có người thì màn hình sẽ hiển thị. Nếu là mức 0 thì sau 30s màn hình sẽ tắt.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42 Bắt đầu Kết thúc Detect = 1 Chạm 2 điểm Chế độ + 1 Chế độ = 4 Chế độ = 1 Đúng Đúng Đúng Sai Sai Sai

Hình 4.9 Lưu đồ chương trình con Scan cảm ứng

Giải thích lưu đồ:

Chân T_INT của màn hình cảm ứng điện dung chính là chân ngắt (touch interrupt) mỗi khi phát hiện được chạm, khi đó tương ứng với detect = 1 và khi không có thì detect = 0 và không cần thực hiện gì cả. (adsbygoogle = window.adsbygoogle || []).push({});

Màn hình cảm ứng này hỗ trợ cảm ứng đa điểm và tối đa 5 điểm, trong đề tài này ta chỉ sử dụng 1 điểm và 2 điểm. Hai điểm dùng để thay đổi chế độ hiển thị và một điểm để cài đặt khu vực thời tiết trong chế độ hiển thị thời tiết (chế độ = 3), có 3 chế độ hiển thị nên “Chế độ” sẽ được giới hạn từ 1 đến 3.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43 Bắt đầu Kết thúc TIME < 10S Hiển thị hình 1 TIME < 20S TIME < 30S TIME < 40S TIME < 50S Hiển thị hình 2 Hiển thị hình 3 Hiển thị hình 4 Hiển thị hình 5 1 1 TIME < 60S Hiển thị hình 6 TIME < 70S TIME < 80S TIME < 90S Hiển thị hình 7 Hiển thị hình 8 Hiển thị hình 9 Hiển thị hình 10 Sai Sai Sai Sai Sai Sai Sai Sai Sai Đúng Đúng Đúng Đúng Đúng Đúng Đúng Đúng Đúng TIME = 0 2 2

Hình 4.10 Lưu đồ chương trình con trình chiếu hình ảnh

Mỗi bức ảnh sẽ được hiển thị với thời gian 10s và tự động chuyển đến ảnh tiếp theo sau đó biến TIME được cập nhật lại giá trị ban đầu.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 Bắt đầu Kết thúc Hiển thị phông nền thời gian Cập nhật thứ, ngày, tháng, năm, giờ, phút, giây

Đủ 1s

Hiển thị thứ, ngày, tháng, năm, giờ, phút, giây

Vẽ đồng hồ kim

Sai

Đúng

Hình 4.11 Chương trình con hiển thị thời gian

Ở chế độ hiển thị thời gian (chế độ = 2) bao gồm đồng kim và đồng hồ số, mặt của đồng hồ sẽ được thiết kế trước và ta chỉ cần hiển thị phông nền. Các thông số về thời gian như thứ, ngày, tháng, năm, giờ, phút, giây sẽ được cập nhật liên tục sau đó sẽ hiển thị lên màn hình và vẽ kim đồng hồ nếu đủ 1s tức là 1s chỉ hiển thị một lần. Điều này làm tối ưu công việc mà vi điều khiển thực hiện giúp hệ thống chạy mượt mà hơn.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 Bắt đầu Kết thúc Hiển thị phông nền thời tiết Đủ 1s Hiển thị thứ, ngày, tháng, năm, giờ, phút, giây

Hiển thị nhiệt độ, độ ẩm, áp xuất , tốc độ gió, icon thời

tiết

Sai

Đúng

Nhận dữ liệu từ ESP 8266

Hình 4.12 Chương trình con hiển thị thời tiết

Cuối cùng là chế độ hiển thị thời tiết (chế độ = 3), phông nền thời tiết cũng được thiết kế trước và hiển thị. Ở chế độ này tất cả dữ liệu sẽ được nhận từ module ESP

8266 Node MCU truyền đến thông qua giao tiếp truyền thông UART bao gồm:

• Thời gian: Thứ, ngày, tháng, năm, giờ, phút, giây.

• Thời tiết: Nhiệt độ, độ ẩm, áp xuất, tốc độ gió và mã số của hình ảnh tương ứng với thời tiết hiện tại.

Dữ liệu sẽ được nhận liên tục và khi đủ thời gian là 1s thì tất cả các thông số đó sẽ được hiển thị lên màn hình.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 Bắt đầu Kết thúc Hiển thị phông nền thời tiết Đủ 1 giây Hiển thị thứ, ngày, tháng, năm, giờ, phút, giây Hiển thị nhiệt độ, độ ẩm, áp

xuất, tốc độ gió, icon thời tiết

Sai

Đúng

Nhận dữ liệu từ ESP

Chọn khu vực thời tiết (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.13 Lưu đồ chương trình con hiển thị thời tiết

Cuối cùng là chế độ hiển thị thời tiết (chế độ 3), phông nền thời tiết cũng được thiết kế trước và hiển thị. Ở chế độ này tất cả dữ liệu sẽ được nhận từ module ESP 8266 Node MCU truyền đến thông qua giao tiếp truyền thông UART bao gồm: • Thời gian: Thứ, ngày, tháng, năm, giờ, phút, giây.

• Thời tiết: Nhiệt độ, độ ẩm, áp xuất, tốc độ gió và mã số của hình ảnh tương ứng với thời tiết hiện tại.

Dữ liệu sẽ được nhận liên tục và khi đủ thời gian là 1s thì tất cả các thông số đó sẽ được hiển thị lên màn hình.

Chương trình con “Chọn khu vực thời tiết” là chương trình xử lý khi người dùng thay đổi khu vực thời tiết bằng cách nhấn vào cài đặt trên màn hình.

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

4.4.2 Lưu đồ giải thuật Node MCU

Bắt đầu Cấu hình UART Thiết lập Wifi Kết nối Wifi Kết nối Wifi thành công Kết thúc Sai Đúng Đúng

Cài đặt lại Wifi cho ESP

Đủ 60 giây

Đọc dữ liệu thời tiết từ Web

Sai

UART ESP

Hình 4.13 Lưu đồ chương trình chính cho Node MCU

Để giao tiếp truyền và nhận dữ liệu với vi điều khiển trung tâm ta sử dụng chuẩn giao tiếp UART. Nên ta phải cấu hình UART cho Node MCU, sau đó thiết lập Wifi để Node MCU có thể truy cập được internet.

Nếu kết nối Wifi không thành công ta phải kết nối lại cho Node MCU, sau khi kết nối thành công nó sẽ tiến hành đọc dữ liệu từ Website sau 60 giây (tức là 60 giây lấy dữ liệu một lần, do giới hạn truy cập của trang Website) và thực hiện chương trình con UART ESP sau đó lặp lại.

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

Có dữ liệu từ vi điều khiển

Gửi dữ liệu thời tiết về vi điều khiển

Đúng

Sai

Dữ liệu yêu cầu gửi thời tiết

Đúng Bắt đầu Dữ liệu vị trí thời tiết Sai Kết thúc Nhận dữ liệu vị trí thời tiết và cập nhật vị trí Sai Đúng

Hình 4.15 Lưu đồ chương trình con UART ESP

Nếu có dữ liệu từ vi điều khiển lập tức nó sẽ kiểm tra dữ liệu đó:

• Dữ liệu yêu cầu gửi thời tiết: Là yêu cầu vi điều khiển trung tâm để Node MCU gửi các thông số thời tiết từ Website về.

• Dữ liệu vị trí thời tiết: Khi người dùng thay đổi vị trí thời tiết trong phần cài đặt thì sau khi chạm vào màn hình tại khu vực cần thay đổi, vi điều khiển sẽ lập tức gửi vị trí đó đến Node MCU để nó cập nhật lại vị trí.

4.4.3 Phần mềm lập trình cho vi điều khiển

Phần mềm STM32CubeMx và Keil C 5.0

Có nhiều phần mềm lập trình cho vi điều điều khiển STM như: Keil C, IAR, Cocos Code IDE…Trong đồ án môn học này, nhóm chúng em sử dụng phần mềm Keil C 5 để lập trình cho vi điều khiển. (adsbygoogle = window.adsbygoogle || []).push({});

STM32CubeMX là một phần mềm được cung cấp miễn phí giúp ích cho việc cấu hình ngoại vi, clock, tính toán dòng tiêu thụ, tạo project với nhiều dòng chip ARM STM32… Việc tạo project trở nên đơn giản bằng việc lựa chọn các ngoại vi cần thiết, cấp lock tùy chỉnh mà không cần liên quan đến code.

Việc tạo project với thư viện chuẩn là khá khó khăn vì cần nhiều bước để tạo ra project mới. STM32CubeMX ra đời như một lựa chọn để thay thế điều đó, với giao diện trực quan chúng ta sẽ dể dàng lập trình và có cái nhìn tổng quan hơn.

Thư viện đi kèm với phần mềm này là STM32Cube HAL, gọi tắt là thư viện HAL, bộ thư viện này được chuẩn hóa, giúp đồng nhất giữa các dòng F0,F1,F2,F3,F4…

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

Hình 4.13 Biểu tượng phần mềm STM32CubeMX

Hình 4.14 Biểu tượng phần mềm Keil

Cấu hình cho vi điều khiển STM sử dụng phần mên STM32CubeMX

Bước 1: Tạo Project

Mở phần mềm STM32CubeMX lên, nhấn vào New Project để bắt đầu tạo project mới.

• Cửa sổ hiện ra với các thiết lập:

• Series: Chọn họ MCU bạn sử dụng, Lines: Chọn dòng MCU bạn sử dụng,

Package: Chọn kiểu đóng gói của MCU.

• Hoặc nhập mã MCU vào ô tìm kiếm

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

Hình 4.15 Tạo project mới trên STM32CubeMx

Bước 2: Chọn ngoại vi

Sau khi đã lựa chọn xong MCU, tiến hành chọn ngoại vi cần dùng tại thẻ PinOut: Trong danh sách Peripheral được liệt kê bên trái có các ngoại vi mà MCU hỗ trợ, sử dụng ngoại vi nào thì Enable ngoại vi đó lên.

Tại hình MCU trong khung bên phải, bạn có thể trực tiếp cấu hình trực quan từng chân của MCU theo các tính năng GPIO mà MCU hỗ trợ bằng cách click vào chân MCU và chọn chức năng cần thiết.

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

Bước 3: Cấu hình xung nhịp

Sau khi đã lựa chọn ngoại vi cần thiết, tiến hành cấu hình xung đồng hồ cho ngoại vi tại thẻ Clock Configuration.

Hình 4.17 Cấu hình xung nhịp trên STM32CubeMX

Bước 4: Cấu hình ngoại vi

Tiến hành cấu hình đặc tính của ngoại vi đã chọn tại thẻ Configuration.

Tại đây phần mềm có biểu diễn theo cấu trúc firmware, tùy vào loại ngoại vi bạn dùng mà phần mềm xếp vào nhóm chức năng riêng.

Hình 4.18 Cấu hình ngoại vi trên STM32CubeMX

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52 Sau khi đã điều chỉnh, cấu hình những ngoại vi cần thiết, chúng ta tiến hành xuất mã nguồn để import vào các trình biên dịch KeilC bằng cách nhấn vào “GENERATE CODE”.

Hình 4.19 Tạo code trên STM32CubeMX

Lập trình sử dụng Keil C sau khi đã xuất mã nguồn

Bước 1: Mở phần mềm lập trình Keil C sau khi đã tạo mã nguồn Mở file main tại Application/User (adsbygoogle = window.adsbygoogle || []).push({});

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

Bước 2: Thiết lập các cấu hình cần thiết

Hình 4.20 Thiết lập cấu hình cho Keil C

Hình 4.21 Thiết lập cấu hình cho Keil C

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

Hình 4.22 Buid và nạp code lên chip

Nếu lập trình đúng nên khi biên dịch thông báo “0 error …” và cho biết phần trăm bộ nhớ đã sử dụng. Nếu sai cú pháp thì biên dịch không thành công thì phải hiệu chỉnh cho đến khi hết lỗi. Trong thông báo còn cho biết 2 thông tin dung lượng bộ nhớ ROM và RAM đã sử dụng. Sau khi biên dịch xong thì sẽ tạo ra file chứa các số hex dùng để nạp vào vi điều khiển.

Phần mềm IDE Arduino

Môi trường phát triển tích hợp Arduino IDE là một ứng dụng đa nền tảng được viết bằng Java, và được dẫn xuất từ IDE cho ngôn ngữ lập trình xử lý và các dự án lắp ráp. Do có tính chất mã nguồn mở nên môi trường lập trình này hoàn toàn miễn

Một phần của tài liệu Thiết kế và thi công khung ảnh điện tử (Trang 50)