Mục lục:

Đèn LED và Lực hấp dẫn ?: 4 bước
Đèn LED và Lực hấp dẫn ?: 4 bước

Video: Đèn LED và Lực hấp dẫn ?: 4 bước

Video: Đèn LED và Lực hấp dẫn ?: 4 bước
Video: Led Exideal 280 Full _Hướng dẫn cách sử dụng 2024, Tháng bảy
Anonim
Đèn LED và Lực hấp dẫn?
Đèn LED và Lực hấp dẫn?

Dự án này không có mục đích sử dụng thực tế nào, nhưng được bắt đầu như một bài tập trong việc triển khai các công thức vật lý liên quan đến lực hấp dẫn trong mã C trên Arduino. Để hiển thị mọi thứ, một dải đèn LED neopixel với 74 đèn LED đã được sử dụng. Ảnh hưởng của gia tốc trọng trường lên một vật thể được chứng minh bằng cách sử dụng con chip con quay hồi chuyển và gia tốc kế MPU-6050. Chip này được gắn vật lý vào dải LED, vì vậy khi dải LED được giữ ở một góc nhất định, chip sẽ đo góc của dải LED và Arduino sử dụng thông tin này để cập nhật vị trí của một đối tượng ảo như thể nó là một quả bóng nằm cân bằng trên một chùm và lăn từ bên này sang bên kia nếu chùm được giữ ở một góc. Vị trí của đối tượng ảo được chỉ định trên dải LED dưới dạng một đèn LED duy nhất được chiếu sáng.

Để cập nhật vị trí của một vật thể ảo đang rơi xuống trái đất dưới tác dụng của lực hấp dẫn, chúng ta sử dụng công thức:

y = y0 + (V0 * t) + (0,5 * a * t ^ 2)

Với:

y = quãng đường đi được tính bằng mét y0 = quãng đường bắt đầu tính bằng mét v0 = vận tốc đầu tính bằng mét / giây a = gia tốc (trọng lực) tính bằng mét / giây ^ 2 t = thời gian tính bằng giây

Bước 1: Mạch

Mạch điện
Mạch điện

Arduino Pro Mini được cấp nguồn bằng cách cấp nguồn + 5V trực tiếp vào chân + 5V, là đầu ra của bộ điều chỉnh 5V trên bo mạch. Điều này có vẻ hơi chính thống, nhưng khi Vin được để ngỏ, nó không tạo ra vấn đề miễn là bạn không đảo ngược cực, bởi vì điều đó chắc chắn sẽ nâng cốc cho Arduino của bạn.

Chip con quay hồi chuyển và gia tốc MPU6050 được cấp nguồn thông qua mô-đun chuyển đổi 5V sang 3V3 công suất thấp và nói chuyện với Arduino thông qua giao diện I2C (SDA, SCL). Với Arduino Pro Mini, SDA được kết nối với A4 và SCL được kết nối với A5, cả hai đều nằm trên Arduino Pro Mini PCB. Với phiên bản Pro Mini mà tôi sử dụng, A4 và A5 nằm trong PCB (2 lỗ) và không thể truy cập thông qua các đầu ghim ở các cạnh của PCB. MPU6050 cũng có một đầu ra ngắt (INT) được sử dụng để báo cho Arduino biết khi có dữ liệu mới. Dải đèn LED neopixel WS2812B với 74 đèn LED được cấp nguồn trực tiếp từ nguồn 5V và có 1 đường dữ liệu (DIN) được kết nối với một đầu ra của Arduino.

Bước 2: Phần mềm

Tôi đặt tất cả các trình điều khiển được sử dụng bởi sketch (.ino) trong cùng một thư mục với sketch thay vì sử dụng các thư viện. Lý do cho điều này là tôi không muốn cập nhật trình điều khiển, để ngăn lỗi xâm nhập và ngăn những thay đổi mà tôi đã làm với trình điều khiển sẽ bị ghi đè bởi các bản cập nhật.

Đây là danh sách các tệp dự án:

  • Balancing_LED_using_MPU6050gyro.ino: tệp phác thảo
  • MPU6050.cpp / MPU6050.h: Trình điều khiển con quay hồi chuyển và gia tốc kế MPU6050
  • MPU6050_6Axis_MotionApps20.h: Định nghĩa và chức năng MPU6050 DMP (bộ xử lý chuyển động kỹ thuật số)
  • helper_3dmath.h: Định nghĩa lớp cho quaternion và vectơ số nguyên hoặc float.
  • I2Cdev.cpp / I2Cdev.h: Trình điều khiển I2C sử dụng thư viện dây Arduino
  • LEDMotion.cpp / LEDMotion.h: Thực hiện cân bằng trọng lực LED bằng dải LED và góc được đo bởi MPU6050

Bước 3: Hình ảnh

Đề xuất: