LẬP TRÌNH HỆ THỐNG

Một phần của tài liệu Thiết kế và thi công ROBOT đánh trống trường học (Trang 63)

4.4.1 Lưu đồ giải thuật

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

Hình 4.16 Lưu đồ thuật toán chương trình.

Ban đầu khởi tạo các biến sử dụng trong chương trình, sau đó sẽ hiển thị giao diện cũng như giá trị của dữ liệu. Tiếp theo khối xử lý trung tâm sẽ đọc giá trị thời gian thực từ bộ RTC. Kiểm tra nếu hệ thống đang điều khiển bằng màn hình cảm ứng thì sẽ thực thi chương trình điều khiển bằng màn hình, ngược lại thì thực thi chương trình điều khiển bằng App.

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

Hình 4.17 Lưu đồ thuật toán điều khiển bằng màn hình.

Để hoạt động trước tiên cần phải khởi tạo các biến sử dụng trong chương trình. Tiếp theo sẽ so sánh nếu giá trị thời gian cài đặt bằng với giá trị thời gian thực đang chạy thì thực thi chương trình điều khiển động cơ, ngược lại thì sẽ điều chỉnh giá trị thời gian trên màn hình cảm ứng, hoàn thành một chu kỳ hoạt động. Sau đó tiếp tục quay lại thực hiện chu kỳ tiếp theo.

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

Hình 4.18 Lưu đồ thuật toán điều khiển bằng điện thoại.

Để hoạt động trước tiên cần phải khởi tạo các biến sử dụng trong chương trình. Sau đó kiểm tra kết nối Wifi, nếu không có kết nối thì quay lại thực hiện việc kiểm tra kết nối, ngược lại thì thực thi chương trình đọc dữ liệu từ Firebase, sau đó sẽ thực thi chương trình xử lý dữ liệu. Tiếp theo sẽ so sánh nếu giá trị thời gian cài đặt bằng với giá trị thời gian thực đang chạy thì thực thi chương trình điều khiển động cơ, ngược lại thì sẽ điều chỉnh giá trị thời gian trên App điện thoại, hoàn thành một chu kỳ hoạt động. Sau đó tiếp tục quay lại thực hiện chu kỳ tiếp theo.

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

Hình 4.19 Lưu đồ đọc dữ liệu từ Firebase.

Ban đầu khởi tạo các biến, sau đó kết nối đến Firebase. Khi điều chỉnh trên App điện thoại, dữ liệu sẽ được đưa lên và lưu trữ trên Firebase. ESP sẽ đọc dữ liệu từ Firebase sau đó truyền dữ liệu tới khối xử lý trung tâm bằng giao thức UART.

Hình 4.20 Lưu đồ xử lý dữ liệu.

Khối xử lý trung tâm sẽ nhận dữ liệu truyền UART từ ESP, sau đó sẽ xử lý bằng việc tách chuỗi dữ liệu.

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

Hình 4.21 Lưu đồ thuật toán điều khiển động cơ.

Ban đầu khởi tạo các chân DIR, STEP, ENA ở mức thấp. Tiếp theo so sánh nếu giây của thời gian thực nhỏ hơn giây cài thì động cơ hoạt động, ngược lại thì dừng động cơ.

4.4.2 Phần mềm lập trình:

4.4.2.1 Phần mềm STM32CubeMX:

STM32CubeMX là một chương trình hoàn thiện giúp cho việc lập trình trên STM32 dễ dàng.

Giúp cấu hình ngoại vi dễ dàng: Chọn các pin trên chip và chọn các tính năng mong muốn gắn với nó. Cấu hình Middlewares (FATS, FREERTOS), các ngoại vi như CRC, IWDG, TIMERS…, cấu hình Clock và tính toán mức độ tiêu hao năng lượng.

STM32CubeMX tự động download các driver mới nhất của ST dành cho các dòng chip của mình. ST đã không còn phát triển Standard Peripheral Libraries nữa, thay vào đó họ phát triển cấu trúc firmware mới bao gồm lớp cách ly phần cứng (HAL) bao gồm các driver cho ngoại vi, lớp Middleware bao gồm hỗ trợ TCP/IP, USB, Graphics, FAT file system, Touch library, và hệ điều hành mã nguồn mở RTOS.

Tự động tạo Project dựa trên cấu hình ở trên. STM32CubeMX đầu tiên sẽ download driver của dòng chip cần cấu hình, sau đó tạo code và copy các driver cần thiết vào project, và tạo project trên các công cụ lập trình phổ biến như Keil hay IAR.

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

Hình 4.22 Phần mềm STM32CubeMX. *Cách 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.

- 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. Chọn loại MCU chính xác trong phần MCUs List. Nhấn OK.

Hình 4.23 Tạo Project.

Chọn ngoại vi cần dùng tại thẻ PinOut: (adsbygoogle = window.adsbygoogle || []).push({});

Trong danh sách Peripheral được liệt kê bên trái có cách ngoại vi mà MCU hỗ trợ, sử dụng ngoại vi nào thì Enable ngoại vi đó lên.

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

Tại hình MCU trong khung bên phải, 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.

Hình 4.24 Chọn ngoại vi.

Cấu hình xung đồng hồ cho ngoại vi tại thẻ Clock Configuration.

Hình 4.25 Điều chỉnh xung nhịp.

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

Hình 4.26 Cấu hình ngoại vi

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 như IAR, KeilC…

Hình 4.27 Xuất mã nguồn

4.4.2.2 Phần mềm Keil C:

Là phần mềm hỗ trợ người dùng trong việc lập trình vi điều khiển các dòng khác nhau (Atmel, AVR, …). Keil C giúp người dùng soạn thảo và biên dịch chương trình C hay cả ASM thành ngôn ngữ máy để nạp cho vi điều khiển giúp chúng ta tương tác giữa vi điều khiển với người lập trình.

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

Hình 4.28 Phần mềm Keil C Uvision 5 Tạo Project Keil C:

Mở Keil C lên Project -> new Uvision Project

Hình 4.29 Tạo Project Keil C

Sau đó đặt tên cho project, ví dụ: GPIOdemo và chọn thư mục lưu để project. Bạn nên đặt tên thư mục trùng tên project để dễ nhớ.

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

Hình 4.30 Đặt tên cho project.

Sau đó sẽ chọn chip chúng ta sử dụng:

Hình 4.31 Chọn chip

Tiếp theo, trong bảng Manage Run-Time Enviroment. Các bạn có thể tích để sử dụng CMSIS mới nhất của Keil C nó sẽ link với thư viện ổ C.

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

Hình 4.32 Chọn CMSIS.

Bây giờ bạn copy thư viện StdPeriph_Driver download ở post trước vào thư mục chứa project ‘GPIOdemo’.

Hình 4.33 Copy thư viện.

Tạo thêm folder User để cho file mình code vào đó. Thư mục project ‘GPIOdemo’ gồm các thư mục và file như dưới đây.

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

Hình 4.34 Tạo thêm Folder User

Bây giờ mở lại GPIOdemo project để cài đặt project. Cài đặt Create hex file tại tab Output. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.35 Cài đặt project

 Trong ô define điền: USE_STDPERIPH_DRIVER (Sử dụng thư viện peripheral của ST)

 STM32F10X_MD: Sử dụng chip medium destiny (STM32F103C8T6 là chíp medium destiny)

 Tích ô C99: Sử dụng chuẩn biên dịch C99. Nếu không tích sẽ gặp một số lỗi như biên dịch khi khai báo biến nằm thân chương trình.

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

Hình 4.36 Chuyển sang task C/C++

Vẫn trong tab C/C++ bạn cần trỏ tất cả đường dẫn tới folder chứa file và thư viện biên dịch như user, CMSIS, Startup, StdPeriph_Driver.

Hình 4.37 Trỏ tất cả đường dẫn tới folder chưa file

Cài đặt mạch nạp. Ở đây dùng STlink V2 để nạp code và debug. Nếu muốn kiếm tra xem mạch nạp và có hoạt động hay không chọn Setting.

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

Hình 4.38 Cài đặt mạch nạp.

Vậy là xong phần cài đặt Keil C. Bây giờ cần tạo file main.c bằng cách nhấn CTRL+N hoặc File->New.

Hình 4.39 Tạo file main.c

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

Hình 4.40 Lưu file main.c

4.4.2.3 Phần mềm lập trình cho điện thoại Android studio:

Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại smartphone, các tablet... Android Studio được đóng gói với một bộ code editor, debugger, các công cụ performance tool và một hệ thống build/deploy (trong đó có trình giả lập simulator để giả lập môi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phép các lập trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp.

Hình 4.41 Phần mềm Android studio

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

Bước 1: Khởi động Android Studio -> File -> chọn New -> chọn New Project -> Nhập tên ứng dụng (Application name), chỉ định thư mục chứa source code (Project location) -> chọn Next.

Hình 4.42 Tạo Project Android Studio

Bước 2: Chọn Phone and Tablet -> chọn phiên bản tối thiểu SDK (tương ứng với phiên bản hệ điều hành Android) -> chọn Next

Hình 4.43 Chọn Phone and Tablet

Bước 3: Chọn Activity, trong hình nhóm chọn Empty Activity (Việc lựa chọn Activity nào còn tùy thuộc vào mục đích của người phát triển ứng dụng) -> Next

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

Hình 4.44 Chọn Activity

Bước 4: Nhập tên cho Activity tại Activity Name -> Finish

Hình 4.45 Nhập tên cho Activity

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

Hình 4.46 Tạo thành công project (adsbygoogle = window.adsbygoogle || []).push({});

4.4.2.4. Tạo Firebase:

Bước 1: Vào đường dẫn https://firebase.google.com và click chọn “Đăng nhập” để đăng ký tài khoản.

Hình 4.47 Đăng ký tài khoản Firebase

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

Hình 4.48 Tạo project trên Frebase

Bước 3: Điền thông tin để tạo project

Hình 4.49 Điền thông tin tạo project

Bước 4: Giao diện sau khi tạo project

Hình 4.50 Giao diện sau khi tạo project

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

Hình 4.51 Tạo Database cho project

Bước 6: Giao diện sau khi tạo firebase

Hình 4.52 Giao diện sau khi tạo firebase

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

4.5.1 Viết tài liệu hướng dẫn

Bước 1: Cấp nguồn 5V cho ESP8266 và khối xử lý trung tâm bằng dây cáp USB chuẩn C đồng thời cấp nguồn 24V cho Driver điều khiển TB6600 cho toàn bộ hệ thống hoạt động.

Bước 2: ESP sẽ kết nối với WIFI và Firebase sau đó đợi tín hiệu gửi về từ App điện thoại.

Bước 3: Điều khiển bằng màn hình cảm ứng:

 Ban đầu màn hình sẽ hiển thị giao diện trang chủ gồm những thông tin về tên đề tài, giáo viên hướng dẫn, sinh viên thực hiện.

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

Hình 4.53 Giao diện trang chủ

 Khi nhấn mũi tên bên phải sẽ chuyển sang giao diện hiển thị các thông tin thời gian, nhấn mũi tên bên trái sẽ trở về giao diện trước đó.

Hình 4.54 Giao diện hiển thị các thông tin thời gian

 Tiếp tục nhấn mũi tên bên phải sẽ chuyển sang giao diện đăng nhập, khi trỏ vào ô “PASSWORD” thì sẽ xuất hiện bàn phím, nhập đúng password đề vào trang điều khiển.

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

Hình 4.55 Giao diện đăng nhập trên màn hình

Hình 4.56 Giao diện điều khiển

 Khi nhấn chọn ô thời gian nào điều chỉnh thì ô đó sẽ có viền màu đỏ. Hai nút “+”, “-“ bên trái để tăng giảm giá trị phút và hai nút “+”, “-“ bên phải để tăng giảm giá trị giây.

Bước 4: Điều khiển bằng App điện thoại:

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68 (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.57 Giao diện đăng nhập

 Nếu chưa có tài khoản thì nhấn đăng ký tài khoản mới

Hình 4.58 Đăng kí tài khoản

 Sau khi đăng nhập sẽ vào giao diện trang chủ gồm các thông tin về tên đề tài, giáo viên hướng dẫn, sinh viên thực hiện.

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

Hình 4.59 Giao diện trang chủ của app

 Khi nhấn NEXT sẽ chuyển sang giao diện giới thiệu về mô hình, khi nhấn BACK sẽ về giao diện trước đó.

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

Hình 4.60 Giao diện giới thiệu mô hình

 Khi tiếp tục nhấn NEXT sẽ chuyển sang giao diện cài đặt thời gian. Biểu tượng phía dưới bên phải để gửi dữ liệu lên Firebase, biểu tượng phía dưới bên trái để thêm các mốc thời gian mới, muốn xóa mốc thời gian thì nhấn giữ và chọn xóa.

Hình 4.61 Giao diện cài đặt thời gian

 Muốn gửi dữ liệu thời gian nào lên Firebase cần chọn các ô bên phải với các mốc thời gian tương ứng rồi nhấn vào biểu tượng phía dưới bên phải sau đó trên màn hình cảm ứng cũng sẽ cập nhật thời gian giống với app.

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

Hình 4.62 Cách gửi dữ liệu lên Firebase

 Để thay đổi giá trị thời gian nhấn vào mốc thời gian cần đổi và điều chỉnh.

Hình 4.63 Giao diện thay đổi giá trị thời gian

Bước 5: Trên màn hình cảm ứng khi thời gian thực bằng với giá trị thời gian đặt thì chương trình đánh trống sẽ hoạt động.

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

4.5.2 Quy tắc thao tác

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

CHƯƠNG 5: KẾT QUẢ THỰC HIỆN 5.1 KẾT QUẢ ĐẠT ĐƯỢC:

Sau 16 tuần thực hiện đề tài, trong quá trình nghiên cứu làm đồ án nhóm đã tìm hiểu được nhiều vấn đề và kiến thức mới.

Trong đề tài này động cơ bước là động cơ được sử dụng, qua đó nhóm đã biết được cách sử dụng cũng như nguyên lí hoạt động của động cơ để có thể áp dụng vào đề tài, ngoài ra nâng cao thêm kiến thức, cách lựa chọn và phân biệt giữa các loại động cơ bước khác.

Đối với phần hiển thị và điều khiển, nhóm đã chọn màn hình cảm ứng TFT, qua đó biết được sử dụng cũng như thiết kế giao diện và điều khiển bằng cảm ứng.

Biết được cách để tạo một hệ cơ sở dữ liệu để lưu trữ và giám sát bằng Firebase. Hiểu về cách sử dụng các chức năng, thư viện của nhà sản xuất cung cấp, cũng như cách giao tiếp giữa STM32 với các Module khác, trong đề tài này nhóm đã thực hiện được việc giao tiếp giữa STM32 với màn hình cảm ứng, truyền nhận dữ liệu với module ESP8266 và App Android.

Trong đề tài nhóm có sử dụng một mô hình để mô tả hệ thống, mô hình có sử dụng cơ chế đòn bẩy gồm có lò xo, ổ bi, thanh truyền. Lợi dụng lực kéo lò xo để tạo lực quay cánh tay Robot. Qua đó biết được cơ chế hoạt động của cơ chế đòn bẩy.

5.2 KẾT QUẢ THỰC NGHIỆM: 5.2.1 Mô hình sản phẩm: 5.2.1 Mô hình sản phẩm:

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

5.2.2 Khởi động hệ thống:

Hình 5. 2 Màn hình khi cấp nguồn. (adsbygoogle = window.adsbygoogle || []).push({});

Hệ thống khi cấp nguồn vào thì sẽ hiển thị lên giao diện như hình 5.2 đồng thời Robot chưa hoạt động.

Hình 5.3 App Android khi mới mở lên.

Khi mở ứng dụng lên thì giao diện trên điện thoại sẽ xuất hiện như hình.

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

Hình 5.4 Giao diện chuyển sang quan sát thời gian.

Khi nhấn vào nút chuyển sang trang góc dưới bên phải màn hình thì sẽ chuyển sang trang khác để quan sát thời gian, tiếp tục nhấn sẽ chuyển sang giao diện đăng nhập.

Hình 5.5 Giao diện đăng nhập của màn hình cảm ứng.

Hình 5.6 Giao diện điện thoại hiển thị giờ chỉnh

Lúc này trên App điện thoại sẽ hiển thị những giá trị thời gian để người dùng chỉnh sửa giá trị cài.

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

Hình 5.7 Giao diện chuyển sang trang cài đặt thời gian

Khi nhấn vào nút chuyển sang trang góc dưới bên phải màn hình thì sẽ chuyển sang trang khác để thực hiện việc tùy chỉnh thời gian để đánh trống. Nếu thời gian cài đặt bằng với thời gian thực đang chạy thì Robot sẽ đánh trống.

Hình 5.8 Giao diện chỉnh và cài đặt thời gian trên App Android.

Một phần của tài liệu Thiết kế và thi công ROBOT đánh trống trường học (Trang 63)