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

Báo Cáo Hệ Thống Nhúng Và Thiết Kế Giao Tiếp Nhúng Đề Tài Điều Khiển Máy Bán Hàng Tự Động.pdf

24 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Điều khiển máy bán hàng tự động
Tác giả Trần Đình Sơn, Trần Văn Sỹ, Đỗ Trọng Hoàng Nam, Nguyễn Thiện Đăng
Người hướng dẫn TS. Phạm Văn Tiến
Trường học Đại Học Bách Khoa Hà Nội, Trường Điện – Điện Tử
Chuyên ngành Hệ Thống Nhúng Và Thiết Kế Giao Tiếp Nhúng
Thể loại Báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 24
Dung lượng 2,43 MB

Nội dung

ĐẠI HỌC BÁCH KHOA HÀ NỘITRƯỜNG ĐIỆN – ĐIỆN TỬ BÁO CÁO HỆ THỐNG NHÚNG VÀ THIẾT KẾ GIAO TIẾP NHÚNG Đề tài: Điều khiển máy bán hàng tự động Nhóm sinh viên thực hiện:... Những lợi ích mà má

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

BÁO CÁO HỆ THỐNG NHÚNG VÀ THIẾT KẾ

GIAO TIẾP NHÚNG

Đề tài: Điều khiển máy bán hàng tự động

Nhóm sinh viên thực hiện:

Trang 2

LỜI NÓI ĐẦU

Những máy bán hàng tự động xuất hiện trong những năm gần đây đã tạo ra sự phát triển mạnh mẽ các dịch vụ công cộng như bán nước uống, đồ ăn nhanh xuất hiện chủ yếu ở những chỗ tập trung đông người như: siêu thị, ngân hàng, hoặc ở những khu vuichơi giải trí

Những lợi ích mà máy bán hàng tự động đem lại cho chúng ta là rất lớn, cụ thể như:

- Với một chiếc máy bán hàng, việc mua bán có thể diễn ra bất cứ thời gian nào, trong điều kiện thời tiết nào

- Máy bán hàng tự động có thể coi tương đương một quầy hàng nhỏ, chuyên bán một

số mặt hàng Hơn nữa quầy hàng này không cần nhân viên bán hàng, nên tiết kiệm được tiền lương trả cho nhân viên

- Máy bán hàng tự động có diện tích nhỏ nên có thể đặt được ở nhiều nơi, tận dụng được nhiều khoảng trống, và có thể tiết kiệm được tiền thuê mặt bằng

- Mọi người thường có tâm lý e ngại khi mua một số mặt hàng ở các quầy hàng, thì việc mua ở các máy bán hàng tự động, hoàn toàn thoải mái

- Các loại máy bán hàng tự động được thiết kế giao tiếp ngày càng thân thiện với người sử dụng.Việc thực hiện mua sản phẩm rất dễ dàng, và không sai xót Các máy hiện đại có khả năng thanh toán bằng thẻ tín dụng, nên có thể giảm được lượng tiền mặt lưu thông trên thị trường

Từ nhu cầu thực tiễn và lợi ích của xã hội ta thấy máy bán hàng tự động là rất cần thiết trong một xã hội phát triển Máy bán hàng tự động là một cụm từ chung, như các máy bán cà phê, máy nạp thẻ điện thoại tự động, máy bán đồ ăn nhanh tự đông Nên nhóm quyết định chọn đề tài Thiết kế máy bán hàng tự động, cụ thể là máy bán cà phê

tự động

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU

PHẦN I BÁO CÁO NHÓM

CHƯƠNG 1 XÁC ĐỊNH CHỈ TIÊU KỸ THUẬT

1.1 Yêu cầu chức năng

CHƯƠNG 2 MÔ HÌNH HOÁ HỆ THỐNG

2.1 Mô hình hoá hệ thống bằng công cụ UML

2.1.1 Use case diagram

2.1.2 State diagram

2.1.3 Sequence diagram

2.2 Mô hình hóa hệ thống

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG

3.1 Thiết kế phần cứng

3.1.1 Raspberry pi 3 B+

3.1.2 Màn hình LCD LM016L

3.1.3 Động cơ Servo MG 996

CHƯƠNG 4 THIẾT KẾ GIAO TIẾP NGOẠI VI

4.1 Phần mềm Proteus

4.2 Giao tiếp Raspberry Pi 3 với các ngoại vi

4.2.1 Raspberry Pi 3 với màn hình LCD 16x2

4.2.2 Raspberry pi 3 và các button mô phỏng

CHƯƠNG 5 TỔNG HỢP, CẤU HÌNH, BIÊN DỊCH HỆ ĐIỀU HÀNH

5.1 Tổng quan về hệ điều hành Raspberry pi

5.2 Cài đặt các gói cho hệ điều hành

5.2.1 Cài đặt RPi.GPIO

5.2.2 Cài đặt Linux-header

CHƯƠNG 6 PHÁT TRIỂN DEVICE DRIVER

6.1 Tổng quan về device driver

6.2 Thiết kế device driver

CHƯƠNG 7 TRIỂN KHAI, THỬ NGHIỆM TOÀN HỆ THỐNG

7.1 Sơ đồ mạch mô phỏng trên proteus

7.2 Thực hiện mô phỏng

CHƯƠNG 8 ĐÁNH GIÁ KẾT QUẢ VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

8.1 Đánh giá kết quả

8.2 Định hướng phát triển

PHẦN II BÁO CÁO CÁ NHÂN

1. Trầần Đình S nơ

Trang 4

2. Đỗỗ Tr ng Hoàng Namọ

3. Nguyễỗn Thi n Đăngệ

4 Nguyễỗn Văn Sĩ………

KẾT LUẬN

PHẦN I BÁO CÁO NHÓM

CHƯƠNG 1 XÁC ĐỊNH CHỈ TIÊU KỸ THUẬT

Trang 5

1.1 Yêu cầu chức năng

Thiết kế máy bán cà phê tự động với những chức năng sau đây:

Thời gian pha chế 1 sản phẩm:

Máy phân biệt được các loại tiền Polime: 10000đ, 20000đ,…

Thông báo khi không còn đủ nguyên liệu pha chế

CHƯƠNG 2 MÔ HÌNH HOÁ HỆ THỐNG

UML (Unified Modeling Language) là ngôn ngữ dành cho viê nc đă nc tả, hình dung, xây dựng và làm tài liê nu của các hê n thống phần mềm và cả hẹ thống không phải phần mềm UML tạo cơ hô ni để viết thiết kế hê n thống, bao gồm những khái niê nm như tiến trình nghiê np vụ và các chức năng của hê n thống Dựa vào chỉ tiêu kĩ thuật đã được

đề cập trong chương 1, nhóm thực hiện thiết kế hệ thống thang máy sử dụng UML

2.1.1 Use case diagram

Tất cả các phần của hệ thống tương tác với con người hoặc các tác nhân tự động sử dụng hệ thống cho một số mục đích và cả con người và tác nhân đều mong đợi hệ thống hoạt động theo những cách có thể dự đoán được Trong UML, use case diagram được sử dụng để mô hình hóa các hành vi của một hệ thống hoặc một phần của hệ thống

Trang 6

Hình 2 1 Use case Diagram

2.1.2 State diagram

Biểu đồ trạng thái là một trong năm biểu đồ UML được sử dụng để mô hình hóa bản chất động của hệ thống Chúng xác định các trạng thái khác nhau của một đối tượng trong suốt thời gian tồn tại của nó và các trạng thái này được thay đổi bởi các sựkiện Dưới đây là sơ đồ thể hiện quá trình chuyển đổi trạng thái của hệ thống

Trang 7

Hình 2 2 State Diagram

2.1.3 Sequence diagram

Sequence Diagarm là bản vẽ mô tả sự tương tác của các đối tượng để tạo nên các chức năng của hệ thống Bản vẽ này mô tả sự tương tác theo thời gian nên rất phù hợp với việc sử dụng để thiết kế và cài đặt chức năng cho hệ thống phần mềm Dưới đây là biểu đồ tuần tự của hệ thống

Trang 8

Hình 2 3 Sequence Diagram

2.2 Mỗ hình hoá h thỗốngệ

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG

Trang 9

3.1 Thiết kế phần cứng

3.1.1 Raspberry pi 3 B+

Là một loại máy tính nhúng có hiệu năng hoạt động mạnh mẽ, vi xử lý tốc độ cao và dung lượng ram lớn, phù hợp cho hệ thống máy bán hàng tự động Ngoài ra, máy tính nhúng này có khá nhiều cổng giao tiếp như HDMI, ETHERNET, USB, … phù hợp cho việc kết nối với nhiều thiết bị ngoại vi

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

Trang 10

Màn hình này có hai dòng hiển thị thông tin, giá thành thấp được sử dụng rộng rãi trong các dự án điện tử và lập trình

Thông số kĩ thuật sản phẩm:

LCD 16×2 có 14 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN)

3 chân còn lại dùng để cấp nguồn cho sản phẩm

Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu

Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi

Hình 3 2 Màn hình LCD 16x2

3.1.3 Động cơ Servo MG 996

Động cơ servo là một động cơ cơ vòng kín sử dụng phản hồi vị trí để điều khiển chuyển động và vị trí cuối cùng của nó Đầu vào cho điều khiển của nó là tín hiệu (tương tự hoặc kỹ thuật số) đại diện cho vị trí được chỉ huy cho trục đầu ra.Thông số kỹ thuật:

Loại: Analog RC Servo

Điện áp hoạt động: 4.8 – 6.6V

Lực kéo:

3.5 kg-cm (180.5 ozin) at 4.8V-1.5A5.5 kg-cm (208.3 ozin) at 6V-1.5ATốc độ quay:

0.17sec/60 degrees (4.8V no load)

0.13sec/60 degrees (6.0V no load)

Kích thước: 40mm x 20 mm x 43mm

Trang 11

Hình 3 3 Servo mô tơ

3.1.4 Nguồn tổ ong

Nguồn tổ ong 12V 30A còn được gọi là bộ nguồn một chiều hay nguồn DC 12 Volt được thiết kế để chuyển đổi điện áp từ nguồn xoay chiều 110/220VAC thành nguồn một chiều 12VDC để cung cấp cho các thiết bị hoạt động Nguồn tổ ong này được sử dụng rộng rãi trong các thiết bị công nghiệp và dân dụng

Trong công nghiệp chúng thường được sử dụng để cấp nguồn cho một số thiết

bị của tủ điện Nguồn tổ ong 12V 30A thích hợp với các hệ thống yêu cầu nguồn có công suất cao (dòng tải lớn) như: Các hệ thống chiếu sáng led, led quảng cáo, camera, loa đài, máy in 3D,…

Trang 12

Hình 3 4 Nguồn tổ ong AC - DC

3.1.5 Bộ hạ áp LM2596S

Mạch giảm áp DC-DC Buck LM2596 3A có kích thước nhỏ gọn có khả năng giảm áp từ 30VDC xuống 1.5VDC mà vẫn đạt hiệu suất cao (92%), thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, robot,

Kích thước: 45 (dài) * 20 (rộng) * 14 (cao) mm

Module có 2 đầu vào IN, OUT, 1 biến trở để chỉnh áp đầu ra Khi cấp điện cho đầu vào (IN) thì người dùng vặn biến trở và dùng VOM để đo mức áp ở đầu ra (OUT) để đạt mức điện áp mà mình mong muốn Điện áp đầu vào từ 4-35V, điện áp ra từ 1,25-30V, dòng Max 3A, có thể cấp nguồn sử dụng tốt cho raspberry và module sim…

Trang 13

Từ những use case, state, sequence diagram đã được thiết kế, em đã viết một chương trình điều khiển máy bán hàng tự động dựa vào ngôn ngữ python, chương trình này sẽ sử dụng thư viện GPIO để giao tiếp với các thiết bị ngoại vi Đồng thời, chương trình cũng sử dụng các biến để lưu lại

số tiền người dung nhập vào, sản phẩm người dùng đã chọn, lượng nguyên liệu còn lại, … cũng như có các hàm, thread để tiến hành bật, tắt các motor servor, các module Relay và Heater

Trang 14

Kết quả đạt được : Chương trình chạy thành công, đúng với use case, state

và sequence diagram Các button giả lập chọn sản phẩm, nạp tiền hoạt động

ổn định, màn hình LCD hiển thị đúng và các thiết bị được kết nối như motor sevor, các module relay, heater hoạt động ổn định, đúng theo như yêu cầu

Trang 15

2 TRẦN VĂN SỸ

2.1 Mô hình hóa hệ thống bằng UML:

-Use Case Diagram:

-State Diagram:

Trang 16

2.2 Kết nối raspberry pi với màn hình LCD:

Trong quá trình tìm hiểu về các thiết bị ngoại vi như màn hình LCD, moto servo, button Em đã thực hiện mô phỏng kết nối Raspberry pi với màn hình LCD

Trang 17

Màn hình LCD loại 16x2 bao gồm 14 chân gồm:

-VDD, VSS lần lượt là hai chân cấp nguồn và chân nối đất cho màn hình Chân VEE dùng để điều khiển độ tương phản cho màn hình

-Ba chân điều khiển gồm chân RS, RW và chân E Trong bài này em sử dụng màn hình LCD cho việc ghi dữ liệu nên chân RW sẽ được nối đất

-Các chân từ D0-D7 là các đường bus dữ liệu dùng để trao đổi thông tin Màn hình có hai chế độ sử dụng đó là chế độ 8 bus và chế độ 4 bus Trong bài tập lớn này chúng

em sử dụng LCD ở chế độ 4 bus sử dụng các chân từ D4-D7

Ta sử dụng giao tiếp GPIO để kết nối Raspberry pi 3 với màn hình LCD Chân 4,

5, 6, 11, 12, 13, 14 lần lượt được nối với chân GPIO5, GPIO6, GPIO12, GPIO13,

Trang 18

GPIO16, GPIO19 của raspberry pi 3 Ta khởi tạo các chân GPIO nối với LCD ở chế

độ Output Tiếp đến khởi tạo và viết hàm xuất ký tự ra màn hình LCD để tiện cho việc

sử dụng:

Hàm khởi tạo:

Hàm xuất kí tự ra màn hình:

Trang 19

Kết quả đạt được: Mô hình hóa được hệ thống và trạng thái hoạt động của hệ thống bằng sơ đồ use case diagram và sơ đồ state diagram Mô phỏng thành công Raspberry pi kết nối với các thiết bị ngoại vi, mô tả được hệ thống trên proteus.

3 Nguyễn Thiện Đăng

3.1 Tìm hiểu, cấu hình, biên dịch hệ điều hành

Hệ điều hành Raspbian là hệ điều hành máy tính dựa trên Debian cho Raspberry

Pi Do điều kiện thiết bị không đủ nên em sẽ chỉ cài hệ điều hành này thông qua phần mềm vmware Vmware giúp ta có thể sử dụng được nhiều máy ảo với các

hệ điều hành khác nhau như ubuntu, Debian… Sau khi cài xong ta có thể thấy giao diện hệ điều hành như hình dưới và có thể sử dụng chúng

Sau khi cài được hệ điều hành, em có tìm cách cấu hình và biên dịch Khi tìm hiểu trên mạng để làm việc với raspberry pi thì điều cần làm là cài đặt thư viện

để điều khiển các chân GPIO Chính vì vậy em sẽ cài thư viện bằng lệnh sudo apt-get install rpi.gpio và được kết quả như hình dưới

Trang 20

Tiếp đến sẽ cài linux-headers để biên dịch chương trình Sử dụng lệnh sudo get install linux-headers-$(uname-r) để cài đặt

apt-Sử dụng lệnh sudo make để tiến hành biên dịch device driver cho hệ điều hành

Sau khi có file code c và sử dụng lệnh make để biên dịch thì sẽ xuất hiện modulefile ko Module file.ko có thể hiểu như một đối tượng kernel đang được tải vào trong kernel

Tiếp đó ta sẽ load device driver sử dụng lệnh sudo insmod <module name>

Sử dụng lệnh dmesg để kiểm tra log file

Để unload device driver ta sử dụng lệnh sudo rmmod <module name>Khi unload device driver nó sẽ thực hiện hàm exit

Để xem thông tin về module ta có thể sử dụng lệnh sudo modinfo <module name>

Trang 21

3.2 Tìm hiểu Kernel thread

Process thể hiện sự thực thi của một chương trình Một thread là một luồng điều khiển độc lập hoạt động trong cùng một không gian địa chỉ như các luồng điều khiển độc lập khác trong một quy trình Trong process thì sẽ có nhiều thread thực thi đồng thời các mã khác nhau, đồng thời chia sẻ dữ liệu với nhau Do các thread chia sẻ cùng một không gian địa chỉ trong process nên việc giao tiếp sẽ dễ dàng hơn và ít tốn thời gian hơn so với các process với nhau

3.3 Kernel thread – Device driver

Trong bài này em sẽ sử dụng một số function để tạo kernel thread, chạy kernel thread, dừng kernel thread

Để tạo kernel thread em sẽ dùng kthread_create()

Để chạy kernel thread em sẽ dùng wake_up_process()

Để dừng kernel thread em sẽ dùng kthread_stop()

Hàm thread thể hiện các thread đang chạy

Sau khi chạy lệnh make và thêm module vào device driver thì và kiểm tra log file ta

có thể thấy kết quả các thread đang chạy

Sau đó có thể sử dụng lệnh rmmod để tháo module

Kết quả đạt được: Em đã tìm hiểu được cách biên dịch, tháo, lắp module device driver.Ngoài ra cũng đã thử nghiệm mô phỏng kernel thread để hiểu hơn về thread

Trang 22

Kết quả chưa đạt được: Ban đầu em có ý định thực hiện biên dịch device driver để điều khiển Led sáng qua raspberry pi nhưng do điều kiện về thiết bị, không có thiết bị

để test nên em không thực hiện được

Chân GPIO17 dùng để yêu cầu huỷ bỏ lựa chọn đã mua

Tiếp đó ta liên kết các motor sevor đảm nhiệm các chức năng đóng mở các bình chứa nguyên liệu cafe, sữa, nước Các motor sevor được liên kết lần lượt với các chân GPIO của raspberry 3 là 22, 23, 24

Motor sevor thứ 4 đảm nhiệm chức năng đưa ra sản phẩm ra cho khách cũng như đảm nhiệm việc đóng các bình lại

Trang 23

Tiếp theo sẽ gồm 2 module Pump và module Heater:

Module Pump có tác dụng sau khi nhận được lệnh sẽ có tác dụng bơm lượng nước vừa đủ để pha chế lên

Module Heater có trách nhiệm đun nước và đổ hỗn hợp các thành phần lại với nhau để pha chế

2 module này được liên kết lần lượt với các chân GPIO18 và GPIO274.2 Mô phỏng sản phẩm trên Proteus

Sau khi liên kết các thành phần với nhau ta được mạch mô phỏng

Trang 24

KẾT LUẬN

Nhờ sự hướng dẫn của Thầy Phạm Văn Tiến và qua quá trình tìm hiểu, chúng em

đã hiểu biết them được nhiều kiến thức để thiết kế một hệ thống nhúng hoàn chỉnh, từ các bước thiết kế, các công cụ thiết kế tổng quan, các công cụ mô phỏng,…

Trong khoảng thời gian của kì học, chúng em cũng đã cố gắng tìm hiểu về các kiếnthức của môn học Song, do môn học có rất nhiều kiến thức, mang tính hệ thống trong khi trình độ chúng em còn hạn chế, nhiều phần kiến thức chúng em chưa hiểu sâu và cần cố gắng nhiều để thực hành được thêm các nội dung đã học

Nhóm chúng em gửi đến Thầy lời cảm ơn chân thành về những giờ lên lớp tận tâm

và những chia sẻ quý báu từ Thầy!

TÀI LIỆU THAM KHẢO

https://www.apriorit.com/dev-blog/195-simple-driver-for-linux-os

https://thesecmaster.com/install-raspberry-pi-os-on-vmware-workstation

Ngày đăng: 25/05/2024, 18:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w