Professional Documents
Culture Documents
Nhóm 12 - Báo Cáo Cuối Kỳ
Nhóm 12 - Báo Cáo Cuối Kỳ
NHÓM 12
ĐỀ TÀI: Xuất nhập kho bằng mã vạch sử dụng cánh tay robot 4 bậc
tự do.
Thành viên nhóm:
STT Họ Và Tên Mã Sinh Viên
1 Nguyễn Vũ Phúc 19021092
2 Bùi Tuấn Thành 19021114
3 Mai Đình Trinh 19021125
4 Hứa Quang Trường 19020161
5 Nguyễn Thọ Toàn 19021122
MỤC LỤC
MỞ ĐẦU....................................................................................................................... 1
CHƯƠNG 1: GIỚI THIỆU VỀ ROBOT CÔNG NGHIỆP...........................................1
1.1. Khái niệm về robot công nghiệp.......................................................................1
1.2. Cấu trúc chung của robot công nghiệp.............................................................1
1.3. Cấu trúc chung của robot công nghiệp.............................................................2
1.4. Phân loại...........................................................................................................3
CHƯƠNG 2: ROBOT 4 BẬC TỰ DO..........................................................................7
2.1. Bậc tự do của robot..........................................................................................7
2.2. Thiết kế robot 4 bậc tự do.................................................................................7
2.3. Động học thuận..............................................................................................10
2.4. Động học nghịch............................................................................................13
CHƯƠNG 3: MÔ PHỎNG HOẠT ĐỘNG ROBOT TRÊN MATLAB......................17
3.1. Thiết lập các khối điều khiển trong simulink..................................................17
3.2. Các thao tác tạo giao diện trên phần mềm matlab..........................................17
3.3. Kết quả mô phỏng..........................................................................................19
CHƯƠNG 4: MÔ HÌNH THỰC TẾ............................................................................23
4.1. Các linh kiện sử dụng.....................................................................................23
4.1.1. Raspberry Pi 3B...................................................................................23
4.1.1.1. Cấu trúc phần cứng...........................................................................24
4.1.1.2. Thông số kỹ thuật.............................................................................26
4.1.1.3. Sơ đồ chân GPIO..............................................................................27
4.1.1.4. Ứng dụng..........................................................................................29
4.1.2. Servo SG90..........................................................................................30
4.1.3. Servo mg996........................................................................................31
4.1.4. Dây cắm...............................................................................................32
4.1.5. Mô hình in 3D robot.............................................................................32
4.1.6. Breadboard...........................................................................................33
4.2. SolidWorks.....................................................................................................33
4.2.1. Lịch sử hình thành................................................................................33
4.2.2. Một số tính năng của SolidWorks........................................................33
4.2.3. Hướng dẫn thiết kế 2D và 3D trong SolidWorks..................................35
4.2.3.1. Vẽ 2D................................................................................................35
4.2.3.2. Vẽ 3D................................................................................................40
4.3. Xử lý ảnh........................................................................................................42
4.3.1. Khái niệm về Barcode..........................................................................42
4.3.2. Mã vạch 1D..........................................................................................43
4.3.3. Thiết lập thực nghiệm...........................................................................49
4.4. Phần lập trình nhúng và giao diện..................................................................52
4.4.1. Giới thiệu về phần mềm QT creator và framework QT........................52
4.4.2. Bước tiến hành phát triển phần mềm....................................................53
4.4.3. Thiết kế phần mềm:..............................................................................59
CHƯƠNG 5: KẾT LUẬN...........................................................................................64
TÀI LIỆU THAM KHẢO...........................................................................................65
DANH MỤC HÌNH ẢNH
Hình 1:Robot 6 bậc tự do...............................................................................................3
Hình 2: Dạng Decac.......................................................................................................4
Hình 3: Dạng hình trụ....................................................................................................4
Hình 4: Dạng hình cầu...................................................................................................5
Hình 5: Dạng khớp nối..................................................................................................5
Hình 6: Robot quay........................................................................................................5
Hình 7: Động học vòng hở.............................................................................................6
Hình 8: Động học vòng kín............................................................................................6
Hình 9: Chân đế.............................................................................................................7
Hình 10: Bàn xoay.........................................................................................................8
Hình 11: Trục truyền động 1..........................................................................................8
Hình 12: Trục truyền động 2..........................................................................................9
Hình 13: Tay gắp...........................................................................................................9
Hình 14: Hình mô phỏng.............................................................................................10
Hình 15: Các góc được biểu diễn trong bảng DH........................................................12
Hình 16: Giao diện mô phỏng điều khiển....................................................................19
Hình 17: Mô phỏng động học thuận............................................................................20
Hình 18: Động học thuận vị trí 1.................................................................................20
Hình 19: Kiểm tra động học nghịch.............................................................................21
Hình 20: Vị trí 2........................................................................................................... 21
Hình 21: Động học nghịch...........................................................................................22
Hình 22: Raspberry Pi Model 3B.................................................................................24
Hình 23: Cấu trúc phần cứng của Raspberry Pi Model 3B..........................................24
Hình 24: Sơ đồ chân....................................................................................................27
Hình 25: Servo SG90...................................................................................................30
Hình 26: Servo mg996.................................................................................................31
Hình 27: Mô hình thực tế.............................................................................................32
Hình 28: Breadboard....................................................................................................33
Hình 29: Mã vạch........................................................................................................43
Hình 30: Mã UPC........................................................................................................44
Hình 31: Mã code 39...................................................................................................45
Hình 32: Mã vạch INTERLEAVED 2 OF 5................................................................45
Hình 33: Sơ đồ triển khai.............................................................................................50
Hình 34: Dữ liệu được đẩy lên Firebase......................................................................52
Hình 35: Cấu trúc chương trình...................................................................................53
Hình 36: Giao diện GUI...............................................................................................59
Robot công nghiệp là robot được sử dụng trong sản xuất công nghiệp. Theo tiêu
chuẩn AFNOR của Pháp. Khái niệm về robot công nghiệp là một cơ cấu chuyển động
tự động có thể lập trình, lặp lại các chương trình, tổng hợp các chương trình đặt ra trên
các trục tọa độ, có khả năng định vị, định hướng, di chuyển các đối tượng vật chất như
chi tiết, đạo cụ, gá lắp theo những hành trình thay đổi đã được chương trình hóa nhằm
thực hiện các nhiệm vụ công nghệ khác nhau.
Mục tiêu của bài tập lớn là thực hiện mô phỏng cánh tay robot 4 bậc tự do, thiết
kế mô hình in 3D, nhận diện được mã vạch và đẩy dữ liệu lên Firebase, điều khiển
cách tay gắp đồ vật khi nhận được mã từ Firebase. Bản báo cáo này của nhóm chúng
em gồm 5 chương: Chương 1 sẽ giới thiệu tổng quan về robot công nghiệp. Chương 2
sẽ giới thiệu các lý thuyết về robot 4 bậc tự do (Động học thuận và nghịch). Chương
thứ 3 sẽ nói về phần thiết kế mô phỏng mô hình cánh tay robot trên MATLAB.
Chương thứ 4 trình bày về mô hình thực tế và chương cuối cùng sẽ đưa ra kết luận,
tổng kết cũng như hướng phát triển đề tài trong tương lai.
1
CHƯƠNG 1: GIỚI THIỆU VỀ ROBOT CÔNG NGHIỆP
1
Năm 1967, Nhật Bản mới nhập chiếc robot công nghiệp đầu tiên từ công ty
AMF. Đến năm 1990 có hơn 40 công ty Nhật Bản, trong đó có những công ty
khổng lồ như công ty Hatachi và công ty Mitsubisi, đã đưa ra thị trường quốc tế
nhiều loại robot nổi tiếng.
Từ những năm 80, nhất là vào những năm 90, do áp dụng rộng rãi các tiến bộ
kỹ thuật về vi xử lý và công nghệ thông tin, số lượng robot công nghiệp đã gia
tăng, giá thành giảm đi rõ rêt, tính năng đã có nhiều bước tiến vượt bậc. Nhờ vậy
robot công nghiệp đã có vị trí quan trọng trong các dây chuyền sản xuất hiện đại.
Đối với robot công nghiệp, liên kết nhiều robot tạo ra khả năng làm việc với
người đã được đưa vào sử dụng thực tế. Ví dụ, CR-35iA, một robot hợp tác được
sản xuất bởi FANUC Corp. vào năm 2015 và Coro Co-robot do Life Robotics Inc.
sản xuất vào năm 2015, có thể làm việc với người mà không cần hàng rào an toàn.
Ngoài ra, NEXTAGE, được sản xuất bởi Kawada Robotics Corp. vào năm 2011,
có cấu trúc bắt chước phần thân trên của con người và robot có thể thực hiện các
nhiệm vụ mà trước đây cần được thực hiện bởi công nhân.
2
1.4. Phân loại
Phân loại theo số bậc tự do: 3 bậc, 4 bậc,…
3
- Robot truyền động bằng thủy lực.
- Robot truyền động hỗn hợp.
Phân loại theo dạng hình học:
- Dạng Decac: Sử dụng 3 đường trượt vuông góc với nhau trong không gian là
các trục tọa độ x,y,z. Robot chuyển động theo 3 trục tọa độ. Sử dụng các khớp tịnh
tiến, phạm vi làm việc của robot được mở rộng theo hình chữ nhật.
4
Hình 4: Dạng hình cầu
- Dạng khớp nối: Gồm hai phần tử thẳng tương ứng với cánh tay và cẳng tay. Các
phần tử này được ghép nối với nhau bởi hai khớp tương ứng với khớp bả vai và khớp
khuỷu tay. Cổ tay được nối với cẳng tay.
5
Hình 7: Động học vòng hở
- Động học vòng kín: Là một chuỗi động học kín, ở đó mỗi khâu luôn luôn được
liên kết với ít nhất hai khâu khác.
6
CHƯƠNG 2: ROBOT 4 BẬC TỰ DO
Trong đó:
λ : Là số bậc tự do của cơ cấu trong không gian ( λ=6 ¿
n: Là tổng số khâu trong cơ cấu
j: Là tổng số khớp trong cơ cấu
∑ f i: Là tổng số bậc tự do của khớp trong cơ cấu
f p : Là tổng số bậc tự do thừa của cơ cấu
Hình 9: Chân đế
7
Chi tiết 2:
Chi tiết 4:
8
Hình 12: Trục truyền động 2
Chi tiết 5:
9
Hình 14: Hình mô phỏng
2.3. Động học thuận
Với bài toán động học thuận vị trí, số liệu đầu vào là giá trị biến khớp và đầu ra
là vị trí và hướng của khâu cuối tại một thời điểm nhất định (chưa xét đến biến thiên
theo thời gian).
Phương pháp Denavit-Hartenberg: Trước hết, ta cần xác định mỗi hệ trục tọa
độ gắn với từng khâu của Robot. Ký hiệu các hệ toạ độ này từ 0 đến n, kể từ giá cố
định trở đi. Như vậy, hệ tọa độ O0 X 0 Y 0 Z 0được gắn với giá cố định (khâu 0) sẽ là một
hệ tọa độ cố định và thường được chọn làm hệ tọa độ toàn cục (global coordinate
system). Hệ tọa độ On X n Y n Z n được gắn với khâu cuối (khâu thao tác cuối). Nhiệm vụ
của bài toán động học thuận vị trí của Robot có thể được quy về nhiệm vụ định vị và
định hướng On X n Y n Z n so với O0 X 0 Y 0 Z 0.
Sau khi đã thiết lập được hệ trục tọa độ, nhiệm vụ tiếp theo là xác định thông số
của phép biến đổi giữa các hệ trục tọa độ trung gian, hay còn gọi là bộ thông số
Denavit Hatenberg (bộ thông số D-H).
Gọi:
θi là góc giữa trục X i−1và trục X i ;
d i là khoảng cách giữa trục X i−1 và trục X i ;
a i là khoảng cách giữa trục Zi−1 và trục Zi ;
α i là góc giữa trục Zi−1 và trục Zi .
10
Nếu khớp thứ i là khớp quay thì θi là biến khớp, thông số còn lại là hằng số.
Ngược lại, nếu khớp thứ i là khớp tịnh tiến thì d i là biến khớp, thông số còn lại là hằng
số. Các bước xây dựng phương trình động học Robot theo phương pháp D-H:
11
Hình 15: Các góc được biểu diễn trong bảng DH
Ta có bảng DH như sau:
a α d θ
Khớp 1 a1 90 ° d1 θ1
Khớp 2 a2 0 0 θ2
Khớp 3 a3 0 0 θ3
Khớp 4 a4 0 0 θ4
Bảng 1: Bảng DH
Trong đó:
a: Khoảng cách của 2 trục z.
α : Góc hợp giữa 2 trục z.
d: Khoảng cách giữa 2 trục x.
θ : Góc hợp giữa 2 trục x.
Ma trận chuyển đổi tổng quát từ hệ i sang i+1:
[ ]
cosθ −cos α∗sinθ sin α∗sinθ a∗cosθ
sinθ cos α∗cosθ −sin α∗cosθ a∗sinθ
0 sin α cos α d
0 0 0 1
Ma trận chuyển đổi từ hệ 0 sang hệ 1: (Lấy thông số khâu 1)
12
[ ]
cosθ1 0 sin θ1 a 1∗cosθ 1
sin θ1 0 −cosθ1 a 1∗sinθ 1
T1 =
0 1 0 d1
0 0 0 1
Ma trận chuyển đổi từ hệ 1 sang hệ 2:
[ ]
cosθ 2 −sin θ2 0 a 2∗cosθ2
sin θ2 cosθ2 0 a2∗sin θ2
T2 =
0 0 1 0
0 0 0 1
Ma trận chuyển đổi từ hệ 2 sang hệ 3:
[ ]
cosθ 3 −sin θ3 0 a 3∗cosθ 3
sin θ3 cosθ3 0 a 3∗sin θ3
T3 =
0 0 1 0
0 0 0 1
Ma trận chuyển đổi từ hệ 3 sang hệ 4:
[ ]
cosθ 4 −sinθ 4 0 a 4∗cosθ 4
sin θ4 cosθ 4 0 a 4∗sin θ 4
T4 =
0 0 1 0
0 0 0 1
Do đó, ma trận chuyển đổi từ hệ 0 sang hệ 4:
[ ]
r 11 r 12 r 13 Px
r r r Py
T =T 1 ×T 2×T 3 ×T 4= 21 21 23
r 31 r 32 r 33 Pz
0 0 0 1
P (Px,Py,Pz): Tọa độ
Px=cos θ1∗( a1+ a3∗cos ( θ2 +θ3 ) + a2∗cos ( θ2 ) +a 4∗cos (θ 2+ θ3 +θ4 ))
Py=sin θ1∗(a 1+ a3∗cos ( θ2 +θ3 ) +a 2∗cos ( θ 2 ) +a 4∗cos (θ 2+θ 3+ θ4 ))
Pz=d 1 +a3∗sin ( θ2 +θ3 ) + a2∗sin ( θ 2) + a4∗sin(θ 2+ θ3 +θ4 )¿
R: Hướng
13
Nhân 2 vế trên với ma trận nghịch đảo của T1 là T 1−1 ta thu được:
T 1 x T =( T 1 x T 1 ) × ( T 2 ×T 3× T 4 )
−1 −1
Ở mỗi vế của phương trình trên ta sẽ tính được một ma trận có kích cỡ4x4 như
sau:
[ ][ ]
¿ ¿ ¿ I1 ¿ ¿ ¿ K1
¿ ¿ ¿ I2 ¿ ¿ ¿ K2
=
¿ ¿ ¿ I3 ¿ ¿ ¿ K3
0 0 0 1 0 0 0 1
{
I 1 =K 1
Ta thấy: I 2 =K 2
I 3 =K 3
Sử dụng matlab ta tính được:
{
I 1=Px∗cos ( θ1 ) + Py∗sin (θ1 )
I 2=Pz−d 1
I 3=Px∗sin ( θ1 ) −Py∗cos(θ 1)
{
K 1=a 3∗cos ( θ 2+θ 3 ) +a2∗cos ( θ 2) +a 4∗cos (θ2 +θ3 +θ4 )
K 2=a3∗sin ( θ2 +θ3 ) + a2∗sin ( θ 2 )+ a4∗sin (θ2 +θ3 +θ 4)
K 3=0
Ta sẽ chọn giá trị ban đầu cho tổng 3 góc: θ2 +θ3 +θ 4=0
Tính góc θ1
Ta có: I 3=K 3
Tính góc θ3
{
Ta có: I = K
2 2
I 1= K 1
Ta đặt:
14
Tính góc θ2
Ta có:
15
Ta thay cos (θ2 ) vào phương trình (2) và làm tương tự như tìm cos (θ2 ) ta được:
Tính góc θ 4
Ta có:
16
CHƯƠNG 3: MÔ PHỎNG HOẠT ĐỘNG ROBOT TRÊN
MATLAB
Khối Slider gain: cho phép ta thay đổi các giá trị góc.
Khối Joint Actuator: có nhiệm vụ truyền các thông số như góc, vận tốc góc, gia
tốc góc vào khớp xoay.
3.2. Các thao tác tạo giao diện trên phần mềm matlab
Khởi tạo một file .fig Trên Command Window, gõ “guide” để tạo file cho việc
thiết lập giao diện
Chọn các khối Slider, Static Text, Edit text, Panel, Push Button
17
Điều chỉnh các thông số của các khối: kích chuột phải vào khối và chọn Property
Inspector, sau đó thay đổi các thông số cho phù hợp với bài toán.
Thiết lập chức năng cho khối, ta vào View CallBacks => Chọn CallBack
18
Sau khi thực hiện các thao tác trên ta thu được một giao diện hoàn thiện như sau:
19
Hình 17: Mô phỏng động học thuận
{
Px=314.67
Khi nhấn DEFAULT, ta có vị trí của robot là: Py=0
Pz=40.28
20
Hình 19: Kiểm tra động học nghịch
Ta tiến hành kiểm thử lại lần 2 với các giá trị góc theta khác ta có vị trí mới của
{
Px=313.8607
robot sẽ là: Py=10.9603
Pz=23.6588
21
Hình 21: Động học nghịch
22
CHƯƠNG 4: MÔ HÌNH THỰC TẾ
23
Hình 22: Raspberry Pi Model 3B
4.1.1.1. Cấu trúc phần cứng
24
Raspberry Pi 3 Model B đi kèm với bộ xử lý lõi tứ 64 bit, trên một board mạch
với các tính năng WiFi và Bluetooth và USB.
Nó có tốc độ xử lý từ 700 MHz đến 1,4 GHz trong đó bộ nhớ RAM dao động từ
256 đến 1GB.
CPU của thiết bị này được coi là bộ não của thiết bị chịu trách nhiệm thực thi các
câu lệnh dựa trên hoạt động toán học và logic.
GPU (bộ xử lý đồ họa) là một chip tiên tiến khác được tích hợp trong board mạch
có chức năng tính toán hình ảnh. Board mạch được trang bị cáp lõi video Broadcam
chủ yếu được sử dụng để chơi các trò chơi video thông qua thiết bị.
Pi 3 đi kèm với các chân GPIO (General Purpose Input Output) rất cần thiết để
duy trì kết nối với các thiết bị điện tử khác. Các chân đầu ra đầu vào này nhận lệnh và
hoạt động dựa trên chương trình của thiết bị.
Cổng Ethernet được tích hợp trên thiết bị này để thiết lập một đường giao tiếp
với các thiết bị khác. Bạn có thể kết nối cổng Ethernet với bộ định tuyến để duy trì kết
nối cho internet.
Board có bốn cổng USB được sử dụng có thể sử dụng để kết nối với bàn phím,
chuột hoặc có thể kết nối USB 3G để truy cập internet và thẻ SD được thêm vào để lưu
trữ hệ điều hành.
Đầu nối nguồn điện là một phần cơ bản của board mạch được sử dụng để cung
cấp nguồn 5 V cho bo mạch. Bạn có thể sử dụng bất kỳ nguồn nào để thiết lập nguồn
cho board mạch, tuy nhiên, bạn ưu tiên kết nối cáp nguồn qua cổng USB của máy tính
xách tay để cung cấp 5 V.
Pi 3 hỗ trợ hai tùy chọn kết nối bao gồm HDMI và RCA Video. Cổng HDMI
được sử dụng để kết nối LCD hoặc TV, có thể hỗ trợ cáp phiên bản 1.3 và 1.4. Cổng
RCA Video được sử dụng để kết nối các màn hình TV đời cũ sử dụng jack cắm 3,5mm
mà không hỗ trợ cổng HDMI.
Cổng USB được tích hợp trên board mạch được sử dụng để khởi động thiết bị. Vì
RPi chạy hệ điều hành Linux, nên chỉ cần cắm bàn phím và chuột vào là có thể sử
dụng mà không cần cài thêm driver.
Vi xử lí Broadcom BCM2837, ARMv8 (64bit) quad-core
Broadcom VideoCore IV, OpenGL ES 2.0,OpenVG
GPU
1080p60 , 400 MHz
Tốc độ xử lý 1.2 Ghz
Power Ratings 800mA @ 5V
RAM (chia sẻ với GPU) 1GB LPDDR2 (900Mhz)
25
Bộ nhớ Micro SD
GPIO 40
4xUSB 2.0
10/100mb Ethernet
Kết nối wifi 802.11 n
Bluetooth 4.1
CSI, DSI
Video & audio 1080p HDMI, stero audio 3.5mm jack
Kích thước 85x56mm
Bảng 2: Thông số Raspberry Pi 3B
4.1.1.2. Thông số kỹ thuật
- -1,4 GHz 64 bit, Bộ xử lý lõi tứ Broadcom BCM2387 ARM Cortex-A53,
nhanh hơn 10 lần so với Raspberry Pi 1.
- RAM 1GB (LPDDR2 SDRAM) cho phép bạn chạy các ứng dụng nâng cao
- 802.11 b/g/n Wireless LAN
- On-board Bluetooth 4.1
- 4 cổng USB 2.0
- Ethernet 300Mbit/s
- 40 chân GPIO
- HDMI hỗ trợ phiên bản 1.3/1.4 và Composite RCA (PAL and NTSC)
- 10/100 BaseT Ethernet socket
- Camera interface (CSI), để kết nối với camera
- Display interface (DSI): được sử dụng để kết nối Raspberry Pi với màn hình
cảm ứng
- Khe cắm thẻ microSD: đễ lưu trữ dữ liệu
- Micro USB power source
- VideoCore IV multimedia/3D graphics core @ 400MHz/300MHz
26
4.1.1.3. Sơ đồ chân GPIO
27
- 28 chân GPIO (chân số 3, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 24,
26, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 40).
Cùng với chức năng đơn giản của các chân ngõ vào và ngõ ra, các chân GPIO
cũng có thể thực hiện nhiều chức năng khác nhau. Một số chân cụ thể là:
Các chân I2C: Raspberry Pi sử dụng chuẩn giao tiếp I2C để giao tiếp với các
thiết bị tương thích với Inter-Integrated Circuit (một giao thức truyền thông nối tiếp
hai dây tốc độ thấp). Chuẩn giao tiếp này yêu cầu vai trò chủ-tớ giữa cả hai thiết bị.
I2C có hai kết nối: SDA (Serial Data) và SCL (Serial Clock). Chúng hoạt động bằng
cách gửi dữ liệu đến và sử dụng kết nối SDA, và tốc độ truyền dữ liệu được điều khiển
thông qua chân SCL.
- Data: (GPIO 2), Clock (GPIO 3)
- EEPROM Data: (GPIO 0), EEPROM Clock (GPIO 1)
Các chân UART: Các chân giao tiếp nối tiếp hoặc UART (Universal
Asynchronous Receiver/Transmitter – Bộ thu / phát không đồng bộ đa năng) cung cấp
cách thức giao tiếp giữa hai bộ vi điều khiển hoặc máy tính. Chân TX được sử dụng để
truyền dữ liệu nối tiếp và chân RX được sử dụng để nhận dữ liệu nối tiếp đến từ một
thiết bị nối tiếp khác. Có 2 chân liên quan đến giao tiếp UART.
- TX (GPIO14)
- RX (GPIO15)
Các chân SPI: SPI (Serial Peripheral Interface) là một giao thức được sử dụng
cho giao tiếp chủ-tớ. Raspberry Pi sử dụng giao thức này để giao tiếp nhanh chóng
giữa một hoặc nhiều thiết bị ngoại vi. Dữ liệu được đồng bộ hóa bằng đồng hồ (SCLK
tại chân GPIO 11) từ thiết bị chính (Raspberry Pi) và dữ liệu được gửi từ Raspberry Pi
tới thiết bị SPI bằng chân MOSI (Master Out Slave In). Nếu thiết bị SPI cần giao tiếp
lại với Raspberry Pi, thì nó sẽ gửi dữ liệu trở lại bằng chân MISO (Master In Slave
Out). Có 5 chân liên quan đến giao tiếp SPI:
- GND: Kết nối tất cả các chân GND của tất cả các thành phần tớ (slave) và bo
mạch Raspberry Pi 3 với nhau.
- SCLK: Tín hiệu đồng hồ của SPI. Kết nối tất cả các chân SCLK với nhau.
- MOSI (Master Out Slave In): Chân này được sử dụng để gửi dữ liệu từ chủ
(master) đến tớ (slave).
- MISO (Master In Slave Out): Chân này được sử dụng để nhận dữ liệu từ slave
đến master.
- CE (Chip Enable): Chúng tôi cần kết nối một chân CE cho mỗi thiết bị slave
(hoặc các thiết bị ngoại vi) trong mạch của chúng ta. Theo mặc định, chúng ta có hai
28
chân CE nhưng chúng ta có thể cấu hình nhiều chân CE hơn từ các chân GPIO có sẵn
khác.
Các chân SPI trên bo mạch Raspberry Pi 3B:
- SPI0: GPIO 9 (MISO), GPIO 10 (MOSI), GPIO 11 (SCLK), GPIO 8 (CE0),
GPIO 7 (CE1)
- SPI1: GPIO 19 (MISO), GPIO 20 (MOSI), GPIO 21 (SCLK), GPIO 18 (CE0),
GPIO 17 (CE1), GPIO 16 (CE2)
Các chân GPIO chịu mức điện áp tối thiểu là 3V, tối đa là 5V. Nếu mức điện áp
nằm ngoài giới hạn này sẽ làm hỏng mạch. Thông thường, chúng ta nên sử dụng một
mạch mở rộng để kết nối với các thiết bị ngoại vi, không nên kết nối trực tiếp các thiết
bị, linh kiện điện tử vào GPIO trên Raspberry Pi.
Các chân PWM : PWM (Pulse Width Modulation – Điều chế độ rộng xung) là
một kỹ thuật phổ biến được sử dụng để thay đổi độ rộng của các xung trong một chuỗi
xung. PWM có nhiều ứng dụng như điều khiển độ sáng của đèn LED, điều khiển tốc
độ của động cơ DC, điều khiển động cơ servo hoặc nơi bạn phải lấy ngõ ra analog
bằng các thiết bị kỹ thuật số.
- Phần mềm PWM có sẵn trên tất cả các chân
- Phần cứng PWM chỉ khả dụng trên các chân này: GPIO 12, GPIO 13, GPIO 18,
GPIO 19
29
4.1.2. Servo SG90
PWM
Vcc
GND
30
4.1.3. Servo mg996
31
4.1.4. Dây cắm
32
4.1.6. Breadboard
SolidWorks được phát triển bởi một công ty phần mềm có tên SolidWorks
Corporation. Công ty này được thành lập vào năm 1993 bởi Jon Hirschtick, một kỹ sư
cơ khí đến từ Massachusetts Institute of Technology (MIT), và nhóm các kỹ sư khác.
Sản phẩm đầu tiên của SolidWorks Corporation là phần mềm SolidWorks 95,
được phát hành vào năm 1995. Đây là một trong những phần mềm CAD/CAM đầu
tiên sử dụng công nghệ đồ họa 3D trên máy tính cá nhân.
Với tính năng dễ sử dụng và giá cả phải chăng, SolidWorks đã trở thành một
trong những phần mềm CAD/CAM phổ biến nhất trên thị trường. SolidWorks
Corporation đã được mua lại bởi Dassault Systèmes, một công ty phần mềm đa quốc
gia có trụ sở tại Pháp, vào năm 1997.
Kể từ đó, SolidWorks đã phát triển nhanh chóng và có mặt trên hơn 100 quốc gia
trên toàn thế giới. Các phiên bản SolidWorks mới nhất được phát hành với nhiều tính
năng tiên tiến và nâng cao, đáp ứng nhu cầu của người dùng trong các lĩnh vực khác
nhau, từ sản xuất đến kỹ thuật cơ khí và thiết kế sản phẩm. Hiện nay, SolidWorks vẫn
là một trong những phần mềm CAD/CAM hàng đầu trên thị trường.
33
- Tính năng tạo hình 3D: SolidWorks cung cấp nhiều công cụ để tạo ra các hình
3D từ các bộ phận đơn giản đến phức tạp. Các công cụ này bao gồm extrude, revolve,
loft, sweep, và các công cụ tạo hình khác. Với các công cụ này, người dùng có thể tạo
ra các hình dạng độc đáo và phức tạp cho sản phẩm của mình.
- Tính năng tạo bản vẽ kỹ thuật: SolidWorks cho phép người dùng tạo ra các bản
vẽ kỹ thuật cho các sản phẩm của mình. Các bản vẽ này cung cấp thông tin chi tiết về
kích thước, hình dạng và các tính năng khác của sản phẩm. SolidWorks cũng cho phép
người dùng tạo ra các mẫu bản vẽ kỹ thuật để tiết kiệm thời gian.
- Tính năng lắp ráp: SolidWorks cung cấp các công cụ để lắp ráp các bộ phận của
sản phẩm. Các công cụ này cho phép người dùng kiểm tra tính năng của sản phẩm và
giúp giảm thiểu các lỗi trong quá trình sản xuất.
- Tính năng phân tích tính năng: SolidWorks cho phép người dùng phân tích tính
năng của sản phẩm để đảm bảo rằng sản phẩm đáp ứng được các yêu cầu kỹ thuật và
tiêu chuẩn an toàn. Các tính năng này bao gồm phân tích độ cứng, phân tích độ bền và
phân tích độ chịu tải.
- Tính năng CAM: SolidWorks tích hợp với các công cụ CAM để tạo ra các
chương trình gia công. Các công cụ này cho phép người dùng thiết kế và sản xuất các
sản phẩm chính xác và hiệu quả hơn.
- Tính năng quản lý dữ liệu: SolidWorks cung cấp các công cụ để quản lý dữ liệu
sản phẩm của người dùng. Các công cụ này cho phép người dùng quản lý các phiên
bản sản phẩm và chia sẻ dữ liệu với các thành viên khác trong đội ngũ thiết kế và sản
xuất.
SolidWorks là một phần mềm rất mạnh mẽ và linh hoạt, được sử dụng trong
nhiều lĩnh vực, từ thiết kế sản phẩm đến kỹ thuật chế tạo và sản xuất. Nó cung cấp các
công cụ để tạo ra các sản phẩm đa dạng, từ các bộ phận đơn giản đến các sản phẩm
phức tạp, và hỗ trợ các chuẩn mực và tiêu chuẩn khác nhau.
Ngoài ra, SolidWorks còn tích hợp với các phần mềm khác, như SOLIDWORKS
Simulation để phân tích tính năng của sản phẩm, SOLIDWORKS Electrical để thiết kế
hệ thống điện và SOLIDWORKS Composer để tạo ra các tài liệu hướng dẫn sử dụng
sản phẩm.
34
Với SolidWorks, người dùng có thể tạo ra các sản phẩm chất lượng cao và giảm
thiểu thời gian và chi phí sản xuất. Nó cũng có khả năng tương tác với các phần mềm
khác, giúp người dùng tối ưu hóa quy trình thiết kế và sản xuất.
Sau đó, cửa sổ xuất hiện. Sau đó, ta vào File → New. Để vào môi trường
làm
việc với SolidWorks.
35
Drawing: Mục xuất bản vẽ các hình chiếu để gia công.
Sau đó, ta vào mục vẽ click vào Part → Ok. Môi trường thiết kế xuất hiện.
36
Vẽ đường thẳng.
Vẽ đường tròn.
Vẽ đa giác.
Tạo đường biên dạng giống nhau với khoảng cách nhất định.
Vẽ hình Elip
Thao tác vẽ biên dạng ta làm như sau:
37
Click trái chuột chọn mặt phẳng Font Plane sẽ xuất hiện biểu tượng , ta
click vào.
Lưu ý, khi vẽ trong Solidworks ta phải ràng buột đầy đủ kích thước và theo
hình học: Thẳng hàng, đồng tâm, song song… Cách đơn giản nhất ta vẽ
điểm cố định đầu tiên tại gốc toạ độ như sau:
Đầu tiên, vẽ đường thẳng click vào biểu tượng , sau đó click 1 điểm
tại gốc toạ độ và vẽ liên tục như hình. Khi kết thúc lệnh ta thoát lệnh
bằng cách nhấn ESC trên bàn phím.
38
Sau đó, ta gán kích thước thì vào lệnh rồi click vào đoạn thẳng
muốn lấy kích thước và nhập kích thước và nhấn Enter. Khi hoàn thành kết
quả biên dạng sẽ có màu đen như hình:
39
Để thay đổi kích thước, click chuột trái 2 lần vào kích thước muốn thay
đổi, nhập kích thước thay đổi và nhấn Enter, để xoá biên dạng đã vẽ, click vào
biên dạng muốn xoá và nhấn Delete trên bàn phím và nhấn Yes.
4.2.3.2. Vẽ 3D
Bước 1: Ta chọn mặt Top Plane và vẽ lại như hình:
Bước 2: Sau đó, chọn lệnh Extruded Boss/Base để tạo khối biên dạng với
kích thước là 20mm.
Bước 3: Sau đó, ta tiếp tục chọn mặt phẳng sketch trên bề mặt sẳn có và vẽ
theo biên dạng:
40
Bước 4: Sau đó, chọn lệnh Extruded Boss/Base để tạo khối biên dạng với
kích thước là 20mm. Kết quả ta được:
Bước 5: Sau đó, ta tiếp tục chọn mặt phẳng sketch trên bề mặt sẳn có và vẽ
theo biên dạng:
41
Bước 6: Sau đó, chọn lệnh Extruded Cut để cắt khối biên dạng với kích
thước là 10mm. Kết quả ta được:
4.3. Xử lý ảnh
4.3.1. Khái niệm về Barcode
Mã vạch là phương pháp lưu trữ và truyền tải thông tin bằng một lọai ký hiệu gọi
là ký mã vạch. Ký hiệu mã vạch hay gọi tắt cũng là mã vạch, là 1 ký hiệu tổ hợp các
khoảng trắng và vạch thẳng để biểu diễn các mẫu ký tự, ký hiệu và các con số. Sự thay
42
đổi trong độ rộng của vạch và khoảng trắng biểu diễn thông tin số hay chữ số dưới
dạng mà máy có thể đọc được.
Mã số mã vạch được thu nhận bằng một máy quét mã vạch, là một máy thu nhận
hình ảnh của mã vạch in trên các bề mặt và chuyển thông tin chứa trong mã vạch đến
máy tính hay các thiết bị cần thông tin này. Nó thường có một nguồn sáng kèm theo
thấu kính, để hội tụ ánh sáng lên mã vạch, rồi thu ánh sáng phản xạ về một cảm quang
chuyển hóa tín hiệu ánh sáng thành tín hiệu điện. Ngoài ra, nhiều máy quét mã vạch
còn có thêm mạch điện tử xử lý tín hiệu thu được từ cảm quang để chuyển thành tín
hiệu phù hợp cho kết nối với máy tính.
Mã vạch tùy thuộc vào mục đích sử dụng mà người ta chia ra làm nhiều loại mã
vạch khác nhau, trong đó các dạng thông dụng trên thị trường mà ta thấy gồm UPC,
EAN, Code 39, Interleaved 2of 5, Codabar và Code 128. Ngoài ra, trong 1 số loại mã
vạch người ta còn phát triển làm nhiều Version khác nhau, có mục đích sử dụng khác
nhau, thí dụ UPC có các version là UPC-A, UPC-B, UPC-C, UPC-D và UPC-E; EAN
có các version EAN-8, EAN-13, EAN-14, Code 128 gồm Code 128 Auto, Code 128-
A, Code 128-B, Code 128-C.
Để đọc các được các ký hiệu mã vạch thì ta cần phải dùng một máy quét mã vạch
để đọc các loại mã vạch vào chương trình xử lý. Thông thường thì các loại mày quét
này được tích hợp sẵn một phần mềm để nhận dạng mã vạch, tùy theo tính chất của
công việc mà máy quét các máy quét khác nhau có thể đọc được các loại mã vạch khác
nhau.
4.3.2. Mã vạch 1D
Đây là một mã vạch tuyến tính thông thường, được cấu tạo bởi các sọc đen trắng
xếp sen kẽ lẫn nhau. Nó có một hàng duy nhất các thanh mã vạch tương tự như hang
rào. Mã vạch được gọi là “một chiều” bởi vì tất cả các dữ liệu được mã hóa trong
chiều rộng ngang. Tăng nội dung dữ liệu chỉ có thể đạt được bằng cách tăng chiều
rộng. Bên ngoài một điểm nhất định mã vạch trở nên quá rộng để quét một cách dễ
dàng.
Nhìn ký hiệu UPC như hình bên ta thấy tổng cộng gồm 12 ký số: Ký số thứ 1: Ở
đây là số 0, gọi là ký số hệ thống số (number system digit) hoặc còn gọi là “Family
code”. Nó nằm trong phạm vi của 7 con số định rõ ý nghĩa và chủng lọai của sản phẩm
như sau:
5 - Coupons: Phiếu lĩnh hàng hóa
4 - Dành cho người bán lẽ sử dụng
3 - Thuốc và các mặt hàng có liên quan đến y tế.
2 - Các món hàng nặng tự nhiên như thịt và nông sản.
0, 6, 7 - Gán cho tất cả các mặt hàng khác như là một phần nhận diện của nhà sản
xuất.
Mã vạch UPC được phát triển thành nhiều phiên bản như UPC-A, UPC-B, UPC-
C, UPC-D và UPC-E trong đó UPC-A được coi như phiên bản chuẩn của UPC, các
phiên bản còn lại được phát triển theo những yêu cầu đặc biệt của ngành công nghiệp.
44
Mã EAN: Mã số EAN-13 gồm 13 con số có cấu tạo như sau: từ trái sang phải
- Mã quốc gia: hai hoặc ba con số đầu.
- Mã doanh nghiệp: có thể gồm từ bốn, năm hoặc sáu con số.
- Mã mặt hàng: có thể là năm, bốn, hoặc ba con số tùy thuộc vào mã doanh
nghiệp.
- Số cuối cùng là số kiểm tra.
- Mã số EAN-8 gồm 8 con số có cấu tạo như sau:
- Ba số đầu là mã số quốc gia.
- Bốn số sau là mã mặt hàng.
- Số cuối cùng là số kiểm tra.
Mã vạch code 39: Code 39 được phát triển sau UPC và EAN là ký hiệu chữ và
số thông dụng nhất. Nó không có chiều dài cố định như UPC và EAN do đó có thể lưu
trữ nhiều lượng thông tin hơn bên trong nó. Do tính linh họat như vậy, Code 39 được
ưa chuộng rộng rãi trong bán lẻ và sản xuất. Bộ ký tự này bao gồm tất cả các chữ hoa,
các ký số từ 0 đến 9 và 7 ký tự đặc biệt khác.
46
Hiệp hội vận chuyển
container.
Codabar Ngân hàng máu. Rất an toàn.
Thư viện. Dày dặt.
Thư tín chuyển phát nhanh
trong nước.
Công nghiệp xử lý phim
ảnh.
Code 128 Công nghiệp chế tạo. Cần dung lượng 128 ký tự.
Vận chuyển container.
Bảng 3: Các loại mã thông dụng
Mã vạch EAN-13: Mã số EAN-13 gồm 13 con số có cấu tạo như sau: từ trái
sang phải
- Mã quốc gia: hai hoặc ba con số đầu
- Mã doanh nghiệp: có thể gồm từ bốn, năm hoặc sáu con số
- Mã mặt hàng: có thể là năm, bốn, hoặc ba con số tùy thuộc vào mã doanh
nghiệp
- Số cuối cùng là số kiểm tra
Từ năm 1995 đến tháng 3/1998, EAN-VN cấp mã M gồm bốn con số và từ
tháng 3/1998, theo yêu cầu của EAN quốc tế, EAN-VN bắt đầu cấp mã M gồm 5 con
số.Mã vạch EAN là loại mã vạch sử dụng riêng để thể hiện mã số EAN. Mã vạch EAN
có những tính chất sau đây:
- Chỉ thể hiện các con số (từ O đến 9) với chiều dài cố định (13 hoặc 8 con số).
Là mã đa chiều rộng, tức là mỗi vạch (hay khoảng trống) có thể có chiều rộng từ 1 đến
4 môđun. Do vậy, mật độ mã hoá cao nhưng độ tin cậy tương đối thấp, đòi hỏi có sự
chú ý đặc biệt khi in mã.
- Mã vạch EAN có cấu tạo như sau: Kể từ bên trái, khu vực để trống không ghi
ký hiệu nào cả, ký hiệu bắt đầu, ký hiệu dãy số bên trái, ký hiệu phân cách, ký hiệu
dãy số bên phải, số kiểm tra, ký hiệu kết thúc, sau đó là khoảng trống bên phải. Toàn
47
bộ khu vực mã vạch EAN-13 tiêu chuẩn có chiều dài 37,29 mm và chiều cao là
25,93mm.
Trong mã vạch, mỗi số được thể hiện bằng 2 vạch và 2 khoảng trắng. Một cấu
hình được sử dụng cho các số bên trái "L", trong khi cấu hình còn lại sử dụng cho các
số bên phải "R". (Điều này không mâu thuẫn với phương thức mã hóa chẵn lẻ của
EAN-13, do nếu quy đổi thành EAN-13 thì UPC-A có số đầu tiên bằng 0 và khi số đầu
tiên của EAN-13 bằng 0 thì các số có số thứ tự từ 2 đến 7 (1 đến 6 trong UPC-A) được
mã hóa theo tính lẻ).
Điều này được sử dụng để làm cho mã vạch có thể được quét ngược hay hay
xuôi, giúp cho máy quét có thể xác định từ hướng nào các mã được quét và làm cho nó
được đăng ký chính xác vào máy tính. Nếu như không có điều này, sản phẩm có thể dễ
dàng bị đăng ký sai. Mỗi số có 4 dạng mã hóa, trong đó 2 được sử dụng trong UPC-A
và 3 trong EAN.
Cấu trúc của mã vạch EAN-13: Các vạch bảo vệ trái - 6 số kể từ số thứ hai đến
số thứ bảy - các vạch bảo vệ trung tâm - 5 số tiếp theo (8-12)- số kiểm tra - các vạch
bảo vệ phải.
Việc mã hóa của 6 số từ vị trí thứ 2 đến vị trí thứ 7 phụ thuộc vào giá trị của số
đầu tiên theo quy tắc chẵn -lẻ dưới đây:
2 3 4 5 6 7
0 Lẻ Lẻ Lẻ Lẻ Lẻ Lẻ
1 Lẻ Lẻ Chẵn Lẻ Chẵn Chẵn
2 Lẻ Lẻ Chẵn Chẵn Lẻ Chẵn
3 Lẻ Lẻ Chẵn Chẵn Chẵn Lẻ
4 Lẻ Chẵn Lẻ Lẻ Chẵn Chẵn
5 Lẻ Chẵn Chẵn Lẻ Lẻ Chẵn
6 Lẻ Chẵn Chẵn Chẵn Lẻ Lẻ
7 Lẻ Chẵn Lẻ Chẵn Lẻ Chẵn
8 Lẻ Chẵn Lẻ Chẵn Chẵn Lẻ
9 Lẻ Chẵn Chẵn Lẻ Chẵn Lẻ
Bảng 4: Mã hóa chẵn lẻ
48
Chuỗi mã hóa chẵn hay lẻ của các giá trị số từ 0 đến 9 được liệt kê trong bảng
sau:
Giá trị số Lẻ Chẵn
0 0001101 0100111
1 0011001 0110011
2 0010011 0011011
3 0111101 0100001
4 0100011 0011101
5 0110001 0111001
6 0101111 0000101
7 0111011 0010001
8 0110111 0001001
9 0001011 0010111
Bảng 5: Mã hóa nhị phân
Cách tính số kiểm tra trong mã vạch,ví dụ mã vạch 893 3481 00106 : Cộng
tổng giá trị của các số ở thứ tự lẻ bắt đầu được tính từ phải sang trái của dãy MS (trừ
số C), ta có : 6 + 1 + 0 + 8 + 3 + 9 = 27 (1).
Nhân tổng của (1) với 3, ta có: 27 x 3 = 81 (2)
+ P -893 - nhóm 1.
+ M -4602 - nhóm 2.
+ I -00107 - nhóm 3.
+ C -8 - nhóm 4.
Cộng tổng giá trị của các số ở thứ tự chẵn còn lại, ta có:
0 + 0 + 1 + 4 + 3 + 8 = 16 (3).
Cộng giá trị (2) với (3), ta có: 81 + 16 = 97 (4)
Lấy giá trị của (4) làm tròn theo bội số của 10 (tức là 100) sát nhất với giá trị
của (4) trừ đi giá trị của (4) ta có: 100 - 97 = 3. Như vậy C = 3.
Trong trường hợp này mã số EAN - VN 13 có MSHH đầy đủ là
Quy ước: Các bit có giá trị 1 được in bằng mực đen thành một đường thẳng
đứng, các bit có giá trị 0 không được in (hoặc được in bằng mực trắng) thành một
49
đường thẳng đứng có cùng độ rộng với bit có giá trị 1. Các vạch bảo vệ trái và phải có
giá trị bit là 101. Các vạch bảo vệ trung tâm có giá trị bit là 01010.
50
Từ việc lấy nguồn dữ liệu cho hệ thống và thiết lập thực nghiệm. Thì sẽ bắt đầu
tiến hành thực nghiệm chương trình. Tạo một môi trường ảo trước khi tiếp tục cài đặt.
Sử dụng các gói như:
- Opencv-python: Thư viện mã nguồn mở cho thị giác máy tính, học máy và xử
lý ảnh. Nó đi kèm với BarcodeCodeDetector lớp tích hợp, giúp giải mã mã vạch.
- Numpy: Làm việc hiệu quả với ma trận và mảng, tốc độ xử lý nhanh.
- Pyzbar: Nhận dạng và giải mã mã vạch mà sẽ hiển thị cho máy ảnh. Thêm
thông tin được lưu trữ dưới dạng văn bản trên mã vạch.
Thêm khai báo nhập sau vào đầu tệp Python
Import cv2
Import numpy as np
From pyzbar.pyzar import decode
Tiếp theo, chúng ta đang bật camera của máy tính bằng OpenCV. Nếu có một
máy ảnh bên ngoài, thì phải thay đổi giá trị 0 thành 1 tùy thuộc vào thiết bị.
cap = cv2.VideoCapture(0)
Tiến hành chạy một vòng lặp while để tiếp tục chạy chức năng giải mã. “Detect”
có vai trò là giải mã mã QR trong hình ảnh khi nó được tìm thấy bằng detect() phương
pháp. Trả về chuỗi đầu ra được mã hóa UTF8 hoặc chuỗi trống nếu không thể giải mã
được mã.
while True:
success, img = cap.read()
for barcode in decode (img):
myData = barcode.data.decode('utf-8')
print(myData)
pts = np.array([barcode.polygon],np.int32)
pts = pts.reshape((-1,1,2))
Sau đó sử dụng cv2.polylines để vẽ các đường kẻ. Các thông số như sau: đối
tượng được vẽ đến, tọa độ, màu sắc và độ dày.
cv2.polylines(img,[pts],True,(255,0,255),5)
pts2 = barcode.rect
Cv2.putText sẽ cho hiển thị nội dung bên trong của mã vạch. Chúng sẽ xuất ra
màn hình là: ảnh, màu viền của mã sau khi quét
cv2.putText(img,myData,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,
0.9,(255,0,255),2)
Hiển thị ảnh lên cửa sổ giao diện.
cv2.imshow(‘Result’,img)
cv2.waitKey(1)
Khi đã nhận diện được mã vạch, tiếp tục đẩy dữ liệu thu được lên Firebase
51
Hình 34: Dữ liệu được đẩy lên Firebase
4.4. Phần lập trình nhúng và giao diện
4.4.1. Giới thiệu về phần mềm QT creator và framework QT.
QT Creator là một môi trường phát triển tích hợp (IDE) được sử dụng để phát
triển ứng dụng đa nền tảng bằng cách sử dụng framework QT. Được phát triển bởi Tập
đoàn The Qt Company, QT Creator là một phần mềm mã nguồn mở và miễn phí, hỗ
trợ nhiều ngôn ngữ lập trình như C++, Python, JavaScript, và nhiều ngôn ngữ khác.
QT là một framework ứng dụng đa nền tảng mạnh mẽ, cho phép phát triển các
ứng dụng đồ họa tương tác và giao diện người dùng (GUI) đáng tin cậy trên nhiều nền
tảng, bao gồm Windows, macOS, Linux, Android và iOS. Đặc điểm nổi bật của QT là
khả năng tái sử dụng mã nguồn (code reusability), giúp tăng hiệu suất phát triển và
giảm thời gian và công sức.
QT Creator cung cấp một loạt các tính năng hỗ trợ phát triển ứng dụng QT, bao
gồm:
Trình biên dịch và gỡ lỗi tích hợp: QT Creator tích hợp trình biên dịch và gỡ lỗi
cho các ngôn ngữ lập trình QT và hỗ trợ nhiều công cụ và tính năng giúp người phát
triển dễ dàng xác định và khắc phục lỗi trong quá trình phát triển ứng dụng.
Thiết kế giao diện người dùng (GUI): QT Creator cung cấp trình thiết kế GUI
kéo và thả (drag-and-drop) cho phép người phát triển dễ dàng tạo ra giao diện người
dùng trực quan và tương tác.
Quản lý dự án: QT Creator cho phép người phát triển quản lý và tổ chức dự án
của mình, bao gồm tạo, xóa và sắp xếp các tệp tin, thư mục, và tài nguyên liên quan
đến dự án.
Hỗ trợ đa nền tảng: QT Creator hỗ trợ phát triển đa nền tảng, cho phép người
phát triển xây dựng và kiểm tra ứng dụng trên nhiều nền tảng khác nhau từ một môi
trường duy nhất.
52
Gỡ lỗi và kiểm thử: QT Creator cung cấp các công cụ và tính năng để gỡ lỗi và
kiểm thử ứng dụng, giúp người phát triển tìm ra và sửa lỗi một cách hiệu quả
53
- Gồm 2 thuộc tính góc của Servo và chân điều khuyển trên PI, và 2 phương
thương thức set góc và lấy giá trị của góc.
54
- Cánh tay Robot 4 bậc tự do : gồm 4 động cơ servo điều khuyển chuyển động
của cách tay
55
56
- Đối tượng đồng bộ hóa dữ liệu dữa Firebase và dữ liệu local:
57
58
4.4.3. Thiết kế phần mềm:
Giao diện GUI:
- Phần Log dữ liệu( bên phải): dùng ghi lại các hoạt động của cách tay Robot
59
- Phần hiển thị thông tin kho hàng: Gồm tên hàng,mã Serial,và ngày nhập kho
- Nút Xuất kho và Nhập kho : Có chức năng điều khuyển cách tay robot .
- Code điều khuyển chính:
+ File head.
+ File cpp:
60
61
62
63
CHƯƠNG 5: KẾT LUẬN
Mục tiêu đề ra ban đầu là thực hiện mô phỏng cánh tay robot 4 bậc tự do, thiết kế
mô hình in 3D, nhận diện được mã vạch và đẩy dữ liệu lên Firebase, điều khiển cách
tay gắp đồ vật khi nhận được mã từ Firebase đều đã được hoàn thiện. Các chức năng
cơ bản đều có thể đáp ứng được. Tuy nhiên, do kiến thức còn nhiều thiết sót, một vài
chức năng vẫn chưa chạy hoàn hảo và còn tồn đọng một vài sai sót. Các thành viên
đều hoàn thành tốt nhiệm vụ được giao, đảm bảo tiến độ cho từng tuần và hoàn thiện
tốt các chức năng khi hoàn thiện sản phẩm cuối cùng.
Hướng phát triển trong tương lai sẽ là hoàn thiện và sửa chữa lại những thiết sót
của từng phần theo góp ý và nhận xét của các thầy. Có thể phát triển đề tài theo hướng
một hệ thống xuất nhập hàng thông minh, tích hợp nhiều cách tay robot trong đó. Mỗi
cánh tay sẽ là một nhánh của cả hệ thống. Dữ liệu xuất và nhập sẽ được gửi lên giao
diện giám sát chung, từ đó có thể dễ dàng kiểm soát được lượng xuất nhập hàng cũng
như vị trí của từng sản phẩm một cách dễ dàng và tự động hóa.
64
TÀI LIỆU THAM KHẢO
65