Trong báo cáo này, nhóm chúng em triểnkhai thiết kế và mô phỏng hệ thống nhúng cho Điều khiển tàu lượnkhu vui chơi, mục đích của hệ thống là điều khiển tàu chạy đúng tốc độ để không bị t
Trang 1111Equation Chapter 1 Section 1 TRƯỜNG ĐẠI HỌC
VÀ THIẾT KẾ GIAO TIẾP NHÚNG
Đề tài: Hệ thống điều khiển tàu lượn khu vui chơi
Giảng viên: TS Phạm Văn Tiến
Nhóm sinh viên thực hiện:
1 Nguyễn Phú Lâm
201826 27
2 Lê Tuấn Anh
201823 39
3 Lê Đức An
201823 25
Trang 2Hà Nội, năm 2023
Trang 3MỤC LỤC
MỤC LỤC
MỞ ĐẦU
CHƯƠNG I Xác lập chỉ tiêu kỹ thuật
I.1 Tìm hiểu về trò chơi tàu lượn siêu tốc
I.1.1 Các bộ phận 5
I.1.2 Vật lý 5
I.2 Các yêu cầu hệ thống
I.2.1 Yêu cầu chức năng hệ thống 6
I.2.2 Yêu cầu đáp ứng thời gian thực 6
I.3 Đề xuất bài toán thực
CHƯƠNG II Mô hình hóa hệ thống
II.1 Mô hình hóa hệ thống sử dụng UML
II.1.1 Mô hình FSM: 8
II.1.2 Mô hình USE CASE 8
II.2 Mô hình hóa các tham số của tàu lượn
II.3 Mô hình hóa hệ thống sử dụng SystemC và biên dịch chéo
II.3.1 Mô hình hóa hệ thống sử dụng SystemC 9
II.3.2 Biên dịch chéo cho thiết kế 11
II.4 Tổng hợp hệ thống lên phần cứng kit FPGA DE2
II.4.1 Bổ sung thêm các module 13
II.4.2 Tạo constraint file 13
II.4.3 Kết quả 14
CHƯƠNG III Đồng thiết kế cứng mềm
III.1 System Sppecification
III.2 Sơ đồ ASMD
III.3 Allocation
CHƯƠNG IV Thiết kế giao tiếp ngoại vi
Trang 4IV.1.1 Specification 21
IV.1.2 Connection 22
IV.2 Proximity sensor
IV.2.1 Specification 23
IV.2.2 Connection 24
IV.3 Measure Speed Using IC FC-03
IV.3.1 Specification 25
II.1.2 Connection 25
CHƯƠNG V Biên dịch phần mềm hệ thống
V.1 Điều khiển động cơ bằng IC L298
V.1.1 Yêu cầu thiết bị 27
V.1.2 Sơ đồ nối dây : 30
V.1.3 Điều khiển động cơ 31
V.2 Đọc tốc độ tàu trượt từ cảm biến hồng ngoại
V.2.1 Yêu cầu thiết bị : 33
V.2.2 Sơ đồ nguyên lý mạch 34
V.2.3 Mã nguồn biên dịch 35
CHƯƠNG VI Báo cáo cá nhân
VI Hệ thống đo tốc độ tàu trượt từ đường ray bằng cảm biến hồng ngoại
VI.1 Xác định yêu cầu kỹ thuật 37
VI.2 Sơ đồ thiết kế mạch 38
VI.3 Mã nguồn biên dịch 39
KẾT LUẬN
TÀI LIỆU THAM KHẢO
Trang 5MỞ ĐẦU
Thời gian gần đây, các Hệ thống nhúng – Thời gian thực đượcquan tâm nhiều hơn ở Việt Nam, và trên thế giới thì các hệ thốngnày đã và đang được phát triển mạnh mẽ và là xu hướng thịnh hành
ở các nước Công nghiệp vì những lợi ích to lớn, thiết thực mà nómang lại Chương trình học môn Hệ thống nhúng và thiết kế giaotiếp nhúng là một phần quan trọng giúp hiểu rõ quy trình thiết kế,đánh giá hệ thống nhúng Trong báo cáo này, nhóm chúng em triểnkhai thiết kế và mô phỏng hệ thống nhúng cho Điều khiển tàu lượnkhu vui chơi, mục đích của hệ thống là điều khiển tàu chạy đúng tốc
độ để không bị trật bánh, rơi
Trang 6CHƯƠNG I Xác lập chỉ tiêu kỹ thuật
I.1 Tìm hiểu về trò chơi tàu lượn siêu tốc
I.1.1 Các bộ phận
Tàu lượn siêu tốc là một loại trò giải trí có sử dụng một đường ray xe lửa trên cao được thiết kế với những cú ngoặt đột ngột, sườn dốc, và đôi khi là những đường ray lộn ngược vòng Tàu lượn siêu tốc
là một cỗ máy phức tạp Nó có hình dáng giống một đoàn tàu nhưng lại vận hành không cần động cơ mà chỉ dựa chủ yếu vào quán tính
và trọng lực
Để giữ cho đoàn tàu lượn vận hành an toàn từ khi khởi hành tới lúc dừng lại, ta cần sự phối hợp của một vài thành phần khác nhau Đầu tiên là xích nâng – một sợi xích dài bên dưới đường ray, chạy lên sườn dốc nghiêng, nó cho phép đoàn tàu có thể chậm rãi đi lên đoạndốc đầu tiên Cấu trúc của nó khá đơn giản: nó được kết nối với một
hệ thống kéo sử dụng motor đặt ở đầu vào cuối con dốc thông qua bánh răng Đồng thời, mặt dưới của tàu lượn cũng có nhiều thanh móc để kết nối với sợi xích một cách an toàn khi nó được kéo lên dốc Khi lên tới đỉnh, sợi xích sẽ được thả ra để tàu có thể dễ dàng dichuyển
Nhiều mẫu tàu lượn đời mới thì được trang bị hệ thống đẩy có sử dụng nam châm điện để tạo ra động năng lớn nhanh hơn Nhờ vậy
mà kiểu tàu lượn này có tốc độ ban đầu đã rất cao mà không cần sử dụng tới đoạn dốc nghiêng đầu
Một khi đã rời khởi hệ thống hỗ trợ, trọng lực sẽ đảm nhận nốt nhiệm
vụ trên quãng đường ray còn lại hoặc cho tới khi tàu gặp một hệ thống đẩy/kéo khác đặt trên đường Tiếp đó, một hệ thống phanh bằng kẹp sẽ được tích hợp vào đường ray để giúp tàu ngừng lại Một
hệ thống máy tính sẽ nhận biết khi mà tàu đến điểm hãm tốc, sau
đó, hệ thống thanh kẹp sẽ bám lấy thanh móc gắn dưới gầm của tàulượn để giảm tốc và làm con tàu dừng lại
I.1.2 Vật lý
Tàu lượn siêu tốc hoạt động phần lớn là nhờ tác dụng của thế năng và động năng Khi đoàn tàu dần được kéo lên dốc (hoặc được kéo đi bằng nam châm), nó dần tích lũy một lượng thế năng lớn Banđầu đoàn tàu leo lên càng cao thì trọng lực lại càng kéo nó đi xa hơn
Trang 7Một khi đầu tàu chạm đến đỉnh dốc đầu tiên và bắt đầu chuyển độngxuống dưới, do tác động của trọng lực, toàn bộ thế năng tàu tích lũy được sẽ chuyển hóa thành động năng Phần năng lượng này sẽ kéo các toa xe đi xa, khi ấy, độ nghiêng của đường ray sẽ quyết định tốc
độ "đổ đèo" của cả đoàn tàu
Nhờ vào định luật thứ nhất về chuyển động của Newton (một vật đang chuyển động sẽ tiếp tục chuyển động), đoàn tàu siêu tốc sẽ tiếp tục duy trì vận tốc ngay cả khi đang lên một con dốc khác bởi vì
nó không hề gặp phải một trướng ngại vật nào Khi lên dốc, nó lại tạo ra thế năng, phần năng lượng này sẽ lại chuyển hóa thành động năng khi nó xuống dốc Đây chính là lý do tại sao nhiều tàu lượn siêutốc lại đi qua không chỉ một đoạn dốc – đó là phương thức vật lý để tiếp tục chuỗi chuyển động của đoàn tàu
Những tàu lượn siêu tốc ngày nay có rất nhiều đặc điểm mới, từ khởiđộng nhanh, nhiều thay đổi về đường ray, tới những pha nhào lộn bất chấp trọng lực Nhưng dù có thế nào đi chăng nữa thì vật lý vẫn
sẽ luôn là cái cốt lõi của loại trò chơi này
I.2 Các yêu cầu hệ thống
I.2.1 Yêu cầu chức năng hệ thống
Hệ thống xác định được vị trí của tàu trên đường ray
Hệ thống kiểm soát được tốc độ của tàu
Hệ thống đưa ra các thông tin về chuyến đi : tổng cân nặng,tốc độ hiện tại, loại đường ray tàu đi qua, độ lớn lực bổ sungcần tác dụng
Hệ thống đưa ra cảnh báo dừng khẩn cấp nếu không thể cungcấp được lực bổ sung để tàu chạy ổn định
I.2.2 Yêu cầu đáp ứng thời gian thực
Hệ thống tính toán, cung cấp lực bổ sung kịp thời dựa trên tốc
độ hiện tại của tàu, thời gian đáp ứng của hệ thống
Hệ thống đưa ra cảnh báo dừng khẩn cấp ngay khi tính toán rarủi ro
Trang 8I.3 Đề xuất bài toán thực
Figure 1.1: Đường ray đề xuất
Giới hạn tốc độ của tàu tại đỉnh các track:
2 Track 3 : m v12
2 =
m v22
2 +mg⋅(2 R3)Suy ra v 3required ≤√v22+2mg (2R3)
Trang 9Giả sử hệ thống nhận tín hiệu từ sensor tại track 1, tốc độ
(tính từ lúc hệ thống nhận tín hiệu từ cảm biến tiệm cận đến thời điểm bắt đầu tác dụng lực bổ sung lên tàu) Tính lực bổ sung hệ thống cần tác dụng lên tàu.
Trang 10CHƯƠNG II Mô hình hóa hệ thống
II.1 Mô hình hóa hệ thống sử dụng UML
Công cụ sử dụng: Draw.io
II.1.1 Mô hình FSM:
Figure 2.1: Mô hình FSM
II.1.2 Mô hình USE CASE
Figure 2.2: Mô hình USE CASE
II.2 Mô hình hóa các tham số của tàu lượn
Trang 11II.3 Mô hình hóa hệ thống sử dụng SystemC và biên dịch chéo.
Công cụ sử dụng: Vivado HLS
Ngôn ngữ sử dụng: SystemC
II.3.1 Mô hình hóa hệ thống sử dụng SystemC
a Các thành phần của thiết kế
Figure 2.3: Các thành phần trong thiết kế
b Kiểm tra thiết kế hệ thống:
Khởi tạo xung đồng hồ clk
Khai báo các tín hiệu trong file testbench
Kết nối các tín hiệu này với các port trong file thiết kế
Khởi tạo tín hiệu
Trang 12Figure 2.4: Khởi tạo việc kiểm tra
c Kết quả kiểm tra thiết kế
Trang 13Figure 2.5: Kết quả kiểm tra
II.3.2 Biên dịch chéo cho thiết kế.
a Lý thuyết biên dịch chéo
Trình biên dịch là phần mềm dịch mã máy tính được viết bằngngôn ngữ lập trình bậc cao sang ngôn ngữ máy Trình biên dịchchéo là một phần mềm có thể tạo mã thực thi cho các nền tảngkhác với nền tảng mà trình biên dịch đang chạy
Trong thiết kế được đề cập ở bài tập lớn này, thiết kế hệ thốngđược viết bằng SystemC, đây là một lớp của ngôn ngữ lập trìnhC/C++ Chúng em đã sử dụng công cụ tổng hợp mức cao – VivadoHLS để biên dịch chéo từ ngôn ngữ lập trình - SystemC sang ngônngữ mô tả phần cứng – HDL (Verilog/VHDL) Với kết quả thu được
có thể nạp lên kit FPGA
b Kết quả biên dịch chéo
Trang 14Mỗi METHOD được tổng hợp thành một module tương ứng trong thư mục syn/verilog và syn/vhdl Các module này là một instance module trong module TOP của desgin.
Như kế quả được thể hiện ở hình 2.6, method control_speed đượctổng hợp thành module CONTROL_SPEED_control_speed.v,method alarm_signal được tổng hợp thành moduleCONTROL_SPEED_alarm_signal.v Đây là hai instance module củamodule top CONTROL_SPEED.v
Figure 2.6: Kết quả kiểm tra của biên dịch chéo
Interface của module CONTROL_SPEED được mô tả như hình 2.7 bêndưới
Figure 2.7: Interface của design
Trang 15Figure 2.8: Utilization Estimates
II.4 Tổng hợp hệ thống lên phần cứng kit FPGA DE2
Công cụ sử dụng: Phần mềm Quartus, phần cứng kit FPGA DE2
và để có thể quan sát được sự thay đổi các tín hiệu thì khối chia tần
đã được sử dụng Pin đồng hồ lựa chọn là 50MHz, đầu ra i_clk có tần
số là 0.5MHz
Trang 16Figure 2.10: Sơ đồ khối chia tần
II.4.2 Tạo constraint file.
Tạo file ràng buộc các input, output của thiết kế với các chân pin của kit FPGA, được minh hoạ ở hình 2.5 bên dưới
Figure 2.10: Constrain file
II.4.3 Kết quả.
Các sensor để lấy dữ liệu không đồng thiết kế với FPGA, nên một số tín hiệu đầu vào được lưu trữ tại một thanh ghi tạm, tại mỗi thời điểm sẽ gửi đi, điều này giúp phỏng tạo được thiết kế hoạt động
Trang 17Figure 2.11: Các tham số được mô tả trong thiết kế
Vị trí của các tín hiệu được biểu diễn trên hình 2.4.3.1 bên dưới: Tại state IDLE, khối lượng đo được từ sensor là 1234, thoản mãn điều kiện về khối lượng tín hiệu báo màu xanh sáng lên
Figure 2.12: Kết quả triển khai trên kit FPGA
Sau khi các điều kiện đảm bảo an toàn được thỏa mãn, người điều khiển sẽ cho tàu chạy, tín hiệu này được mô tả bởi công tắc trên kit Các state tiếp theo được minh họa ở các hình bên dưới
Trang 19Figure 2.15: State 3
STATE 3: Vận tốc là 23, lớn hơn giới hạn cho phép trong STATE 3, đèn báo giảm vận tốc sáng lên, có tính hiệu được khởi tới khối phanh
Trang 20CHƯƠNG III Đồng thiết kế cứng mềm
III.1 System Sppecification
Figure 3.1: Sơ đồ mô tả hệ thống
III.2 Sơ đồ ASMD
Trang 22III.3 Allocation
Figure 3.3: Sơ đồ Allocation
Trang 23CHƯƠNG IV Thiết kế giao tiếp ngoại vi
IV.1 Digital Weight Sensor Module
Mô-đun cảm biến trọng lượng kỹ thuật số dựa trên mô-đun HX711, đây là bộ chuyển đổi tương tự sang kỹ thuật số 24 bit chính xác được thiết kế cho cân trọng lượng Nó cũng được thiết kế cho các ứng dụng điều khiển công nghiệp để giao tiếp trực tiếp với cảm biến cầu nối So với các chip khác, HX711 không chỉ có một số chức năng cơ bản mà còn có khả năng tích hợp cao, phản hồi nhanh, khả năng miễn dịch và các tính năng khác Con chip này cũng có chi phí thấp hơn so với các loại cân điện tử khác mà vẫn cải thiện hiệu suất
và độ tin cậy
IV.1.1 Specification
24-Bit Analog-to-Digital Converter for Weight Scales (HX711)
Two selectable differential input channels
On-chip active low noise PGA with selectable gain of 32, 64 and 128
On-chip power supply regulator for load-cell and ADC analog power supply
On-chip oscillator requiring no external component with optional external crystal
On-chip power-on-rest
Simple digital control and serial interface: pin-driven controls, no programming needed
Selectable 10SPS or 80SPS output data rate
Simultaneous 50 and 60Hz supply rejection
Supply Voltage: 2.6V~5.5V
Current: <1.6mA
Working temperature: -40~85°C
16 pin SOP-16 package
Weight Sensor Module
Range:1kg
Excitation voltage: 5-15 V
Output sensitivity: 1.0±0.15mV/V
Synthetical error: 1 per thousand cent of full scale
Zero shift: 0.05/0.03 (30min(%F.S
Zero temperature shift: 0.05/0.03 %F.S/10°C
Zero output: ±0.1mV/V
Trang 24 Overload capability: 200 %F.S
Output: Analog output
Size: 33mm*38mm
IV.1.2 Connection
Figure 4.1: Cấu trúc của sensor đo cân nặng
Figure 4.2: Sơ đồ kết nối của sensor đo cân nặng
Software Requirement :
https://codeload.github.com/DFRobot/DFRobot_HX711/zip/master
Trang 25Figure 4.3: Install the weighing platform
IV.2 Proximity sensor
Công tắc tiệm cận thường sở hữu các đặc điểm của công tắc hành trình, công tắc vi mô và cảm biến Đây là công tắc tiệm cận kim loại 5V nhỏ với kích thước 27 10 6mm, có thể dễ dàng lắp đặt trong không gian chật hẹp Nó có đầu ra NPN (thường mở), khoảng cách phát hiện 4mm, tần số chuyển đổi 1000Hz Thời gian phản hồi dưới 1ms, nhanh chóng và ổn định Các cảm biến này được xếp hạng IP67, có thể chịu được phạm vi nhiệt độ từ -20℃~65℃ Vì vậy, cảm biến này có thể được sử dụng trong nhà và ngoài trời bất kể thời tiết.Công tắc lân cận này nên được vận hành ở mức 5V Nó không chỉ được sử dụng trong tự động hóa máy móc, thiết bị an ninh, chống trộm xe hơi và các hoạt động khác, mà còn được các nhà sản xuất
sử dụng với nhiều bảng điều khiển khác nhau để chuyển đổi đường băng rô-bốt, phát hiện tốc độ, v.v
IV.2.1 Specification
Voltage: 5V
Current: 30mA
Detection Distance: 4mm
Output: NPN (normally open)
Detection Target: metal
Wire Length: about 2m
Sensing Type: inductive
Protection: IP67
Trang 26 Response Time: (1ms
Dimension: 27106mm/1.060.390.24”
IV.2.2 Connection
Color Function Description
Black Signal Line Brown Power Input(5V)
Trang 27Figure 4.4: Sơ đồ kết nối cảm biến tiệm cận
IV.3 Measure Speed Using IC FC-03
IV.3.1 Specification
1 x Bộ thu phát ITR9608: chân số 2 có chứa diode phát tia hồng ngoại, chân số 1 chứa 1 phototransistor để thu nhận tín hiệu hồng ngoại
1 x IC LM393
Các chân cắm:
VCC: cảm biến chịu được mức điện áp từ 3.3 - 5V, chân này được nối với pin nguồn 5V của Arduino
GND: nối với pin nguồn GND của Arduino
DO: chân cho tín hiệu số đi ra của cảm biến (High / Low)
Trang 28phototransistor không nhận được tín hiệu, chân DO được chuyển về
mức LOW
Dựa vào nguyên lý ngày, để lấy được số vòng quay của động cơ trong mộtkhoảng thời gian, chỉ cần đếm số lỗ mà FC-03 bắt được trong khoảng thời gian đó Tức là đếm số lần mà pin 2 của Arduino chuyển
từ HIGH sang LOW
Software :
Để bắt được sự thay đổi trạng thái của đầu ra DO trên FC-03, sử
Trang 29nào đó ở phần cứng, tác vụ này được gọi ngầm định bởi chương trình Arduino đã hỗ trợ hàm thực hiện gọi interrupt, biến lưu số lỗ
mà FC-03 bắt được sẽ tăng một đơn vị khi ngắt xảy ra (pin 2 có hiện tượng chuyển từ HIGHT sang LOW)
V.1 Điều khiển động cơ bằng IC L298
Sử dụng IC L298 vừa để điều khiển 2 động cơ cùng lúc vừa cóthể điều xung PWM để cân bằng độ chênh lệch giữa 2 bánh xe
V.1.1 Yêu cầu thiết bị
Arduino Uno R3
Trang 30 Động cơ DC giảm tốc vàng 3V – 9V.
Arduino Uno R3 :
Arduino Uno R3 được sử dụng vi điều khiển ATmega328, tươngthích với hầu hết các loại Arduino Shield trên thị trường, có thể gắnthêm các module mở rộng để thực hiện thêm các chức năng nhưđiều khiển motor, kết nối wifi hay các chức năng khác.
Sử dụng ngôn ngữ lập trình C,C++ hoặc Arudino, một ngônngữ bắt nguồn từ C,C++ trên phần mềm riêng cho lập trình ArduinoIDE
Các chân nguồn :
Arduino Uno R3 được cấp nguồn 5V qua cáp usb hoặc cấpnguồn ngoài thông qua Adaptor chuyển đổi , với điện ápkhuyên dùng là khoảng 6-9V Có thể cấp nguồn từ máytính qua cổng usb về.
Các chân 5V, 3.3V là chân dùng để cấp nguồn đầu ra chocác thiết bị chứ không phải chân cấp nguồn vào
Vin(Voltage Input): Dùng để cấp nguồn ngoài cho ArduinoUno, nối dương cực vào chân nà và cực âm vào chânGND