Đồ án thiết kế hệ thống quản lý thư viện tự động Video tham khảo: https://www.youtube.com/watch?v=4jnCLRxSjvo File tải về có đầy đủ dữ liệu để chế tạo mô hình gồm phần mềm, code, báo cáo...
Trang 1Mục Lục
Lời cảm ơn i
Lời cam đoan ii
Mục Lục iii
Danh mục hình ảnh vi
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu nghiên cứu của đề tài 2
3 Đối tượng nghiên cứu 2
4 Ý nghĩa 2
5 Bố cục đề tài 3
Chương I TỔNG QUAN TÀI LIỆU 4
1.1 Khái niệm quản lý thư viện 4
1.2 Giới thiệu thư viện tự động hóa Joe and Rika Mansueto 5
1.3 Công nghệ QR Code 7
1.4 Phần mền QT Creator 8
1.5 Phần mền Arduino IDE 9
Chương II NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 10
2.1 Bản vẽ mô hình 10
2.2 Các thiết bị, vật liệu sử dụng trong mô hình 11
2.2.1 Raspberry pi 3B+ 11
i
Trang 22.2.2 Camera 13
2.2.3 Arduino nano 14
2.2.4 Module điều khiển động cơ 18
2.2.5 Module điều khiển động cơ DRV8833 19
2.2.6 Động cơ giảm tốc 20
2.2.7 Động cơ servo 21
2.2.8 Công tắc hành trình 22
2.3 Lập trình ứng dụng cho raspberry pi bằng QT Creator 23
2.3.1 Cài hệ điều hành cho raspberry pi 23
2.3.2 Viết ứng dụng cho raspberry pi 24
2.4 Phân tích hệ thống quản lý thư viện tự động 31
2.5 Sơ đồ nguyên lý 33
2.6 Sơ đồ điều khiển 34
2.7 Nguyên lý điều khiển 36
Chương III KẾT QUẢ VÀ THẢO LUẬN 41
3.1 Kết quả 41
3.1.1 Mô hình thư viện 41
3.1.2 Phần mềm 42
3.1.3 Chạy thử mô hình 45
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52
1 Kết luận 52
2 Kiến nghị 52
Trang 3TÀI LIỆU THAM KHẢO 53
PHỤ LỤC 54
Trang 4Danh mục hình ảnh
Hình 1.1: Hệ thông lưu trữ và truy xuất tự động dưới lòng đất thư viện Joe and Rika
Mansueto 6
Hình 1.2: Mã QR code 7
Hình 1.3: Giao diện phần mềm QT Creator 9
Hình 1.4: Giao diện phần mềm arduino 9
Hình 2.1: Bản vẽ mô hình……… 10
HÌnh 2.2: Máy tính nhúng Raspberry pi 13
Hình 2.3: Camera cho raspberry pi 14
Hình 2.4: Mạch arduino 15
Hình 2.5: Sơ đồ cổng IPSC 17
Hình 2.6: Mạch điều khiển động cơ L298 19
Hình 2.7: Module điều khiển động cơ DRV8833 20
Hình 2.8: Động cơ giảm tốc 20
Hình 2.9: Động cơ servo 21
Hình 2.10: Công tắc hành trình 22
Hình 2.11: Cài hệ điều hành cho raspberry pi 23
Hình 2.12: Chọn project 24
Hình 2.13: Cài vị trí lưu project 24
Hình 2.14: Chọn trình biên dịch 25
Hình 2.15: Thiết kế giao diện 25
Trang 5Hình 2.16: Viết code chính cho phần mềm 26
Hình 2.17: Cài đặt qt5 và serial 26
Hình 2.18: Build project 27
Hình 2.19: Mở phần mềm 27
Hình 2.20: Bảng accounts 28
Hình 2.21: Bảng books 28
Hình 2.22: Bảng logs 29
Hình 2.23: Cấu trúc thư mục phần mềm 30
Hình 2.24: Sơ đồ nguyên lý 33
Hình 2.25: Sơ đồ mạch điều khiển 34
Hình 2.26: Thuật toán điều khiển tổng 36
Hình 2.27: Thuật toán điều khiển robot 38
Hình 3.1: Mô hình hoàn chỉnh……… 39
Hình 3.2: Màn hình đăng nhập 40
Hình 3.3: Thông tin tài khoản 40
Hình 3.4: Quản lý thư viện 41
Hình 3.5: Quản lý tài khoản 41
Hình 3.6: Tủ sách người dùng 42
Hình 3.7: Thư viện sách 42
Hình 3.8: Đăng nhập vào phần mềm quản lý thư viện 43
Hình 3.9: Chọn sách cần mượn 43
Hình 3.10: Robot đến vị trí của sách trong giá sách và lấy sách 44
Trang 6Hình 3.11: Đợi người dùng lấy sách 44
Hình 3.12: Hãy lấy sách trong khay 45
Hình 3.13: Thông báo “bạn đã lấy sách” 45
Hình 3.14: Chọn sách cần trả và nhấn “trả sách” 46
Hình 3.15: Đặt sách cần trả vào trong khay để sách 46
Hình 3.16: Camera chụp ảnh kiểm tra 47
Hình 3.17: Thông báo sau quá trình kiểm tra sách 47
Hình 3.18: Robot cất sách 48
Hình 3.19: Robot về lại vị trí ban đầu 48
Hình 3.20: Thông báo trả sách thành công 49
Trang 7MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong thời gian gần đây thuật ngữ “Cách mạng 4.0” được dư luận và xã hội quantâm, nhắc đến rất nhiều Thuật ngữ này xuất hiện trên các tin tức phóng sự, tạp chíchuyên ngành, và thậm chí là cả những nghiên cứu mang tính học thuật cao Trước sựtác động mạnh mẽ của cuộc Cách mạng 4.0 đã có nhiều hội thảo nghiên cứu và đánhgiá, đặc biệt trong lĩnh vực thông tin – thư viện đã có nhiều hội thảo gồm nhiều bàinghiên cứu chuyên sâu về chủ đề này, có thể kể đến như: Hội thảo Khoa học Thông tin– Thư viện: Tác động của cuộc cách mạng công nghiệp 4.0 đến hoạt động thông tin –thư viện (2017), Hội thảo Tác động của cuộc cách mạng công nghiệp lần thứ 4 tới hoạtđộng thông tin khoa học và công nghệ (2018), Hội thảo Tác động của cách mạng côngnghiệp lần thứ 4 vào lĩnh vực thư viện (2019) Trong khuôn khổ đề tài này tôi muốnhướng tới một giải pháp tối ưu tự động hóa trong lĩnh vực thông tin - thư viện là ápdụng công nghệ QR Code, hệ thống robot để đáp ứng và phù hợp với cuộc cách mạng4.0 đang dần rõ nét hiện nay
Xuất phát từ ý tưởng mang đến sự hiện đại cho không gian văn hóa đọc, nơi bổ íchnhưng kém hấp dẫn với những bạn trẻ năng động Thư viện Mượn Sách Tự động giúpngười dùng không tốn quá nhiều thời gian khi mượn sách, xếp hàng đợi chờ khi đông
đúc, giảm việc lệ thuộc vào người thủ thư, vậy nên em đã thực hiện đồ án “Thiết kế hệ
thống quản lý thư viện tự động” dưới sự hướng dẫn của giảng viên xxxxxxxxxxxxx.
1
Trang 82 Mục tiêu nghiên cứu của đề tài
- Trong quá trình thực hiện chuyên đề cần nắm vững các kiến thức cần thiết để xâydựng được một mô hình thư viện từ hệ thống điều khiển đến cơ cấu xử lý
- Phân tích làm rõ trang thư viện tự động, nó có phổ biến hay không
- Mô tả thực trạng: Tại sao các thư viện cổ điển lại cần một hệ thống tự động…
- Hỗ trợ tốt cho công việc quản lý sách báo và tài liệu của thư viện, giúp ngườidùng tìm kiếm tiếp cận dễ dàng đến thư viện hơn
- Phân tích thiết kế hệ thống thư viện tự động với các chức năng cần thiết để phục vụcho việc mượn trả sách trong thư viện
- Nâng cao kỹ năng phân tích khảo sát người dùng để đưa ra những thay đổi để hệthống được tối ưu
- Giúp cho việc quản lý thông tin được tối ưu, thông báo dễ dàng thuận tiện, nhanhchóng phục vụ tốt cho một thư viện
3 Đối tượng nghiên cứu
Đề tài được thực hiện tại Học viện Nông nghiệp Việt Nam với việc nghiên cứu chếtạo thực hiện mô hình quản lý thư viện tự động
4 Ý nghĩa
Theo đó, người dùng chỉ cần đăng ký tài khoản do thư viện cấp nên không cầnmang thẻ thư viện hoặc tiền cọc, thủ thư không cần phải luôn luôn túc trực ghi phiếumượn để phục vụ khi có người dùng Thủ thư chỉ trợ giúp người mượn sách khi có
sự cố xảy ra
Thư viện sẽ quản lý dễ dàng hơn, có thể mở cửa 24/24 Tạo ra sự thuận tiện cho
người dung, thu hút giới trẻ nhiều hơn Từ đó thấy việc thiết kế “hệ thống quản lý
thư viện tự động” là rất cần thiết cho xã hội hiện đại ngày nay.
Trang 9- Phần kết luận và hướng phát triển
- Phần tài liệu tham khảo
- Phụ lục
Trang 10Chương I TỔNG QUAN TÀI LIỆU
1.1 Khái niệm quản lý thư viện
Trong một số tài liệu chuyên môn về thư viện đã có các định nghĩa về quản lý thưviện (QLTV) như sau:
Là sự tác động có chủ đích tới tập thể người lao động để tổ chức và phối hợp hoạtđộng của họ trong quá trình thực hiện các mục đích và nhiệm vụ đề ra QLTV dựa trênquyền hạn được quy định và cùng với nó là sự tác động tổ chức, điều hành
Là hoạt động được các cán bộ lãnh đạo và tập thể viên chức thực hiện một cách tựgiác và có kế hoạch nhằm đảm bảo cho sự hoạt động và phát triển bình thường của thưviện, bao gồm: kế hoạch, tổ chức và kích thích lao động, quản lý các quá trình thư viện,thống kê và kiểm tra công việc, công tác cán bộ (tổ chức cán bộ)
Quản lý thư viện hiện đại
Thư viện hiện đại là một loại thư viện được áp dụng những thành tựu mới nhất củakhoa học kỹ thuật mà cụ thể là công nghệ thông tin (CNTT) Dưới tác động của ứngdụng CNTT, thư viện hiện đại có rất nhiều thay đổi: từ cơ cấu tổ chức, nguồn nhân lựccho đến cơ sở vật chất trang thiết bị Tuỳ thuộc vào mức độ ứng dụng CNTT vào hoạtđộng của thư viện mà người ta xây dựng thư viện hiện đại với các cấp độ khác nhau vàtương ứng với chúng là những tên gọi khác nhau như: thư viện đa phương tiện, thưviện lai, thư viện điện tử , thư viện số, thư viện ảo… Nói một cách khác, nhắc đến têncác thư viện này thì ta đều hiểu chúng là các thư viện hiện đại Ví dụ, thư viện đaphương tiện hay thư viện lai là thư viện hiện đại ở mức độ sơ khai được chuyển tiếp từthư viện truyền thống sang thư viện có ứng dụng CNTT Trong thư viện này vừa tồn tạitài liệu truyền thống vừa có các dạng tài liệu hiện đại Hay thư viện số là thư viện hiệnđại ở cấp độ cao hơn Trong thư viện này không còn tài liệu dạng truyền thống màchúng đã được số hoá và được sử dụng bằng máy tính, phương tiện truyền thông
Trang 11Bởi vậy, khi nói đến QLTV hiện đại là nói đến việc quản lý tất cả các dạng thư việnnhư đã nêu bao gồm: thư viện đa phương tiện, thư viện lai, thư viện số, thư viện ảo…Nói một cách khác, khi nói đến quản lý một trong các dạng thư viện này thì về bản chấtđều là QLTV hiện đại.
Vậy QLTV hiện đại là gì? QLTV hiện đại có khác gì so với QLTV truyền thống?Theo tác giả để định nghĩa được QLTV hiện đại cần phân biệt các điểm giống và khácnhau giữa QLTV truyền thống và QLTV hiện đại
1.2 Giới thiệu thư viện tự động hóa Joe and Rika Mansueto
Thư viện Joe and Rika Mansueto của trường đại học Macquarie Úc
Trong các hệ thống giá đỡ tự động mật độ cao, các quyển sách có mã vạch đượcphân loại theo kích thước và được lưu trữ trong các thùng Công nghệ về giá đỡ tựđộng mật độ cao (được gọi là hệ thống lưu trữ và truy xuất tự động, hoặc ASRS) đãđược sử dụng trong các ngành công nghiệp khác trong nhiều năm Ford và GM lưu trữ
xe mới trong các hệ thống như vậy
Chỉ trong những năm gần đây, loại công nghệ lưu trữ tự động mật độ cao này mớiđược điều chỉnh từ các ngành quy mô lớn để sử dụng trong thư viện nghiên cứu hiệnđại
ASRS của Thư viện Joe and Rika Mansueto xếp tài liệu dưới lòng đất theo kíchthước thay vì phân loại trong thư viện trong giá cao 50 feet, với khả năng chứa tài liệutrong một phần bảy không gian của các kệ thông thường
Trang 12Hình 1.1: Hệ thông lưu trữ và truy xuất tự động dưới lòng đất thư viện Joe and
Các cài đặt ASRS nhỏ hơn hiện đang được sử dụng hoặc được lên kế hoạch cho một
số ít thư viện nghiên cứu của Hoa Kỳ
Trang 13Hình 1.2: Mã QR code
Mặc dù lúc đầu mã QR được dùng để theo dõi các bộ phận trong sản xuất xe hơi,hiện nay nó được dùng trong quản lý kiểm kê ở nhiều ngành khác nhau Gần đây hơn,phần mềm đọc mã QR đã được cài vào điện thoại di động có gắn camera (cameraphone) ở Nhật Điều này đưa đến các ứng dụng mới và đa dạng hướng về người tiêudùng, nhằm làm nhẹ nhàng việc nhập dữ liệu vào điện thoại di động, vốn không hấpdẫn mấy Mã QR cũng được thêm vào danh thiếp, làm đơn giản đi rất nhiều việc nhập
dữ kiện cá nhân của người mới quen vào sổ địa chỉ trên điện thoại di động
Người dùng có chương trình thu tín hiệu (capture program) và máy tính có giao diệnRS-232C có thể dùng máy quét ảnh (scanner) để thu dữ liệu
Tiêu chuẩn Nhật Bản cho các mã QR, JIS X 0510, được công bố vào tháng 1 năm
1999, và Tiêu chuẩn Quốc tế ISO tương ứng, ISO/IEC18004, được chấp thuận vàotháng 6 năm 2000
Trang 14- Khả năng lưu trữ dữ liệu mã QR:
Số đơn thuần: Tối đa 7089 ký tự
Số và chữ cái: Tối đa 4269 ký tự
Số nhị phân (8 bit): Tối đa 2953 byte
Kanji/kana: Tối đa
- Khả năng sửa lỗi:
Qt Creator là một môi trường phát triển tích hợp đa nền tảng C ++, JavaScript
và QML , giúp đơn giản hóa việc phát triển ứng dụng GUI Nó là một phần của SDKcho khung phát triển ứng dụng GUI Qt và sử dụng API Qt, gói gọn các lệnh gọi chứcnăng GUI của hệ điều hành Nó bao gồm một trình gỡ lỗi trực quan và trình thiết kếbiểu mẫu và bố cục GUI WYSIWYG tích hợp Các biên tập viên có tính năng như cúpháp nổi bật và tự động hoàn Qt Creator sử dụng trình biên dịch C ++ từ Bộ sưu tậpTrình biên dịch GNU trên Linux và FreeBSD Trên Windows, nó có thể sử dụngMinGW hoặc MSVC với cài đặt mặc định và cũng có thể sử dụng Microsoft ConsoleDebugger khi được biên dịch từ mã nguồn Clang cũng được hỗ trợ
Điểm nổi bật của Qt Creator:
Cross-platform, nó có thể chạy trên nhiều nền tảng: Mac, Linux,Windows
Có Text-editor đẹp
Hỗ trợ vim-editor và miễn phí
Trang 15Hình 1.3: Giao diện phần mềm QT Creator
1.5 Phần mền Arduino IDE
Môi trường phát triển tích hợp Arduino là một ứng dụng đa nền tảng được viết bằngcác chức năng từ C và C ++ Nó được sử dụng để viết và tải các chương trình lên cácbảng tương thích với Arduino, nhưng cũng với sự trợ giúp của các bên thứ ba, các banphát triển nhà cung cấp khác
Hình 1.4: Giao diện phần mềm arduino
Trang 16Chương II NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Trang 172.2 Các thiết bị, vật liệu sử dụng trong mô hình
2.2.1 Raspberry pi 3B+
Chức năng: Điều khiển hiển thị, giao tiếp với người dùng, Điều khiển robot lấy sáchRaspberry Pi là cái máy tính giá 35USD kích cỡ như iPhone và chạy HĐH Linux.Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em Được phát triểnbởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống
mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau
Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phối chínhbởi Element14, RS Components và Egoman
Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả năng lậptrình cho những sinh viên , nhưng Pi đã được sự quan tầm từ nhiều đối tượng khácnhau Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC BroadcomBCM2835 (là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điệnthoại di động) bao gồm CPU , GPU , bộ xử lí âm thanh /video , và các tính năng khác
… tất cả được tích hợp bên trong chip có điện năng thấp này
Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay Bạnkhông thể chạy Windows trên đó vì BCM2835 dựa trên cấu trúc ARM nên không hỗtrợ mã x86/x64 , nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt web , môitrường Desktop và các nhiệm vụ khác Tuy nhiên Raspberry Pi là một thiết bị đa năngđáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảo cho những hệthống điện tử , những dự án DIY , thiết lập hệ thống tính toán rẻ tiền cho những bài họctrải nghiệm lập trình …
Thông số kỹ thuật chi tiết:
Vi xử lý: Broadcom BCM2837B0, quad-core A53 (ARMv8) 64-bit SoC @1.4GHz
Trang 18 Kết nối: 2.4GHz and 5GHz IEEE 802.11 b/g/n/ac wireless LAN, Bluetooth 4.2, BLE, Gigabit Ethernet over USB 2.0 (Tối đa 300Mbps).
Trang 19Chất lượng hình ảnh, màu sắc trung thực và hiệu suất ánh sáng thấp Đặc biệt nó
hỗ trợ nhiều chuẩn video, cũng như các chế độ chụp hình
Tương thích với tất cả các phiên bản của Raspberry Pi 1, 2 và 3
THÔNG TIN CHI TIẾT:
Ống kính tiêu cự cố định
Cảm biến độ phân giải 5 megapixel
Trang 20 Hỗ trợ video: 1080p30, 720p60 và 640x480p90
Kích thước: 25x 23x 9mm
Trọng lượng: 3g
Kết nối với Raspberry Pi thông qua cáp ribbon đi kèm dài 15 cm
Camera Module được hỗ trợ với phiên bản mới nhất của Raspbian
Hình 2.3: Camera cho raspberry pi
IC nạp và giao tiếp UART: CH340
Điện áp cấp: 5VDC cổng USB hoặc 6-9VDC chân Raw
Mức điện áp giao tiếp GPIO: TTL 5VDC
Trang 21 Số chân Digital: 14 chân, trong đó có 6 chân PWM.
Số chân Analog: 8 chân (hơn Arduino Uno 2 chân)
Flash Memory: 32KB (2KB Bootloader)
Chức năng của các chân arduino nano
Arduino Nano có 14 ngõ vào/ra digital Các chân làm việc với điện áp tối đa là 5V.Mỗi chân có thể cung cấp hoặc nhận dòng điện 40mA và có điện trở kéo lên khoảng20-50kΩ Các chân có thể được sử dụng làm đầu vào hoặc đầu ra, sử dụng các hàmpinMode (), digitalWrite () và digitalRead ()
Ngoài các chức năng đầu vào và đầu ra số, các chân này cũng có một số chức năng
bổ sung
Trang 22Chân 1, 2: Chân nối tiếp
Hai chân nhận RX và truyền TX này được sử dụng để truyền dữ liệu nối tiếp TTL.Các chân RX và TX được kết nối với các chân tương ứng của chip nối tiếp USB tớiTTL
Chân 13, 14, 15 và 16: Giao tiếp SPI
Khi bạn không muốn dữ liệu được truyền đi không đồng bộ, bạn có thể sử dụng cácchân ngoại vi nối tiếp này Các chân này hỗ trợ giao tiếp đồng bộ với SCK Mặc dùphần cứng có tính năng này nhưng phần mềm Arduino lại không có Vì vậy, bạn phải
sử dụng thư viện SPI để sử dụng tính năng này
Chân 16: Led
Khi bạn sử dụng chân 16, đèn led trên bo mạch sẽ sáng
Chân 18, 19, 20, 21, 22, 23, 24, 25 và 26 : Ngõ vào/ra tương tự
Như đã đề cập trước đó UNO có 6 chân đầu vào tương tự nhưng Arduino Nano có 8đầu vào tương tự (19 đến 26), được đánh dấu A0 đến A7 Điều này có nghĩa là bạn cóthể kết nối 8 kênh đầu vào tương tự để xử lý Mỗi chân tương tự này có một ADC có
độ phân giải 1024 bit (do đó nó sẽ cho giá trị 1024) Theo mặc định, các chân được đo
Trang 23từ mặt đất đến 5V Nếu bạn muốn điện áp tham chiếu là 0V đến 3.3V, có thể nối vớinguồn 3.3V cho chân AREF (pin thứ 18) bằng cách sử dụng chức nănganalogReference () Tương tự như các chân digital trong Nano, các chân analog cũng
có một số chức năng khác
Chân 23, 24 như A4 và A5: chuẩn giao tiếp I2C
Khi giao tiếp SPI cũng có những nhược điểm của nó như cần 4 chân và giới hạntrong một thiết bị Đối với truyền thông đường dài, cần sử dụng giao thức I2C I2C hỗtrợ chỉ với hai dây Một cho xung (SCL) và một cho dữ liệu (SDA) Để sử dụng tínhnăng I2C này, chúng ta cần phải nhập một thư viện có tên là Thư viện Wire
Trang 24nạp khởi động bị thiếu hoặc bị hỏng, ICSP có thể được sử dụng thay thế ICSP có thểđược sử dụng để khôi phục bộ nạp khởi động bị thiếu hoặc bị hỏng.
Mỗi chân ICSP thường được kết nối với một chân Arduino khác có cùng tên hoặcchức năng Ví dụ: MISO của Nano nối với MISO / D12 (Pin 15) Lưu ý, các chânMISO, MOSI và SCK được ghép lại với nhau tạo nên hầu hết giao diện SPI
Chúng ta có thể sử dụng Arduino để lập trình Arduino khác bằng ICSP này
2.2.4 Module điều khiển động cơ
Chức năng: Điều khiển động cơ DC
Thông số:
Driver: L298N tích hợp hai mạch cầu H
Điện áp điều khiển: +5 V ~ +12 V
Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)
Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
Dòng của tín hiệu điều khiển: 0 ~ 36mA (Arduino có thể chơi đến 40mA nên khỏe
re nhé các bạn)
Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃))
Trang 25Hình 2.6: Mạch điều khiển động cơ L298
2.2.5 Module điều khiển động cơ DRV8833
Chức năng: Điều khiển động cơ DC
Mạch điều khiển động cơ DC Mini DRV8833 có thể điều khiển hai motor DC hoặcmột động cơ bước với dòng điện liên tục ở 1.5A, điện áp 3 ~ 10VDC, thích hợp chocác mô hình robot, điều kiển động cơ cỡ nhỏ
Thông số kỹ thuật:
IC chính: DRV8833 Dual H-Bridge Motor Driver
Điện áp cấp: 3~10VDC
Dòng đầu ra mỗi động cơ: 1.5A
Điều khiển được 2 động cơ DC hoặc 1 động cơ bước 4 dây
Bảo vệ chống quá dòng, quá nhiệt
Trang 26Hình 2.7: Module điều khiển động cơ DRV8833
Trang 272.2.7 Động cơ servo
Chức năng: Cánh tay đẩy sách
Động cơ servo SG90 có kích thước nhỏ, là loại được sử dụng nhiều nhất để làm các
mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng
Động cơ servo SG90 Tower Pro có tốc độ phản ứng nhanh, các bánh răng được làmbằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư bánh răng, động cơ RCServo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễ dàng điềukhiển góc quay bằng phương pháp điều độ rộng xung PWM
Trang 282.2.8 Công tắc hành trình
Công tắc hành trìnhhay còn gọi công tắc giới hạn hành trình là dạng công tắc dùng
để giới hạn hành trình của các bộ phận chuyển động Nó có cấu tạo như công tắc điệnbình thường nhưng có thêm cần tác động để cho các bộ phận chuyển động tác động vàolàm thay đổi trạng thái của tiếp điểm bên trong nó Công tắc hành trình là loại khôngduy trì trạng thái, khi không còn tác động sẽ trở về vị trí ban đầu Công tắc hànhtrìnhdùng để đóng cắt mạch dùng ở lưới điện hạ áp Nó có tác dụng giống như nút ấnđộng tác ấn bằng tay được thay thế bằng động tác va chạm của các bộ phận cơ khí, làmcho quá trình chuyển động cơ khí thành tín hiệu điện
Hình 2.10: Công tắc hành trình
Trang 292.3 Lập trình ứng dụng cho raspberry pi bằng QT Creator
2.3.1 Cài hệ điều hành cho raspberry pi
Raspberry Pi có rất nhiều hệ điều hành hỗ trợ, trong đó có Raspbian là hệ điều hànhchính thức của Raspberry Pi Foundation, ngoài ra có 7 hệ điều hành khác được xácnhận hỗ trợ và kha khá hệ điều hành do các nhà phát triển tự tối ưu
Để cài đặt hệ điều hành cho Raspberry Pi, ta sẽ cần: Phần mềm Win32 Disk Imager(WDI) và một thẻ nhớ MicroSD tối thiểu 4GB
Các bước cài đặt hệ điều hành cho Raspberry Pi:
Bước 1: Chèn thẻ MicroSD vào đầu đọc thẻ ở máy tính và kiểm tra tên ổ được gán
cho thẻ nhớ (ví dụ ổ H:), tránh nhầm ổ dẫn đến mất dữ liệu vì phần mềm sẽ format thẻcủa mình
Bước 2: Mở phần mềm Win32DiskImager
Bước 3: Lựa chọn file hệ điều hành mà ta đã tải về Sau đó lựa chọn ổ thẻ nhớ cần
ghi
Hình 2.11: Cài hệ điều hành cho raspberry pi
Cuối cùng bạn bấm Write và chờ đợi quá trình ghi hoàn tất
Trang 302.3.2 Viết ứng dụng cho raspberry pi
- Viết phần mềm, giao diện hiển thị
Mở phần mềm QT Creator Vào File New file or projects Một giao diện mớihiện ra chọn Applivation Qt Widgets Application
Hình 2.12: Chọn project
Cài đặt tên project và vị trí lưu
Hình 2.13: Cài vị trí lưu project
Chọn trình biên dịch qmake, còn lại thì next
Trang 31Hình 2.14: Chọn trình biên dịch
Tại Form chính thiết kế một giao diện cơ bản của Qt như sau Kéo thả các filter và thay đổi chúng theo ý muốn của mình.
Hình 2.15: Thiết kế giao diện
Tại giao diện viết code, viết code và tạo mới theo yêu cầu của ứng dụng
Trang 32Hình 2.16: Viết code chính cho phần mềm
Sau khi đã viết xong phần mền thì ta copy toàn bộ file projcet sang raspberry piCài đặt qt5 để biên dịch và serial để giao tiếp với arduino qua usb Để cài đặt ta mởterminal và gõ lệnh:
sudo apt install qt5-default
libqt5serialport5-dev
Hình 2.17: Cài đặt qt5 và serial
Trang 33Tiếp ta tạo một thư mục bulid_QTThuvien nằm cùng thư mục project mà ta đã copyqua Ở đây ta tạo thư mục bằng lệnh “mkdir build_QTThuvien” Tiếp đó ta dùng lệnh
“cd mkdir build_QTThuvien” để vào thư mục Sau đó ta chạy lệnh “qmake /QTThuvien” và “make” để build
Hình 2.18: Build project
Sau khi đã build xong thì ta sẽ thấy file QTThuvien, ta sử dụng lệnh “./QTThuvien”
để chạy file này
Hình 2.19: Mở phần mềm
Trang 34- Tạo bảng dữ liệu database
Bảng accounts lưu trữ thông tin, các trường của tài khoản
Hình 2.20: Bảng accounts
Bảng books lưu trữ thông tin các quyển sách
Hình 2.21: Bảng books
Trang 35Bảng logs lưu trữ lịch sử mượn trả sách của các tài khoản
Hình 2.22: Bảng logs
- Cấu trúc phần mềm:
Ở đây tượng tự như một phần mềm được chạy trên hệ điều hành Raspberry pi.Nhiệm vụ của phần mềm này là cho người sử dụng dễ dàng thao tác mượn trả sách,quản lý được sách đã mượn và kho sách của thư viện
Cấu trúc:
Trang 36Hình 2.23: Cấu trúc thư mục phần mềm
- Headers: Thư mục chứa các file khai báo
- Sources: Thư mục chứa code chính
+ account : Các trường về tài khoản
+ account_repository: Nhận dữ liệu từ database
Trang 37+ account_service: Hiển thị lên data table
+ accounttablemodel: Kết nối giữa dữ liệu lấy từ database qua account_repository,account_service
+ app_state: Lưu trạng thái ứng dụng
+ auth_service: Dùng để đang nhập
+ book : Các trường về tài khoản
+ book_repository: Nhận dữ liệu từ database
+ book_service: Hiển thị lên data table
+ bookidget2: File đồ họa
+ bookttablemodel: Kết nối giữa dữ liệu lấy từ database qua book_repository,book_service
+ bookwidget: File đồ họa
+ DatabaseConnector: Kế nối với cơ sở dữ liệu
+ flowlayout: Tạo thanh cuộn cho màn hình
+ logindialog: kiểm tra tài khoản đăng nhập
+ mainwindow: File code chính, kết nối với Arduino, giao tiếp với Arduino
- Forns: Thư mục chứa file đồ họa
2.4 Phân tích hệ thống quản lý thư viện tự động
- Màn hình tương tác để dễ dàng mượn trả sách
- Quản lý được các đầu sách trong thư viện
- Quản lý các đầu sách mà người mượn mượn theo tài khoản
Trang 38- Cơ chế lấy trả sách tự động
- Kho chứa sách
- Phần mềm đăng nhập vào hệ thống quản lý, mượn và trả sách thư viện
Tài khoản quản lý:
+ Đăng nhập/ Đăng xuất
+ Thêm, xóa, sửa sách
+ Thêm, xóa, sửa người dùng
+ Tìm kiếm sách, tài khoản người dùng
Tài khoản người dùng:
+ Thêm, xóa, sửa thông tin cs nhân
+ Tìm kiếm sách
+ Mượn/ Trả sách
- Phần cứng
Giá sách
+ Giá để sách riêng từng quyển
Cơ cấu lấy sách, trả sách
+ Động cơ điều khiển trục X
+ Động cơ điều khiển trục Z
+ Động cơ điều khiển trục Z
+ Cánh tay đẩy sách
+ Cảm biên nhận diện xem sách đã được lấy hay cất chưa
+ Camera kiểm tra sách xem sách đúng hay sai
Trang 39- Arduino và máy tính nhúng raspberry pi giao tiếp qua cổng Serial(UART)
2.5 Sơ đồ nguyên lý
Hình 2.24: Sơ đồ nguyên lý
- Đầu tiên người dùng sẽ đăng nhập vào hệ thống thư viện
- Sau đó vào thư viện để mượn sách, vào tủ sách để kiểm tra xem mình đã mượn sáchnào và trả sách
- Nếu mượn sách thì arduino sẽ điều khiển cách động cơ di chuyển để lấy sách trongthư viện mang ra khay cho người dùng, và sẽ thông bao cho người dùng lấy sách Khingười dùng lấy sách xong thì hoàn tất quá trình mượn sách
- Nếu người dùng trả sách thì màn hình sẽ thông báo bỏ sách vào khay Khi người dùng
bỏ sách vào khay thì sẽ có camera chụp lại ảnh và xử lý để kiểm tra xem có đúng sách
đã mượn không Nếu đúng thì robot sẽ lấy sách và xếp vào thư viện Nếu không thìmàn hình sẽ thông báo cho người dùng kiểm tra lại sách và đặt lại, lặp lại quáy trìnhđến khi nào đúng hoặc hủy tiến trình
Trang 402.6 Sơ đồ điều khiển
- Phần 1 điều khiển động cơ, arduino là trung tâm điều khiển
Hình 2.25: Sơ đồ mạch điều khiển
Gồm 5 phần chính:
+ Module xử lý arduino: nhận tín hiệu từ máy tính raspberry pi, phản hồi và điềukhiển động cơ
+ Driver điều khiển động cơ A8833: Điều khiển động cơ trục Z
+ Mạch cầu H điều khiển động cơ giảm tốc L298: Điều khiển động cơ trục X và Y