[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-96192":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},96192,"ESP32_FC","KyThuatUAV\u002FESP32_FC","KyThuatUAV","nghiên cứu và phát triển bộ điều khiển bay drone dựa trên esp32",null,"C++",147,38,105,0,44.77,"GNU General Public License v3.0",false,"main",true,[],"2026-09-20 04:01:32","# Mạch bay ESP32 — Kỹ Thuật UAV\n\nMã nguồn mở của một bộ điều khiển bay (flight controller) cho drone bốn cánh,\nchạy trên ESP32. Kèm tài liệu hướng dẫn từ lúc cài phần mềm tới lúc bay thử.\n\nDành cho sinh viên và người tự học. Miễn phí, không điều kiện.\n\n---\n\n## Phần cứng\n\n| Thành phần | Linh kiện | Giao tiếp |\n|---|---|---|\n| Vi điều khiển | ESP32-WROOM-DA | — |\n| Cảm biến quán tính | ICM-20602 | SPI, 10 MHz |\n| Cảm biến áp suất | BMP388 | I2C |\n| Bộ thu điều khiển | Bất kỳ loại nào ra SBUS | UART2, tín hiệu đảo |\n| Động cơ | 4 ESC, xung PWM chuẩn | LEDC 391 Hz |\n\n## Firmware làm được gì\n\n- **Chế độ ANGLE** — cần gạt quy định góc nghiêng, thả cần thì drone tự về bằng.\n- **Chế độ ALT HOLD** — cần ga quy định tốc độ lên xuống, để giữa thì giữ độ cao.\n- **Tự hạ cánh khi mất sóng** — giữ thăng bằng, hạ đều 60 cm\u002Fs, chạm đất tự tắt máy.\n- **Hiệu chỉnh gyro tự kiểm tra** — lặp lại tới khi drone thật sự đứng yên mới nhận.\n- **Chế độ hiệu chỉnh gia tốc kế** — đo xong in ra sẵn ba dòng để dán vào code.\n\nChạy trên FreeRTOS, chia hai nhân của ESP32:\n\n| Tác vụ | Nhân | Nhịp | Việc |\n|---|---|---|---|\n| `control_task` | 1 | 500 Hz | IMU, ước lượng góc, Kalman độ cao, PID, xuất ESC |\n| `rc_task` | 0 | 500 Hz | Giải mã SBUS |\n| `baro_task` | 0 | 100 Hz | Đọc BMP388, in dữ liệu gỡ lỗi |\n\nNhân 1 chỉ chạy vòng điều khiển, không chia sẻ với việc gì khác.\n\n---\n\n## Bắt đầu từ đâu\n\nĐọc **[Tài liệu kèm theo\u002FHUONG_DAN_CAI_DAT.md](Tài%20liệu%20kèm%20theo\u002FHUONG_DAN_CAI_DAT.md)**.\n\nTóm tắt cho người đã quen Arduino:\n\n1. Arduino IDE 2.x\n2. Board Manager URL: `https:\u002F\u002Fespressif.github.io\u002Farduino-esp32\u002Fpackage_esp32_index.json`\n3. Cài gói **esp32 phiên bản 2.0.17** — **không phải bản mới nhất**\n4. Cài thư viện `BasicLinearAlgebra`\n5. Board: **ESP32-WROOM-DA Module**\n6. Mở `CODE_FC\u002FKyThuatUAV_FC_level_1\u002FKyThuatUAV_FC_level_1.ino`\n\n> ⚠️ **Phải đúng core 2.0.17.** Từ bản 3.x, Espressif đổi hoàn toàn cách gọi hàm\n> xuất xung PWM, cài nhầm là biên dịch báo `'ledcSetup' was not declared in this scope`.\n\nToàn bộ thiết lập — chân cắm, kênh điều khiển, hệ số PID, bù gia tốc kế — nằm\ngọn trong **một khối duy nhất** ở đầu file `.ino` chính.\n\n---\n\n## Cấu trúc thư mục\n\n```\nCODE_FC\u002FKyThuatUAV_FC_level_1\u002F   firmware\n├── KyThuatUAV_FC_level_1.ino    khối cấu hình + setup + các tác vụ RTOS\n├── control_task.ino             vòng điều khiển chính, các chế độ bay\n├── imu_icm20602.ino             driver IMU + ước lượng góc + hiệu chỉnh\n├── baro_bmp388.ino              driver áp suất, viết bằng thanh ghi\n├── altitude_kf.ino              Kalman 2 trạng thái cho độ cao\n├── pid.ino                      PID xếp tầng\n├── rc_sbus.ino                  giải mã SBUS\n├── esc_output.ino               xuất xung 4 ESC\n└── types.h                      kiểu dữ liệu dùng chung\n\nTài liệu kèm theo\u002F               hướng dẫn cài đặt, sơ đồ lắp, danh sách linh kiện\ndriver esp32\u002F                    driver USB CP210x cho Windows\n```\n\n---\n\n## An toàn\n\nFirmware biên dịch được **không có nghĩa là bay được**. Trước khi lắp cánh, làm\nđủ ba bước kiểm tra trong phần cuối tài liệu hướng dẫn:\n\n1. Kiểm tra các kênh tay điều khiển đúng thứ tự\n2. Kiểm tra thứ tự motor 1 → 2 → 3 → 4\n3. Kiểm tra dấu của cảm biến và cần gạt **cùng chiều**\n\n**Luôn tháo cánh quạt** khi thử nghiệm trên bàn.\n\n---\n\n## Đã bay nghiệm thu\n\nBộ hệ số PID mặc định trong code đã bay thật trên cấu hình:\n\n| | |\n|---|---|\n| Khung | 5 inch |\n| Động cơ | 2204, 2300KV |\n| Cánh | 5 inch |\n| Pin | 3S 2200mAh |\n\nKhung của bạn khác nhiều so với cấu hình này — nặng hơn, cánh to hơn, pin nhiều\ncell hơn — thì nhiều khả năng phải chỉnh lại PID. Đó là chuyện bình thường, không\nphải code sai.\n\nHướng chỉnh khi khung khác:\n\n- **Khung to và nặng hơn** → giảm `KP_RATE_ROLL` và `KP_RATE_PITCH`. Khung càng\n  nặng thì phản ứng càng chậm, giữ hệ số cao sẽ dao động.\n- **Nghe motor rít tần số cao** → giảm `KD_RATE_ROLL` và `KD_RATE_PITCH`.\n- **Lắc chậm biên độ lớn** → giảm `KP_RATE_*` trước, chưa hết thì giảm `KI_RATE_*`.\n\nLần bay đầu tiên luôn buộc dây và bay thấp, dù cấu hình có giống hệt.\n\n[GPL-3.0](LICENSE).\n\nBạn được tự do dùng, sửa, và chia sẻ lại. Điều kiện: bản phát hành lại phải mở\nmã nguồn và giữ nguyên phần ghi công.\n\n## Ghi công\n\nBộ mã nguồn này học từ những người đi trước, và có ghi rõ học cái gì từ ai.\nXem **[Tài liệu kèm theo\u002FLOI_NHAN_VA_GHI_CONG.md](Tài%20liệu%20kèm%20theo\u002FLOI_NHAN_VA_GHI_CONG.md)**.\n\nTrong đó cũng nói vì sao dự án này được công khai, và ba điều mong bạn giữ khi\ndùng lại.\n\n---\n\n## Khoá học\n\nBộ mã nguồn ở đây là **bậc đầu tiên**: bay cân bằng. Miễn phí, đầy đủ, và tài\nliệu viết để bạn tự đi hết được một mình. **Không cần học khoá nào cũng dùng\nđược trọn bộ này.**\n\nAi muốn đi nhanh hơn thì có khoá học, đi từ số 0, kèm 1-1:\n\n| Bậc | Nội dung |\n|---|---|\n| 1 | **Lập trình bay cân bằng** — ước lượng góc, PID, mixer |\n| 2 | **Lập trình giữ vị trí** — baro, lidar, optical flow, hợp nhất cảm biến |\n| 3 | **Lập trình đa luồng và xử lý nhiễu** — làm drone hết rung, motor hết nóng, chỉnh PID sâu hơn mà không bị rít |\n| 4 | **Lập trình hệ định vị và tự hành** |\n\nHọc trực tiếp tại TP.HCM, hoặc online cho các tỉnh thành khác.\n\nKhoá học là để đi nhanh, an toàn và xa hơn — không phải để mở khoá thứ gì.\n\n## Liên hệ\n\n**Nguyễn Văn Quý** — Kỹ Thuật UAV\n📞 0817 550 271 (gọi hoặc Zalo)\n\nLỗi trong mã nguồn thì mở [Issue](..\u002F..\u002Fissues) trên GitHub — để người sau gặp\ncùng lỗi còn đọc được câu trả lời.\n","这是一个基于ESP32的开源四旋翼无人机飞控固件，专为教学与自学设计。支持ANGLE姿态稳定模式、ALT HOLD定高模式、失联自动降落、IMU自动校准等功能；采用FreeRTOS双核调度，主控任务在Core 1以500Hz运行，集成ICM-20602（SPI）、BMP388（I2C）驱动及两状态高度卡尔曼滤波器。全部配置集中于.ino文件头部，适配ESP32-WROOM-DA模块与SBUS接收机，强调可读性与硬件调试友好性。适用于高校无人机实践课程、嵌入式飞控入门开发及低成本原型验证场景。",2,"2026-09-12 02:30:03","CREATED_QUERY"]