pyb --- ฟังก์ชันที่เกี่ยวข้องกับบอร์ด¶
Warning
โมดูล pyb ถูกเลิกใช้งานแล้ว สำหรับโค้ดใหม่ให้ใช้โมดูล machine ที่รองรับหลายแพลตฟอร์มแทน -- โมดูลนั้นให้ฟังก์ชันการทำงานเหมือนกันบน OpenMV Cam ทุกรุ่นโดยไม่ขึ้นกับตระกูล MCU ในขณะที่ pyb มีเฉพาะบนบอร์ดที่ใช้ STM32 เท่านั้น pyb ยังคงรักษาไว้เพื่อความเข้ากันได้ย้อนหลังกับสคริปต์เก่า โดยจะไม่มีการเพิ่มฟีเจอร์ใหม่ และอาจถูกนำออกในรุ่นถัดไป
โมดูล pyb ประกอบด้วยฟังก์ชันเฉพาะสำหรับ STM32 ที่เกี่ยวข้องกับบอร์ด
ฟังก์ชันเบ็ดเตล็ด¶
- pyb.have_cdc() bool¶
คืนค่า True หาก USB เชื่อมต่ออยู่ในรูปแบบอุปกรณ์อนุกรม หรือ False ในกรณีอื่น
Note
ฟังก์ชันนี้ถูกเลิกใช้งานแล้ว ให้ใช้ pyb.USB_VCP().isconnected() แทน
- pyb.hid(data: Tuple[int, int, int, int]) None¶
รับ 4-tuple (หรือ list) และส่งไปยัง USB host (PC) เพื่อส่งสัญญาณเหตุการณ์การเคลื่อนไหวของเมาส์ HID
Note
ฟังก์ชันนี้ถูกเลิกใช้งานแล้ว ให้ใช้
pyb.USB_HID.send()แทน
- pyb.main(filename: str) None¶
กำหนดชื่อไฟล์ของสคริปต์หลักที่จะรันหลังจาก boot.py เสร็จสิ้น หากไม่ได้เรียกฟังก์ชันนี้ ไฟล์เริ่มต้น main.py จะถูกรัน
การเรียกฟังก์ชันนี้มีความหมายเฉพาะเมื่ออยู่ใน boot.py เท่านั้น
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Note
ฟังก์ชันนี้ถูกเลิกใช้งานแล้ว ให้ใช้
vfs.mount()/vfs.umount()และอุปกรณ์ block device ที่สืบทอดจากvfs.AbstractBlockDevแทนเมาต์ block device ภายใต้
mountpointโดยdeviceต้องใช้งาน legacy pyb block-device protocol (ซึ่งถูกเลิกใช้งานเช่นกัน -- ดูvfs.AbstractBlockDevสำหรับอินเทอร์เฟซสมัยใหม่):เมธอด
วัตถุประสงค์
readblocks(self, blocknum, buf)คัดลอกข้อมูลจำนวน
bufไบต์จากอุปกรณ์เริ่มต้นที่บล็อกblocknumโดยความยาวของbufเป็นทวีคูณของ 512writeblocks(self, blocknum, buf)(optional)เขียน
bufไปยังอุปกรณ์เริ่มต้นที่บล็อกblocknumหากละเว้น อุปกรณ์จะถูกเมาต์แบบอ่านอย่างเดียวcount(self)คืนค่าจำนวนบล็อกขนาด 512 ไบต์บนอุปกรณ์
sync(self)(optional)ล้างการเขียนที่ถูกแคชไว้
mountpointคือเส้นทางในรูทของระบบไฟล์เพื่อเมาต์อุปกรณ์ โดยต้องขึ้นต้นด้วย forward slashreadonlyบังคับเมาต์แบบอ่านอย่างเดียวmkfsสร้างระบบไฟล์ใหม่หากไม่มีอยู่
- pyb.repl_uart(uart: UART | None = None) UART | None¶
รับหรือกำหนดออบเจกต์ UART ที่ REPL จะถูกส่งซ้ำไปที่นั้น
- pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None¶
หากเรียกโดยไม่มีอาร์กิวเมนต์ จะคืนค่าโหมด USB ปัจจุบันในรูปแบบ string
หากเรียกพร้อม modestr จะพยายามกำหนดค่าโหมด USB โดยค่า modestr ที่รองรับมีดังนี้:
modestr
กำหนดค่า
Noneปิดใช้งาน USB
'VCP'VCP (Virtual COM Port) เท่านั้น
'MSC'MSC (USB mass storage class) เท่านั้น
'VCP+MSC'VCP และ MSC
'VCP+HID'VCP และ HID (human interface device)
'VCP+MSC+HID'VCP, MSC และ HID พร้อมกัน ไม่รองรับบน OpenMV Cam ทุกรุ่น
เพื่อความเข้ากันได้ย้อนหลัง
'CDC'ถูกตีความว่าหมายถึง'VCP'(และเช่นเดียวกันสำหรับ'CDC+MSC'และ'CDC+HID')พารามิเตอร์ port ควรเป็นจำนวนเต็ม (0, 1, ...) และใช้เลือกพอร์ต USB ที่จะใช้หากบอร์ดรองรับหลายพอร์ต ค่า -1 ใช้พอร์ตเริ่มต้นหรือพอร์ตที่เลือกโดยอัตโนมัติ
พารามิเตอร์ vid และ pid ช่วยให้คุณระบุ VID (vendor id) และ PID (product id) ค่า pid ที่เป็น -1 จะเลือก PID ตามค่าของ modestr
หากเปิดใช้งานโหมด MSC พารามิเตอร์ msc สามารถใช้ระบุรายการ SCSI LUN ที่จะเปิดเผยบนอินเทอร์เฟซ mass storage ตัวอย่างเช่น
msc=(pyb.Flash(), pyb.SDCard())หากเปิดใช้งานโหมด HID คุณยังสามารถระบุรายละเอียด HID โดยส่งพารามิเตอร์คำสำคัญ hid ซึ่งรับ tuple ในรูปแบบ (subclass, protocol, max packet length, polling interval, report descriptor) ตามค่าเริ่มต้นจะกำหนดค่าที่เหมาะสมสำหรับเมาส์ USB นอกจากนี้ยังมีค่าคงที่
pyb.hid_keyboardซึ่งเป็น tuple ที่เหมาะสมสำหรับคีย์บอร์ด USBพารามิเตอร์ high_speed เมื่อกำหนดเป็น
Trueจะเปิดใช้งานโหมด USB HS หากฮาร์ดแวร์รองรับ
ค่าคงที่¶
ค่าคงที่ทั้งสองด้านล่างนี้เป็น 5-tuple สำเร็จรูปในรูปแบบ
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
ที่เหมาะสำหรับส่งเป็นอาร์กิวเมนต์ hid ของ usb_mode() เพื่อให้ OpenMV Cam ปรากฏต่อ host เป็นอุปกรณ์ USB HID subclass = 1 หมายถึง "boot interface" และ protocol เลือกคลาสอุปกรณ์ boot (1 = keyboard, 2 = mouse) องค์ประกอบที่ห้าเป็นออบเจกต์ bytes ที่เก็บ HID report descriptor ที่ใช้เมื่อ host ทำการ enumerate อุปกรณ์
- pyb.hid_mouse: tuple¶
HID descriptor สำเร็จรูปสำหรับ boot mouse 3 ปุ่มพร้อมการเคลื่อนไหว X/Y แบบสัมพัทธ์ tuple คือ
(1, 2, 4, 8, <mouse report descriptor>): boot subclass, mouse protocol, input report 4 ไบต์ (button mask + X + Y + wheel), polling ทุก 8 ms report descriptor ที่ฝังตัวนี้คือสิ่งที่ใช้โดยpyb.USB_HID().send((buttons, dx, dy, wheel))
- pyb.hid_keyboard: tuple¶
HID descriptor สำเร็จรูปสำหรับ USB boot keyboard tuple คือ
(1, 1, 8, 8, <keyboard report descriptor>): boot subclass, keyboard protocol, input report 8 ไบต์ (modifier byte, หนึ่ง reserved byte, six concurrent key codes), polling ทุก 8 ms report descriptor ที่ฝังตัวตรงกับ layout มาตรฐาน HID boot-keyboard 8 ไบต์ ดังนั้น report ที่ส่งผ่านUSB_HID.send()ควรเป็นbytesในรูปแบบ(modifiers, 0, key1, key2, key3, key4, key5, key6)
คลาส¶
- คลาส ADC -- การแปลงค่าแอนะล็อกเป็นดิจิทัล
- คลาส ADCAll -- เข้าถึงช่อง ADC ทั้งหมด
- คลาส CAN -- บัสการสื่อสารเครือข่ายในพื้นที่ควบคุม
- คลาส DAC -- การแปลงสัญญาณดิจิทัลเป็นแอนะล็อก
- คลาส ExtInt -- กำหนดค่าพิน I/O เพื่ออินเทอร์รัปต์บนเหตุการณ์ภายนอก
- คลาส Flash -- เข้าถึงพื้นที่จัดเก็บแฟลชในตัว
- คลาส I2C -- โปรโตคอลอนุกรมแบบสองสาย
- คลาส LED -- LED บนบอร์ด
- class Pin -- การควบคุมพิน I/O
- class PinAF -- ฟังก์ชันสำรองของพิน
- class RTC -- นาฬิกาเวลาจริง
- class Servo -- ไดรเวอร์เซอร์โวงานอดิเรก 3 สาย
- class SPI -- โปรโตคอลอนุกรมที่ขับเคลื่อนโดยตัวควบคุม
- คลาส Timer -- ควบคุมตัวจับเวลาภายใน
- คลาส TimerChannel -- ตั้งค่าช่องสัญญาณสำหรับตัวจับเวลา
- คลาส UART -- บัสสื่อสารแบบอนุกรมดูเพล็กซ์
- คลาส USB_HID -- อุปกรณ์อินเทอร์เฟซของมนุษย์ USB (HID)
- คลาส USB_VCP -- พอร์ตสื่อสารเสมือน USB