SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
Loading...
Searching...
No Matches
ภาพรวม

SDK เฟิร์มแวร์สำหรับชุดบอร์ด BENTO PSoC Edge ให้สี่อย่าง ได้แก่ ไลบรารีโมดูลที่คอมไพล์ มาแล้วหกตัว ที่ลิงก์เข้ากับแอปพลิเคชันของผู้ใช้โดยตรง เทมเพลตแอปพลิเคชันที่ build ได้จริง ซึ่งลิงก์ไลบรารีเหล่านั้นและบูตขึ้นมาเป็นเฟิร์มแวร์ที่ใช้งานได้ Tutorial ที่จัดกลุ่มตามฟีเจอร์ และ คู่มืออ้างอิง API ที่มีตัวอย่างโค้ด กำกับทุกฟังก์ชัน ทั้งหมดอยู่ในเว็บไซต์เดียว โดย Tutorial อยู่คู่กับฟีเจอร์ของตน และคู่มืออ้างอิงอยู่ท้ายสุดของทุกส่วน

บอร์ดทำอะไรได้ และความสามารถนั้นเป็นของโมดูลใด
ความสามารถ โมดูลที่ลิงก์ คอร์ เริ่มอ่านที่
อนุมาน Edge AI บนอุปกรณ์ — ทะเบียนโมเดล การป้อนข้อมูลแบบขนาน การโหลดตอนรัน libbento_edge_ai.a CM55 Edge AI
หน้าจอและ widget, บริการข้ามคอร์ (sensor hub, LCD, UI) libbento_ipc.a, libbento_cm55.a CM55 หน้า UI และ IPC
secure element: คู่กุญแจของอุปกรณ์, CSR, Protected Update libbento_hsm.a CM33_NS ความปลอดภัย / HSM
BLE — agent ของ NUS ที่รับส่งโปรโตคอล Bento Buddy libbento_secure.a CM33_NS BLE / Bento Buddy
โปรโตคอลสาย TACP และข้อมูลรับรอง WiFi ฝั่ง MicroPython libbento_mpy.a (เฉพาะ mtb-mpy) CM33_NS ชุดเอกสาร mtb-mpy
เซนเซอร์หกตัว, LED, ปุ่ม, radar, บอร์ดฐาน QWA309 ซอร์สของเทมเพลต — ไม่มี archive ทั้งสองคอร์ อุปกรณ์ต่อพ่วง: เซนเซอร์และ GPIO
WiFi, MQTT, mTLS ที่ยืนอยู่บน OPTIGA ซอร์สของเทมเพลต — ไม่มี archive CM33_NS การเชื่อมต่อ: WiFi และคลาวด์
LittleFS และที่เก็บข้อมูลรับรอง ซอร์สของเทมเพลต + libbento_mpy.a CM33_NS ที่เก็บข้อมูลและข้อมูลรับรอง
Note
เครดิต: โมเดล Edge AI เป็นของ Infineon ไม่ใช่ของ TESAIoT โมเดล motion, audio และ radar ที่เฟิร์มแวร์นี้ส่งมอบ (proj_cm55/modules/ai_models/model_*.c) เป็นผลลัพธ์ที่ export จาก DEEPCRAFT™ Studio และมีลิขสิทธิ์ของ Imagimob AB ซึ่งเป็นบริษัทในเครือ Infineon Technologies ส่วนโมเดล Siren, Cough และ Factory Alarm เป็น DEEPCRAFT™ Ready Model ของผู้สร้างรายเดียวกัน เผยแพร่โดย Infineon อยู่ภายใต้ Imagimob AI Model Evaluation License Agreement และไม่ได้แจกจ่ายต่อในแพ็กเกจนี้ TESAIoT ไม่ได้ฝึกและไม่ได้เป็นเจ้าของโมเดลใดเลย สิ่งที่เป็นของ TESAIoT คือ engine ที่ครอบอยู่ ซอร์สของโมเดลที่ส่งมอบมาระบุเพียง All Rights Reserved โดยไม่มีการให้สิทธิ์ใด ๆ เขียนไว้ในไฟล์ ที่นี่จึงเป็นการให้เครดิต ไม่ใช่การส่งต่อสิทธิ์ การใช้งานที่นี่เป็นไปเพื่อการวิจัยและการอบรม ไม่ใช่การใช้เชิงพาณิชย์ ผู้ที่ต้องการสิทธิ์การใช้งานต้องขอจาก Infineon และ Imagimob โดยตรง ผู้ที่ต้องการฝึกโมเดลของตนเองเริ่มได้ที่ https://www.infineon.com/design-resources/embedded-software/deepcraft-edge-ai-solutions/deepcraft-studio รายละเอียดฉบับเต็มและการอ้างอิงข้อสัญญาอยู่ที่ THIRD_PARTY_NOTICES.md §2.2, §2.4 และ §4.3

archive ทั้งหกลงลายเซ็นไว้ และ lib/verify.sh ตรวจกับ lib/manifest.txt ได้ แต่ละตัว มี include/, api.txt (บัญชี symbol ที่ export ออกมา), consumer_must_provide.txt และ overridable.txt ของตนเอง อุปกรณ์ต่อพ่วงและการเชื่อมต่อ ไม่ได้ เป็นไลบรารี ทั้งสองส่วนส่งมอบมาในรูปซอร์สที่แก้ไขได้

หน้าตาของการใช้งาน

เอียงบอร์ดแล้วให้ LED สว่างตาม — อ่านจาก accelerometer จริงและขับขาที่มี PWM จริง

import sensors, gpio, time
sensors.init() # modsensors.c:523
red = gpio.led(2) # RGB_RED — modgpio.c:587
while True:
ax, ay, az = sensors.bmi270.acceleration() # modsensors.c:159
red.brightness(min(100, int(abs(ax) * 10))) # hardware PWM — modgpio.c:211
time.sleep_ms(100)

โปรแกรมนี้ฉบับเต็ม พร้อมสิ่งที่ควรสังเกตทีละบรรทัด อยู่ที่ A1 — จากไฟล์ zip ถึงโปรแกรมแรก

ตัวอย่างอยู่ที่ใด

หน้าอ้างอิงของทุกฟังก์ชันมีตัวอย่างกำกับ ตัวอย่างที่ยกมาจากซอร์สที่ส่งมอบจริงมีหัวข้อ ที่มา ระบุไฟล์ ส่วนตัวอย่างที่ไม่มี call site ในของที่ส่งมอบมีหัวข้อ ตัวอย่าง (เขียนขึ้นเอง) กำกับตรง ๆ Tutorial เดินโค้ดจริงตามลำดับ พร้อมไฟล์และบรรทัด และ อุปกรณ์ต่อพ่วงโดยสรุป เป็นตารางล้วนของทุกการเรียก ไฟล์ บรรทัด และ gate BSP_HAS_* ของแต่ละตัว

การ build
(cd lib && ./verify.sh) # ลายเซ็น + digest
for p in proj_cm33_s proj_cm33_ns proj_cm55; do (cd $p && make getlibs); done
make build -j && make program

ลำดับเต็ม (patch series, การตัดไฟจ่ายไฟใหม่, ข้อควรระวัง) อยู่ที่ A1 — จากไฟล์ zip ถึงโปรแกรมแรก

Note
ชุดเอกสารนี้เป็นของแพ็กเกจ mtb-mpy (มี MicroPython VM) ชุดเอกสารของแพ็กเกจ ภาษา C ล้วนคือ mtb-only — โครงสร้างส่วนเดียวกัน URL สัมพัทธ์เดียวกัน หรือใช้ตัวเลือก variant ที่ส่วนหัวของหน้า
ส่วนต่าง ๆ ตามลำดับการอ่าน
  • เริ่มต้นใช้งาน — แผนที่ของ SDK (ความสามารถแต่ละอย่างเป็นของโมดูลใด และ "อยากทำ X ต้องเปิดบทไหน") จากนั้นเป็นเส้นทางจากไฟล์ zip ถึงโปรแกรมแรก
  • สถาปัตยกรรมและการบูต — การเดินตามลำดับการบูตของ CM33_NS และ CM55 และ ข้อกำหนดการเรียกใช้ของ IPC สามชุดที่ทุกหน้า (page) พึ่งพา
  • อุปกรณ์ต่อพ่วง: เซนเซอร์และ GPIO — บัสเซนเซอร์และ lock ของบัสนั้น เซนเซอร์ทั้งหกตัว auto-push task, LED และปุ่ม บอร์ดฐาน QWA309 และ radar พร้อมตารางอ้างอิงอย่างเร็วของทุกการเรียกใช้และ gate BSP_HAS_* ของแต่ละตัว
  • Edge AI — select → confirm → start, parallel set, การ stop/unload/staged โมเดล และข้อมูลวินิจฉัย จากนั้นเป็นคู่มืออ้างอิง API ของ Edge AI
  • ความปลอดภัย / HSM — ระเบียบการเข้าถึงชิป OPTIGA, การลงทะเบียนและ Protected Update ตั้งแต่ต้นจนจบ, ข้อกำหนดการเรียกใช้ของ weak symbol จากนั้นเป็นคู่มืออ้างอิง API ของ TESAIoT HSM
  • การเชื่อมต่อ: WiFi และคลาวด์ — WiFi, ที่เก็บข้อมูลรับรองสองแห่ง, Tutorial MQTT และ mTLS พร้อมแผนผังว่า API แต่ละตระกูลถูกจัดวางไว้ที่ส่วนใด
  • หน้า UI และ IPC — การเพิ่มหน้าจอและการสั่ง widget ผ่าน IPC จากนั้นเป็นคู่มืออ้างอิง API ของ IPC Core และ CM55 Core
  • BLE / Bento Buddy — การเปิดใช้งาน BLE, กฎ single-RF, ส่วนที่เรียกใช้ได้ของโปรโตคอล NUS จากนั้นเป็นคู่มืออ้างอิง API ของ BLE NUS
  • ที่เก็บข้อมูลและข้อมูลรับรองbento_storage, ที่เก็บข้อมูลรับรองฝั่ง C และสัญญาณชีพ (heartbeat) จากนั้นเป็นคู่มืออ้างอิง API ของ storage/credentials (หน้า lfs_wifi_creds_* อยู่ที่ส่วนนี้ทั้งสอง variant)
  • MicroPython Agent (BentoClaw) — TACP, safety gate ของ claw, session/ชั้นขนส่ง/backend จากนั้นเป็นคู่มืออ้างอิง API ของ MicroPython Secure (มีเฉพาะ mtb-mpy)
  • ภาคผนวก — แผนที่สัญญาณ (การแปลความบรรทัดคอนโซล รหัส LED และ marker บอกความผิดพลาด) กับดักและ anti-pattern และบัญชี symbol ที่ผู้ใช้ไลบรารีต้องจัดหาเอง
รูปแบบการเขียน Tutorial

ทุกบทใช้รูปแบบเดียวกัน คือ เป้าหมายของหัวข้อนี้ลำดับการทำงานจริงของเฟิร์มแวร์ (อ้างถึงไฟล์และบรรทัดที่ส่งมอบจริง พร้อมบล็อก snippet ที่ยกมาจากซอร์สที่ส่งมอบเมื่อมี marker กำกับไว้) → ทีละขั้น โดยแต่ละขั้นจบด้วยกล่อง สิ่งที่ควรสังเกต ซึ่งยกมาเฉพาะสัญญาณที่ตรวจแล้วว่าพิมพ์ออกมาจริง → กับดักvariant ที่ใช้ได้ การแยกตาม variant แสดงเป็นแผงที่มีป้ายกำกับอยู่ภายในบท สิ่งที่ต่างกันระหว่างชุดเอกสารทั้งสองมีเพียงการตัดทั้งบทออกเท่านั้น (docs/tutorials/<variant>/INCLUDED.list)

การค้นหา

ช่องค้นหาจับคู่ symbol และชื่อหน้า/ชื่อหัวข้อจากคำนำหน้า และไม่ค้นหาเนื้อความใน Tutorial