อัปโหลดเครื่องมือสำหรับป้ายชื่อ LED พร้อมอินเทอร์เฟซ USB-HID
เพิ่มตัวอักษรภาษาฝรั่งเศสแบบเน้นเสียง
ประเภทที่สนับสนุนโดยโครงการนี้มีอาร์เรย์ของ
ไฟ LED 44 x 11 หรือ
ไฟ LED ขนาด 48 x 12 ดวง
ผู้ผลิตน่าจะเป็นhttps://lesun-led.en.alibaba.com/
ในการกำหนดค่าทั้งสอง ป้ายจะระบุตัวเองบน USB เป็น
idVendor=0416, idProduct=5020 Mfr=1, Product=2, SerialNumber=0 LSicroelectronics LS32 Custm HID
ป้าย LED มีหลายรุ่นในท้องตลาด อันนี้ใช้อินเทอร์เฟซ USB-HID ในขณะที่บางตัวใช้ USB-Serial (ดูข้อมูลอ้างอิงด้านล่าง)
ต่อไปนี้จะติดตั้งกฎ udev ที่อนุญาตให้ทุกคนเข้าถึงป้ายสถานะแบบอ่าน/เขียนผ่าน USB
sudo cp 99-led-badge-44x11.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && sudo udevadm trigger
sudo apt install python3-usb python3-pil
การใช้ venv จะอนุญาตให้ใช้ pip เพื่อติดตั้งการพึ่งพาโดยไม่มีอันตรายที่โมดูลที่ติดตั้งจะรบกวนการทำงานของระบบที่ติดตั้ง ในบางระบบ (โดยเฉพาะระบบที่ติดตั้ง Python 2 และ 3) คุณต้องระบุที่อยู่ Python 3 อย่างชัดเจนโดยใช้คำสั่ง python3
/ pip3
แทน python
/ pip
sudo apt install python3-venv python -m venv ledtag source ledtag/bin/activate pip install pyhidapi pyusb pillow # this should now work: # python led-badge-11x44.py -m 6 -s 8 "Hello" "World!"
หากมีการติดตั้งกฎ udev คุณควรจะสามารถเข้าถึงตราสัญลักษณ์ได้โดยไม่ต้องมีสิทธิ์ sudo / root
หากต้องการใช้ venv อีกครั้งในภายหลัง:
source ledtag/bin/activate python led-badge-11x44.py …
sudo dnf install hidapi python3-hidapi python3-pillow python3-pyusb
สำหรับการแจกแจงบางอย่าง มีความคลาดเคลื่อนตรงที่ pyhidapi ค้นหา lib และตำแหน่งที่แพ็คเกจ hidapi วางไว้ วิธีแก้ไขง่ายๆ คือการเชื่อมโยงห้องสมุดไปยังสถานที่ที่ต้องการ เช่น
ln -s /usr/lib/libhidapi-hidraw.so.0 /usr/local/lib/
ในบางระบบ (โดยเฉพาะระบบที่ติดตั้ง Python 2 และ 3) คุณต้องระบุที่อยู่ Python 3 อย่างชัดเจนโดยใช้คำสั่ง pip3
แทน pip
sudo easy_install pip pip install pyhidapi pip install pillow ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null brew install hidapi
สำหรับ Windows เราจำเป็นต้องตั้งค่า libusb API สำหรับอุปกรณ์ป้าย LED วิธีที่อธิบายไว้ที่นี่ ใช้ libusb-win32 ในระดับที่ค่อนข้างต่ำและเป็นเวอร์ชันที่ค่อนข้างเก่า:
โปรดใช้เวอร์ชัน 1.2.6.0 ของ 'libusb-win32` ยังคงมีอยู่ใน repo โครงการเก่าบน SourceForge
แล้ว
แยกไฟล์ zip ที่ดาวน์โหลดมาและไปที่ไดเร็กทอรี libusb-win32-bin-1.2.6.0bin
คลิกขวาที่ inf-wizard.exe
และ Run as Administrator
Next
-> เลือก 0x0416 0x5020 LS32 Custm HID
(หรือคล้ายกันที่มี ID เดียวกัน)
Next
-> Next
-> บันทึกเป็นกล่องโต้ตอบ LS32_Sustm_HID.inf
-> Save
(เพื่อดำเนินการต่อ เราไม่ต้องการไฟล์นั้น)
Install Now...
-> ติดตั้งไดรเวอร์เสร็จสมบูรณ์ -> OK
มีวิธีอื่น ๆ - ที่แนะนำในขณะเดียวกัน แต่ยังไม่ได้ทดสอบที่นี่ - วิธีติดตั้งและตั้งค่า libusb-win32
เวอร์ชันใหม่กว่า : ใช้ Zadig (มีให้บริการจาก repo libusb-win32 เก่าบน GitHub repo ของรุ่นที่ใหม่กว่า) หรือ libusbK
แน่นอนว่าจำเป็นต้องมี Python:
ดาวน์โหลด python ล่าสุดจาก python.org หรือเวอร์ชันเฉพาะจากที่นี่
[x]
ติดตั้ง Launcher สำหรับผู้ใช้ทั้งหมด
[x]
เพิ่ม Python XY ไปยัง PATH
ทำเครื่องหมายตัวเลือกต่อไปนี้
คลิกข้อความ Install Now ...
คุณสามารถเลือกคลิกที่ข้อความ 'ปิดใช้งานการจำกัดความยาวเส้นทาง' นี่เป็นสิ่งที่ดีที่จะทำเสมอ
ติดตั้งแพ็คเกจ Python ที่จำเป็น ในบางระบบ (โดยเฉพาะระบบที่ติดตั้ง Python 2 และ 3) คุณต้องระบุที่อยู่ Python 3 อย่างชัดเจนโดยใช้คำสั่ง pip3
แทน pip
เรียกใช้ cmd.exe ในฐานะผู้ดูแลระบบ ป้อน:
pip install pyusb pip install pillow
หากต้องการเรียกใช้ตัวอย่างเหล่านี้บน Linux คุณอาจต้องเติม sudo
ไว้ข้างหน้าเพื่อเข้าถึงอุปกรณ์ USB หรือติดตั้งกฎ udev ตามที่ระบุไว้ข้างต้น บน Windows บางทีคุณอาจต้องเรียกใช้ cmd.exe
โดยที่คุณป้อนคำสั่งด้วย Run as administrator
ซึ่งคล้ายกับ sudo
บน linux
ในบางระบบ (โดยเฉพาะระบบที่ติดตั้ง Python 2 และ 3) คุณต้องระบุที่อยู่ Python 3 อย่างชัดเจนโดยใช้ python3
แทน python
เรียกใช้ python -V
เพื่อดูว่าเวอร์ชันของ python ใดได้รับการกำหนดค่าเป็นค่าเริ่มต้น
python ./led-badge-11x44.py "Hello World!"
โหลดข้อความ 'Hello World!' เป็นข้อความแรก และเลื่อนจากขวาไปซ้าย (โหมดเลื่อนเริ่มต้น = 0) และความเร็ว 4 (ค่าเริ่มต้น) หลังจากอัปโหลด อุปกรณ์จะแสดงข้อความแรกหนึ่งครั้งและกลับสู่หน้าจอการชาร์จหากยังคงเชื่อมต่อกับ USB ดึงปลั๊กหรือกดปุ่มเล็กๆ ข้างขั้วต่อ USB
python ./led-badge-11x44.py -m 6 -s 8 "Hello" "World!"
โหลดข้อความ 'สวัสดี' เป็นข้อความหนึ่งและ 'โลก!' เป็นข้อความที่สอง เปรียบเทียบความแตกต่างในการอ้างอิงกับตัวอย่างก่อนหน้า สามารถอัพโหลดข้อความได้สูงสุด 8 ข้อความ ตัวอย่างนี้ใช้โหมด 6 ซึ่งจะวางคำที่มีภาพเคลื่อนไหวเล็กๆ น้อยๆ ที่สวยงามในแนวตั้งลงในพื้นที่แสดงผล ความเร็วถูกตั้งไว้ที่ระดับสูงสุดที่นี่เพื่อความราบรื่น
ตามค่าเริ่มต้น คุณจะเห็นเพียง "สวัสดี" เท่านั้น หากต้องการดูข้อความทั้งหมด ให้กดปุ่มเล็กๆ ข้างขั้วต่อ USB หลายๆ ครั้ง จนกว่าคุณจะเห็น "M1-8" สั้นๆ ตอนนี้จอแสดงผลจะวนซ้ำข้อความที่อัพโหลดทั้งหมด
python ./led-badge-11x44.py -m 5 :gfx/fablabnbg_logo_44x11.png:
โหลดภาพนิ่งแบบเต็มหน้าจอ หลีกเลี่ยงช่องว่างระหว่างเครื่องหมายทวิภาคและชื่อ หากคุณได้รับข้อความ ImportError: cannot import name '_imaging'
ให้ลองอัปเดตแพ็คเกจที่เกี่ยวข้อง: sudo pip install -U pillow
python ./led-badge-11x44.py "I:HEART2:my:gfx/fablab_logo_16x11.png:fablab:1:"
ใช้หนึ่งบิวด์อินและหนึ่งอิมเมจที่โหลด หัวใจมีอยู่ภายใน และโลโก้ fablab ถูกโหลดจากไฟล์ โลโก้ fablab ถูกใช้สองครั้ง ครั้งหนึ่งก่อนคำว่า 'fablab' และอีกครั้งข้างหลังผ่านการอ้างอิง ':1:' (ซึ่งอ้างอิงถึงภาพที่โหลดครั้งแรก)
python ./led-badge-11x44.py -s7 -m0,1 :bicycle: :bicycle_r:
แสดงจักรยานที่กำลังข้ามจอแสดงผลแบบซ้ายไปขวาและขวาไปซ้าย (เป็นข้อความที่สอง) หากคุณเลือกโหมด 'M1-8' จักรยานยนต์จะวิ่งกลับไปกลับมาอย่างถาวรบนหน้าจอ คุณสามารถเพิ่มข้อความสั้นลงในข้อความใดข้อความหนึ่งหรือทั้งสองข้อความ เพื่อให้ดูเหมือนว่าจักรยานกำลังดึงข้อความไปรอบๆ
python ./led-badge-11-x44.py -b0,1 -s1 -m5 " :heart2: :HEART2:" " :HEART2:"
แสดงภาพเคลื่อนไหวง่ายๆ ของหัวใจที่เต้นช้าๆ ในข้อความแรก และหัวใจที่เต้นช้าๆ ในข้อความที่สอง
./led-badge-11x44.py -B 50 -m 0 -s 8 "Bonjour à toutes et à tous" "Bienvenu(e)s en Master 2 EEA ISHM" "Ingénierie des systèmes Humains Machines" "Bonne réussite à votre promotion 2023-2024"
python ./led-badge-11x44.py --list-names
พิมพ์รายการชื่อไอคอนบิวท์อิน ได้แก่ :happy: :happy2: ❤️ :HEART: :heart2: :HEART2: :fablab: :bicycle: : bicycle_r: :owncloud: ::
python ./led-badge-11x44.py --help
แสดงรายการวิธีการเขียนทั้งหมด ไม่เขียนอะไรลงในอุปกรณ์
python ./led-badge-11x44.py -M list "dummy message"
แสดงรายการอุปกรณ์ทั้งหมดที่มีด้วยวิธีเขียน 'hidapi' ไม่เขียนอะไรลงในอุปกรณ์
python ./led-badge-11x44.py -M hidapi -D list "dummy message"
ตั้งโปรแกรมอุปกรณ์เฉพาะด้วยวิธีการเขียนเฉพาะ
python ./led-badge-11x44.py -M hidapi -D "3-1:1.0" "Hello World!"
พิมพ์ความช่วยเหลือแบบย่อ:
python ./led-badge-11x44.py -h
การใช้งาน: lednamebadge.py [-h] [-t TYPE] [-H HID] [-M วิธี] [-D DEVICE_ID] [-s ความเร็ว] [-B ความสว่าง] [-m โหมด] [-b กะพริบ] [-a มด] [-l] ข้อความ [ข้อความ ...] อัปโหลดข้อความหรือกราฟิกไปยังป้ายไฟ LED ขนาด 11x44 ผ่าน USB HID เวอร์ชัน 0.14 จาก https://github.com/jnweiger/led-badge-ls32 -- ดูตัวอย่างเพิ่มเติมและการอัปเดตได้ที่นี่ ข้อโต้แย้งเกี่ยวกับตำแหน่ง: ข้อความ มากถึง 8 ข้อความพร้อมไอคอนในตัวหรือ โหลดรูปภาพภายในโคลอน (:) -- ดู -l สำหรับรายการ บิลด์อิน ตัวเลือก: -h, --help แสดงข้อความช่วยเหลือนี้และออก -t TYPE, --type TYPE ประเภทของจอแสดงผล: ค่าที่รองรับคือ 12x48 หรือ (ค่าเริ่มต้น) 11x44 เปลี่ยนชื่อโปรแกรมเป็น led- badge-12x48 เพื่อเปลี่ยนค่าเริ่มต้น -H HID, --hid HID เลิกใช้แล้ว โปรดใช้ความเข้ากันได้แบบย้อนหลังเท่านั้น ใช้ -M! ตั้งค่าเป็น 1 เพื่อให้แน่ใจว่าเชื่อมต่อผ่าน HID API โปรแกรมจะไม่เป็นทางเลือกสำรองไปยังไลบรารี usb.core -M วิธี, --วิธีวิธี บังคับให้ใช้วิธีการเขียนที่กำหนด ใช้หนึ่งใน 'อัตโนมัติ' 'รายการ' หรือรายการใดก็ตามที่กำลังพิมพ์ -D DEVICE_ID, --อุปกรณ์-id DEVICE_ID บังคับให้ใช้รหัสอุปกรณ์ที่กำหนด หากไม่ชัดเจน ใช้ หนึ่งใน 'อัตโนมัติ', 'รายการ' หรือรายการใดก็ตามที่กำลังพิมพ์ -s SPEED, --ความเร็ว SPEED ความเร็วการเลื่อน (ช่วง 1..8) คั่นด้วยเครื่องหมายจุลภาคสูงสุด 8 รายการ ค่านิยม -B ความสว่าง --ความสว่าง ความสว่าง ความสว่างของจอแสดงผลเป็นเปอร์เซ็นต์: 25, 50, 75 หรือ 100. -m MODE, --mode MODE ค่าโหมดสูงสุด 8 โหมด: เลื่อนซ้าย (0) - ขวา (1) - ขึ้น (2) -ลง(3); ยังคงเป็นศูนย์กลาง(4); แอนิเมชั่น(5); หยด- ลง(6); ผ้าม่าน(7); เลเซอร์(8); ดู '--mode-help' สำหรับ รายละเอียดเพิ่มเติม -b กะพริบตา, --กะพริบตา กะพริบตา 1: กะพริบ 0: ปกติ คั่นด้วยเครื่องหมายจุลภาคสูงสุด 8 รายการ ค่านิยม -a ANTS, --ants ANTS 1: เส้นขอบแบบเคลื่อนไหว, 0: ปกติ คั่นด้วยเครื่องหมายจุลภาคสูงสุด 8 รายการ ค่านิยม -l, --list-names รายการไอคอนที่มีชื่อที่จะฝังอยู่ในข้อความและออก ตัวอย่างการรวมรูปภาพและข้อความ: sudo lednamebadge.py "I:HEART2:คุณ"
มีตัวเลือกบางตัวที่กำหนดประเภทเริ่มต้น:
ใช้ lednamebadge.py
โดยตรง: ประเภทเริ่มต้นคือ 11x44
เปลี่ยนชื่อ lednamebadge.py
เป็น 12
(เช่น badge12.py
) และใช้สิ่งนั้น: ประเภทเริ่มต้นคือ 12x48
ใช้ led-badge-11x44.py
: ประเภทเริ่มต้นคือ 11x44
ใช้ led-badge-12x48.py
: ประเภทเริ่มต้นคือ 12x48
สำหรับตัวเลือกทั้งหมดเหล่านี้ คุณสามารถแทนที่ประเภทเริ่มต้นด้วยตัวเลือกบรรทัดคำสั่ง -t
มีสองตัวเลือกในการควบคุมอุปกรณ์ที่ถูกตั้งโปรแกรมด้วยวิธีใด ในขณะนี้ มีวิธีเขียนอยู่ 2 วิธี วิธีหนึ่งใช้แพ็คเกจ python pyusb ( libusb
) อีกวิธีหนึ่งใช้ pyhidapi ( hidapi
)
ขึ้นอยู่กับสภาพแวดล้อมการดำเนินการของคุณคุณสามารถใช้ทั้งสองวิธีได้ แต่บางครั้งวิธีใดวิธีหนึ่งอาจไม่ทำงานตามที่คาดไว้ จากนั้นคุณสามารถเลือกวิธีการที่จะใช้อย่างชัดเจนด้วยตัวเลือก -M
ด้วย -M list
คุณสามารถพิมพ์รายการวิธีการเขียนที่มีอยู่ได้ หากคุณเชื่อมต่ออุปกรณ์หลายเครื่อง คุณสามารถแสดงรายการ ID ด้วย -D list
หรือมอบ ID อุปกรณ์รายการใดรายการหนึ่งเพื่อตั้งโปรแกรมอุปกรณ์เฉพาะนั้น ค่าเริ่มต้นสำหรับทั้งสองตัวเลือกคือ auto
ซึ่งโปรแกรมเพียงอุปกรณ์แรกที่พบโดยควรใช้วิธีเขียน hidapi
ID สำหรับอุปกรณ์เดียวกันจะแตกต่างกันไปขึ้นอยู่กับวิธีการเขียน นอกจากนี้ยังสามารถเปลี่ยนระหว่างการเริ่มต้นคอมพิวเตอร์หรือเชื่อมต่อใหม่ได้
ดูตัวอย่างโฟลเดอร์ gfx/starfield ภาพเคลื่อนไหวของ N เฟรมมีให้เป็นรูปภาพที่มีความกว้าง N*48 พิกเซล สำหรับอุปกรณ์ที่มีความกว้าง 48 และ 44 พิกเซล
คุณสามารถใช้ lednamebadge.py เป็นโมดูลในโค้ดการสร้างเนื้อหาของคุณเองสำหรับการเขียนฉากที่คุณสร้างขึ้นไปยังอุปกรณ์
สร้างส่วนหัว
เพิ่มเนื้อหาของคุณเอง
เขียนไปยังอุปกรณ์
header()
วิธีการรับพารามิเตอร์จำนวนหนึ่ง:
มีความยาวสูงสุด 8 ชุดเป็นตัวเลขจำนวนหนึ่ง
แต่ละความยาวคือจำนวนไบต์-คอลัมน์สำหรับข้อมูลบิตแมปที่สอดคล้องกัน นั่นคือจำนวนไบต์ของข้อมูลบิตแมปที่สอดคล้องกันหารด้วย 11 (สำหรับอุปกรณ์ 11x44) ตามลำดับ 12 (สำหรับอุปกรณ์ 12x48) โดยที่หนึ่งไบต์คือ 8 พิกเซลกว้าง
อาร์กิวเมนต์ที่เทียบเคียงได้กับอาร์กิวเมนต์บรรทัดคำสั่ง: ความเร็วสูงสุด 8 โหมด, โหมด, ธงกะพริบ, ธงมดแต่ละอันเป็นจำนวนทูเพิลของตัวเลข และความสว่าง (เป็นทางเลือก) เป็นตัวเลข
หรือคุณสามารถระบุการประทับเวลาเป็นวันที่และเวลาได้ มันถูกเขียนไปยังอุปกรณ์โดยเป็นส่วนหนึ่งของส่วนหัว แต่ไม่สามารถมองเห็นได้ที่จอแสดงผลของอุปกรณ์
เนื้อหาของคุณต้องเป็นอาร์เรย์ไบต์ที่มีข้อมูลบิตแมปสำหรับทุกฉาก แน่นอนว่ามันต้องพอดีกับความยาวที่กำหนด
ดูภาพต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น:
สำหรับอุปกรณ์ 12x48 จะต้องมี 12 ไบต์สำหรับแต่ละคอลัมน์ไบต์แทนที่จะเป็น 11 แน่นอน
ตัวอย่าง:
สมมติว่าคุณมี 2 ฉาก ฉากหนึ่งมีขนาด 11x32 พิกเซล และอีกฉากหนึ่งมีขนาด 11x60 พิกเซล ดังนั้นอันแรกมี 4 ไบต์ - คอลัมน์และ 44 ไบต์ส่วนที่สองจะต้องเสริมด้วย 4 บิตคอลัมน์ว่างในคอลัมน์ไบต์สุดท้ายเป็น 11x64 พิกเซลดังนั้นจึงมี 8 ไบต์ - คอลัมน์และ 88 ไบต์
เราชอบแสดงทั้งในโหมด 4 อันแรกมีความเร็ว 3 และอันที่สองมีความเร็ว 2 และอันที่สองจะแสดงด้วยมด และเราต้องการตั้งค่าความสว่างเริ่มต้นเป็น 50%
สิ่งนี้จะสำเร็จได้โดยการเรียกเหล่านี้:
จาก lednamebadge นำเข้า LedNameBadgebuf = array('B')buf.extend(LedNameBadge.header((4, 8), (3, 2), (4,), (0,), (0, 1), 50)) buf.extend(scene_one_bytes)buf.extend(scene_two_bytes)LedNameBadge.write(buf)
มีพารามิเตอร์อีกสองตัวในวิธี write
: วิธีการเขียนและรหัสอุปกรณ์ ทำงานเหมือนกับตัวเลือกบรรทัดคำสั่ง '-M' และ '-D' ทุกประการ ทั้งสองมีค่าเริ่มต้นเป็น auto
LedNameBadge.write(buf, 'libusb', '3:10:2')
แม้จะมี list
คุณก็จะได้รับรายการตัวเลือกที่มีให้พิมพ์ไปยัง stdout ซึ่งมีประโยชน์น้อยกว่าหากใช้เป็นโมดูล ดังนั้นจึงมี 2 วิธีในการดึงข้อมูลนี้เป็นวัตถุข้อมูลปกติ:
get_available_methods()
ซึ่งส่งคืนวิธีการเขียนที่นำไปใช้ทั้งหมดเป็น dict โดยมีชื่อวิธีการเป็นคีย์และบูลีนแต่ละรายการเป็นค่า บูลีนบ่งชี้ว่าวิธีการนี้ใช้งานได้โดยทั่วไปหรือไม่ (หมายถึงการนำเข้าที่เกี่ยวข้องสำเร็จ)
get_available_device_ids(method)
ซึ่งส่งคืนข้อมูลเกี่ยวกับอุปกรณ์ที่เชื่อมต่อ / พร้อมใช้งานทั้งหมด รวมถึงคำสั่งที่มีรหัสอุปกรณ์เป็นคีย์ และสตริงคำอธิบายแต่ละรายการเป็นค่า
>>> import lednamebadge >>> lednamebadge.LedNameBadge.get_available_methods() {'hidapi': True, 'libusb': True} >>> lednamebadge.LedNameBadge.get_available_methods('hidapi') {'3-6:1.0': 'LSicroelectronics - LS32 Custm HID (if=0)', '3-7.3:1.0': 'LSicroelectronics - LS32 Custm HID (if=0)', '3-1:1.0': 'wch.cn - CH583 (if=0)'} >>> lednamebadge.LedNameBadge.get_available_methods('libusb') {'3:20:1': 'LSicroelectronics - LS32 Custm HID (bus=3 dev=20 endpoint=1)', '3:21:1': 'LSicroelectronics - LS32 Custm HID (bus=3 dev=21 endpoint=1)', '3:18:2': 'wch.cn - CH583 (bus=3 dev=18 endpoint=2)'}
วิธีนี้ทำให้คุณสามารถเชื่อมต่ออุปกรณ์หลายเครื่องเข้ากับคอมพิวเตอร์เครื่องเดียว และตั้งโปรแกรมอุปกรณ์ทีละเครื่องโดยใช้การเรียกใช้ write
ที่แตกต่างกัน
หากคุณมีมากกว่าหนึ่งรายการที่มีสตริงคำอธิบายเหมือนกัน เป็นการยากที่จะแยกแยะว่าอุปกรณ์จริงใดเป็นของ id ใด โดยเฉพาะ หลังจากเชื่อมต่อใหม่หรือรีสตาร์ท รหัสอาจมีการเปลี่ยนแปลงหรือแลกเปลี่ยน หากคุณมีบัส USB ที่แตกต่างกัน ให้เชื่อมต่ออุปกรณ์เดียวเข้ากับบัส ดังนั้นคุณสามารถเลือกได้ตามหมายเลขรถโดยสาร หรือเก็บลำดับการเชื่อมต่อไว้ (ในขณะที่คอมพิวเตอร์กำลังทำงานอยู่) จากนั้นจึงตัดสินใจตามหมายเลขอุปกรณ์ได้ บางทีวิธี hidapi อาจน่าเชื่อถือกว่าเล็กน้อย คุณต้องทดลองสักหน่อย
คุณยังสามารถใช้การสร้างข้อความ/ไอคอน/กราฟิกของโมดูลนี้เพื่อรับบัฟเฟอร์ไบต์ที่สอดคล้องกัน
มันค่อนข้างง่ายและเหมือนกับการใช้บรรทัดคำสั่ง มีตัวเลือกเพิ่มเติมในการสร้างบิตแมปจากไฟล์รูปภาพเท่านั้นโดยตั้งชื่อไฟล์แทนข้อความ
จาก lednamebadge import SimpleTextAndIconscreator = SimpleTextAndIcons()scene_a_bitmap = creator.bitmap("Hello :HEART2: World!")scene_b_bitmap = creator.bitmap("As you :gfx/bicycle3.png: like...")scene_c_bitmap = creator.bitmap ("gfx/starfield/starfield_020.png")
บิตแมปผลลัพธ์เป็นสิ่งอันดับที่มีอาร์เรย์ไบต์และความยาวแต่ละรายการ ความยาวเหล่านี้สามารถใช้ใน header() ได้โดยตรง และสามารถต่ออาร์เรย์ไบต์เข้ากับส่วนหัวได้ ตัวอย่าง:
จาก lednamebadge import *creator = SimpleTextAndIcons()scene_x_bitmap = creator.bitmap("Hello :HEART2: World!")scene_y_bitmap = creator.bitmap("ตัวอย่างที่สมบูรณ์ข้างหน้า")your_own_stuff = create_own_bitmap_data()lengths = (scene_x_bitmap[1], scene_y_bitmap[1], your_own_stuff.len)buf = array('B')buf.extend(LedNameBadge.header(ความยาว, (3,), (0,), (0, 1, 0), (0, 0, 1), 100))buf.extend(scene_x_bitmap[0])buf.extend(scene_y_bitmap[0])buf.extend(your_own_stuff.bytes)LedNameBadge.write(buf)
คุณจะต้องใช้ PlantUML และจุด GraphViz เพื่อสร้างไดอะแกรมจากไฟล์ *.puml
เพียงเรียกใช้ plantuml "*.puml"
จากไดเร็กทอรี photos
เพื่อสร้างไดอะแกรมใหม่ทั้งหมด
รัน python run_tests.py
จากไดเร็กทอรี tests
https://github.com/Caerbannog/led-mini-board
http://zunkworks.com/projects/programmablelednamebadges/ (ออฟไลน์ตั้งแต่ปี 2019 ตั้งแต่วันที่ 07-2024 ยังคงมีอยู่ใน https://web.archive.org)
https://github.com/DirkReiners/LEDBadgeProgrammer
https://bitbucket.org/bartj/led/src
http://www.daveakerman.com/?p=1440
https://github.com/stoggi/ledbadge