อังกฤษ | 中文
โปรเจ็กต์นี้เป็นโมดูลไร้สายที่ใช้ชิป ESP32-pico-d4 จาก Espressif Systems พร้อมด้วยอินเทอร์เฟซโปรโตคอลการสื่อสารหลายแบบ: UART, SPI ความตั้งใจดั้งเดิมของการออกแบบคือการอำนวยความสะดวกในการดีบักอัลกอริธึมกล้องสำหรับการแข่งขันรถยนต์อัจฉริยะ และเพื่อลดความยากในการดีบั๊กด้วยการร่วมมือกับคอมพิวเตอร์ส่วนบน
ฮาร์ดแวร์ esp32 รองรับ UART 5Mbps และ SPI Slave 10Mbps
หนึ่งในคุณสมบัติของโมดูลนี้คือสามารถเข้ากันได้กับอินเทอร์เฟซพอร์ตอนุกรมไร้สาย ZhuFei มีฟังก์ชั่นการควบคุมการไหลของฮาร์ดแวร์และสามารถใช้ไดรเวอร์พอร์ตอนุกรมไร้สาย ZhuFei โดยตรงเพื่อให้บรรลุการสื่อสารทางเดียว ขจัดความจำเป็นสำหรับเพื่อนรถในการทดสอบ โมดูลนี้ ความจำเป็นในการทำบอร์ดใหม่ ขณะนี้รองรับการส่งข้อมูลทางเดียวไปยังคอมพิวเตอร์ส่วนบนเท่านั้น
ซอฟต์แวร์และฮาร์ดแวร์ของโครงการนี้ค่อนข้างหยาบ ยินดีต้อนรับทุกคนในการสื่อสารและให้คำแนะนำเพื่อการปรับปรุง QQ ของฉัน: 1626632460
โอเพ่นซอร์สสมาร์ทรถการส่งภาพคอมพิวเตอร์ส่วนบนสามารถใช้ Zhiyong คอมพิวเตอร์ส่วนบน โมดูลนี้ส่วนใหญ่จะใช้กับคอมพิวเตอร์ส่วนบนนี้ คู่มือผู้ใช้และกิจวัตรไมโครคอมพิวเตอร์ชิปตัวเดียวอยู่ในคลังสินค้าคอมพิวเตอร์ส่วนบนนี้ ลิงก์: https://gitee.com /zhou-wenqi/ipc-for-car
ลิงค์วิดีโอ Bilibili: https://www.bilibili.com/video/BV1oZ4y1m7y2
การจำลอง PCB มีดังนี้
หมวดหมู่ | UART+SPI |
---|---|
การจำลอง 3 มิติ | |
ผลการเชื่อม | |
ลิงก์โอเพ่นซอร์สของ JLC | https://oshwhub.com/Wander_er/891fe1d235694ef7afe684f5a2f05b73 |
ชื่อ | การทำงาน |
---|---|
หมอ | เอกสารชิป |
คนขับ | ไฟล์ไดร์เวอร์ |
เฟิร์มแวร์ | เฟิร์มแวร์ |
ฮาร์ดแวร์ | ฮาร์ดแวร์ |
ภาพ | รูปภาพ |
ซอฟต์แวร์ | สคริปต์หลามคอมพิวเตอร์ส่วนบนของการส่งภาพอย่างง่าย |
สองโหมดการสื่อสาร
อัตรารับส่งข้อมูล UART สูงสุด 5Mbps รับสูงสุด 20,000 ไบต์ต่อครั้ง
ใช้การโพลแบบอนุกรมเพื่อแยกข้อมูลที่ได้รับจากบัฟเฟอร์ มีพารามิเตอร์สองตัว ได้แก่ ขนาดบัฟเฟอร์การรับและเวลารอสูงสุด เมื่อจำนวนไบต์ที่ได้รับถึงขนาดบัฟเฟอร์ จะถือว่าการรับเสร็จสิ้นทันที เมื่อการส่งเสร็จสิ้นแต่ไม่ถึงขนาดบัฟเฟอร์การรับ จากนั้นให้รอสักครู่ก่อนจะถือว่าการถ่ายโอนเสร็จสิ้น เวลารอนี้ได้รับการแก้ไขที่ 20ms
ดังนั้นจึงถือได้ว่ามีสองโหมด สลับโดยการแก้ไขพารามิเตอร์ length
ในฟังก์ชัน uart_read_bytes
() ในเฟิร์มแวร์
โหมดโปร่งใส : หมายถึงไม่มีการจำกัดจำนวนไบต์คงที่สำหรับข้อมูลที่ส่ง การสื่อสารแต่ละครั้งสามารถส่งข้อมูลได้หลากหลายขนาดและมีความยืดหยุ่นมากขึ้น
ขอแนะนำว่าการใช้โหมดโปร่งใสควรมีช่วงเวลามากกว่า serial port transmission time
+ 20ms
+ udp transmission time (rate calculated at 30Mbps)
เมื่อพารามิเตอร์ length
เป็นขนาดบัฟเฟอร์ RX_BUF_SIZE -1
จะเป็นโหมดโปร่งใส นั่นคือสมมติว่าไม่มีข้อมูลใดจะถึงความยาวนี้
โหมดไบต์คงที่ : หมายถึงการจำกัดไบต์คงที่สำหรับข้อมูลที่ส่ง ความเร็วเร็วกว่าโหมดโปร่งใส แต่สามารถส่งข้อมูลขนาดคงที่เท่านั้น
ขอแนะนำว่าการใช้โหมดไบต์คงที่ควรมีช่วงเวลามากกว่า serial port transmission time
+ udp transmission time (rate calculated at 30Mbps)
เมื่อพารามิเตอร์ length
เท่ากับจำนวนไบต์ของข้อมูลที่ส่งคงที่ จะเป็นไบต์คงที่ ตัวอย่างเช่น เมื่อส่งภาพระดับสีเทาขนาด 60 x 90 เมื่อมีขนาด 5400
แน่นอนว่าการส่งข้อมูลที่ต่ำกว่าความยาวนี้ถือได้ว่าเป็นโหมดโปร่งใสเช่นกัน
อัตรารับส่งข้อมูล SPI สูงสุด 10Mbps รับสูงสุด 25,000 ไบต์ต่อครั้ง
SPI transmission time
+ udp transmission time (calculated at 30Mbps)
เฟิร์มแวร์รวมโหมดการสื่อสารสองโหมดของ UART และ SPI ซึ่งสามารถกำหนดค่าได้โดยโปรโตคอลการสื่อสารแบบอนุกรมและเขียนลงใน Flash โดยไม่สูญเสียพลังงาน ทำให้ไม่จำเป็นต้องแก้ไขเฟิร์มแวร์ซ้ำ ๆ
จะเชื่อมต่อกับคอมพิวเตอร์ตัวล่างได้อย่างไร?
ยูอาร์ที
ลิงค์รูปภาพ | คอมพิวเตอร์ส่วนล่าง |
---|---|
RXD | เท็กซัส |
เท็กซัส | RXD |
RTS (มัลติเพล็กซ์ MOSI) | CTS (หากไม่มีก็ไม่สำคัญมากนัก แต่คุณต้องปิดใช้งานการตรวจจับการควบคุมการไหลในฟังก์ชันการส่งข้อมูลแบบอนุกรมของคอมพิวเตอร์ส่วนล่าง) |
เอสพีไอ
ลิงค์รูปภาพ | คอมพิวเตอร์ส่วนล่าง |
---|---|
ซีแอลเค | ซีแอลเค |
มิโซะ | มิโซะ |
โมซี่ | โมซี่ |
ซีเอส | ซีเอส |
แหล่งจ่ายไฟ 5V ต้องต่อสายดิน
จะคำนวณเวลาที่ใช้ในการส่งภาพที่สมบูรณ์ได้อย่างไร?
ใช้การส่ง UART 3Mbps ของภาพขนาดสีเทาเป็นตัวอย่าง ขั้นแรกให้คำนวณจำนวนบิตในภาพ: 60 x 90 x 8 = 43200 บิต จากนั้นหารจำนวนบิตด้วยอัตรารับส่งข้อมูล: 43200/3000000 = 0.0144 s = 14.4 ms
จะเข้าและใช้โหมดการกำหนดค่าได้อย่างไร?
ใช้ USB to TTL serial Assistant บนคอมพิวเตอร์ของคุณเพื่อเชื่อมต่อ Pic-o Link
, พิน MOSI
และ CS
ลัดวงจร จากนั้นจึงรีเซ็ต ไฟแสดงสถานะ RGB จะแสดงเป็นสีเหลือง แสดงว่าคุณได้เข้าสู่โหมดการกำหนดค่าแล้ว ในขณะนี้ คุณสามารถกำหนดค่าพารามิเตอร์ Pic-o Link ผ่านทางพอร์ตอนุกรมได้ อัตรารับส่งข้อมูลคือ 115200 และโปรโตคอลจะแสดงในตาราง
- หมวดหมู่ | หมายเหตุ | ส่วนหัวของเฟรม | ความยาว | - - - - - การเลือกโปรโตคอลการสื่อสาร | 8 บิตจำนวนเต็มที่ไม่ได้ลงนาม, 0 : UART, 1 : SPI | 0x41 (ก) | 1 ไบต์ | - อัตรารับส่งข้อมูลโหมดการสื่อสาร UART | จำนวนเต็ม 32 บิตที่ไม่ได้ลงนาม <=5000000 | 0x42 (บี) | 4 ไบต์ | - โหมดการสื่อสาร UART รับหมายเลขไบต์บัฟเฟอร์ | 16 บิตจำนวนเต็มที่ไม่ได้ลงนาม <=20000 | 0x43 (ค) | 2ไบต์ | - บัญชี WiFi | สตริง สูงสุด 32 ไบต์ | 0x44 (ง) | 32ไบต์ | - รหัสผ่าน WiFi | สตริง สูงสุด 64 ไบต์ | 0x45 (อี) | 64ไบต์ | - ที่อยู่ IP ของเซิร์ฟเวอร์ UDP |สตริง สูงสุด 16 ไบต์| 0x46 (F) | 16 ไบต์ | - พอร์ตเซิร์ฟเวอร์ UDP | 16 บิตจำนวนเต็มที่ไม่ได้ลงนาม <=65535| 0x47 (ก) | 2ไบต์ | - อ่านพารามิเตอร์โมดูล |คำสั่งเดียว | 0x48 (H) |ไม่มี | |เขียนพารามิเตอร์หน่วยความจำโมดูลลงใน Flash|คำสั่งเดียว | 0x49 (I) |ไม่มี |
ฉันควรกำหนดค่าที่อยู่ IP ใดเป็นพิเศษ
สองสถานการณ์ต่อไปนี้ระบุพารามิเตอร์ที่อยู่ IP ที่กำหนดค่าโดย Pic-o Link:
จะเปิดโครงการเฟิร์มแวร์ได้อย่างไร?
Pic-o Link
และเลือก Open with Code
รอสักครู่หลังจากเปิด ปลั๊กอินจะติดตั้งการขึ้นต่อกันโดยอัตโนมัติและคอมไพล์ toolchain จะเข้าสู่โหมดดาวน์โหลดและเฟิร์มแวร์แฟลชได้อย่างไร?
Pic-o Link
เข้ากับคอมพิวเตอร์ของคุณ กดปุ่ม DOWNLOAD
บน Pic-o Link ค้างไว้ จากนั้นกดปุ่ม RESET
จากนั้นคลิกปุ่มดาวน์โหลดที่ด้านล่างของ Platform IO เพื่อคอมไพล์และดาวน์โหลดด้วย คลิกเพียงครั้งเดียวอย่าลืมกดปุ่ม RESET
หลังจากดาวน์โหลด จะแก้ไขชื่อโฮสต์ของโมดูลได้อย่างไร?
CONFIG_LWIP_LOCAL_HOSTNAME
ในไฟล์ sdkconfig.pico32
และคอมไพล์ใหม่และเฟิร์มแวร์แฟลชโมดูลรองรับความถี่ WiFI ใด
ข้อกำหนดการวาดภาพอินเทอร์เฟซและ PCB?
โหมด UART ใช้ TC264 เป็นตัวอย่าง (ดูแผนภาพแผนผังอินเทอร์เฟซพอร์ตอนุกรมไร้สาย ZhuFei สามารถคัดลอกได้โดยตรง โปรดทราบว่าเมื่อเทียบกับอินเทอร์เฟซ UART ทั่วไป จำเป็นต้องมีพินควบคุมการไหลเพิ่มเติม สามารถเลียนแบบพอร์ตอนุกรมไร้สาย ZhuFei ส่งไดรเวอร์ใช้ GPIO เป็น โหมดอินพุตเพื่อจำลอง)
สคริปต์การแสดงผลคอมพิวเตอร์ส่วนบนของการส่งภาพหลามอย่างง่ายพร้อมส่วนหัวของเฟรมและการตรวจจับส่วนท้ายของเฟรมคล้ายกับคอมพิวเตอร์ส่วนบนของ Zhiyong
ไลบรารี Python ที่จำเป็นสำหรับการทำงาน:
การทดสอบอย่างเป็นทางการของ Espressif ของอัตรา ESP32 udp/tcp:
ประเภท/ปริมาณงาน | อากาศในห้องปฏิบัติการ | โล่กล่อง | เครื่องมือทดสอบ | เวอร์ชัน IDF (รหัสคอมมิต) |
---|---|---|---|---|
Raw 802.11 แพ็คเก็ต RX | ไม่มี | 130 เมกะบิต/วินาที | เครื่องมือภายใน | นา |
ดิบ 802.11 แพ็คเก็ต TX | ไม่มี | 130 เมกะบิต/วินาที | เครื่องมือภายใน | นา |
UDP RX | 30 เมกะบิต/วินาที | 85 เมกะบิต/วินาที | ตัวอย่าง iperf | 15575346 |
UDP เท็กซัส | 30 เมกะบิต/วินาที | 75 เมกะบิต/วินาที | ตัวอย่าง iperf | 15575346 |
TCP RX | 20 เมกะบิต/วินาที | 65 เมกะบิต/วินาที | ตัวอย่าง iperf | 15575346 |
TCP เท็กซัส | 20 เมกะบิต/วินาที | 75 เมกะบิต/วินาที | ตัวอย่าง iperf | 1557534 |