Thông số kỹ thuật
Tốc độ lấy mẫu được hỗ trợ (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
Đầu ra DAC 24 bit, hỗ trợ dải động 90dB, SNR hỗ trợ 85dB
Hỗ trợ đầy đủ hệ thống tệp FAT16, FAT32, hỗ trợ tối đa 32G thẻ TF, hỗ trợ 32G đĩa U, 64M byte NORFLASH
Nhiều chế độ điều khiển, chế độ điều khiển I/O, chế độ nối tiếp, chế độ điều khiển nút AD
Chức năng chờ âm thanh quảng cáo, âm nhạc có thể bị đình chỉ. khi quảng cáo kết thúc trong âm nhạc tiếp tục phát
Dữ liệu âm thanh được sắp xếp theo thư mục, hỗ trợ tối đa 100 thư mục, mỗi thư mục có thể chứa tới 255 bài hát
Điều chỉnh âm lượng 30 cấp, điều chỉnh EQ 6 cấp
29
Hình 2.27 Sơ đồ chân của DFPlayer Mini.
Bảng 2.9 Sơ đồ chân của DFPlayer Mini.
Thứ Tự Chân Tên Gọi Mô Tả
1 VCC Nguồn
2 RX Đầu vào nối tiếp UART
3 TX Đầu ra nối tiếp UART
4 DAC_R Đầu ra âm thanh kênh phải
5 DAC_L Đầu ra âm thanh kênh trái
6 SPK_1 Loa +
7 GND Nối đất
8 SPK_2 Loa -
9 BUSY Trạng thái đang chạy
10 USB - USB – DP
11 USB + USP – DM
12 ADKEY_2 Cổng 2 AD
13 ADKEY_1 Cổng 1 AD
14 IO_2 Cổng kích hoạt IO2
15 GND Nối đất
30
Chương 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
Trong chương 3, tơi trình bày về:
- Yêu cầu của hệ thống, sơ đồ khối hệ thống, chức năng từng khối và hoạt động. - Đề suất các phương án lựa chọn mạch (mô-đun) cho mỗi khối.
- Thiết kế và tính tốn (xây dựng) phần cứng cho mỗi khối, sơ đồ mạch, lập lưu đồ giải thuật cho hệ thống và giải thích lưu đồ.
- Thiết kế và hoàn thiện sản phẩm.
3.1 Sơ đồ khối hệ thống
3.1.1 Yêu cầu của hệ thống
Các yêu cầu đặt ra của hệ thống như sau:
- Robot phải đảm bảo vận hành ổn định và hoạt động đúng theo mong chờ mà một Robot giao thức ăn cần có, đó là giao thức ăn đúng nơi mà người dùng mong muốn.
- Robot phát ra cảnh báo âm thanh và hiển thị thơng tin cần thiết trên màn hình theo đúng u cầu.
- Robot chạy theo line một cách ổn định và nhận biết được nơi cần giao thức ăn.
- Khi tới nơi cần giao thức ăn Robot chờ nhất nút kết thúc hoặc hết thời gian chờ thì Robot tiếp tục giao thức ăn cho các bàn cịn lại.
- Ngồi vận hành tự động, Robot cịn có thể được điều khiển theo yêu cầu của người dùng thông qua mạng wifi và ứng dụng trên điện thoại thông minh.
3.1.2 Sơ đồ khối và chức năng mỗi khối
31
Hình 3.1 Sơ đồ khối hệ thống.
Sơ đồ khối bao gồm các khối chính như sau: khối nút nhấn, khối điều khiển động cơ, khối cảm biến dò line, khối nhận trạm, khối điều khiển từ xa, khối hiển thị, khối cảnh báo âm thanh, khối xử lý trung tâm và khối nguồn.
Chức năng từng khối
Khối nút nhấn bao gồm 6 nút nhấn. Đó là nút start, nút end, nút reset, nút food1,
nút food2 và nút food3. Mỗi nút có chức năng riêng biệt. Nút start có chức năng khởi động hệ thống. Nút end có chức năng kết thúc quá trình khi Robot giao xong một bàn. Nút reset có chức năng reset tất cả các biến và đưa Robot về trạng thái ban đầu. Các nút food có chức năng nhận biết thức ăn tại vị trí mà nó được đặt trên Robot.
Khối điều khiển động cơ có chức năng nhận tín hiệu điều khiển từ khối xử lý trung
tâm và điều khiển Robot chạy như yêu cầu.
Khối cảm biến dò line bao gồm 2 cảm biến dò line (cảm biến trái và cảm biến phải).
Cảm biến dị line có chức năng nhận biết đường line màu đen, gửi tín hiệu điều khiển
XỬ LÝ TRUNG TÂM CẢM BIẾN DÒ LINE NÚT NHẤN ĐIỀU KHIỂN ĐỘNG CƠ NGUỒN ĐIỀU KHIỂN TỪ XA ĐỘNG CƠ HIỂN THỊ CẢNH BÁO ÂM THANH NHẬN BIẾT TRẠM
32
đến khối xử lý trung tâm, từ đó giúp hệ thống điều khiển Robot chạy theo đúng đường line.
Khối nhận biết trạm có chức năng phát và thu tín hiệu trạm và gửi tín hiệu này tới
khối xử lý trung tâm xử lý, từ đó giúp Robot có khả năng nhận biến vị trí quầy và các bàn cần giao.
Khối điều khiển từ xa có chức năng nhận các tín hiệu điều khiển từ điện thoại qua
mạng wifi, điều khiển Robot chạy như yêu cầu.
Khối hiển thị có chức năng nhận tín hiệu điều khiển từ khối xử lý trung tâm và hiển
thị các thông số cần thiết như yêu cầu.
Khối cảnh báo âm thanh có chức năng nhận tín hiệu điều khiển từ khối xử lý trung
tâm và tiến hành xuất các âm thanh tương ứng.
Khối xử lý trung tâm có chức năng xử lý các tín hiệu được gửi đến từ nút nhấn và
cảm biến hoặc điện thoại thơng minh, từ đó điều khiển khối động cơ hoạt động theo mong muốn, đồng thời điều khiển màn hình, đèn led hiển thị và âm thanh như yêu cầu.
Khối nguồn có chức năng cấp nguồn ổn định cho toàn bộ hệ thống hoạt động.
3.1.3 Hoạt động của hệ thống
33
Nguyên tắc hoạt động Nguyên tắc chung
Khi Robot đang trong chế độ tự động, ban đầu Robot được đặt tại quầy bán chờ nhận thức ăn và chờ nhân viên nhấn nút bắt đầu để tiến hành công việc giao thức ăn của mình. Ngày khi nút bắt đầu được nhấn, Robot sẽ kiểm tra và ghi nhớ các bàn cần giao, nếu Robot kiểm tra khơng có thức ăn nào được nhận thì Robot sẽ cảnh báo âm thanh cho nhân viên và tiếp tục chờ đợi đến khi nào nhận được thức ăn. Tiếp đến Robot sẽ tiến hành giao thức ăn tới các bàn mà Robot đã ghi nhớ trước đó. Ngay khi tới bàn cần giao, Robot dừng lại chờ khách lấy thức ăn, đồng thời kích hoạt bộ đếm thời gian và âm thanh cảnh báo cho khách. Robot sẽ chờ tới khi nào người khách nhấn nút kết thúc hoặc hết thời gian chờ Robot sẽ tự động rời đi. Và cứ như vậy đối với các bàn cần giao thức ăn tiếp theo. Sau khi hồn thành xong cơng việc, Robot trở về quầy và chuẩn bị cho đợt giao thức ăn tiếp theo.
Khi kích hoạt chế độ điều khiển từ xa, Robot sẽ hoạt động theo yêu cầu của người điều khiển bằng điện thoại thông minh.
Nguyên tắc hoạt động của từng khối
Khối nút nhấn
Nút nhấn start sau khi được nhấn sẽ bắt đầu khởi động chương trình trong chế độ tự động nếu Robot đang ở quầy. Ngồi ra, nó khơng có tác dụng khi ở vị trí khác.
Nút nhấn end sau khi được nhấn sẽ kết thúc quá trình giao thức ăn cho một bàn, và nhờ tín hiệu đó Robot sẽ rời đi và tiếp tục cơng việc. Nút end chỉ có tác dụng khi Robot đang dừng tại bàn cần giao.
Nút nhấn reset sau khi được nhấn sẽ reset tất cả các biến về giá trị ban đầu, đồng nghĩa với việc Robot quay về trạng thái ban đầu và bắt buộc Robot được đặt tại quầy sau đó nếu muốn hoạt động ở chế độ tự động.
Các nút food có hoạt động đơn giản chỉ là nếu thức ăn đặt trên nút nhấn này thì Robot nhận biết có thức ăn. Nếu nút food được nhấn thì biến food tương ứng sẽ kích hoạt trạng thái 1, ngược lại thì 0 thuận tiện cho việc lập trình.
Khối điều khiển động cơ
Mơ-đun điều khiển động cơ L298N nhận tín hiệu điều khiển từ khối vi xử lý trung tâm, từ đó điều khiển các động cơ hoạt động với tốc độ và hướng quay theo yêu cầu. Các chân ENA, ENB nhận tín hiệu PWM lần lượt điều khiển tốc độ động cơ A, B. Các chân IN1, IN2 nhận tín hiệu mức 1 và 0 điều khiển hướng quay của động cơ A. IN1 mức 1 và IN2 mức 0 thì động cơ A quay thuận, ngược lại thì quay nghịch. IN1 và IN2 đồng thời mức 1 hoặc mức 0 thì động cơ A dừng. Các chân IN3, IN4 nhận tín hiệu mức 1 và 0 điều khiển
34
hướng quay của động cơ B. IN3 mức 1 và IN4 mức 0 thì động cơ B quay thuận, ngược lại thì quay nghịch. IN3 và IN4 đồng thời mức 1 hoặc mức 0 thì động cơ B dừng.
Khối cảm biến dò line
Cảm biến trái và cảm biến phải đảm nhiệm vai trò dò đường. Nếu cảm biến trái chạm vạch đen sẽ gửi tín hiệu này tới khối xử lý trung tâm để xử lý, Robot sẽ nhận biết xe đang rẽ phải và ngay lập tức điều khiển xe rẽ trái để phục vụ cơng việc dị đường. Tương tự nếu cảm biến phải chạm vạch đen, Robot sẽ nhận biết xe đang rẽ trái và ngay lập tức điều khiển xe rẽ phải.
Khối nhận biết trạm
Tại mỗi vị trí quầy hoặc bàn cần giao sẽ đặt một khối phát tín hiệu trạm, với mỗi tín hiệu phát khác nhau. Khối thu nhận tín hiệu trạm được đặt trên xe, khi Robot di chuyển tới mỗi vị trí thì sẽ nhận được một tín hiệu trạm khác nhau, sau đó gửi tín hiệu này tới khối xử lý trung tâm để xử lý, từ đó phân biệt và nhận biết được vị trí quầy và các bàn.
Khối điều khiển từ xa
Mơ-đun Wifi ESP8266 NodeMCU nhận tín hiệu từ điện thoại thơng minh và gửi tín hiệu điều khiển tới khối vi xử lý trung tâm phục vụ cho việc điều khiển Robot bằng điện thoại qua wifi theo yêu cầu. Nút start/pause và nút reset trên ứng dụng Blynk có hoạt động tương tự nhấn nút start và nút reset thuộc khối nút nhất, nhưng nút start/pause trên ứng dụng Blynk chỉ có tác dụng khi Robot đang ở chế độ tự động. Nút mode trên ứng dụng Blynk sẽ bật hoặc tắt chế độ điều khiển từ xa. Sau khi chế độ điều khiển từ xa được bật, các nút up, down, left, right mới có tác dụng. Nhấn nút up, Robot di chuyển tiến về phía trước, nếu nhấn đồng thời với nút left hoặc right thì Robot sẽ di chuyển tiến trái hoặc tiến phải. Nhấn nút down, Robot di chuyển lùi về sau, nếu nhấn đồng thời với nút left hoặc right thì Robot sẽ di chuyển lùi trái hoặc lùi phải.
Khối hiển thị
Màn hình LCD nhận tín hiệu điều khiển từ khối vi xử lý trung tâm và hiển thị các thơng số như u cầu, ví dụ như hiển thị số bàn hiện tại và chế độ điều khiển.
Các đèn led sẽ nhận tín hiệu điều khiển từ khối vi xử lý trung tâm và chớp tắt ngay khi tới bàn cần giao.
Khối cảnh báo âm thanh
Mơ-đun Arduino Uno R3 nhận tín hiệu điều khiển từ khối vi xử lý trung tâm và từ đó điều khiển mơ-đun âm thanh DFPlayer Mini. Mơ-đun âm thanh DFPlayer Mini nhận tín hiệu điều khiển từ mơ-đun Arduino Uno R3, tiến hành đọc thẻ nhớ và phát âm thanh ra loa.
35
Kit STM32F4 Discovery nhận tín hiệu từ khối cảm biến và khối nút nhấn, khối điều khiển từ xa và tiến hành xử lý để điều khiển khối hiển thị, khối điều khiển động cơ và khối cảnh báo âm thanh như yêu cầu. Liên kết chặt chẽ các khối với nhau giúp hệ thống hoạt động đúng yêu cầu.
Khối nguồn
Sau khi kết nối dây đầy đủ với các khối còn lại của hệ thống, khối nguồn sẽ cấp nguồn cho tồn bộ chúng hoạt động.
3.2 Thiết kế, tính tốn hệ thống
3.2.1 Khối nút nhấn
Khối nút nhấn có thể sử dụng là các loại nút nhấn cơ truyền thống, nút nhấn công nghiệp, nút nhấn dán hoặc nút nhấn cảm biến điện dung. Các nút nhấn công nghiệp với kích cỡ tương đối to, giá thành đắc sẽ khơng phù hợp. Các nút nhấn dán thì kích thước thường là 2mm-3mm quá nhỏ nên không phù hợp.
Nút nhấn Start, nút nhấn End và nút nhấn Reset, tôi sẽ chọn nút nhấn cơ truyền thống cho người dùng dễ dàng thao tác nhấn. Cụ thể tôi chọn nút nhấn nhả 12mm.
Tôi quyết định chọn nút nhấn cảm biến điện dung TTP223B cho các nút food. Với ưu điểm lực nhấn nhẹ nên khi đặt thức ăn lên nó sẽ dễ dàng nhận tín hiệu, đơn giản khi lập trình và có nhiều cấu hình lựa chọn.
36
Hình 3.2 Sơ đồ nguyên lý khối nút nhấn.
Sơ đồ kết nối chân
Bảng 3.1 Sơ đồ kết nối chân của Button và STM32F407VGT6.
Button STM32F407VGT6 Mô Tả START PD12 Nút Start END PD11 Nút End RESET PD10 Nút Reset FOOD1 PD13 Nút Food1 FOOD2 PD14 Nút Food2 FOOD3 PD15 Nút Food3 5V 5V Nguồn GND GND Nối đất
37
3.2.4 Khối điều khiển động cơ
Khối điều khiển động cơ có thể sử dụng là một số mô-đun điều khiển động cơ tiêu biểu như mô-đun L9110S, mô-đun L293D, mô-đun L298N và một số mô-đun điều khiển động cơ khác. Tuy nhiên mô-dun L293D phù hợp hơn khi kết hợp với arduino vì được thiết kế như shield dành riêng cho Arduino. Mô-đun L9110S chưa được sử dụng rộng rãi và hiệu năng chưa cao.
Mô-đun điều khiển động cơ DC L298N tất nhiên là sự lựa chọn hồn hảo nhất cho dự án này. Vì mơ-đun L298N rất phổ biến, hiệu năng cao và kiến thức về nó được chia sẻ rộng rãi trên cộng đồng.
Hình 3.3 Sơ đồ nguyên lý khối điều khiển động cơ.
Sơ đồ kết nối chân
Bảng 3.2 Sơ đồ kết nối chân của L298N và STM32F407VGT6.
L298N STM32F407VGT6 Mô Tả
ENA PE9 PWM động cơ A
ENB PE11 PWM động cơ B
IN1 PE12 Điều khiển động cơ A
IN2 PE13 Điều khiển động cơ A
IN3 PE14 Điều khiển động cơ B
IN4 PE15 Điều khiển động cơ B
VSS 5V Nguồn
38
3.2.2 Khối cảm biến dò line
Khối cảm biến dị line có thể sử dụng là cảm biến dò line đơn TCRT5000, cảm biến dò line thanh 5 kênh ITR20001, cảm biến dò line thanh 3 kênh và một số loại cảm biến hồng ngoại khác có hoạt động dựa trên mắt phát và mắt thu tương tự.
Tơi chọn cảm biến dị line đơn TCRT5000 trong dự án này. Vì nó rất rẻ và dễ sử dụng trong lập trình và kết nối. Khối cảm biến dị line bao gồm 4 cảm biến dò line đơn được đặt như sau: 2 cảm biến giữa (L2 và R1) được đặt nằm trong vạch đen và 2 cảm biến ngoài (L1 và R2) đặt ngoài vạch đen, trong trường hợp này cho phép xe chạy thẳng, từ đó phát triển thêm các trường hợp khác.
Hình 3.4 Sơ đồ ngun lý khối cảm biến dị line.
Sơ đồ kết nối chân
Bảng 3.3 Sơ đồ kết nối chân của Cảm Biến và STM32F407VGT6.
Cảm Biến STM32F407VGT6 Mô Tả L1 PB10 Cảm biến trái 1 L2 PB11 Cảm biến trái 2 R1 PB12 Cảm biến phải 1 R2 PB13 Cảm biến phải 2 VCC 5V Nguồn
39
GND GND Nối đất
3.2.5 Khối nhận biết trạm
Khối nhận biết trạm có thể chọn phương án là dùng một cảm biến dò line đơn, mỗi lần đi qua vạch đen sẽ thay đổi giá trị của biến station, từ giá trị đó nhận biết được các trạm. Nhược điểm của phương án này là dễ bị ảnh hưởng bởi tác động của môi trường như các vật thể đen trên nền nhà cũng sẽ làm thay đổi giá trị của station và xảy ra lỗi cho toàn bộ hệ thống bởi trong việc thiết kế một Robot tự động thì vấn đề nhận biết trạm rất quan trọng.
Để giải quyết vấn đề nêu trên tôi đã quyết định một phương án tối ưu hơn. Đó là sử dụng khối phát hồng ngoại và khối thu hồng ngoại. Tại mỗi vị trí quầy hoặc bàn sẽ được đặt một khối phát hồng ngoại, với mỗi tín hiệu phát khác nhau. Và khối thu sẽ được đặt trên Robot. Khi tới mỗi vị trí, Robot sẽ nhận biết được bằng các tín hiệu thu được đã qua xử lý.