
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

ในการออกแบบบอร์ดไมโครคอนโทรลเลอร์แบบ all-in-one นี้มีวัตถุประสงค์เพื่อให้ใช้งานได้มากกว่า Arduino หลังจากประมาณ 100 ชั่วโมงของการออกแบบ ฉันได้ตัดสินใจแชร์กับชุมชน ฉันหวังว่าคุณจะขอบคุณสำหรับความพยายามและสนับสนุน (มีคำถามใดๆ หรือ ข้อมูลจะยินดี)
ขั้นตอนที่ 1: วัตถุประสงค์


โครงการใด ๆ มีความต้องการที่แตกต่างกัน: เซ็นเซอร์ แอคทูเอเตอร์ และการคำนวณ วิธีที่ประหยัดที่สุดคือไมโครคอนโทรลเลอร์เช่น Arduino ใด ๆ ในกรณีนี้ ฉันใช้ไมโครคอนโทรลเลอร์ช่วง PIC16F ตัวใดตัวหนึ่งเนื่องจากฉันคุ้นเคยดีกว่า
ข้อมูล PIC16F1829:
ทางเศรษฐกิจ;)
ภายใน 32 MHz
อินเทอร์เฟซ UART หรือ USB (ch340)
SPI หรือ I2C x2
ตัวจับเวลา (8/16 บิต) x4 x1
ADC 10 บิต x12
I / O's x18
และอื่นๆ อีกมากมาย (ข้อมูลในแผ่นข้อมูล)
มีแพ็คเกจที่แตกต่างกัน แต่เมื่อทำการผลิต PCB ที่ไม่ได้ทำด้วยมือ แพ็คเกจที่เล็กที่สุดก็ถูกที่สุดเช่นกัน
ขั้นตอนที่ 2: อัปเกรดสำหรับ MCU


ไมโครคอนโทรลเลอร์ต้องการตัวเก็บประจุและการกำหนดค่าฮาร์ดแวร์สำหรับพินรีเซ็ต แต่ไม่เพียงพอ
- วงจรจ่ายไฟ
- การอัพเกรดฮาร์ดแวร์
- บูตโหลดเดอร์
- ส่วนต่อประสานกับมนุษย์
- การกำหนดค่าพิน
ขั้นตอนที่ 3: วงจรพาวเวอร์ซัพพลาย


- การป้องกันการขั้วของพาวเวอร์ซัพพลาย (MOSFET-P)
ฉันใช้ประโยชน์จากไดโอดภายในของมอสเฟตเพื่อขับและเมื่อเกิดเหตุการณ์นั้น Gate Voltage ก็เพียงพอที่จะมี RDSon link_info ที่ต่ำมาก
- ตัวควบคุมแรงดันไฟฟ้า (VCO) ตัวควบคุมทั่วไป ฉันใช้ LD1117AG และบรรจุ TO-252-2(DPAK) เหมือนกับ lm7805 แต่ราคาถูกกว่าและ LDO
- ฟิลเตอร์ capacitive ทั่วไป (100n)
- ฟิวส์สำหรับจ่ายไฟ USB
เพื่อป้องกันมากกว่า 1A
- ตัวกรองเฟอร์ไรต์สำหรับไฟ USB
อยู่ระหว่างการทดสอบ
ขั้นตอนที่ 4: การอัพเกรดฮาร์ดแวร์


เพื่อวัตถุประสงค์ทั่วไปฉันตัดสินใจเพิ่ม:
- การรีเซ็ตซอฟต์สตาร์ทหากมีการควบคุมสิ่งอื่น ๆ ด้วยความล่าช้าในการรีเซ็ตเริ่มต้น ไมโครคอนโทรลเลอร์จะไม่เริ่มทำงาน หลังจากเปิดเครื่องและความเสถียรแล้ว แรงดันไฟฟ้าจะปลอดภัยเพื่อควบคุมสิ่งอื่น ๆ
พินรีเซ็ตถูกปฏิเสธ ซึ่งจะรีเซ็ต MCU เมื่อเป็น 0V วงจร RC (ความต้านทานของตัวเก็บประจุ) ทำให้พัลส์ยาวขึ้น และไดโอดจะคายประจุตัวเก็บประจุเมื่อ VCC เป็น 0V
- N-Channel Mosfet AO3400A
เนื่องจากไมโครคอนโทรลเลอร์มาตรฐานไม่สามารถให้มากกว่า 20mA หรือ 3mA ต่อพิน บวกกับกำลังจำกัดการใช้พลังงานทั้งหมดไว้ที่ 800mA และมอสเฟตสามารถใช้การสื่อสารการแปลง 5V ถึง 3.3V ได้
- OP-AMP LMV358A
เพื่อขยายสัญญาณที่อ่อนมาก เอาต์พุตที่มีความต้านทานต่ำและเครื่องมือวัดเพื่อตรวจจับกระแส ฯลฯ …
ขั้นตอนที่ 5: Bootloader

bootloader ให้เขียนคำสั่งได้ แต่โดยสรุปแล้วหน้าที่ของมันคือโหลดโปรแกรม ใน Arduino One เช่น มีไมโครคอนโทรลเลอร์อีกตัวหนึ่งที่รองรับ USB ดั้งเดิม ในกรณีของ PIC ทั้งหมด bootloader คือ PICKIT3 แม้ว่าเราจะมี CH340C (ไม่ใช่ bootloader จะเป็น USB to Serial microcontroler ที่เรียกว่า UART)
PICKIT3 -> bootloader ผ่าน ICSP (การเขียนโปรแกรมอนุกรมในวงจร)
CH340C -> การสื่อสาร USB แบบอนุกรม
ทั้งหมดอยู่ในระหว่างการพัฒนา แต่ bootloader ใช้งานได้
ขั้นตอนที่ 6: ส่วนต่อประสานกับมนุษย์

- รองรับ USB
CH340C เป็นตัวแปลง USB เป็น Serial แบบฝัง
การกำหนดค่ามาตรฐานของซีเรียลที่ 9600 บอด, 8 บิต, 1 บิตหยุด, ไม่มีพาริตี, บิตที่มีนัยสำคัญน้อยที่สุดส่งก่อนและไม่กลับด้าน
- ปุ่มรีเซ็ต
ใช้ในวงจร Soft-Start Reset เพื่อรีเซ็ตไมโครคอนโทรลเลอร์ แต่ ICSP RST เหนือกว่า
- ปุ่มผู้ใช้
ทั่วไป 10k เพื่อดึงลงในพินเอาต์พุต
- ไฟ LED สีน้ำเงิน 3 มม. x8 5V - 2.7 Vled = 2.3 Vres
2.3 Vres / 1500 Rres = 1.5 mA (คุณสามารถรับความสว่างได้มากขึ้น)
2.3 Vres * 1.5 mA => 4 mW (น้อยกว่า 1/8W)
ขั้นตอนที่ 7: การกำหนดค่าพิน




วิธีแก้ปัญหาที่มีพื้นที่น้อยคือการระบุชั้นพินและประสานพวกมันขนานกับบอร์ด, พินสองแถวและความหนาที่สอดคล้องกันของบอร์ด, คล้ายกับขั้วต่อ pci express
แต่พินกลางทั่วไปที่จะพินคือ 100mils = 2.55mm
ระยะห่างประมาณ 2 มม. = 2.55 - 0.6 (พิน)
ความหนาของบอร์ดก็ 1.6 เช่นกันครับ
นี่คือตัวอย่างที่มี 2 แผง 1mm
ขั้นตอนที่ 8: จุดจบ

แต่ละส่วนที่ฉันรวมเข้าด้วยกันได้รับการทดสอบแยกต่างหากกับส่วนประกอบอื่นๆ (TH) และเวอร์ชันต้นแบบ ฉันออกแบบด้วยแพลตฟอร์ม easyEDA และสั่งซื้อใน JLC และ LCSC (เพื่อให้คำสั่งมารวมกันก่อน คุณต้องสั่งซื้อใน JLC และเมื่อสั่งซื้อ ด้วยเซสชันเดียวกันกับที่คุณทำการซื้อใน LCSC และเพิ่ม)
น่าเสียดายที่ฉันไม่มีรูปถ่ายและฉันไม่สามารถพิสูจน์ร่วมกันได้ถึงเวลาที่ต้องสั่งซื้อไปยังประเทศจีนและทำเอกสารทั้งหมด แต่สำหรับคำแนะนำต่อไปนี้เนื่องจากครอบคลุมการออกแบบทั่วไป ที่นี่ คำถามใด ๆ ที่คุณสามารถทิ้งไว้ในความคิดเห็น
และนี่คือเมื่อคำสั่งมาถึง ฉันจะประสานมัน ลองใช้ร่วมกัน รายงานปัญหา อัปเดต เอกสารประกอบ โปรแกรม และอาจสร้างวิดีโอ
ขอบคุณ ลาก่อน และสนับสนุน !
ลิงค์: easyEDA, YouTube, คำแนะนำที่ชัดเจน
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน

เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง