Xe 2 bánh tự cân bằng (P1)




Chào mọi người, mình vừa trải qua một khoảng thời gian kinh khủng trong năm nay. Nhưng mà chuyện gì rồi cũng sẽ qua, hãy cứ tiến về phía trước nhé. Giống như tiêu đề, chuỗi blog này sẽ viết về cách làm một chiếc xe 2 bánh tự cân bằng và dành ra một phần để nói về giải thuật PID.

Mọi vật nằm trong trọng trường của trái đất đều chịu tác động của trọng lực, điều này khiến cho một chiếc xe 2 bánh không thể đứng thẳng mà có xu hướng ngã xuống. Thế sao con lật đật cũng đứng trên cái bụng hình cầu mà lại không ngã nhỉ? Cái này liên quan đến vị trí của trọng tâm, các bạn chưa biết thì có thể tìm hiểu thêm nhá. Từ đó chúng ta có thể đưa ra hướng giải quyết làm thế nào để xe 2 bánh đứng thẳng bằng việc điều khiển động cơ chống lại sự ngã của xe. (Gần giống như việc khi sắp ngã ra phía trước thì các bạn sẽ có phản xạ với 2 tay ra phía sau để trở về vị trí cân bằng vậy đó).

Trong mô hình này, cảm biến gia tốc góc nghiêng MPU 6050 đóng vai trò quan trọng nhất. MPU 6050 là cảm biến của hãng InvenSense. MPU-6050 là một trong những giải pháp cảm biến chuyển động đầu tiên trên thế giới có tới 6 trục cảm biến tích hợp trong 1 chip duy nhất.MPU 6050 tích hợp 6 trục cảm biến bao gồm:
  • Con quay hồi chuyển 3 trục (3-axis MEMS gyroscope)
  • Cảm biến gia tốc 3 chiều (3-axis MEMS accelerometer)
Trong cơ sở toán học của cảm biến gia tốc góc nghiên MPU 6050 chúng ta sẽ bắt gặp phương pháp quay quaternion, các kiểu chuyển động yaw, pitch, roll. Mình sẽ tóm lược để các bạn dễ hình dung như sau:



1. Quaternion là một phương pháp toán học để xác định toạ độ mới của một vật, một điểm trong không gian sau một phép quay. Các bạn có thể tìm hiểu kỹ hơn về quaternion tại đây: Quaternion


2. Kiểu chuyển động Yaw - kiểu chuyển động quanh trục Z, tương tự như cách mà chúng ta xoay cây ăng-ten truyền hình mỗi khi hình ảnh không rõ, nếu chúng ta lấy mô hình máy bay với mũi hướng theo trục X để mô tả cho các kiểu chuyển động này thì chuyển động Yaw sẽ có dạng như thế này. 



3. Kiểu chuyển động Pitch - kiểu chuyển động quanh trục Y. Tương tự như chuyển động lúc máy bay cất cánh hoặc hạ cánh, kiểu chuyển động này thay đổi góc tạo bởi mũi máy bay (trục X) so với phương ngang. Kiểu chuyển động Pitch được minh hoạ bởi hình ảnh sau:


4. Kiểu chuyển động Roll - kiểu chuyển động theo trục X. Tương tự như chuyển động khi máy bay cần rẽ sang trái hoặc phải, nghiêng mình để chuyển hướng. Kiểu chuyển động xoay dạng Roll được mô tả như sau:


Các chuyển động này được ghi lại bởi các tinh thể điện áp bên trong cảm biến, xếp thành từng cặp bề mặt. Có tất cả 3 cặp bề mặt đối diện nhau, mỗi cặp tương ứng với một trục trong không gian 3 chiều (X, Y, Z). Dựa vào các tín hiệu từ bề mặt tinh thể điện áp mà cảm biến có thể xác định hướng và độ lớn của các chuyển động nghiêng.

Ngoài ra, MPU 6050 còn có 1 đơn vị tăng tốc phần cứng chuyên xử lý tín hiệu (Digital Motion Processor - DSP) do cảm biến thu thập và thực hiện các tính toán cần thiết. Điều này giúp giảm bớt đáng kể phần xử lý tính toán của vi điều khiển, cải thiện tốc độ xử lý và cho ra phản hồi nhanh hơn. Đây chính là 1 điểm khác biệt đáng kể của MPU 6050 so với các cảm biến gia tốc và gyro khác. Bắt đầu với việc chuẩn bị...

1. Phần cứng

Các bạn sẽ cần chuẩn bị các chi tiết và linh kiện như sau:
1. Arduino nano + board mở rộng + cáp nạp micro USB
2. Mạch cầu điều khiển dộng cơ L298N
3. Module cảm biến gia tốc góc nghiêng MPU 6050
4. Ba viên pin sạc size AA - 3.7V
5. Mạch sạc, cân bằng và bảo vệ 3 cell (các bạn có thể mua ở Nshop hoặc Lazada)
6. Hai động cơ giảm tốc mini GA12 - 12V và bánh xe
7. Công tắc, các trụ đồng và dây nối
8. Khung xe

Các bạn có thể tự thiết kế khung xe hoặc dùng khung do mình thiết kế, tải file PDF phía dưới và mang ra tiệm cắt mica bảo họ cắt độ dày 2.5, tỉ lệ 1:1 là được.




Sau khi đã có khung, chúng ta tiến hành kết nối các module lại với nhau theo sơ đồ mạch điện sau và lắp vào khung sao cho các chi tiết đối xứng nhất có thể, cảm ơn Văn Phúc đã hỗ trợ vẽ sơ đồ mạch điện.



Trên sơ đồ mạch điện chưa có mạch sạc và bảo vệ cell, mọi người mua mạch sạc và bảo vệ cell và kết nối các cell pin trước khi cấp nguồn vào mạch cầu nhé. Có thể tham khảo mạch sạc và bảo vệ như sau:



Lưu ý: Khi hàn chân cảm biến MPU 6050 các bạn hàn sao cho dây kết nối từ dưới lên, mặt không có linh kiện của cảm biến tiếp xúc với bề măt khung xe. Phía 2 lỗ via bắt ốc trên cảm biến hướng về phía có các chân analog của arduino nano. Nếu mọi người đặt không đúng theo mô tả thì các hệ số khi viết chương trình sẽ khác với mình, mọi người sẽ phải căn chỉnh lại.

Trong bài viết sau chúng ta sẽ tìm hiểu về phần lập trình cho xe 2 bánh tự cân bằng, chúc mọi người ngủ ngon.