You are on page 1of 80

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA


KHOA CƠ KHÍ

ĐỒ ÁN TỐT NGHIỆP
NGÀNH: KỸ THUẬT CƠ ĐIỆN TỬ

ĐỀ TÀI:

Thiết kế và chế tạo máy bắn bóng tennis


tự động

Người hướng dẫn: TS. NGÔ THANH NGHỊ


Giảng viên duyệt: TS. LÊ HOÀI NAM
Sinh viên thực hiện: NGUYỄN HOÀNG LONG
LÊ VĂN LONG
Số thẻ sinh viên : 101150216
101150213
Lớp: 15CDT2

Đà Nẵng, 12/2019
TÓM TẮT

Tên đề tài: THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG
Sinh viên thực hiện: Lê Văn Lân 15CDT2 MSSV: 101150213
Nguyễn Hoàng Long 15CDT2 MSSV: 101150216

Nội dung đồ án này đề cập cơ sở lý thuyết về phương pháp phân tích, tính toán và
chế tạo máy bắn bóng tennis tự động. Máy bắn bóng tennis sử dụng phương pháp cán
ép banh giúp nâng cao hiệu suất bắn và bắn được bóng theo nhiều tầm. Nội dung thực
hiện gồm 01 bản thuyết minh đồ án tốt nghiệp, 04 bản vẽ A0 và 01 mô hình máy bắn
bóng tennis tự động. Kết quả đạt được là đã thiết kế máy bắn bóng tennis hoàn chỉnh,
máy hoạt động chính xác và ổn định, dễ dàng vận hành và sử dụng. Vậy nên ý nghĩa của
đồ án nhằm tạo ra một máy bắn tennis mang thương hiệu Việt chất lượng - rẻ - dễ sử
dụng để mọi người có thể tiếp cận.
ĐẠI HỌC ĐÀ NẴNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập –tự do – hạnh phúc
KHOA CƠ KHÍ

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP


TT Họ và tên sinh viên Số thẻ SV Lớp Ngành
1 Nguyễn Hoàng Long 101150216 15CDT2 Kĩ thuật cơ điện tử
2 Lê Văn Lân 101150213 15CDT2 Kĩ thuật cơ điện tử
1. Tên đề tài đồ án:
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG
2. Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
3. Các số liệu và dữ liệu ban đầu: Tham khảo từ mô hình thực tế
4. Nội dung các phần thuyết minh và tính toán:
a. Phần chung:
TT Họ và tên sinh viên Nội dung
- Tìm hiểu và lựa chọn các loại cơ cấu phù hợp, các
1 Nguyễn Hoàng Long phương án thiết kế tối ưu và lắp ráp hoàn thiện mô
hình đồ án.
- Thiết kế mạch điện tử, lên phương án lựa chọn linh
2 Lê Văn Lân kiện, gia công mạch điện tử.
- Làm thuyết minh
b. Phần riêng
TT Họ và tên sinh viên Nội dung

1 Nguyễn Hoàng Long - Thiết kế mô hình cơ khí.

2 Lê Văn Lân - Lập trình điều khiển.

4. Các bản vẽ ,đồ thị (ghi rõ các loại và kích thước bản vẽ):
a. Phần chung:
TT Họ và tên sinh viên Nội dung
1 Nguyễn Hoàng Long
- Bản vẽ mạch điều khiển và đấu nối
2 Lê Văn Lân
b. Phần riêng
TT Họ và tên sinh viên Nội dung
- Bản vẽ tổng thể
1 Nguyễn Hoàng Long
- Bản vẽ chi tiết

2 Lê Văn Lân - Bản vẽ lưu đồ thuật toán

5. Họ và tên người hướng dẫn : T.S Ngô Thanh Nghị


6. Ngày giao nhiệm vụ đồ án: 20/8/2019
7. Ngày hoàn thành đồ án: 30/11/2019

Đà Nẵng , ngày 05 tháng 12 năm 2019


Trưởng Bộ môn Người hướng dẫn
T.S Ngô Thanh Nghị
LỜI MỞ ĐẦU

Lời đầu tiên, chúng em xin cảm ơn tất cả quý Thầy/Cô trong Khoa Cơ Khí cũng như
quý Thầy/Cô ở Trường Đại học Bách Khoa – Đại Học Đà Nẵng đã giúp chúng em có
những kiến thức để hoàn thành được đồ án tốt nghiệp cũng như là hành trang để giúp
chúng em sau này . Chúng em xin bày tỏ lòng biết ơn sâu sắc đối với thầy Ngô Thanh
Nghị, người đã tận tình chỉ dạy cho chúng em phương pháp nghiên cứu khoa học, thầy
cũng đã cung cấp cho chúng em rất nhiều kiến thức chuyên sâu để thực hiện đề tài.
Chúng em xin gửi lời cảm ơn chân thành đến quý Thầy đã dành thời gian quý báu để
nhận xét và chấm Đồ án tốt nghiệp. Đây sẽ là nhưng đóng góp rất quý giá cho chúng em
trên để hoàn thiện sản phẩm ngày một tốt hơn, một sản phẩm mang thương hiệu Việt.
Sau cùng, nhưng không thể thiếu được, là sự hỗ trợ của gia đình, chúng con xin bày
tỏ lòng biết ơn sâu sắc tới Ba Mẹ, những người đã luôn luôn động viên, ở bên chúng con
trong những lúc khó khăn nhất.
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta
đã và đang một ngày thay đổi, văn minh và hiện đại hơn. Sự phát triển của kỹ thuật điện
tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc
độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt động của con người
đạt hiệu quả.
Có thể nói rằng máy móc mang tới cho cuộc sống con người một cuộc sống mới, một
cách trải nghiệm cuộc sống , tận hưởng nó một cách dễ dàng hơn. Trong số đó các máy
móc giúp con người tập thể thao rèn luyện thân thể 1 cách dễ dàng. Máy bắn tennis là
một trong số đó. Hiện nay các máy trên thị trường để tập tennis có giá thành giao động
từ 10 đến 15 triệu một máy. Vậy nên để tạo ra một máy bắn tennis mang thương hiệu
Việt chất lượng - rẻ - dễ sử dụng để mọi người có thể tiếp cận là mục đích của đồ án
chúng em.
Đề tài đã hoàn thành xong, nhưng không thể tránh nhiều thiếu sót mong quý thầy cô
giáo thông cảm và chỉ bảo thêm để đề tài có thể phát triển và ứng dụng rộng rãi trong
thực tế.
Em xin chân thành gửi lời cảm ơn đến các quý thầy cô!
Sinh viên thực hiện:
Nguyễn Hoàng Long
Lê Văn Lân
Đà Nẵng, 05/12/2019.

i
CAM ĐOAN

Chúng em xin cam đoan nội dung của đồ án không phải sao chép bất cứ đồ án hay
công trình nào đã có trước đây. Mọi sự giúp đỡ cho việc thực hiện đồ án này đã được
cảm ơn, các thông tin trích dẫn trong đồ án đã được ghi nguồn gốc rõ ràng và được phép
công bố.

Sinh viên thực hiện

Nguyễn Hoàng Long Lê Văn Lân

ii
MỤC LỤC

TÓM TẮT .................................................................................................................... i


LỜI MỞ ĐẦU .............................................................................................................. i
CAM ĐOAN ...............................................................................................................ii
MỤC LỤC ................................................................................................................. iii
MỤC LỤC HÌNH ẢNH ............................................................................................... v
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU ........................................... 1
1.1 Giới thiệu chung về tự động hóa...................................................................... 1
1.2 Giới thiệu về đề tài .......................................................................................... 2
1.2.1 Giới thiệu .................................................................................................... 2
1.2.2 Lịch sử phát triển của bộ môn Tennis .......................................................... 2
1.3 Tính cấp thiết của đề tài................................................................................... 3
1.3.1 Tình hình chung .......................................................................................... 3
1.3.2 Nhiệm vụ của máy tập tennis....................................................................... 4
1.4 Nguyên lí hoạt động ......................................................................................... 5
1.4.1 Nguyên lí hoạt động tổng thể của máy........................................................ 5
1.4.2 Các tính năng của máy ................................................................................ 5
Chương 2: PHÂN TÍCH LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ ......................... 6
2.1 Lựa chọn phương pháp bắn bóng ................................................................... 6
2.1.1 Dùng lò xo đẩy banh ................................................................................... 6
2.1.2 Dùng khí nén ............................................................................................... 7
2.1.3 Dùng lực li tâm ........................................................................................... 7
2.1.4 Dùng phương pháp cán ép banh .................................................................. 7
2.2 Chọn cơ cấu thay đổi hướng bắn ..................................................................... 8
2.2.1 Dùng dạng khớp ống ................................................................................... 8
2.2.2 Cơ cấu quay ................................................................................................ 8
2.3 Chọn phương án thùng đựng bóng ............................................................... 10
2.3.1 Thùng bóng bản lề ..................................................................................... 10
2.3.2 Thùng bóng liền vỏ ................................................................................... 10
2.4 Chọn phương án mạch điều khiển ............................................................... 12
2.4.1 Dùng PLC ................................................................................................. 12
2.4.2 Dùng Raspberry Pi .................................................................................... 12
2.4.3 Dùng Arduino ........................................................................................... 12

iii
2.5 Chọn phương án nguồn ................................................................................. 13
2.5.1 Nguồn pin acquy, pin lithium .................................................................... 13
2.5.2 Nguồn tổ ong............................................................................................. 13
Chương 3: CÁC THÀNH PHẦN TRONG HỆ THỐNG ....................................... 14
3.1 Động cơ ........................................................................................................... 14
3.1.1 Động cơ 775 .............................................................................................. 14
3.1.2 Động cơ Nema 23 76 mm.......................................................................... 14
3.1.3 Động cơ Nema 23 51mm........................................................................... 15
3.2 Thiết bị điều khiển ......................................................................................... 16
3.2.1 Arduino Mega 2560 .................................................................................. 16
3.2.2 Driver TB6600 .......................................................................................... 17
3.2.3 Driver TB6560 .......................................................................................... 18
3.2.4 VNH2SP30 Single .................................................................................... 19
3.3 Nguồn cấp ....................................................................................................... 20
3.3.1 Nguồn tổ ong 12V-30A ............................................................................. 20
3.3.2 Mạch hạ áp DC-DC LM2596 .................................................................... 21
3.4 Thiết bị khác................................................................................................... 21
3.4.1 Công tắc hành trình ................................................................................... 21
3.4.2 Module còi Buzzer 5V .............................................................................. 21
3.4.3 LCD2004 .................................................................................................. 22
3.4.4 Mạch chuyển đổi I2C cho LCD ................................................................. 22
Chương 4: THIẾT KẾ HỆ THỐNG ....................................................................... 24
4.1 Thiết kế hệ thống cơ khí................................................................................. 24
4.1.1 Bộ phận bắn banh ...................................................................................... 24
4.1.2 Cơ cấu nạp bóng........................................................................................ 28
4.1.3 Khung máy................................................................................................ 28
4.1.4 Vỏ máy ..................................................................................................... 29
4.2 Lưu đồ thuật toán .......................................................................................... 30
4.3 Thiết kế hệ thống điều khiển. ........................................................................ 31
4.3.1 Sơ đồ nguyên lí và đấu nối dây.................................................................. 31
4.3.2 Lập trình điều khiển .................................................................................. 32
KẾT LUẬN .............................................................................................................. 68
TÀI LIỆU THAM KHẢO ....................................................................................... 70

iv
MỤC LỤC HÌNH ẢNH

Hình 1.1: Máy bắn tennis Arow Plus ........................................................................... 3


Hình 1.2: Máy tập tennis Lobster Sports Elite .............................................................. 3
Hình 1.3 Sơ đồ khối nguyên lí hoạt động của máy ..................................................... 5
Hình 2.1: Bóng tennis .................................................................................................. 6
Hình 2.2: Cơ cấu dạng khớp ống.................................................................................. 8
Hình 2.3: Cơ cấu quay toàn bộ máy ............................................................................. 9
Hình 2.4: Cơ cấu quay bộ phận bắn ............................................................................. 9
Hình 2.5: Thùng bóng bản lề...................................................................................... 10
Hình 2.6: Thùng bóng liền vỏ .................................................................................... 11
Hình 3.1: Động cơ DC 775 ........................................................................................ 14
Hình 3.2: Động cơ bước Nema 23 76mm ................................................................... 15
Hình 3.3: Động cơ bước Nema 23 51mm ................................................................... 15
Hình 3.4: Arduino Mega 2560 ................................................................................... 16
Hình 3.5: Driver TB6600 ........................................................................................... 17
Hình 3.6: Cách cài đặt cường độ dòng điện................................................................ 18
Hình 3.7: Cách cài đặt vi bước ................................................................................... 18
Hình 3.8: Driver TB6560 ........................................................................................... 19
Hình 3.9: Cách cài đặt cường độ dòng điện................................................................ 19
Hình 3.10: Cách cài đặt vi bước ................................................................................. 19
Hình 3.11: VNH2SP30 Single ................................................................................... 20
Hình 3.13: Nguồn tổ ong 12V-30A ............................................................................ 20
Hình 3.14: Mạch hạ áp DC-DC LM2596 ................................................................... 21
Hình 3.12: Công tắc hành trình .................................................................................. 21
Hình 3.13: Module Buzzer 5V ................................................................................... 22
Hình 3.14: LCD2004 ................................................................................................. 22
Hình 3.15: Mạch chuyển đổi I2C cho LCD ................................................................ 23
Hình 4.1: Mô hình 3D máy ........................................................................................ 24
Hình 4.3: Kích thước bánh xe .................................................................................... 25
Hình 4.4: Bánh đà ...................................................................................................... 26
Hình 4.5: Trục ........................................................................................................... 26

v
Hình 4.6: Lắp bánh xe lên trục ................................................................................... 26
Hình 4.7: Cơ cấu quay quanh trục Z .......................................................................... 27
Hình 4.8: Cơ cấu quay quanh trục X .......................................................................... 27
Hình 4.9: Lắp cơ cấu quay trục X và Z ...................................................................... 28
Hình 4.10: Cơ cấu nạp bóng....................................................................................... 28
Hình 4.11: Khung nhôm định hình ............................................................................. 29
Hình 4.12: Các tấm vỏ máy ....................................................................................... 29
Hình 4.13: Lưu đồ thuật toán điều khiển .................................................................... 30
Hình 4.14: Sơ đồ mạch .............................................................................................. 31
Hình thực tế máy bắn bóng tennis .............................................................................. 68

vi
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Chương 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU

1.1 Giới thiệu chung về tự động hóa


Tự động hóa là ngành thuộc nhóm ngành điện-điện tử dùng để chỉ một công việc
được thực hiện mà không có sự giúp đỡ của bất kỳ sự can thiệp trưc tiếp của con
người. Tự động hóa có nghĩa là thực hiện một nhiệm vụ đặc biệt với sự giúp đỡ của
mạch điện truyền động điện. Tự động hóa đã luôn luôn chứng tỏ là một ý tưởng có hiệu
quả đối với hầu hết các ngành công nghiệp và các công ty, mà đối phó với sản xuất, vốn
và hàng hoá tiêu dùng. Bất kỳ loại hình sản xuất sẵn sàng tạo điều kiện thuận lợi bằng
cách tự động hóa.
Tự động hóa là một bộ môn được hình thành khi kỷ thuật điện đã sử dụng các chất
bán dẫn phát minh ra Transitor, diode, thiristor đã (1949) và đã dần xây dựng bộ vi xử
lý(1971) đã tạo ra các máy tính điều khiển (Role, PLC, 8051, PIC, 8088, PC,…) nên hệ
thống truyền động điện bằng động cơ điện – mạch điều khiển đã thay thế các hệ thống
điều khiển bằng cơ khí: xích-bánh răng.
Hệ thống tự động hóa là phần điện – điện tử của của một hệ thống có cả điện – điện
tử và cơ khí. Ví dụ điều khiển lò nhiệt của nhà máy thép: thì có 2 phần cơ bản là Cơ khí
và Điện, trong đó cơ khí là phần vỏ lò chịu nhiệt còn phần Điện tức là phần mạch điều
khiển nhiệt độ của lò để biến điện năng thành nhiệt năng.
Các tên tương đương: Tự động hóa, Điều khiển tự động, Tin học công nghiệp, Điện tự
động, Điện tử công nghiệp,… thuộc nhóm ngành Kỷ thuật điều khiển – tự động hóa hay
rộng hơn nữa là thuộc lĩnh vực Kỷ thuật điện.
Có một số lợi thế của tự động hóa trong ngành công nghiệp hoặc thậm chí trong một
công ty . Tự động hóa giúp tiết kiệm sức lao động của người lao động và do đó nó cũng
giúp tiết kiệm rất nhiều thời gian cho người lao động có thể được hướng dẫn đến một số
quá trình làm việc khác. Lợi thế lớn nhất của việc sử dụng hệ thống tự động và các công
cụ là nó tiết kiệm thời gian quảng cáo đồng thời nó cũng giúp tiết kiệm chi phí. Trong
một ngành công nghiệp, đó là tham gia vào sản xuất hàng hoá kỹ thuật nặng và dịch vụ,
trong cùng một ngành công nghiệp các hệ thống tự động có thể thực hiện nhiệm vụ,
được thực sự được thực hiện, nói, 100 người lao động. Hệ thống tự động hóa sẽ không
mất một nửa thời gian của người lao động của con người sẽ thực hiện để hoàn thành một
nhiệm vụ cụ thể. Vì lý do này ít hơn số lượng của bàn tay con người được yêu cầu phải
thực hiện một nhiệm vụ cụ thể trong một ngành công nghiệp. Điều này giúp tiết kiệm
thời gian và tại cùng một thời gian, công ty đã thanh toán tiền lương thấp hơn cho người
lao động do đó tiết kiệm một số tiền một lần ra lợi nhuận của nó.

1
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Cùng với tất cả những điều này, lợi thế quan trọng của tự động hóa là để nâng cao
năng suất của công ty. Một ngành công nghiệp, có cài đặt các máy tự động trong quá
trình sản xuất của nó, rõ ràng là đã đưa ra một quyết định thông minh. Lý do là nó thường
được quan sát thấy rằng tự động hóa của bất kỳ quá trình sản xuất cải thiện năng suất
phần lớn. Do đó, tự động hóa của nền văn hóa làm việc trong một công ty cụ thể, công
ty có thể tăng tiềm năng của nó và kiếm được nhiều hơn bằng cách đầu tư ít hơn.
1.2 Giới thiệu về đề tài
1.2.1 Giới thiệu
Ngày nay, với sự phát triển cao của xã hội theo xu thế toàn cầu hoá, các sản phẩm
làm ra phải thể hiện tính cạnh tranh về độ an toàn, sự tiện dụng, độ tin cậy cao và quan
trọng là giá thành hạ … Cơ điện tử chính là hướng giải quyết tối ưu để tạo ra các sản
phẩm đáp ứng được các yêu cầu trên.
Nghiên cứu, chế tạo máy phục vụ nhu cầu con người luôn là hướng đi đầu trong Cơ
điện tử. Ở hướng đi này, hiện tại trên thế giới đã có những bước tiến vượt bậc và có tiềm
năng phát triển vô cùng to lớn. Trong đó, việc tạo ra những máy phục vụ luyện tập, giải
trí thể thao luôn là một trong những lĩnh vực thu hút đầu tư nghiên cứu bởi tiềm năng
cũng như lợi ích to lớn mà nó đem lại. Máy bắn banh Tennis cũng là một trong những
sản phẩm đáp ứng được nhu cầu, thị hiếu của người chơi thể thao.
1.2.2 Lịch sử phát triển của bộ môn Tennis
Môn thể thao Quần Vợt có từ khi nào? Trong một viện bảo tàng của Hy Lạp có một
bức tranh treo tường đã cho thấy rằng là có một môn chơi hao hao giống Tennis đã tồn
tại 500 năm trước công nguyên. Và tới thế kỷ XV ở nước Pháp từ cái gọi là : “môn chơi
bóng bằng lòng bàn tay” đã xuất hiện môn quần vợt hoàng gia và nó được người Ta chơi
trên các hành lang của tu viện. Phải tới những năm cầm quyền của nhà vua Victoria thì
môn quần vợt hay là môn Tennis đương thời mới xuất hiện. Vào năm 1870 lần đầu tiên
luật chơi của môn Tennis được ra đời và với vài sự thay đổi nhỏ thì luật này vẫn còn có
hiệu lực cho tới ngày nay. Hiện nay, trên thế giới, Nhật Bản là nước chế tạo và sử dụng
robot công nghiệp hàng đầu trên thế giới. Nhưng trong lĩnh vực chế tạo máy phục vụ
người chơi thể thao thì Mỹ đã đi trước Nhật trong việc tiếp cận nhu cầu, thị hiếu khách
hàng cũng như trình độ thiết kế chế tạo máy. Với môn Tennis, người ta đã cho ra đời
nhiều loại máy để phục vụ cho nhu cầu luyện tập và thi đấu, từ những chiếc máy dùng
cho công việc đan lưới Tennis cho tới các máy nhặt banh, và các máy bắn banh Tennis
từ đơn giản cho tới phức tạp.

2
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Môt số máy tập trên thị trường :

Hình 1.1: Máy bắn tennis Arow Plus

Hình 1.2: Máy tập tennis Lobster Sports Elite


1.3 Tính cấp thiết của đề tài
1.3.1 Tình hình chung
Ở Việt Nam hiện nay, mức sống của người dân ta càng ngày càng được cải thiện.
Kèm theo đó, nhu cầu thể dục thể thao cũng phát triển theo, ngày càng đa dạng. Việc
đáp ứng nhu cầu đó là quan trọng, cấp thiết. Tennis là một môn thể thao được đông đảo
quần chúng yêu thích nhưng do việc tập luyện, thi đấu môn thể thao này đòi hỏi sân bãi,
dụng cụ thể thao chuyên dùng, đội ngũ trọng tài, quan sát, phục vụ… rất tốn kém nên
chỉ có một số ít người chơi môn này( vận động viên chuyên nghiệp, giới công chức,
người có điều kiện vật chất…). Để phổ biến, phát triển môn thể thao này, yêu cầu phải
hạ mức giá xuống phù hợp với thu nhập của người dân. Việc nghiên cứu - chế tạo máy

3
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

tập - đánh banh tennis là một trong những hướng đi đưa môn thể thao quí tộc này đến
với đông đảo quần chúng bởi những ưu điểm: không cần đội ngũ trọng tài - phục vụ
đông đảo, nhiều người có thể tập - chơi mọi lúc mọi nơi, chơi theo trình độ của người
chơi… Vì thế nó có thể được sử dụng trong gia đình, trường học, câu lạc bộ thể thao,
công ty… Đây cũng là những yêu cầu cần phải được đáp ứng trong chế tạo.
1.3.2 Nhiệm vụ của máy tập tennis
Máy bắn banh tennis là một dụng cụ trợ giúp cho các vận động viên trong những
buổi tập đơn. Nhiệm vụ chính của máy là phát bóng ra cho người tập. Hoạt động của
nó dựa trên nguyên tắc động lực, thuỷ lực hoặc khí nén kết hợp với điều khiển. Loại
máy này rất tiện ích cho bạn khi bạn tập một mình. Máy có thể giúp bạn tập với tốc độ
nhanh hoặc không thích thì bạn tập chậm lại theo chế độ bạn cài đặt cho máy, với loại
máy hiện đại, bạn chỉ cần nhấn vài nút trên dụng cụ điều khiển từ xa là nó làm theo ý
bạn. Thực ra loại máy này đã được các nước Âu, Mỹ phát minh ra từ những năm 40.
Ban đầu họ cũng chế tạo nó với nhiệm vụ chính là phát banh, nó được đặt cố định trong
suốt thời gian hoạt động. Nhưng do nhu cầu ngày càng cao, sau này người ta chế tạo nó
giống như một anh chàng robot thực thụ, nó có thể đi quanh sân để giúp bạn thu hồi
bóng và dĩ nhiên khi đó nó không đồng thời phát bóng ra cho bạn được nhưng nó được
coi là một phát minh mới. Khi môn tennis trở nên phổ biến hơn thì không chỉ những
người thích thể thao mà cả những người đã gia nhập thể thao đang cố gắng cải tiến chất
lượng trò chơi của họ. Với loại máy như thế, vận động viên có thể thực hành những cú
đánh riêng biệt đến khi anh ta có thể thực hiện chúng một cách thuần thục và sau đó tiến
hành những cú đánh khác. Tóm lại máy bắn banh Tennis là một dụng cụ giúp đỡ cho
mọi người luyện tập. Nhiệm vụ của máy là bắn ra các quả banh Tennis ở các góc độ và
mạnh, nhẹ khác nhau. Với máy này, người huấn luyện viên có thể dễ dàng phát hiện ra
những chỗ sai của người tập. Ngoài ra, đối với các loại máy hiện đại còn có thể tạo ra
các đường banh khó giúp cho trình độ của người tập càng được nâng cao hơn. Hiện nay,
trên thế giới đã có rất nhiều loại máy bắn banh tennis được quảng cáo trên mạng với các
giá khá cao. Tuy nhiên hiện nay ở Việt Nam vẫn chưa có sản xuất những loại máy này.
Trong những năm gần đây, những sự cải tiến và phát minh mới đã làm cho máy phát
banh tennis này ngày càng trở nên đa dạng và phong phú hơn.

4
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

1.4 Nguyên lí hoạt động


1.4.1 Nguyên lí hoạt động tổng thể của máy

Khối Driver động cơ

NGUỒN
Khối xử lý trung tâm

Khối thu tín hiệu

Hình 1.3 Sơ đồ khối nguyên lí hoạt động của máy


­ Khối xử lí trung tâm: Sử dụng vi điều khiển arduino mega 2560, thực hiện chức
năng tiếp nhận và xử lí tín hiệu đưa về từ khối thu tín hiệu. Truyền tín hiệu điều
khiển đến khối Driver động cơ.
­ Khối thu tín hiệu: Sử dụng nút bấm điều khiển, hiện thị trên LCD.
­ Khối Driver động cơ: Sử dụng module TB6600 và TB6560 để điều khiển tốc
độ động cơ bước. Module VNH2SP30 để điều khiển tốc độ động cơ 775.
­ Khối nguồn: Sử dụng nguồn tổ ong 12V-30A để cung cấp nguồn cho máy. Mạch
hạ áp DC-DC LM2596 để cấp nguồn 5V cho vi điều khiển và driver.
1.4.2 Các tính năng của máy
­ Các chức năng bắn cơ bản như bắn gần, xa, trái, phải, ngẫu nhiên.
­ Bắn bóng xoáy.
­ Có thể tùy chỉnh góc bắn và tốc độ bắn tạo nên đường bóng đa dạng.
­ Góc lia bóng sang hai bên trong khoảng ±250 .
­ Điều khiển bằng tay trong chế độ Manual hoặc chọn chế độ Auto.

5
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Chương 2: PHÂN TÍCH LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ

2.1 Lựa chọn phương pháp bắn bóng


Khi thiết kế cơ cho máy, điều quan trọng đầu tiên là đưa ra một phương pháp bắn
banh hiệu quả – hợp lí, còn việc thay đổi điểm rơi – hướng banh – độ xoáy phụ thuộc
vào phương pháp bắn banh mà ta đưa ra kết cấu phù hợp.
Banh Tennis có dạng cầu, đường kính ngoài 67 mm bề mặt có lông tăng ma sát trọng
lượng 50 gam, tính đàn hồi cao, có thể chịu lực nén, lực va đập lớn.

Hình 2.1: Bóng tennis


Xuất phát từ đặc điểm trên của banh ta đưa ra một số phương pháp bắn banh như sau:
2.1.1 Dùng lò xo đẩy banh
Ưu điểm:
­ Chế tạo đơn giản, rẻ tiền.
­ Tầm bắn rộng.
Nhược điểm:
­ Hiệu suất bắn thấp do phải tốn thời gian nén lò xo.
­ Banh bắn ra không có lực (giống như ném), việc tạo ra những đường banh xoáy
khó khăn (phải thông qua một cơ cấu khác).
­ Khi hoạt động gây ra tiếng ồn của lò xo, độ ma sát cao, kết cấu nén – nhả lò xo
phức tạp.

6
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

2.1.2 Dùng khí nén


Ưu điểm:
­ Lực bắn lớn tạo ra tầm bắn rộng, banh có lực.
­ Tính chính xác cao do chống chế được lưu lượng, áp suất dòng khí.
­ Năng suất cao do sử dụng nguồn không khí xung quanh một cách liên tục.
Nhược điểm:
­ Phải sử dụng máy nén – lọc không khí nên kết cấu kồng kềnh, phức tạp, giá đắt.
­ Khi sử dụng gây tiếng ồn.
­ Việc sử dụng vận hành phải hiểu biết về khí nén , tính an toàn không cao.
2.1.3 Dùng lực li tâm
Ưu điểm:
­ Năng suất cao, dễ chế tạo.
Nhược điểm:
­ Do đặc điểm của kết cấu quay li tâm nên máy to kồng kềnh.
­ Tầm bắn hạn chế.
­ Có thể tạo ra lực bắn lớn cần phải có tốc độ quay lớn gây va đập mạnh.
2.1.4 Dùng phương pháp cán ép banh
Ưu điểm:
­ Năng suất cao có thể bắn banh liên tục với lực bắn mạnh theo nhiều tầm.
­ Dễ chế tạo, đơn giản.
­ Có thể tạo ra đường banh xoáy bằng cách cho hai động cơ quay khác tốc độ.
­ Tận dụng được tính đàn hồi cao của banh.
Nhược điểm
­ Động cơ quay với tốc độ cao để bắn xa nên việc điều chỉnh tốc độ quay gặp nhiều
khó khăn.
­ Bánh đai yêu cầu nhẹ và lõm ở giữa.
Kết luận
Từ sự phân tích ưu – nhược điểm của các phương pháp bắn banh trên ta nhận thấy
phương pháp ép banh là phù hợp nhất, nó đáp ứng được những yêu cầu nêu ở trên.

7
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

2.2 Chọn cơ cấu thay đổi hướng bắn


2.2.1 Dùng dạng khớp ống
Ưu điểm:
­ Thiết kế này tận dụng ống dẫn banh làm các khớp nối xoay cũng như làm giá đỡ.
­ Có thể bố trí các bậc tự do hoạt động độc lập mà vẫn đảm bảo độ cứng vững cần
thiết.
Nhược điểm:
­ Việc gia công chế tạo ống (tạo khớp nối) yêu cầu độ chính xác hình học cao đồng
thời phải đảm bảo được độ cứng vững của các khớp xoay.
­ Việc thiết kệ - bố trí, tính toán hệ truyền động cho các bậc tự do gặp nhiều khó
khăn để đáp ứng các yêu cầu về tải , momen lực, không bị vướng, gọn nhẹ.

Hình 2.2: Cơ cấu dạng khớp ống


2.2.2 Cơ cấu quay
a) Quay toàn bộ máy
Ưu điểm:
­ Độ cứng vững cao.
­ Các bậc được bố trí hoạt động độc lập nhau nên việc thay đổi hướng bắn dễ dàng,
tầm thay đổi lớn.
Nhược điểm:
­ Phải sử dụng động cơ momen lớn để quay cả máy.

8
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hình 2.3: Cơ cấu quay toàn bộ máy


b) Quay cụm bắn bóng
Ưu điểm:
­ Độ cứng vững cao.
­ Kết cấu nhỏ gọn.
Nhược điểm:
­ Bị hạn chế góc quay.

Hình 2.4: Cơ cấu quay bộ phận bắn


Kết luận:
Phân tích ưu – nhược điểm của các kết cấu trên ta nhận thấy thay đổi hướng bóng
bằng cơ cấu quay cụm bắn bóng là phù hợp nhất.

9
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

2.3 Chọn phương án thùng đựng bóng


2.3.1 Thùng bóng bản lề
Ưu điểm:
­ Các tấm của thùng bóng có thể mở ra và gấp lại nhờ khớp bản lề, do đó tiết kiệm
được diện tích khi không sử dụng.
Nhược điểm:
­ Không chắc chắn.
­ Gia công phức tạp hơn, tăng chi phí.

Hình 2.5: Thùng bóng bản lề


2.3.2 Thùng bóng liền vỏ
Ưu điểm:
­ Dễ gia công.
­ Kết cấu vững chắc.
­ Tiết kiệm chi phí.
Nhược điểm:
­ Tăng kích thước máy.

10
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hình 2.6: Thùng bóng liền vỏ


Kết luận:
Phân tích ưu – nhược điểm của các phương án trên ta thấy thiết kế thùng bóng liền
vỏ là hợp lý nhất.

11
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

2.4 Chọn phương án mạch điều khiển


2.4.1 Dùng PLC
Ưu điểm:
­ Ứng dụng điều khiển trong phạm vi rộng.
­ Độ tin cậy cao.
­ Thích ứng trong môi trường khắc nghiệt: Nhiệt độ, độ ẩm, điện áp.
Nhược điểm:
­ Giá thành cao.
2.4.2 Dùng Raspberry Pi
Ưu điểm:
­ Nhỏ gọn.
­ Siêu tiết kiệm điện.
­ Phục vụ cho nhiều mục đích.
­ Khả năng hoạt động liên tục 24/7.
Nhược điểm:
­ Yêu cầu phải có kiến thức cơ bản về Linux, điện tử.
­ Giá thành khá cao.
2.4.3 Dùng Arduino
Ưu điểm:
­ Arduino có các thư viện có sẵn.
­ Dễ sử dụng.
­ Giá rẻ.
Nhược điểm:
­ Trong một số điều kiện dễ bị gây nhiễu.
Kết luận:
Phân tích các ưu nhược điểm chúng em chọn dùng Arduino vì dễ sử dụng và giá cả
phải chăng, qua đó có thể giúp giảm giá thành sản phẩm.

12
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

2.5 Chọn phương án nguồn


2.5.1 Nguồn pin acquy, pin lithium
Ưu điểm:
­ Thông dụng.
­ Có thể sạc nhiều lần.
­ Tính cơ động cao.
Nhược điểm:
­ Thời gian sử dụng hạn chế.
­ Giá cả tương đối đắt.
2.5.2 Nguồn tổ ong
Ưu điểm :
­ Thông dụng.
­ Giá rẻ.
­ Nguồn ổn định, không hạn chế thời gian sử dụng.
Nhược điểm :
­ Tính cơ động không cao.
Kết luận:
Phân tích các ưu nhược điểm chúng em chọn dùng nguồn tổ ong để giảm giá thành
của máy.

13
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Chương 3: CÁC THÀNH PHẦN TRONG HỆ THỐNG

3.1 Động cơ
3.1.1 Động cơ 775
Chức năng: Quay bánh đà để bắn bóng.
Thông số kỹ thuật:
­ Điện áp hoạt động: 12 VDC
­ Tốc độ vòng tua: 13000 RPM
­ Đường kính thân: 42 mm.
­ Chiều dài thân: 66,5 mm
­ Đường kính trục: 5 mm.
­ Chiều dài đầu trục: 19 mm.
­ Chiều dài trục 98 mm

Hình 3.1: Động cơ DC 775


3.1.2 Động cơ Nema 23 76 mm
Chức năng:
­ Quay cơ cấu bắn quanh trục Z (quay trái, phải)
­ Quay cơ cấu nạp bóng
Thông số kỹ thuật:
­ Kích thước: 57*57*76 mm
­ Khối lượng: 1.2 kg
­ Đường kính trục: 6.35 mm
­ Chiều dài trục: 21mm
­ Số bước 1 vòng quay: 200

14
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

­ Điện áp hoạt động: 3.2V


­ Dòng định mức: 2.8A
­ Momen giữ : 1.9Nm

Hình 3.2: Động cơ bước Nema 23 76mm


3.1.3 Động cơ Nema 23 51mm
Chức năng: quay cơ cấu bắn quanh trục X (quay lên, xuống)
Thông số kỹ thuật:
­ Kích thước: 57*57*51mm
­ Khối lượng: 620 g
­ Đường kính trục: 6.35 mm
­ Chiều dài trục: 21mm
­ Số bước 1 vòng quay : 200
­ Điện áp hoạt động :12V
­ Dòng định mức: 0.38A
­ Mô men giữ: 0.9Nm

Hình 3.3: Động cơ bước Nema 23 51mm

15
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

3.2 Thiết bị điều khiển


3.2.1 Arduino Mega 2560
Chức năng: Bộ xử lý trung tâm, nhận tín hiệu cảm biến gửi về, xử lý và gửi đi các
lệnh từ người dùng.

Hình 3.4: Arduino Mega 2560


Thông số kỹ thuật:
­ Chip xử lý: ATmega2560
­ Điện áp hoạt động: 5V
­ Điện áp vào (đề nghị): 7V-15V
­ Điện áp vào (giới hạn): 6V-20V
­ Cường độ dòng điện trên mỗi 3.3V pin: 50 mA
­ Cường độ dòng điện trên mỗi I/O pin: 20 mA
­ Flash Memory: 256 KB
­ SRAM: 8 KB
­ EEPROM: 4 KB
­ Clock Speed: 16 MHz
­ 54 chân digital (15 có thể được sử dụng như các chân PWM)
­ 16 đầu vào analog,
­ 4 UARTs (cổng nối tiếp phần cứng),
­ 1 thạch anh 16 MHz,
­ 1 cổng kết nối USB,
­ 1 jack cắm điện,
­ 1 đầu ICSP,
­ 1 nút reset

16
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

3.2.2 Driver TB6600


Chức năng: Sử dùng driver TB6600 để điều khiển động cơ bước xoay cơ cấu nạp
bóng.
Thông số kĩ thuật:
­ Nguồn đầu vào là 9V – 42V.
­ Dòng cấp tối đa là 4A.
­ Ngõ vào có cách ly quang, tốc độ cao.
­ Có tích hợp đo quá dòng quá áp.
­ Khối lượng: 200g.
­ Kích thước: 96*71*37mm.

Hình 3.5: Driver TB6600


Chân chức năng:
­ DC+: Nối với nguồn điện từ 9 – 40VDC
­ DC- : Điện áp (-) âm của nguồn
­ A+ và A -: Nối vào cặp cuộn dây của động cơ bước
­ B+ và B- : Nối với cặp cuộn dây còn lại của động cơ
­ PUL+: Tín hiệu cấp xung điều khiển tốc độ (+5V) từ vi điều khiển
­ PUL-: Tín hiệu cấp xung điều khiển tốc độ (-) từ vi điều khiển
­ DIR+: Tín hiệu cấp xung đảo chiều (+5V) từ vi điều khiển
­ DIR-: Tín hiệu cấp xung đảo chiều (-) từ vi điều khiển
­ ENA+ và ENA -: khi cấp tín hiệu cho cặp này động cơ sẽ không có lực momen
giữ và quay nữa
17
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

­ Có thể đấu tín hiệu dương (+) chung hoặc tín hiệu âm (-) chung

Hình 3.6: Cách cài đặt cường độ dòng điện

Hình 3.7: Cách cài đặt vi bước


3.2.3 Driver TB6560
Chức năng:
­ Điều khiển động cơ bước quay cơ cấu bắn theo trục Z
­ Điều khiển động cơ bước quay cơ cấu bắn theo trục X
Thông số kĩ thuật
­ Điện áp hoạt động: 10-35VDC.
­ Dòng tải tối đa: 3A, peak 3.5A.
­ Tích hợp tản nhiệt nhôm lớn giúp tản nhiệt cho TB6560.
­ Có công tắc để Setup dòng tải, tối đa 3A.
­ Có công tắc để Setup vi bước 1:1, 1:2, 1:8, 1:16.
­ Có công tắc để Setup Decay (lực giữ vị trí cố định).

18
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hình 3.8: Driver TB6560

Hình 3.9: Cách cài đặt cường độ dòng điện

Hình 3.10: Cách cài đặt vi bước


3.2.4 VNH2SP30 Single
Chức năng: Điều khiển động cơ 775.
Thông số kỹ thuật:
­ Điện áp hoạt động: 5.5 – 16VDC
­ Dòng đỉnh: 30A
­ Dòng liên tục: 14A
­ Current sense (chân đo dòng): có thể kết nối chân Analog của Arduino để đo

19
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

­ Trở kháng nội của MOSFET : 19mΩ


­ Tần số băm xung tối đa : 20kHz
­ Bảo vệ quá nhiệt và quá áp.

Hình 3.11: VNH2SP30 Single


3.3 Nguồn cấp
3.3.1 Nguồn tổ ong 12V-30A

Hình 3.13: Nguồn tổ ong 12V-30A


Chức năng: Cấp nguồn cho toàn bộ máy
Thông số kỹ thuật:
­ Điện áp đầu vào: 190-220 VAC.
­ Điện áp đầu ra: 12 VDC.
­ Dòng điện đầu ra: 30 A.
­ Công suất: 360 W.
­ Tần số: 50/60 Hz.
­ Kích thước: 21,5*11 *5 cm
­ Khối lượng: 0.72 kg

20
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

3.3.2 Mạch hạ áp DC-DC LM2596


Chức năng: Cấp nguồn 5VDC cho Arduino và các Driver
Thông số kỹ thuật:
­ Hiệu suất chuyển đổi : lên đến 92%
­ Điện áp vào : 3V – 40 VDC
­ Điện áp ra điều chỉnh : 1.5 V – 35 VDC
­ Dòng ngõ ra : định mức 2A ( tối đa 3A )
­ Công suất ra: 10W
­ Kích thước : 45*20*14mm

Hình 3.14: Mạch hạ áp DC-DC LM2596


3.4 Thiết bị khác
3.4.1 Công tắc hành trình
Chức năng: Xác định các góc quay ban đầu.

Hình 3.12: Công tắc hành trình


3.4.2 Module còi Buzzer 5V
Chức năng: Phát tiếng kêu khi nhấn nút.
Thông số kĩ thuật:
­ Điện áp hoạt động: 5VDC.
­ Kích mức thấp.

21
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hình 3.13: Module Buzzer 5V


3.4.3 LCD2004
Chức năng: Người dùng thao tác chọn chế độ hoặc chỉnh thông số thông qua LCD.
Thông số kĩ thuật:
­ Điện áp hoạt động: 5VDC.
­ Dòng điện tiêu thụ: 350uA - 600uA.
­ Nhiệt độ hoạt động: -30°C đến 75°C.
­ Kích thước 96 x 60 mm, chữ đen, nền xanh lá.
­ Đèn Led nền có thể điều khiển bằng biến trở hoặc PWM.
­ Có thể điều khiển bằng 6 chân tín hiệu.
­ Hỗ trợ hiển thị bộ kí tự tiếng Anh và tiếng Nhật.

Hình 3.14: LCD2004

3.4.4 Mạch chuyển đổi I2C cho LCD


Chức năng: Chuyển đổi giao tiếp I2C cho LCD, tiết kiệm chân vi điều khiển.
Thông số kĩ thuật:
­ Điện áp hoạt động: 2.5-6V DC.

22
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

­ Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).


­ Giao tiếp: I2C.
­ Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).
­ Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H).
­ Trọng lượng: 5g.
­ Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
­ Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

Hình 3.15: Mạch chuyển đổi I2C cho LCD

23
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Chương 4: THIẾT KẾ HỆ THỐNG

4.1 Thiết kế hệ thống cơ khí

Hình 4.1: Mô hình 3D máy


4.1.1 Bộ phận bắn banh
a) Lựa chọn động cơ
Xuất phát từ thực tế trong môn Tennis, tốc độ banh tối đa cần đạt được là 100 Km/h
(1667 m/p). Để đạt được tốc độ này ta phải xác định đường kính bánh đai 𝐷𝑏𝑑𝑎𝑖 ,tốc độ
động cơ 𝑣𝑑𝑐 , công suất động cơ 𝑊𝑑𝑐 thích hợp. Xét trường hợp hai bánh đà quay cùng
tốc độ.
Từ công thức liên hệ vận tốc (Công thức (16) [5]):
𝑣𝑏 = 𝑣𝑑𝑐 × 𝜋 × 𝐷𝑏𝑑𝑎𝑖
(𝐷𝑏𝑑𝑎𝑖 = 110 𝑚𝑚 là loại bánh xe nhựa đúc giá rẻ có sẵn trên thị trường).

24
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

𝑣𝑏 1667
⇒ 𝑣𝑑𝑐 = = = 4826 (𝑣/𝑝 )
𝜋 × 𝐷𝑏𝑑𝑎𝑖 3.14 × 0.11
Momen quán tính bóng ( Công thức (20) [5]):
2
𝐼𝑝 = 𝑚𝑟 2
3

(m là khối lượng bánh đà và bóng; r là bán kính bánh đà và bóng)


Công cần thiết khi bắn bóng (Công thức (26) [5]):
1
∆𝑊𝑑𝑟 = (𝑚𝑉 2 + 𝐼𝑝 𝜔2 )
4

Do xét trường hợp hai bánh đà có cùng tốc độ nên tốc độ góc của bóng 𝜔 bằng 0.
1 1
=> ∆𝑊𝑑𝑟 = (𝑚𝑉 2 ) = (56 × 10−3 × 27.82 ) = 10,82(𝐽)
4 4

Giả sử thời gian nén bóng là 0,1s ta suy ra được công suất của động cơ:
∆𝑊𝑑𝑟 10,82
𝑃= = = 108,2(𝑊)
𝑡 0,1
b) Lựa chọn bánh đai
Ta lựa chọn loại bánh xe giá rẻ có sẵn trên thị trường. Được làm từ nhựa đúc với ưu
điểm cứng và nhẹ.

Hình 4.3: Kích thước bánh xe


Ta ghép hai bánh xe lại với nhau để tạo thành rãnh dẫn hướng cho bóng. Tạo điều
kiện thuận lợi ăn bánh tốt, lực ép đều và đảm bảo bóng không bị biến dạng tập trung gây
hư bóng.

25
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hình 4.4: Bánh đà


c) Trục lắp bánh đà
Trục lắp bánh đà là trục bậc để lắp bánh xe, nối trục, gối đỡ. Trên thân trục có ren
để dùng đai ốc siết chặt bánh xe.

Hình 4.5: Trục

Hình 4.6: Lắp bánh xe lên trục

26
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

d) Cơ cấu quay quanh trục Z.

Hình 4.7: Cơ cấu quay quanh trục Z


Phần khung gia công bằng phương pháp cắt laser và dập thành hình. Vật liệu là Inox
304 2 mm, đảm bảo cơ cấu vững chắc, bền theo thời gian.
Dùng cây ty ren M6 bắt ngang để tăng độ cứng vững cho phần khung.
Vì cả bộ phận được đặt trên mâm xoay nên lực cần xoay cơ cấu không lớn, tốc độ
xoay cũng thấp nên ta chọn động cơ bước Nema 23 76 mm.
e) Cơ cấu quay quanh trục X.
Thanh gá hai bên được cắt laser Inox 304 2 mm. Trên và dưới có hai cây ty ren M6
để gông cơ cấu. Phần lỗ lắp trục có thể thay đổi được.

Hình 4.8: Cơ cấu quay quanh trục X

27
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Cơ cấu trục X được lắp với phần khung bằng bu lông blind. Sử dụng bộ truyền đai
để truyền chuyển động từ động cơ Nema 23 51 mm.

Hình 4.9: Lắp cơ cấu quay trục X và Z


4.1.2 Cơ cấu nạp bóng
Cơ cấu nạp bóng gồm hai tấm trên và dưới, khi động cơ quay tấm trên, bóng sẽ lọt
vào lỗ ở tấm dưới, qua ống dẫn lăn vào bộ phận bắn bóng.
Yêu cầu lực và tốc độ không lớn nên chọn động cơ bước Nema 23 76 mm.

Hình 4.10: Cơ cấu nạp bóng


4.1.3 Khung máy
Phần khung máy đòi hỏi phải cứng vững cao do đó việc sử dụng nhôm định hình là
hợp lý nhất. Ngoài ra ưu điểm của nhôm định hình là nhẹ và dễ tháo lắp. Máy dùng loại
nhôm định hình 20*20 mm.

28
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hình 4.11: Khung nhôm định hình


4.1.4 Vỏ máy
Vỏ máy phải chắc chắn và nhẹ, chịu được các điều kiện môi trường như mưa, nắng.
Do đó ta sử dụng vật liệu mica. Gia công cắt mica bằng laser, độ dày 2 mm. Các tấm vỏ
được gắn vào khung máy bằng bu lông vặn vào các ốc ngầm trong rãnh nhôm định hình.

Hình 4.12: Các tấm vỏ máy

29
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

4.2 Lưu đồ thuật toán

Hình 4.13: Lưu đồ thuật toán điều khiển

30
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

4.3 Thiết kế hệ thống điều khiển.


4.3.1 Sơ đồ nguyên lí và đấu nối dây
Hệ thống điều khiển bao gồm:
­ Arduino mega 2560 : điều khiển chính
­ Driver TB6560 và Driver TB6600 : điều khiển động cơ bước
­ Driver VNH2SP30 : Điều khiển động cơ DC 775

Hình 4.14: Sơ đồ mạch

31
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

4.3.2 Lập trình điều khiển


Chương trình chính
#include "CONTROL_MOTOR.h"
void setup()
{
Serial.begin(9600);
pinMode(OPTION_BUTTON, INPUT_PULLUP);
pinMode(UP_BUTTON, INPUT_PULLUP);
pinMode(DOWN_BUTTON, INPUT_PULLUP);
pinMode(SELECT_BUTTON, INPUT_PULLUP);
pinMode(ENTER_BUTTON, INPUT_PULLUP);
pinMode(ESC_BUTTON, INPUT_PULLUP);
pinMode(STOP_BUTTON, INPUT_PULLUP);
pinMode(START_BUTTON, INPUT_PULLUP);
pinMode(CLK1, OUTPUT);
pinMode(DIR1, OUTPUT);
pinMode(CLK2, OUTPUT);
pinMode(DIR2, OUTPUT);
pinMode(CLK3, OUTPUT);
pinMode(DIR3, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(MOTOR_A1_PIN, OUTPUT);
pinMode(MOTOR_B1_PIN, OUTPUT);
pinMode(MOTOR_A2_PIN, OUTPUT);
pinMode(MOTOR_B2_PIN, OUTPUT);
pinMode(PWM_MOTOR_1, OUTPUT);
pinMode(PWM_MOTOR_2, OUTPUT);
pinMode(EN_PIN_1, OUTPUT);
pinMode(EN_PIN_2, OUTPUT);

32
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

pinMode(CTHT2, INPUT_PULLUP);
pinMode(CTHT3, INPUT_PULLUP);
attachInterrupt(0, UP_SPEED, FALLING);
// attachInterrupt(5, STOP, FALLING);
DELAY = SPEED_BALL();
lcd.init();
lcd.backlight();
CENTER("LOADING", 0);
delay(1000);
HOME(0, 0, 0, 0);
MODE_BUFFER = 0;
RESET_SYSTEM();
LED(0, 1);
Serial.println("Khoi Tao Thanh Cong");
}
void loop()
{
if (Serial.available() > 0)
{
DATA = 0;
DATA = byte(Serial.read());
SOUND();
if (DATA == 1)
{
LED(1, 0);
Serial.println("AUTO1");
HOME(0, 0, EEPROM.readInt(10), 1);
AUTO1(EEPROM.readInt(20), EEPROM.readInt(30));
LED(0, 1);

33
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

}
if (DATA == 2)
{
LED(1, 0);
Serial.println("AUTO2");
HOME(0, 0, EEPROM.readInt(10), 2);
AUTO2(EEPROM.readInt(20), EEPROM.readInt(30));
LED(0, 1);
}
if (DATA == 3)
{
LED(1, 0);
Serial.println("AUTO3");
HOME(0, 0, EEPROM.readInt(10), 3);
AUTO3(EEPROM.readInt(20), EEPROM.readInt(30));
LED(0, 1);
}
}
if (digitalRead(OPTION_BUTTON) != OLD_OPTION_BUTTON)
{
if (digitalRead(OPTION_BUTTON) == 0)
{
OLD_OPTION_BUTTON = 0;
int option_timer = 0;
while (digitalRead(OPTION_BUTTON) == 0)
{
if (digitalRead(DOWN_BUTTON) == 0)
{
option_timer = option_timer + 1;

34
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

delay(1);
if (option_timer == 2000)
{
SOUND();
page = 2;
LCD_DISPLAY(page);
}
}
}
if (option_timer < 2000)
{
SOUND();
DELAY = SPEED_BALL();
OLD_OPTION_BUTTON = 0;
page = 1;
LCD_DISPLAY(page);
}
}
else OLD_OPTION_BUTTON = 1;
}
if (digitalRead(START_BUTTON) != OLD_START_BUTTON)
{
if (digitalRead(START_BUTTON) == 0)
{
DELAY = SPEED_BALL();
Serial.println(EEPROM.read(10));
Serial.println(DELAY);
OLD_START_BUTTON = 0;
SOUND();

35
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

if (MODE_BUFFER == 1)
{
LED(1, 0);
Serial.println("AUTO1");
HOME(0, 0, EEPROM.readInt(10), 1);
AUTO1(EEPROM.readInt(20), EEPROM.readInt(30));
LED(0, 1);
}
if (MODE_BUFFER == 2)
{
LED(1, 0);
Serial.println("AUTO2");
HOME(0, 0, EEPROM.readInt(10), 2);
AUTO2(EEPROM.readInt(20), EEPROM.readInt(30));
LED(0, 1);
}
if (MODE_BUFFER == 3)
{
LED(1, 0);
Serial.println("AUTO3");
HOME(0, 0, EEPROM.readInt(10), 3);
AUTO3(EEPROM.readInt(20), EEPROM.readInt(30));
LED(0, 1);
}
}
else OLD_START_BUTTON = 1;
}
if (MODE_BUFFER == 4)
{

36
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Serial.println("MANUAL");
LED(1, 0);
HOME(0, 0, EEPROM.readInt(10), 4);
MANUAL(EEPROM.readInt(20), EEPROM.readInt(30));
MODE_BUFFER = 0;
LED(0, 1);
}
}
Chương trình điều khiển động cơ
#include "EXTRA.h"
void(*resetFunc) (void) = 0;
void STOP()
{
Serial.println("STOP");
digitalWrite(EN_PIN_1, LOW);
digitalWrite(EN_PIN_2, LOW);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, 0);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, 0);
for (int s = 0; s < s + 1; s++)
{
if (digitalRead(START_BUTTON) == 0)
{
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);

37
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, 50);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, 50);
break;
}
if(digitalRead(ESC_BUTTON)==0)
{
delay(1500);
if(digitalRead(ESC_BUTTON)==0)
{
resetFunc();
}
}
}
}
void UP_SPEED()
{
Serial.println("UP_SPEED");
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, 20 + EEPROM.readInt(20));
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, 20 + EEPROM.readInt(30));
int k = int(1000000 / int(DELAY * 2));

38
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

if (k > 800) k = 100;


for (int i = 0; i <= k; i++)
{
digitalWrite(CLK1, LOW);
if (digitalRead(ESC_BUTTON) == 0) break;
delayMicroseconds(DELAY);

digitalWrite(CLK1, HIGH);
if (digitalRead(ESC_BUTTON) == 0) break;
delayMicroseconds(DELAY);
}
}
int SPEED_BALL()
{
float SPEED = 0.0;
int SPEED_BUFFER = 0;
SPEED_BUFFER = EEPROM.readInt(10);
SPEED = SPEED_BUFFER;
SPEED = float(SPEED / 4);
SPEED = SPEED * 3200;
SPEED = float(60 * 1000000) / SPEED;
SPEED = SPEED / 2;
return SPEED;
}
void AUTO1(int PWM1_VALUE, int PWM2_VALUE)
{
HOME(X, Y, EEPROM.readInt(10), 1);
RESET(14, 24);
digitalWrite(DIR1, HIGH);

39
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

digitalWrite(DIR2, HIGH);
digitalWrite(DIR3, HIGH);
for (int j = 0; j < j + 1; j++)
{
DATA = 0;
if (Serial.available() > 0)
{
DATA = byte(Serial.read());
}
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, PWM2_VALUE);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, PWM1_VALUE);
counter = counter + 1;
if (counter == 1 || counter == 2)
{
digitalWrite(DIR2, HIGH);
}
if (counter == 3 || counter == 4)
{
digitalWrite(DIR2, LOW);
}
for (int i = 0; i < 106 / 9; i++)
{
for (int j = 0; j < 9; j++)

40
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

{
digitalWrite(CLK2, LOW);
digitalWrite(CLK1, LOW);
delayMicroseconds(DELAY);
digitalWrite(CLK2, HIGH);
digitalWrite(CLK1, HIGH);
delayMicroseconds(DELAY);
}
if (counter == 4 || counter == 3) X = X - 1;
if (counter == 1 || counter == 2) X = X + 1;
String TD = "";
TD = TD + X;
TD = TD + ":";
TD = TD + Y;
CENTER(TD, 1);
}
if (counter >= 4) counter = 0;
for (int i = 0; i <= 800; i++)
{
digitalWrite(CLK1, LOW);
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
delayMicroseconds(DELAY);
digitalWrite(CLK1, HIGH);
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
delayMicroseconds(DELAY);
}
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
}
}

41
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

void AUTO2(int PWM1_VALUE, int PWM2_VALUE)


{
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, PWM2_VALUE);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, PWM1_VALUE);
RESET(12, 18);
for (int p = 0; p < p + 1; p++)
{
DATA = 0;
if (Serial.available() > 0)
{
DATA = byte(Serial.read());
}
int a = random(0, 3);
int b = random(0, 3);
RESET(VARI_DC2[a], VARI_DC3[b]);
for (int j = 0; j <= 800; j++)
{
digitalWrite(CLK1, LOW);
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
delayMicroseconds(DELAY);
digitalWrite(CLK1, HIGH);
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
delayMicroseconds(DELAY);

42
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

}
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
}
}
void AUTO3(int PWM1_VALUE, int PWM2_VALUE)
{
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, PWM2_VALUE);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, PWM1_VALUE);
RESET(12, 18);
for (int p = 0; p < p + 1; p++)
{
DATA = 0;
if (Serial.available() > 0)
{
DATA = byte(Serial.read());
}
int a = random(0, 3);
int b = random(0, 3);
RESET(VARI_DC2[a], VARI_DC3[b]);
for (int i = 0; i <= 800; i++)
{
digitalWrite(CLK1, LOW);
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;

43
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

delayMicroseconds(DELAY);
digitalWrite(CLK1, HIGH);
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
delayMicroseconds(DELAY);
}
if (digitalRead(ESC_BUTTON) == 0 || DATA != 0) break;
}
}
void MANUAL(int PWM1_VALUE, int PWM2_VALUE)
{
int timer = 0;
for ( int q = 0; q < q + 1; q++)
{
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
analogWrite(PWM_MOTOR_2, PWM2_VALUE);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
analogWrite(PWM_MOTOR_1, PWM1_VALUE);
if (timer == 2000)
{
Serial.println("đang quay");
digitalWrite(CLK1, LOW);
delayMicroseconds(DELAY);
digitalWrite(CLK1, HIGH);
delayMicroseconds(DELAY);
}

44
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

if (digitalRead(UP_BUTTON) != OLD_UP_BUTTON)
{
SOUND();
Serial.println("UP");
OLD_UP_BUTTON = 0;
if (digitalRead(UP_BUTTON) == 0)
{
int VALUE_BUFFER = 0;
VALUE_BUFFER = Y;
if (VALUE_BUFFER < 24)VALUE_BUFFER = VALUE_BUFFER + 1;
else VALUE_BUFFER = 24;
RESET(X, VALUE_BUFFER);
}
else OLD_UP_BUTTON = 1;
}
if (digitalRead(DOWN_BUTTON) != OLD_DOWN_BUTTON)
{
Serial.println("DOWN");
OLD_DOWN_BUTTON = 0;
if (digitalRead(DOWN_BUTTON) == 0)
{
SOUND();
int VALUE_BUFFER = 0;
VALUE_BUFFER = Y;
if (VALUE_BUFFER > 0)VALUE_BUFFER = VALUE_BUFFER - 1;
else VALUE_BUFFER = 0;
RESET(X, VALUE_BUFFER);
}
else OLD_DOWN_BUTTON = 1;

45
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

if (digitalRead(SELECT_BUTTON) != OLD_SELECT_BUTTON)
{
Serial.println("SELECT");
OLD_SELECT_BUTTON = 0;
if (digitalRead(SELECT_BUTTON) == 0)
{
SOUND();
int VALUE_BUFFER = 0;
VALUE_BUFFER = X;
if (VALUE_BUFFER < 45)VALUE_BUFFER = VALUE_BUFFER + 1;
else VALUE_BUFFER = 45;
RESET(VALUE_BUFFER, Y);
}
else OLD_SELECT_BUTTON = 1;
}
if (digitalRead(ENTER_BUTTON) != OLD_ENTER_BUTTON)
{
Serial.println("ENTER");
OLD_ENTER_BUTTON = 0;
if (digitalRead(ENTER_BUTTON) == 0)
{
SOUND();
int VALUE_BUFFER = 0;
VALUE_BUFFER = X;
if (VALUE_BUFFER > 0)VALUE_BUFFER = VALUE_BUFFER - 1;
else VALUE_BUFFER = 0;
RESET(VALUE_BUFFER, Y);

46
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

}
else OLD_ENTER_BUTTON = 1;
}
if (digitalRead(START_BUTTON) != OLD_START_BUTTON & timer < 2000)
{
timer = 0;
OLD_START_BUTTON = 0;
Serial.println("START");
if (digitalRead(START_BUTTON) == 0)
{
while (digitalRead(START_BUTTON) == 0)
{
timer = timer + 1;
delay(1);
if (timer == 2000) break;
}
if (timer < 2000)
{
Serial.println("1 vòng");
for (int i = 0; i <= 800; i++)
{
digitalWrite(CLK1, LOW);
delayMicroseconds(DELAY);
digitalWrite(CLK1, HIGH);
delayMicroseconds(DELAY);
}
}
}
else OLD_START_BUTTON = 1;

47
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

}
if (digitalRead(ESC_BUTTON) == 0)
{
MODE_BUFFER = 0;
break;
}
}
}
Định nghĩa các chân
#define OPTION_BUTTON 19
#define UP_BUTTON 18
#define DOWN_BUTTON 17
#define SELECT_BUTTON 16
#define ENTER_BUTTON 15
#define ESC_BUTTON 14
#define STOP_BUTTON 21
#define START_BUTTON 20
#define MOTOR_A1_PIN 6
#define MOTOR_B1_PIN 7
#define MOTOR_A2_PIN 10
#define MOTOR_B2_PIN 11
#define PWM_MOTOR_1 8
#define PWM_MOTOR_2 12
#define EN_PIN_1 4
#define EN_PIN_2 9
#define BUZZER A14
#define GREEN_LED A8
#define RED_LED A9

48
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

const int CLK1 = A4;//


const int DIR1 = A5;
const int CLK2 = A0;
const int DIR2 = A1;
const int CLK3 = A2;
const int DIR3 = A3;
const int CTHT2 = 27;
const int CTHT3 = 25;
int COUNTER_BUFFER_X, COUNTER_BUFFER_Y ;
int VARI_DC2[3] = {14, 28, 42};
int VARI_DC3[3] = {18, 21, 24};
int count = 0;
int DEG1 = 0;
int DEG2 = 0;
int counter = 0;
int X = 0;
int Y = 0;
int DELAY = 0;
byte DATA = 0;
String SETUP_NAME = "CAI DAT THONG SO";
String SETUP_ROW1 = "TOC DO";
String SETUP_ROW2 = "PWM1";
String SETUP_ROW3 = "PWM2";
String NAME = " MAY BAN TENNIS ";
String TOA_DO = "TOA DO";
String SPEED = "TOC DO";
String MODE = "MODE";
String OPTION_NAME = "TUY CHON";
String OPTION_ROW1 = "MANUAL MODE";

49
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

String OPTION_ROW2 = "AUTO1 MODE";


String OPTION_ROW3 = "AUTO2 MODE";
String OPTION_ROW4 = "AUTO3 MODE";
Chương trình hiển thị LCD
#include <EEPROMex.h>
#include <EEPROMVar.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include "DEFINE.h"
String OPTION_DISPLAY[6] = {"", OPTION_NAME, OPTION_ROW1,
OPTION_ROW2, OPTION_ROW3, OPTION_ROW4};
String SETUP_DISPLAY[6] = {"", SETUP_ROW1, SETUP_ROW2,
SETUP_ROW3};
int OLD_OPTION_BUTTON = 1;
int OLD_UP_BUTTON = 1;
int OLD_DOWN_BUTTON = 1;
int OLD_SELECT_BUTTON = 1;
int OLD_ENTER_BUTTON = 1;
int OLD_ESC_BUTTON = 1;
int OLD_STOP_BUTTON = 1;
int OLD_START_BUTTON = 1;
int EEPROM_VALUE = 0;
int SELECT_BUFFER = 0;
int page;
int CURRENT_CURSOR;
int MODE_BUFFER;
void LED(int GREEN, int RED)
{
if (GREEN == 1 & RED == 0)
{

50
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

digitalWrite(GREEN_LED, HIGH);
digitalWrite(RED_LED, LOW);
}
else if (GREEN == 0 & RED == 1)
{
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, HIGH);
}
else
{
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, LOW);
}
}
void SOUND()
{
digitalWrite(BUZZER, HIGH);
delay(100);
digitalWrite(BUZZER, LOW);
}
void CENTER(String content, int CURSOR_POSITION_BUFFER)
{
int CENTER_BUFFER = 0;
CENTER_BUFFER = content.length();
CENTER_BUFFER = 20 - CENTER_BUFFER;
CENTER_BUFFER = CENTER_BUFFER / 2;
lcd.setCursor(0, CURSOR_POSITION_BUFFER);
lcd.print(" ");
lcd.setCursor(CENTER_BUFFER, CURSOR_POSITION_BUFFER);

51
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

lcd.print(content);
}
void HOME(int X_TD, int Y_TD, int SP_, int M_)
{
lcd.clear();
String TD = "";
TD = TD + X_TD;
TD = TD + ":";
TD = TD + Y_TD;
String MO = "";
if (M_ == 0) MO = "MODE";
if (M_ == 1) MO = "AUTO1";
if (M_ == 2) MO = "AUTO2";
if (M_ == 3) MO = "AUTO3";
if (M_ == 4) MO = "MANNUAL";
if (M_ == 5) MO = "RESET";
if (M_ == 6) MO = "HOME";
String TDB = "";
TDB = TDB + SP_;
TDB = TDB + " B/M";
CENTER(NAME, 0);
CENTER(TD, 1);
CENTER(MO, 2);
CENTER(TDB, 3);
}
void OPTION()
{
lcd.clear();
CENTER(OPTION_NAME, 0);

52
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

for (int i = 2; i < 5; i++)


{
CENTER(OPTION_DISPLAY[i], i - 1);
}
lcd.setCursor(1, 1);
lcd.print(">");
}
void SETUP()
{
lcd.clear();
CENTER(SETUP_NAME, 0);
for (int i = 1; i < 4; i++)
{
lcd.setCursor(2, i);
lcd.print(SETUP_DISPLAY[i]);
lcd.setCursor(12, i);
lcd.print(EEPROM.readInt(10 * i));
}
lcd.setCursor(0, 1);
lcd.print(">");
lcd.setCursor(17, 1);
lcd.print("B/M");
}
void INTI_DISPLAY(int PAGE)
{
if (PAGE == 0) HOME(0, 0, 0, 0);
if (PAGE == 1) OPTION();
if (PAGE == 2) SETUP();
}

53
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

void UP_PRESS(int PAGE, int CURSOR, int ROW, int VALUE, int
SELECT_BUFFER)
{
if (digitalRead(UP_BUTTON) != OLD_UP_BUTTON)
{
if (digitalRead(UP_BUTTON) == 0)
{
SOUND();
OLD_UP_BUTTON = 0;
if (PAGE == 1)
{
if (CURSOR < 4)
{
CURSOR = CURSOR - 1;
if (CURSOR < 1) CURSOR = 1;
lcd.setCursor(1, CURSOR + 1);
lcd.print(" ");
lcd.setCursor(1, CURSOR);
lcd.print(">");
}
if (CURSOR == 4)
{
CURSOR = CURSOR - 1;
lcd.clear();
OPTION();
lcd.setCursor(1, 1);
lcd.print(" ");
lcd.setCursor(1, CURSOR);
lcd.print(">");

54
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

}
}
if (PAGE == 2)
{
if (SELECT_BUFFER == 0)
{
if (CURSOR < 4)
{
CURSOR = CURSOR - 1;
if (CURSOR < 1) CURSOR = 1;
lcd.setCursor(0, CURSOR + 1);
lcd.print(" ");
lcd.setCursor(0, CURSOR);
lcd.print(">");
}
}
if (SELECT_BUFFER == 1)
{
VALUE = VALUE + 1;
if (CURSOR == 2 & VALUE > 255 || CURSOR == 3 & VALUE > 255)
{
VALUE = 255;
}
EEPROM_VALUE = VALUE;
}
}
CURRENT_CURSOR = CURSOR;
}
else OLD_UP_BUTTON = 1;

55
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

}
}
void DOWN_PRESS(int PAGE, int CURSOR, int ROW, int VALUE, int
SELECT_BUFFER)
{
if (digitalRead(DOWN_BUTTON) != OLD_DOWN_BUTTON)
{
if (digitalRead(DOWN_BUTTON) == 0)
{
SOUND();
OLD_DOWN_BUTTON = 0;
if (PAGE == 1)
{
if (CURSOR >= ROW) CURSOR = ROW;
if (CURSOR == 3)
{
CURSOR = CURSOR + 1;
lcd.clear();
CENTER(OPTION_NAME, 0);
for (int i = 3; i < 6; i++)
{
CENTER(OPTION_DISPLAY[i], i - 2);
}
lcd.setCursor(1, CURSOR - 1);
lcd.print(">");
}
if (CURSOR < 3)
{
CURSOR = CURSOR + 1;

56
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

lcd.setCursor(1, CURSOR - 1);


lcd.print(" ");
lcd.setCursor(1, CURSOR);
lcd.print(">");
}
}
if (PAGE == 2)
{
if (SELECT_BUFFER == 0)
{
CURSOR = CURSOR + 1;
if (CURSOR >= ROW) CURSOR = ROW;
lcd.setCursor(0, CURSOR - 1);
lcd.print(" ");
lcd.setCursor(0, CURSOR);
lcd.print(">");
}
if (SELECT_BUFFER == 1)
{
VALUE = VALUE - 1;
if (VALUE <= 0) VALUE = 0;
EEPROM_VALUE = VALUE;
}
}
CURRENT_CURSOR = CURSOR;
}
else OLD_DOWN_BUTTON = 1;
}
}

57
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

void ENTER_PRESS(int PAGE, int CURSOR, int VALUE)


{
if (digitalRead(ENTER_BUTTON) != OLD_ENTER_BUTTON)
{
if (digitalRead(ENTER_BUTTON) == 0)
{
OLD_ENTER_BUTTON = 0;
EEPROM.writeInt(10 * CURSOR, VALUE);
lcd.setCursor(12, CURSOR);
lcd.print(EEPROM_VALUE);
}
else OLD_ENTER_BUTTON = 1;
}
}
void SELECT_PRESS(int PAGE, int CURSOR)
{
if (digitalRead(SELECT_BUTTON) != OLD_SELECT_BUTTON)
{
if (digitalRead(SELECT_BUTTON) == 0)
{
OLD_SELECT_BUTTON = 0;
EEPROM_VALUE = EEPROM.readInt(10 * CURSOR);
for (int i = 0; i < i + 1; i++)
{
lcd.setCursor(12, CURSOR);
lcd.print(" ");
for (int j = 0; j < 500; j++)
{
DOWN_PRESS(PAGE, CURSOR, 3, EEPROM_VALUE, int(1));

58
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

UP_PRESS(PAGE, CURSOR, 3, EEPROM_VALUE, int(1));


ENTER_PRESS(PAGE, CURSOR, EEPROM_VALUE);
if (digitalRead(ENTER_BUTTON) == 0) break;
delay(1);
}
if (digitalRead(ENTER_BUTTON) == 0)
{
lcd.setCursor(12, CURSOR);
lcd.print(EEPROM_VALUE);
break;
}
lcd.setCursor(12, CURSOR);
lcd.print(EEPROM_VALUE);
for (int j = 0; j < 500; j++)
{
DOWN_PRESS(PAGE, CURSOR, 3, EEPROM_VALUE, int(1));
UP_PRESS(PAGE, CURSOR, 3, EEPROM_VALUE, int(1));
ENTER_PRESS(PAGE, CURSOR, EEPROM_VALUE);
if (digitalRead(ENTER_BUTTON) == 0) break;
delay(1);
}
if (digitalRead(ENTER_BUTTON) == 0)
{
lcd.setCursor(12, CURSOR);
lcd.print(EEPROM_VALUE);
break;
}
}
}

59
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

else OLD_SELECT_BUTTON = 1;
}
}
void LCD_DISPLAY (int PAGE)
{
if (PAGE == 0)
{
INTI_DISPLAY(PAGE);
}
if (PAGE == 1)
{
INTI_DISPLAY(PAGE);
CURRENT_CURSOR = 1;
for (int i = 0; i < i + 1; i++)
{
UP_PRESS(PAGE, CURRENT_CURSOR, 4, 0, 0);
DOWN_PRESS(PAGE, CURRENT_CURSOR, 4, 0, 0);
if (digitalRead(ENTER_BUTTON) != OLD_ENTER_BUTTON)
{
if (digitalRead(ENTER_BUTTON) == 0)
{
SOUND();
OLD_ENTER_BUTTON = 0;
if (PAGE == 1 & CURRENT_CURSOR == 2)
{
MODE_BUFFER = 1;
break;
}
if (PAGE == 1 & CURRENT_CURSOR == 3)

60
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

{
MODE_BUFFER = 2;
break;
}
if (PAGE == 1 & CURRENT_CURSOR == 4)
{
MODE_BUFFER = 3;
break;
}
if (PAGE == 1 & CURRENT_CURSOR == 1)
{
MODE_BUFFER = 4;
break;
}
}
else OLD_ENTER_BUTTON = 1;
}
}
PAGE = 0;
LCD_DISPLAY(PAGE);
}
if (PAGE == 2)
{
INTI_DISPLAY(PAGE);
CURRENT_CURSOR = 1;
for (int i = 0; i < i + 1; i++)
{
UP_PRESS(PAGE, CURRENT_CURSOR, 3, 0, 0);
DOWN_PRESS(PAGE, CURRENT_CURSOR, 3, 0, 0);

61
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

SELECT_PRESS(PAGE, CURRENT_CURSOR);
if (digitalRead(ESC_BUTTON) == 0) break;
}
PAGE = 0;
LCD_DISPLAY(PAGE);
}
}
#include "DISPLAY.h"
void RESET_SYSTEM()
{
HOME(0, 0, 0, 5);
Serial.println("RESET");
digitalWrite(DIR2, LOW);
digitalWrite(DIR3, LOW);
for (int i = 0; i < i + 1; i++)
{
if (digitalRead(CTHT2) == 0 || digitalRead(CTHT3) == 0) break;
digitalWrite(CLK2, LOW);
digitalWrite(CLK3, LOW);
delayMicroseconds(3500);
digitalWrite(CLK2, HIGH);
digitalWrite(CLK3, HIGH);
delayMicroseconds(3500);
}
for (int i = 0; i < i + 1; i++)
{
if (digitalRead(CTHT2) == 0) break;
digitalWrite(CLK2, LOW);
delayMicroseconds(3500);

62
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

digitalWrite(CLK2, HIGH);
delayMicroseconds(3500);
}
for (int i = 0; i < i + 1; i++)
{
if (digitalRead(CTHT3) == 0) break;
digitalWrite(CLK3, LOW);
delayMicroseconds(1000);
digitalWrite(CLK3, HIGH);
delayMicroseconds(1000);
}
DEG1 = 0;
DEG2 = 0;
X = 0;
Y = 0;
HOME(0, 0, 0, 6);
}
int BEGIN_X(int X_CURRENT, int X_RUN)
{
int X_BUFFER = X_RUN - X_CURRENT;
if (X_BUFFER > 0)
{
digitalWrite(DIR2, HIGH);
COUNTER_BUFFER_X = 1;
}
if (X_BUFFER < 0)
{
digitalWrite(DIR2, LOW);
COUNTER_BUFFER_X = 2;

63
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

X_BUFFER = X_BUFFER * (-1);


}
return X_BUFFER;
}
int BEGIN_Y(int Y_CURRENT, int Y_RUN)
{
int Y_BUFFER = Y_RUN - Y_CURRENT;
if (Y_BUFFER > 0)
{
digitalWrite(DIR3, HIGH);
COUNTER_BUFFER_Y = 1;
}
if (Y_BUFFER < 0)
{
digitalWrite(DIR3, LOW);
COUNTER_BUFFER_Y = 2;
Y_BUFFER = Y_BUFFER * (-1);
}
return Y_BUFFER;
}
void RESET(int X_BEGIN, int Y_BEGIN)
{
int DEG_X = BEGIN_X(X, X_BEGIN);
int DEG_Y = BEGIN_Y(Y, Y_BEGIN);
counter = 0;
for (int i = 0; i <= i + 1; i++)
{
for (int j = 0; j < 63 / 9; j++)
{

64
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

for (int k = 0; k < 9; k++)


{
if (DEG_Y > 0 & DEG_X > 0)
{
digitalWrite(CLK3, LOW);
digitalWrite(CLK2, LOW);
digitalWrite(CLK1, LOW);
delayMicroseconds(DELAY);
digitalWrite(CLK3, HIGH);
digitalWrite(CLK2, HIGH);
digitalWrite(CLK1, HIGH);
delayMicroseconds(DELAY);
}
if (DEG_Y == 0 & DEG_X > 0)
{
digitalWrite(CLK2, LOW);
digitalWrite(CLK1, LOW);
delayMicroseconds(DELAY);
digitalWrite(CLK2, HIGH);
digitalWrite(CLK1, HIGH);
delayMicroseconds(DELAY);
}
if (DEG_X == 0 & DEG_Y > 0)
{
digitalWrite(CLK3, LOW);
digitalWrite(CLK1, LOW);
delayMicroseconds(DELAY);
digitalWrite(CLK3, HIGH);
digitalWrite(CLK1, HIGH);

65
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

delayMicroseconds(DELAY);
}
if (DEG_X == 0 & DEG_Y == 0) break;
}
if (DEG_X == 0 & DEG_Y == 0) break;
if (DEG_X > 0)
{
DEG_X = DEG_X - 1;
if (COUNTER_BUFFER_X == 1) X = X + 1;
if (COUNTER_BUFFER_X == 2) X = X - 1;
String TD = "";
TD = TD + X;
TD = TD + ":";
TD = TD + Y;
CENTER(TD, 1);
}
}

if (DEG_Y > 0)
{
DEG_Y = DEG_Y - 1;
if (COUNTER_BUFFER_Y == 1)Y = Y + 1;
if (COUNTER_BUFFER_Y == 2)Y = Y - 1;
String TD = "";
TD = TD + X;
TD = TD + ":";
TD = TD + Y;
CENTER(TD, 1);
}

66
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

if (DEG_X == 0 & DEG_Y == 0) break;


}
X = X_BEGIN;
Y = Y_BEGIN;
Serial.print("X:Y ");
Serial.print(X);
Serial.print(":");
Serial.println(Y);
}

67
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

KẾT LUẬN

Kết quả đạt được:


Sau quá trình tìm hiểu, nghiên cứu và thực hiện, nhóm đã đạt được các kết quả như
sau:
­ Thiết kế và chế tạo thành công mô hình máy bắn bóng tennis.
­ Máy hoạt động tương đối ổn định.
­ Máy có nhiều chế độ chơi từ cơ bản đến nâng cao, phù hợp với trình độ người
mới bắt đầu tới chơi lâu năm. Máy có 2 chế độ điều khiển: điều khiển bằng tay
Manual và chế độ Auto.
­ Người dùng có thể điều chỉnh được tốc độ bắn và nạp bóng.

Hình thực tế máy bắn bóng tennis


Ưu điểm:
­ Máy hoạt động ổn định, đáp ứng được nhu cầu của người chơi.
­ Dễ dàng tháo lắp và di chuyển.
­ Giao diện thân thiện.
­ Giá thành sản phẩm.
Nhược điểm:
­ Máy kích thước khá lớn.
­ Vì sử dụng nguồn tổ ong nên không thuận tiện trong việc di chuyển.

68
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

Hướng phát triễn đề tài:


­ Nâng cấp các kết cấu cơ khí để máy có thể hoạt động được tối ưu hơn, và nhỏ
gọn hơn.
­ Cải thiện máy có thể linh hoạt sử dụng thêm các nguồn năng lượng dự phòng như
ccquy, pin sạc… để phù hợp hơn với nhu cầu sử dụng.
­ Nâng cấp máy với chức năng xử lý ảnh để tối ưu hóa việc vận hành tự động và
việc tương tác với người dùng.
­ Có thể tích hợp thêm các chức năng như loa phát nhạc để giúp người chơi thư
giãn trong lúc tập.

69
THIẾT KẾ VÀ CHẾ TẠO MÁY BẮN BÓNG TENNIS TỰ ĐỘNG

TÀI LIỆU THAM KHẢO

[1] Thiết kế chi tiết máy, Nguyễn Trọng Hiệp - Nguyễn Văn Lẫm, Nhà xuất bản giáo
dục, 1999.
[2] Tính toán thiết kế hệ thống dẫn động cơ khí, tập 1 và 2, Trịnh Chất – Lê Văn Uyển,
Nhà xuất bản giáo dục, 2006.
[3] Thiết kế và chế tạo máy bắn banh tennis, Nguyễn Tấn Lộc – Ngô Gia Phú, 2008.
[4] Tổng cục thể dục thể thao, Luật quần vợt, NXB Thể dục thể thao, 1997.
[5] Mathematical Analysis for a New Tennis Ball Launcher - Krzysztof Wójcicki,
Kazimierz Puciłowski, Zbigniew Kulesza
[6] http://arduino.vn/bai-viet/657-huong-dan-su-dung-appinventor-lap-trinh-ung-dung-
dieu-khien-xe-qua-bluetooth-ma-khong?fbclid=IwAR3v4g7W5tDX5LJQhcc3mH6oet
o1DBspvQ67OxLPqai8nKMyfyq7MRfLtqw ( Truy cập lần cuối 17:51 11/14/2019)

70

You might also like