![Gimbal điều khiển chuyển động: 12 bước Gimbal điều khiển chuyển động: 12 bước](https://i.howwhatproduce.com/images/001/image-1928-19-j.webp)
Mục lục:
- Bước 1: Danh sách thành phần
- Bước 2: Lắp ráp
- Bước 3:
- Bước 4: Tiếp theo, sử dụng cùng một phương pháp mà tôi đã bảo mật cho Roll Servo. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995
- Bước 5: Tiếp theo, sử dụng cùng một phương pháp mà tôi đã bảo mật cho Roll Servo. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995
- Bước 6: Kết nối
- Bước 7: Kết nối với IC ổn áp 7805
- Bước 8: Mã hóa
- Bước 9: Khi tất cả các thành phần được kết nối, nó trông tương tự như hình ảnh này
- Bước 10: Bây giờ hãy chèn tất cả các thứ cơ bản vào bên trong hộp thực phẩm
- Bước 11: Khi tất cả các dây và các thành phần được đặt bên trong thực phẩm thì có thể sử dụng súng bắn keo ở đế tấm xốp
- Bước 12: Kết luận
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:14
![Image Image](https://i.howwhatproduce.com/images/001/image-1928-21-j.webp)
![](https://i.ytimg.com/vi/aeVnyle7KME/hqdefault.jpg)
Xin chào mọi người, Tên tôi là Harji Nagi, tôi hiện đang là sinh viên năm thứ hai theo học ngành điện tử và truyền thông của Học viện Công nghệ Pranveer Singh, Kanpur (UP).
Từ “gimbal” được định nghĩa là một hỗ trợ xoay cho phép quay bất kỳ đối tượng nào theo một trục duy nhất. Vì vậy, gimbal ba trục cho phép bất kỳ đối tượng nào được gắn trên gimbal độc lập với chuyển động của vật đang giữ gimbal. Gimbal ra lệnh cho chuyển động của đối tượng, không phải của vật mang nó.
Nó bao gồm 3 động cơ servo MG996R để điều khiển 3 trục và một cơ sở để đặt cảm biến MPU6050, Arduino và pin. Nó được sử dụng để giữ cho máy ảnh ổn định mà không bị rung. Gimbal 3 trục đảm bảo rằng chuyển động của máy ảnh được ổn định ngay cả khi người cầm nó lên và xuống, trái và phải, trước và sau. Đây là những gì chúng tôi gọi là ổn định ngáp, cao độ và cuộn.
Bước 1: Danh sách thành phần
Danh sách thành phần là:
1) Arduino Uno
2) Pin 8V, 1,5 Amp để cấp nguồn cho Arduino Uno
3) Ic điều chỉnh điện áp 7805 hoặc bạn có thể sử dụng bộ chuyển đổi buck
4) MPU 6050
5) 3 * (Động cơ SERVO MG995)
6) Dây nhảy
Các thiết bị khác:
1) Sắt hàn
2) Súng bắn keo
3) Máy khoan
4) Thức ăn có thể
Thay vì sử dụng breadborad, tôi đã sử dụng bảng mạch nhỏ coustom perf cho kết nối xe buýt tích cực và tiêu cực
Bước 2: Lắp ráp
![Lắp ráp Lắp ráp](https://i.howwhatproduce.com/images/001/image-1928-22-j.webp)
![Lắp ráp Lắp ráp](https://i.howwhatproduce.com/images/001/image-1928-23-j.webp)
Mút xốp, ván xốp, hoặc ván xốp mặt giấy là vật liệu nhẹ và dễ cắt được sử dụng để lắp động cơ Servo và để chế tạo các mô hình cân.
Đầu tiên, tôi đã tự làm một giá đỡ hình chữ L để gắn động cơ servo với sự trợ giúp của bảng xốp.
Bước 3:
![Hình ảnh Hình ảnh](https://i.howwhatproduce.com/images/001/image-1928-24-j.webp)
Việc lắp ráp gimbal khá dễ dàng. Tôi bắt đầu với việc cài đặt servo Yaw, cảm biến MPU 6050 và công tắc BẬT-TẮT. Sử dụng bu lông và đai ốc, tôi đã cố định nó vào đế
Bước 4: Tiếp theo, sử dụng cùng một phương pháp mà tôi đã bảo mật cho Roll Servo. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995
![Tiếp theo, sử dụng cùng một phương pháp tôi đã bảo vệ Servo cuộn. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995 Tiếp theo, sử dụng cùng một phương pháp tôi đã bảo vệ Servo cuộn. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995](https://i.howwhatproduce.com/images/001/image-1928-25-j.webp)
Bước 5: Tiếp theo, sử dụng cùng một phương pháp mà tôi đã bảo mật cho Roll Servo. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995
![Tiếp theo, sử dụng cùng một phương pháp tôi đã bảo vệ Servo cuộn. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995 Tiếp theo, sử dụng cùng một phương pháp tôi đã bảo vệ Servo cuộn. các bộ phận được thiết kế đặc biệt để dễ dàng lắp Servos MG995](https://i.howwhatproduce.com/images/001/image-1928-26-j.webp)
Bước 6: Kết nối
![Kết nối Kết nối](https://i.howwhatproduce.com/images/001/image-1928-27-j.webp)
Trong sơ đồ mạch, bạn có thể sử dụng bộ chuyển đổi buck hoặc IC điều chỉnh điện áp 7805 để chuyển đổi 8V thành 5 V. Bộ vi điều khiển được cung cấp cho sơ đồ mạch là Arduino Nano, bạn cũng có thể sử dụng Arduino Uno, Arduino Mega.
Các chân SCL và SDA của MPU 6050 được kết nối với chân Arduino Analog A5 và A4. (Chân SCL và SDA có thể khác nhau, vì vậy hãy kiểm tra biểu dữ liệu cho các chân SCl và SDA cho vi điều khiển khác)
Bước 7: Kết nối với IC ổn áp 7805
![Kết nối với IC điều chỉnh điện áp 7805 Kết nối với IC điều chỉnh điện áp 7805](https://i.howwhatproduce.com/images/001/image-1928-28-j.webp)
Sơ đồ mạch này dùng để đấu nối ic ổn áp 7805, đấu nối pin 8v ở Vin bạn sẽ nhận được điện áp ra là 5v.
Bước 8: Mã hóa
Bạn phải bao gồm các thư viện sau:
1) #includeNhấp vào đây để tải xuống tệp zip
2) #includeNhấp vào đây để tải xuống tệp zip
Sau khi tải xuống tệp zip, hãy thêm thư viện zip trong bản phác thảo arduino
Đối với mã
/*
Tự làm Gimbal - Mã hướng dẫn MPU6050 Arduino dựa trên ví dụ MPU6050_DMP6 từ thư viện i2cdevlib của Jeff Rowberg: https://github.com/jrowberg/i2cdevlib * // I2Cdev và MPU6050 phải được cài đặt dưới dạng thư viện hoặc.cpp / Các tệp.h // cho cả hai lớp phải nằm trong đường dẫn bao gồm trong dự án của bạn #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" // # include "MPU6050.h" // không cần thiết nếu sử dụng MotionApps include file / / Thư viện Arduino Wire là bắt buộc nếu triển khai I2Cdev I2CDEV_ARDUINO_WIRE // được sử dụng trong I2Cdev.h #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif #include // địa chỉ I2C mặc định của lớp là 0x68 // địa chỉ I2C mặc định của lớp được truyền dưới dạng tham số ở đây // AD0 low = 0x68 (mặc định cho SparkFun breakout và bảng đánh giá InvenSense) // AD0 high = 0x69 MPU6050 mpu; // MPU6050 mpu (0x69); // <- sử dụng cho AD0 cao // Xác định 3 động cơ servo Servo servo0; Servo servo1; Servo servo2; float đúng; int j = 0; #define OUTPUT_READABLE_YAWPITCHROLL #define INTERRUPT_PIN 2 // sử dụng chân 2 trên Arduino Uno & hầu hết các bảng bool flashState = false; // MPU control / status vars bool dmpReady = false; // đặt true nếu DMP init thành công uint8_t mpuIntStatus; // giữ byte trạng thái ngắt thực tế từ MPU uint8_t devStatus; // trả về trạng thái sau mỗi hoạt động của thiết bị (0 = thành công,! 0 = lỗi) uint16_t packetSize; // kích thước gói tin DMP dự kiến (mặc định là 42 byte) uint16_t FifoCount; // đếm tất cả các byte hiện có trong FIFO uint8_t FifoBuffer [64]; // Bộ đệm lưu trữ FIFO // định hướng / chuyển động vars Quaternion q; // [w, x, y, z] vùng chứa quaternion VectorInt16 aa; // [x, y, z] cộng các phép đo cảm biến VectorInt16 aaReal; // [x, y, z] các phép đo cảm biến accel không trọng lực VectorInt16 aaWorld; // [x, y, z] các phép đo cảm biến accel world-frame trọng lực VectorFloat; // [x, y, z] vector trọng lực float euler [3]; // [psi, theta, phi] Euler angle container float ypr [3]; // thùng chứa [yaw, pitch, roll] yaw / pitch / roll và vector trọng lực // cấu trúc gói cho bản trình diễn ấm trà InvenSense uint8_t teapotPacket [14] = {'$', 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x00, '\ r', '\ n'}; // ================================================ ================ // === TUYẾN PHÁT HIỆN INTERRUPT === // ===================== =========================================== dễ bay hơi bool mpuInterrupt = false; // cho biết chân ngắt MPU có tăng cao hay không void dmpDataReady () {mpuInterrupt = true; } // =============================================== ================= // === THIẾT LẬP BAN ĐẦU === // ===================== =========================================== void setup () {// tham gia bus I2C (thư viện I2Cdev không tự động làm việc này) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // Đồng hồ I2C 400kHz. Nhận xét dòng này nếu gặp khó khăn khi biên dịch #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif // khởi tạo giao tiếp nối tiếp // (chọn 115200 vì nó được yêu cầu cho đầu ra Teapot Demo, nhưng // thực sự tùy thuộc vào bạn tùy thuộc vào dự án của bạn) Serial.begin (38400); while (! nối tiếp); // đợi Leonardo liệt kê, những người khác tiếp tục ngay lập tức // khởi tạo thiết bị //Serial.println(F("Initializing I2C devices… ")); mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT); devStatus = mpu.dmpInitialize (); // cung cấp hiệu số con quay hồi chuyển của riêng bạn ở đây, được chia tỷ lệ cho độ nhạy tối thiểu mpu.setXGyroOffset (17); mpu.setYGyroOffset (-69); mpu.setZGyroOffset (27); mpu.setZAccelOffset (1551); // 1688 mặc định ban đầu cho chip thử nghiệm của tôi // đảm bảo rằng nó hoạt động (trả về 0 nếu vậy) if (devStatus == 0) {// bật DMP, bây giờ nó đã sẵn sàng // Serial.println (F ("Đang bật DMP… ")); mpu.setDMPEnabled (true); AttachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // đặt cờ Sẵn sàng cho DMP của chúng ta để hàm main loop () biết là có thể sử dụng nó //Serial.println(F("DMP đã sẵn sàng! Đang đợi ngắt đầu tiên… ")); dmpReady = true; // lấy kích thước gói DMP dự kiến để so sánh sau đó packetSize = mpu.dmpGetFIFOPacketSize (); } else {// LỖI! // 1 = tải bộ nhớ ban đầu không thành công // 2 = Cập nhật cấu hình DMP không thành công // (nếu nó bị hỏng, thông thường mã sẽ là 1) // Serial.print (F ("Khởi tạo DMP không thành công (mã")); //Serial.print(devStatus); //Serial.println (F (")")); } // Xác định các chân mà 3 động cơ servo được kết nối servo0.attach (10); servo1.attach (9); servo2.attach (8); } // =============================================== ================= // === ĐĂNG NHẬP CHƯƠNG TRÌNH CHÍNH === // ==================== ============================================ void loop () {/ / nếu lập trình không thành công, đừng cố làm bất cứ điều gì if (! dmpReady) return; // đợi MPU ngắt hoặc (các) gói bổ sung khả dụng trong khi (! mpuInterrupt && FifoCount <packetSize) {if (mpuInterrupt && FifoCount
= 1024) {
// thiết lập lại để chúng ta có thể tiếp tục hoàn toàn mpu.resetFIFO (); FifoCount = mpu.getFIFOCount (); Serial.println (F ("FIFO tràn!")); // nếu không, hãy kiểm tra xem có ngắt sẵn sàng dữ liệu DMP không (điều này thường xuyên xảy ra)} else if (mpuIntStatus & _BV (MPU6050_INTERRUPT_DMP_INT_BIT)) {// đợi độ dài dữ liệu có sẵn chính xác, phải đợi RẤT ngắn trong khi (có sẵn số lượng 1 gói dữ liệu năm mươi / / (điều này cho phép chúng tôi đọc nhiều hơn ngay lập tức mà không cần chờ ngắt quãng)..dmpGetYawPitchRoll (ypr, & q, &vity); // Giá trị Ypr, Pitch, Roll - Radian sang độ ypr [0] = ypr [0] * 180 / M_PI; ypr [1] = ypr [1] * 180 / M_PI; ypr [2] = ypr [2] * 180 / M_PI; // Bỏ qua 300 lần đọc (quá trình tự hiệu chỉnh) if (j <= 300) {correct = ypr [0]; // Yaw bắt đầu ở giá trị ngẫu nhiên, vì vậy chúng tôi nắm bắt giá trị cuối cùng sau 300 lần đọc j ++;} // Sau 300 lần đọc else {ypr [0] = ypr [0] - đúng; // Đặt Yaw thành 0 độ - trừ giá trị Yaw ngẫu nhiên cuối cùng khỏi giá trị currrent để tạo Yaw 0 độ es // Ánh xạ các giá trị của cảm biến MPU6050 từ -90 đến 90 thành các giá trị phù hợp với điều khiển servo từ 0 đến 180 int servo0Value = map (ypr [0], -90, 90, 0, 180); int servo1Value = map (ypr [1], -90, 90, 0, 180); int servo2Value = map (ypr [2], -90, 90, 180, 0); // Điều khiển servo theo định hướng MPU6050 servo0.write (servo0Value); servo1.write (servo1Value); servo2.write (servo2Value); } #endif}}
Cuối cùng bằng cách sử dụng chức năng ghi, chúng tôi gửi các giá trị này đến các servo dưới dạng tín hiệu điều khiển. Tất nhiên, bạn có thể tắt servo Yaw nếu bạn chỉ muốn ổn định cho trục X và Y và sử dụng nền tảng này làm gimbal cho máy ảnh
Bước 9: Khi tất cả các thành phần được kết nối, nó trông tương tự như hình ảnh này
![Khi tất cả các thành phần được kết nối, nó trông tương tự như hình ảnh này Khi tất cả các thành phần được kết nối, nó trông tương tự như hình ảnh này](https://i.howwhatproduce.com/images/001/image-1928-29-j.webp)
Bước 10: Bây giờ hãy chèn tất cả các thứ cơ bản vào bên trong hộp thực phẩm
![Bây giờ hãy chèn tất cả các thứ cơ bản vào bên trong hộp thực phẩm Bây giờ hãy chèn tất cả các thứ cơ bản vào bên trong hộp thực phẩm](https://i.howwhatproduce.com/images/001/image-1928-30-j.webp)
Bước 11: Khi tất cả các dây và các thành phần được đặt bên trong thực phẩm thì có thể sử dụng súng bắn keo ở đế tấm xốp
![Khi tất cả các dây và các thành phần được đặt bên trong thực phẩm thì có thể sử dụng súng bắn keo ở đế tấm xốp Khi tất cả các dây và các thành phần được đặt bên trong thực phẩm thì có thể sử dụng súng bắn keo ở đế tấm xốp](https://i.howwhatproduce.com/images/001/image-1928-31-j.webp)
Bước 12: Kết luận
Xin lưu ý điều này khác xa với gimbal máy ảnh tốt. Các chuyển động không trơn tru bởi vì những Servos này không được thiết kế cho mục đích như vậy. Gimbal máy ảnh thực sử dụng loại động cơ BLDC đặc biệt để có được các chuyển động mượt mà. Vì vậy, hãy coi dự án này chỉ dành cho mục đích giáo dục.
Đó sẽ là tất cả cho hướng dẫn này, tôi hy vọng bạn thích nó và học được điều gì đó mới. Vui lòng đặt bất kỳ câu hỏi nào trong phần nhận xét bên dưới và đừng quên kiểm tra các bộ sưu tập dự án của tôi
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
![Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước](https://i.howwhatproduce.com/images/002/image-4196-13-j.webp)
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
![Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh) Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)](https://i.howwhatproduce.com/images/002/image-5311-28-j.webp)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
![Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh) Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)](https://i.howwhatproduce.com/images/007/image-20303-j.webp)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
![ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước](https://i.howwhatproduce.com/images/001/image-2218-28-j.webp)
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Cửa ra điều khiển chuyển động - Từ đèn cảm biến chuyển động: 6 bước
![Cửa ra điều khiển chuyển động - Từ đèn cảm biến chuyển động: 6 bước Cửa ra điều khiển chuyển động - Từ đèn cảm biến chuyển động: 6 bước](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11125349-motion-controlled-outlet-from-a-motion-sensing-light-6-steps-j.webp)
Cửa ra điều khiển chuyển động - Từ ánh sáng cảm biến chuyển động: Hãy tưởng tượng rằng bạn là một kẻ lừa đảo hoặc lừa dối đến ngôi nhà đáng sợ nhất trong khu nhà. Sau khi vượt qua tất cả những con ma cà rồng, bóng ma và nghĩa địa, cuối cùng bạn cũng đến được con đường cuối cùng. Bạn có thể nhìn thấy kẹo trong một cái bát trước mặt bạn! Nhưng rồi đột nhiên xuất hiện một con ma