Tải bản đầy đủ (.pdf) (24 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.18 MB, 24 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC BÁCH KHOA HÀ NỘITRƯỜNG ĐIỆN – ĐIỆN TỬ</b>

<b>BÁO CÁO HỆ THỐNG NHÚNG VÀ THIẾT KẾ GIAO TIẾP NHÚNG</b>

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

<b>Nhóm sinh viên thực hiện:</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI NÓI ĐẦU</b>

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 tố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.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

MỤC LỤC

<b>LỜI NÓI ĐẦU...</b>

<b>PHẦN I. BÁO CÁO NHÓM...</b>

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

<b>1.1Yêu cầu chức năng...</b>

<b>CHƯƠNG 2. MƠ HÌNH HỐ HỆ THỐNG...</b>

<b>2.1.Mơ hình hố hệ thống bằng công cụ UML...</b>

<b>2.1.1Use case diagram...</b>

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

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

<b>5.1Tổng quan về hệ điều hành Raspberry pi...</b>

<b>5.2Cài đặt các gói cho hệ điều hành...</b>

5.2.1 Cài đặt RPi.GPIO...

5.2.2 Cài đặt Linux-header...

<b>CHƯƠNG 6. PHÁT TRIỂN DEVICE DRIVER...</b>

<b>6.1Tổng quan về device driver...</b>

<b>6.2Thiết kế device driver...</b>

<b>CHƯƠNG 7. TRIỂN KHAI, THỬ NGHIỆM TỒN HỆ THỐNG...</b>

<b>7.1Sơ đồ mạch mơ phỏng trên proteus...</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>1.1Yêu cầu chức năng</b>

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 đủ ngun liệu pha chế

<b>CHƯƠNG 2. MƠ HÌNH HỐ HỆ THỐNG</b>

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.

<b>2.1.1 Use case diagram</b>

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ự đố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.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Hình 2. 1 Use case Diagram

<b>2.1.2 State diagram</b>

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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Hình 2. 2 State Diagram

<b>2.1.3. Sequence diagram</b>

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Hình 2. 3 Sequence Diagram

2.2. Mỗ hình hố h thỗốngệ

<b>CHƯƠNG 3. THIẾT KẾ HỆ THỐNG</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>3.1Thiết kế phần cứng</b>

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. Ngồ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.

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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.6VLự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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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 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,…

Thông số kỹ thuật:

Điện áp vào: 110VAC, 220VACĐiện áp ra: 9VDC~14VDC Cơng suất: 360WDịng điện ra: tối đa 30ATần số: 0-50Hz

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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,...

Thông số kỹ thuật:Điện áp vào: 3-40VĐiện áp ra: 1.5-35VDịng đầu ra: 3ACơng suất: 15W

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…

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>2. TRẦN VĂN SỸ</b>

2.1 Mơ hình hóa hệ thống bằng UML:-Use Case Diagram:

-State Diagram:

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="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,

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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ệcsử dụng:

Hàm khởi tạo:

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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.

<b>3.Nguyễn Thiện Đăng</b>

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

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

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>3.2 Tìm hiểu Kernel thread</b>

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.

<b>3.3. Kernel thread – Device driver</b>

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.Ngồi ra cũng đã thử nghiệm mơ phỏng kernel thread để hiểu hơn về thread.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>KẾT LUẬN</b>

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âmvà những chia sẻ quý báu từ Thầy!

<b>TÀI LIỆU THAM KHẢO</b>


×