v4.2.2

v4.2.2 เพิ่ม รองรับภาพ PNG (ถอดรหัส/เข้ารหัสผ่าน lodepng) ระบบโหลดโมเดลบิลต์อินแบบตารางข้อมูล รองรับกล้อง OV5640 บน Portenta อัปเดต TensorFlow ของ Edge Impulse และ ulab 4.0 API การกำหนดค่า RPC CAN มีการเปลี่ยนแปลง — โปรดอ่านการเปลี่ยนแปลงที่ไม่เข้ากันด้านล่าง

ไฮไลท์

  • รองรับ PNGImage.to_png(), image.PNG, และการอ่าน/เขียนไฟล์ PNG

  • tf.load_builtin_model() — โมเดลบิลต์อินแบบตารางข้อมูลที่สามารถแทนที่หรือเพิ่มได้ตอนบิลด์

  • Portenta H7 — รองรับกล้อง OV5640 (พร้อมโฟกัสอัตโนมัติ)

  • MicroPython/ulab — อัปเดต ulab เป็น 4.0.0

  • เปลี่ยนแปลงที่ไม่เข้ากัน: API การกำหนดค่า RPC CAN มีการเปลี่ยนแปลง — ดูการเปลี่ยนแปลงที่ไม่เข้ากัน

ฟีเจอร์ใหม่

  • รูปแบบภาพ PNG — เพิ่มเมธอด Image.to_png() ค่าคงที่ image.PNG / PIXFORMAT_PNG การโหลด/บันทึกไฟล์ PNG (อ่าน/เขียน .png) และผลลัพธ์ PNG ในการแปลง image.to() ผ่าน codec lodepng ที่ฝังอยู่

  • tf.load_builtin_model(path) — โหลดโมเดลบิลต์อินในเฟิร์มแวร์และคืนค่า tuple (labels, net) โมเดลบิลต์อินใช้ระบบตารางข้อมูลแล้วจึงสามารถแทนที่หรือเพิ่มได้ตอนบิลด์

การเปลี่ยนแปลงและปรับปรุงอื่นๆ

  • TensorFlow / Edge Impulse — อัปเดตไลบรารีการอนุมานที่ฝังมาเป็น Edge Impulse ei-V2.5.0 ย้ายโมเดล person_detection ไปไว้ในตารางโมเดลบิลต์อิน และเพิ่ม TensorFlow operator ที่ขาดหายไปในบิลด์ Cortex-M0+/M4/M7/M55 ทั้งหมด เพื่อให้โมเดล Edge Impulse ทำงานได้มากขึ้น

  • อัปเดต ulab เป็น 4.0.0

  • การเปิดพอร์ต USB virtual serial ที่ความเร็ว 1200 bps จะกระตุ้นการรีเซ็ตแบบ Arduino-style touch reset เข้าสู่บูตโหลดเดอร์

  • อัปเดตเฟิร์มแวร์โมดูล WiFi WINC1500 เป็น 19.7.6 (พร้อมสคริปต์อัปเดต) และตอนนี้รายงานเวอร์ชันไดรเวอร์โฮสต์จริง

  • พอร์ต RP2 แสดง "MPY: soft reboot" และเพิ่มการ init/de-init UART

แก้ไขบัก

  • แก้ไขขนาดบัฟเฟอร์เฟรมดิบของ Arduino Nano RP2040 Connect และ USB Product ID ของ Arduino Nicla Vision (แก้ไขการระบุ USB ที่ถูกต้อง)

ฮาร์ดแวร์และการรองรับบอร์ด

  • Arduino Portenta H7 — รองรับกล้อง OV5640 (พร้อมโฟกัสอัตโนมัติ) GC2145 ถูกปิดใช้งานบน Portenta

  • Arduino Nano RP2040 Connect — การกำหนดค่าหน่วยความจำและเทมเพลต fresh-filesystem

  • WiFi Shield (WINC1500) — อัปเดตเฟิร์มแวร์เป็น 19.7.6

การเปลี่ยนแปลง API ที่ไม่เข้ากัน

การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v4.2.1 และ v4.2.2 ขอบเขต: Python C-modules ใน modules/ และไลบรารี Python ใน scripts/libraries/

การเปลี่ยนแปลงแต่ละอย่างถูกติดแท็กด้วยผลกระทบ:

  • minor — API ที่มีขอบเขตแคบ ส่งผลต่อสคริปต์ที่ใช้เท่านั้น

  • behavior — API เดิม ผลลัพธ์ต่างออกไป ควรตรวจสอบสคริปต์ที่ปรับแต่งไว้

การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบตามลำดับนั้น แต่ละ commit hash เชื่อมโยงไปยัง diff บน GitHub

API การกำหนดค่า RPC CAN (minor)

ในไลบรารี rpc อาร์กิวเมนต์คีย์เวิร์ด CAN sampling_point ของ rpc_can_master / rpc_can_slave ถูกเปลี่ยนชื่อเป็น sample_point (เพื่อให้ตรงกับ MicroPython upstream) และตัวช่วยกำหนด CAN bit-timing แบบแมนนวลถูกลบออก — ตอนนี้กำหนดค่า CAN bus ผ่าน CAN(..., baudrate=, sample_point=) สคริปต์ที่ส่ง sampling_point หรืออาศัยการคำนวณ bit-timing แบบเดิมต้องได้รับการอัปเดต

Commits: b565eca58, 06d716986

image.format() และภาพที่บีบอัด (behavior)

ด้วยเส้นทางภาพที่บีบอัดแบบรวมที่เพิ่มเข้ามาสำหรับ PNG ตอนนี้ image.format() จะคืนค่า PIXFORMAT_INVALID สำหรับรูปแบบที่ไม่รู้จัก และการจัดทำดัชนี / การวนซ้ำ / การพิมพ์ภาพที่บีบอัดครอบคลุม PNG เช่นเดียวกับ JPEG โค้ดที่ตรวจสอบค่าที่ส่งคืนก่อนหน้าสำหรับรูปแบบที่ไม่รู้จักควรตรวจสอบอีกครั้ง

Commit: f12a4659c

รายการตรวจสอบการย้ายระบบ

สำหรับการย้ายที่สะอาดไปยัง v4.2.2: เปลี่ยนชื่อ sampling_pointsample_point ของ RPC CAN และยกเลิกการตั้งค่า CAN bit-timing แบบแมนนวลใดๆ (การเปลี่ยนแปลง RPC CAN) และตรวจสอบโค้ดที่ตรวจสอบ image.format() สำหรับรูปแบบที่ไม่รู้จักอีกครั้ง (การเปลี่ยนแปลง format())