Genesis Core: Hardware Reflex Layer Protocol (v1.0)
📡 ภาพรวม (Overview)
เอกสารนี้กำหนดมาตรฐานการสื่อสารระหว่าง Genesis Core (AI) และ Physical Robot Body (ESP32) โดยมีเป้าหมายเพื่อแยก "สัญชาตญาณ" (Reflexes) ออกจาก "ความนึกคิด" (AI Decisions)
- โปรโตคอล: Socket.IO (v4.x) ผ่าน WiFi
- การขนส่งข้อมูล: Websockets (แนะนำ) / Polling
- การยืนยันตัวตน: พารามิเตอร์
tokenใน query หรือ Auth Object
🔐 การเชื่อมต่อ (Connection Handshake)
Endpoint: http://<GENESIS_IP>:8000
Auth: ต้องระบุ GHOST_SECRET (ค่าเริ่มต้น: GHOST_99_ALPHA)
ตัวอย่างการเชื่อมต่อ (Arduino/C++)
📤 เหตุการณ์ขาออก (ESP32 -> Genesis)
1. telemetry (Heartbeat)
ส่งทุกๆ 2-5 วินาทีเพื่ออัปเดตสถานะ
{
"dashboard_id": "8", // อัตลักษณ์
"battery": 85, // เปอร์เซ็นต์ (ส่งผลต่อพลังงาน AI)
"wifi_signal": -60, // dBm
"status": "IDLE" // สถานะดิบ
}
2. reflex (การตอบสนองทันที)
ส่ง ทันที เมื่อเซนเซอร์ตรวจพบค่าที่กำหนด (เช่น สิ่งกีดขวาง < 30 ซม.)
{
"dashboard_id": "8",
"reflex": "OBSTACLE_DETECTED", // ประเภทของการกระตุ้น
"sensor": "ULTRASONIC_FRONT",
"distance": 15, // ค่าที่กระตุ้นการตอบสนอง
"action_taken": "STOP" // การดำเนินการอัตโนมัติโดย ESP32 (ถ้ามี)
}
[ZZZ]
- ตั้งค่าอารมณ์เป็น ALERT
- บันทึก "Reflex Log" ทันทีใน Hub
📥 เหตุการณ์ขาเข้า (Genesis -> ESP32)
1. robot_command (คำสั่งจาก AI)
คำสั่งที่สร้างโดย LLM ตามการใช้เหตุผลระดับสูง
{
"action": "FORWARD", // FORWARD, BACKWARD, LEFT, RIGHT, STOP, SCAN
"speed": 200, // 0-255 (ระบุหรือไม่ก็ได้)
"duration": 1000 // มิลลิวินาที (ระบุหรือไม่ก็ได้)
}
2. set_state (บังคับสถานะ)
ใช้สำหรับเขียนทับการตั้งค่าฮาร์ดแวร์
⚡ ตรรกะพลังงานและการหลับ (Energy & Sleep Logic)
- แบตเตอรี่ < 10%: ESP32 จะส่ง telemetry ช้าลงเพื่อประหยัดพลังงาน
- Genesis Sleep [ZZZ]: ESP32 ยังคงทำงานตามปกติ แต่รับรู้ว่า AI ออฟไลน์อยู่
- การปลุก (Wake Up): เหตุการณ์
reflexใดๆ ที่ส่งจาก ESP32 จะบังคับให้ Genesis Core ตื่นขึ้น