v2.4.0

v2.4.0 สร้างบน Qt Creator 4.0.2 และมุ่งเน้นที่บูตโหลดเดอร์ V3 ใหม่ (การสอบถามเลย์เอาต์ QSPI flash ระหว่างการโหลดเฟิร์มแวร์ และการลบข้อมูลระหว่างการลบ onboard-data-flash แบบสมบูรณ์) การรายงาน sensor และบอร์ดแบบสดในแถบสถานะ และโปรโตคอล USB debug 32 บิตใหม่ที่ตรงกับเฟิร์มแวร์ที่รวมมา นอกจากนี้ยังเพิ่มคู่มือ LED สำหรับการเริ่มต้นใช้งานครั้งแรกและตัวอย่างใหม่จำนวนมากสำหรับ TensorFlow, Modbus, และ WiFi เนื่องจากโปรโตคอล debug เปลี่ยนแปลง กล้องจึงต้องใช้เฟิร์มแวร์ที่รวมมาใหม่เพื่อเชื่อมต่อ

ไฮไลต์

  • การรองรับ V3 bootloader สอบถามเลย์เอาต์ QSPI flash ภายนอกของบอร์ดระหว่างการโหลดเฟิร์มแวร์ และลบข้อมูลระหว่างการลบ onboard-data-flash แบบสมบูรณ์ (d953df62f).

  • การรายงาน sensor และบอร์ด สอบถามโมดูล sensor ของกล้องที่เชื่อมต่อเมื่อเชื่อมต่อ และแสดงผลในแถบสถานะ (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) พร้อมกับป้ายกำกับประเภทบอร์ดใหม่ (0ffa82958).

  • การคัดลอกโมเดล TensorFlow ให้คุณคัดลอกโมเดล .tflite ไปยัง cam ได้ ไม่ใช่แค่ไฟล์โครงข่ายประสาทเทียม .network (ad1aa98f0).

  • Erase Onboard Data Flash เป็นคำสั่ง Tools ใหม่ที่ลบเฉพาะ flash ระบบไฟล์ onboard ของ cam หลังจากการยืนยัน โดยไม่ต้องแฟลชเฟิร์มแวร์ใหม่ (d953df62f, 98686ac46).

  • คู่มือ LED สำหรับการเริ่มต้นใช้งานครั้งแรก เป็นกล่องโต้ตอบ OpenMV Cam LED Colors ใหม่ที่อธิบายสถานะ LED onboard และสามารถปิดได้อย่างถาวร (c2d00422f).

คุณสมบัติใหม่

  • V3 bootloader สอบถามเลย์เอาต์ QSPI flash ระหว่างการโหลดเฟิร์มแวร์ และลบ QSPI flash ภายนอกเฉพาะระหว่างการลบ onboard-data-flash แบบสมบูรณ์ โดย connectClicked จะขับ bootloaderQSPIFLayout บนบอร์ด V3 เสมอ แต่รัน bootloaderQSPIFErase เฉพาะเมื่อตั้งค่า forceFlashFSErase (คำสั่ง QSPI write/memtest ถูก implement ในชั้น IO แต่ loader ยังไม่ได้ใช้งาน) (d953df62f).

  • สถานะ sensor และบอร์ด สอบถามโมดูล sensor ของกล้องเมื่อเชื่อมต่อ และแสดงผล (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) ในแถบสถานะ พร้อมกับป้ายกำกับประเภทบอร์ดใหม่ โดยใช้ map id-to-name ใน sensors.txt ใหม่ (0ffa82958).

  • คู่มือ LED สำหรับการเริ่มต้นใช้งานครั้งแรก เพิ่มกล่องโต้ตอบ OpenMV Cam LED Colors ใหม่ที่แสดงขึ้นหลังจากดีเลย์สั้นๆ เมื่อ helloworld_1.py เป็นเอกสารที่เปิดอยู่ในการรันครั้งแรก อธิบายสถานะ LED onboard (กะพริบสีเขียว = bootloader กำลังทำงาน, สีน้ำเงิน = กำลังรัน main.py, สีขาว = panic ความล้มเหลวของฮาร์ดแวร์) โดยช่องทำเครื่องหมาย "Don't show this message again." จะบันทึกการปิดผ่านการตั้งค่า DONT_SHOW_LED_STATES_AGAIN (c2d00422f).

  • เปิดโฟลเดอร์ไดรฟ์ OpenMV Cam เป็นรายการเมนู Tools ใหม่ที่เปิดไดรฟ์ที่ mount ของกล้องในเบราว์เซอร์ไฟล์ระบบ (a49f54305).

  • Erase Onboard Data Flash เป็นคำสั่ง Tools ใหม่ที่ลบเฉพาะ flash ระบบไฟล์ onboard หลังจากการยืนยัน โดยไม่ต้องแฟลชเฟิร์มแวร์ใหม่ (d953df62f, 98686ac46).

  • การคัดลอกโมเดล TensorFlow ให้กล่องโต้ตอบคัดลอกโมเดลสามารถคัดลอกโมเดล .tflite ไปยัง cam นอกจากไฟล์โครงข่ายประสาทเทียม .network โดยตัวกรองกล่องโต้ตอบยังได้รับรายการ Label Files (*.txt) และ All Files เพิ่มเติม (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • การสลับเวอร์ชันโปรโตคอล debug แยกคำสั่ง serial GetAttribute, SetAttribute, FBEnable และ JPEGEnable เมื่อสื่อสารกับเฟิร์มแวร์ 3.5.3+ เพื่อความน่าเชื่อถือ (83b9ca18f).

  • ตัวอย่างที่รวมมาใหม่ เพิ่มสคริปต์ mobilenet และ person-detection sliding-window ของ TensorFlow Lite พร้อมตัวอย่าง STM32Cube.AI (nn_stm32cubeai.py) MNIST โฟลเดอร์ 32-modbus ใหม่ (modbus_rtu_slave.py, modbus_apriltag.py), การเพิ่มเติม WiFi shield (http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI-slave และ CAN (e26b90d79, 42ba8f5c4).

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

  • อัปเดตโปรโตคอล USB debug เป็นเฟิร์มแวร์ใหม่ โดยการอ่าน attribute ใช้คำสั่ง ATTR_READ_2 (0xCA) 32 บิตใหม่ และ payload ของ attribute, value และ framebuffer-enable ส่งเป็น long 32 บิตแทน word 16 บิต (55d7cfe70).

  • เปลี่ยนชื่อ Save open script to OpenMV Cam เป็น Save open script to OpenMV Cam (as main.py) เพื่อชี้แจงว่าเขียน main.py (a49f54305).

  • เปลี่ยนชื่อ Run Bootloader เป็น Run Bootloader (Load Firmware) เพื่อชี้แจงวัตถุประสงค์ (ad1aa98f0).

  • เมนูตัวอย่างตอนนี้จัดเรียงตามคำนำหน้าตัวเลขของโฟลเดอร์/ไฟล์ และตัวเลข NN- นำหน้าถูกตัดออกจากชื่อที่แสดง (ad1aa98f0).

  • เทอร์มินัลเอาต์พุตและ serial ตอนนี้แสดง tab เป็นช่องว่างโดยใช้ความกว้าง tab ของ serial terminal ที่กำหนดค่าได้จากการตั้งค่าตัวแก้ไขข้อความ แทนที่ความกว้างคงที่ 8 (98686ac46).

  • การตรวจจับไดรฟ์ Linux ตอนนี้ยังรับ filesystem ที่ mount ด้วย fuseblk (เช่น volume exFAT/NTFS) เมื่อเชื่อมโยงไดรฟ์กล้อง (c0dbdd9e5).

  • อัปเดตชุดเอกสาร HTML ของ MicroPython ที่รวมมา (reference ไลบรารี, บทช่วยสอน esp8266/esp32, หน้าและรูปภาพที่สร้างขึ้น) ที่แสดงในความช่วยเหลือของ IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).

การแก้ไขข้อบกพร่อง

  • แก้ไข numeric overflow ในสถิติฮิสโตแกรม (ค่าเฉลี่ย, ควอร์ไทล์, มัธยฐาน, ส่วนเบี่ยงเบนมาตรฐาน) โดยขยาย accumulator จาก int เป็น 64 บิต ป้องกันสถิติที่ผิดพลาดสำหรับภาพขนาดใหญ่ (55d7cfe70).

  • ปรับปรุงการ disconnect/eject บน Linux ใหม่: การ flush syncfs/closedir ที่ไม่น่าเชื่อถือถูกลบออก และตอนนี้ไดรฟ์ถูก unmount ด้วยคำสั่ง umount ธรรมดา โดยไม่มีกล่องโต้ตอบความคืบหน้า (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • ตอนนี้ไดรฟ์ USB ของบอร์ดจะถูกเชื่อมโยงเฉพาะเมื่อเฟิร์มแวร์ใหม่พอหรือมีไฟล์ marker .openmv_disk อยู่ ป้องกัน IDE จากการจับไดรฟ์แบบถอดได้ที่ผิด (e464eaed4).

  • แก้ไข logic การเชื่อมต่อใหม่ให้การเรียกใช้งาน bootloader/erase ขณะเชื่อมต่ออยู่จะ disconnect ก่อนแล้วจึง retry อย่างสะอาด หลีกเลี่ยงสถานะที่ติดค้าง (d953df62f).

  • เขียน comment/whitespace stripper ที่ใช้เมื่อส่งสคริปต์ไปยัง cam ใหม่เป็น state machine ที่รับรู้ string เพื่อให้อักขระ # ภายใน string ไม่ถูกเข้าใจผิดว่าเป็น comment และจัดการ whitespace ท้ายและ docstring ได้ (24dff1b2f).

  • แก้ไขการจัดการ translation string สำหรับข้อความกล่องโต้ตอบ connection/terminal หลายรายการ เพื่อให้คำสั่ง shell ที่ฝังอยู่ (sudo adduser, ขั้นตอนการติดตั้ง pydfu) ไม่เป็นส่วนหนึ่งของข้อความที่แปลได้และแสดงผลอย่างถูกต้อง (b5705a57e).

การรองรับแพลตฟอร์มและเครื่องมือ

  • ฐาน Qt Creator: 4.0.2.

  • เปลี่ยนชื่อบอร์ด/เฟิร์มแวร์ OpenMV Cam H7 Plus จาก OPENMV4R เป็น OPENMV4P (OMV4P_H7_32768_SDRAM) และรวมเฟิร์มแวร์ภายใต้ชื่อใหม่ (c0dbdd9e5).

  • แก้ไขชื่อแสดงผลของบอร์ด H7 Plus ให้ใช้ underscore แทนช่องว่าง (OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • เฟิร์มแวร์ที่รวมมาถูกอัปเดตตลอดการเปิดตัว โดยสิ้นสุดที่เวอร์ชัน 3.5.2 สำหรับ OPENMV2/3/4/4P (การเพิ่มขั้นสุดท้ายใน 15c07498c; การเพิ่มขั้นสะสมก่อนหน้าใน 42ba8f5c4 เป็น 3.4.2, a99c2e3e1 เป็น 3.4.3, e26b90d79 เป็น 3.5.0 และ 97b0f645a เป็น 3.5.1).

  • เวอร์ชันเฟิร์มแวร์ที่รวมมา: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.

  • เวอร์ชัน OpenMV IDE เพิ่มจาก 2.2.1 เป็น 2.4.0.

การเปลี่ยนแปลงที่ทำให้ไม่สามารถใช้งานร่วมกันได้

โปรโตคอลการอ่าน attribute USB debug ถูกเปลี่ยนจากคำสั่ง ATTR_READ (0x8A) 16 บิตเก่าเป็นคำสั่ง ATTR_READ_2 (0xCA) 32 บิตใหม่ และ payload ของ attribute, value และ enable ตอนนี้ส่งเป็น long 32 บิต IDE ยังสอบถาม sensor ID ของกล้องเมื่อเชื่อมต่อด้วย การดำเนินการนี้ต้องการเฟิร์มแวร์ที่ implement โปรโตคอลใหม่ เฟิร์มแวร์ 1.2.15 / 1.4.11 ที่รวมมาให้มีไว้แล้ว ดังนั้นกล้องรุ่นเก่าจะต้องแฟลชเป็นเฟิร์มแวร์ใหม่เพื่อเชื่อมต่อ