สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ทฤษฎีการควบคุมพื้นฐาน
- ขั้นตอนที่ 2: การเขียนรหัส PID
- ขั้นตอนที่ 3: วิธีการปรับเปลี่ยนสำหรับระบบของคุณ
- ขั้นตอนที่ 4: การใช้ประโยชน์จาก I/O บน Basy 3
- ขั้นตอนที่ 5: สัญญาณรบกวนบนเอาต์พุตเซ็นเซอร์ IR
- ขั้นตอนที่ 6: เค้าโครงโค้ดโดยรวม
- ขั้นตอนที่ 7: การทดสอบ
- ขั้นตอนที่ 8: การปรับเปลี่ยนเพื่อปรับปรุงโครงการ
- ขั้นตอนที่ 9: งานพิเศษ
- ขั้นตอนที่ 10: สรุป
วีดีโอ: PID Controller VHDL: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
โครงการนี้เป็นโครงการสุดท้ายของฉันที่จะสำเร็จการศึกษาระดับปริญญาตรีเกียรตินิยมจากสถาบันเทคโนโลยีคอร์ก บทช่วยสอนนี้แบ่งออกเป็นสองส่วน ส่วนแรกจะครอบคลุมเนื้อหาหลักของรหัส PID ซึ่งเป็นจุดประสงค์หลักของโครงการ และส่วนที่สองครอบคลุมการเชื่อมต่อรหัสซึ่งใช้งานบนกระดานพัฒนา Basys 3 แล้วเชื่อมต่อกับลูกปิงปอง แท่นขุดเจาะลอย แท่นขุดเจาะเชิงทฤษฎีและที่สร้างขึ้นจะแสดงในภาพที่แนบมา
เสบียง
การจำลอง
วิวาโด ดีไซน์ สวีท
การดำเนินการ (ในวงเล็บคือสิ่งที่ใช้สำหรับโครงการของฉัน)
- บอร์ด FPGA ที่สามารถอินพุตและเอาต์พุตสัญญาณดิจิตอล/อนาล็อก (พื้นฐาน 3)
- ระบบที่สามารถควบคุมได้ด้วยแหล่งป้อนกลับเดียว (Ping Pong Ball Levitation Rig)
ริก
- ท่อโพลีคาร์บอเนต
- พัดลม 5V
- เซ็นเซอร์อินฟราเรด
- ฐานพิมพ์ 3 มิติ (บทช่วยสอนนี้จัดทำเอกสารเกี่ยวกับการสร้างแท่นขุดเจาะที่มีการเพิ่มเซ็นเซอร์เพื่อให้ข้อเสนอแนะ แต่โดยทั่วไปแล้วแท่นขุดเจาะจะเหมือนกัน)
- ตัวต้านทาน 1k
- เขียงหั่นขนมพร้อม 5V และ GND Rail
ขั้นตอนที่ 1: ทฤษฎีการควบคุมพื้นฐาน
ฉันคิดว่าการเพิ่มทฤษฎีการควบคุมพื้นฐานจะทำให้ใครก็ตามที่ต้องการลองใช้โค้ดนี้เป็นพื้นฐานที่ดีในการเริ่มต้น
ไดอะแกรมที่แนบมาคือเลย์เอาต์ของคอนโทรลเลอร์ลูปเดี่ยว
r- เป็นข้อมูลอ้างอิง สิ่งนี้กำหนดตำแหน่งที่ต้องการให้คอนโทรลเลอร์ไป
e-เป็นข้อผิดพลาด นี่คือความแตกต่างระหว่างค่าบนเซ็นเซอร์และข้อมูลอ้างอิงของคุณ เช่น. e=r-(d+เอาต์พุตของเซ็นเซอร์)
K-นี่คือตัวควบคุม ตัวควบคุมสามารถประกอบด้วยสามคำ เทอมเหล่านี้คือ P, I และ D ทั้งสามเทอมมีตัวคูณที่เรียกว่า Kp, Ki และ Kd ค่าเหล่านี้กำหนดการตอบสนองของคอนโทรลเลอร์
- P-สัดส่วน. คอนโทรลเลอร์ P อย่างเคร่งครัดจะมีสัดส่วนเอาต์พุตตามข้อผิดพลาดปัจจุบัน คอนโทรลเลอร์ P นั้นใช้งานง่ายและทำงานได้อย่างรวดเร็ว แต่จะไม่มีวันถึงค่าที่คุณตั้งไว้ (ข้อมูลอ้างอิง)
- I-อินทิกรัล. ตัวควบคุมอินทิกรัลอย่างเคร่งครัดจะสรุปข้อผิดพลาดก่อนหน้านี้ซึ่งจะไปถึงการอ้างอิงที่ต้องการในที่สุด ตัวควบคุมนี้โดยทั่วไปช้าเกินไปที่จะนำไปใช้ การเพิ่มคำศัพท์ P จะช่วยลดเวลาในการเข้าถึงข้อมูลอ้างอิง เวลาที่ข้อมูลถูกสุ่มตัวอย่างต้องนำมาพิจารณาถึงเงื่อนไขที่ครบถ้วนสมบูรณ์ซึ่งรวมเข้ากับเวลา
- D-อนุพันธ์. เงื่อนไขอนุพันธ์จะมีผลลัพธ์ซึ่งขึ้นอยู่กับอัตราการเปลี่ยนแปลงของข้อผิดพลาด คำนี้มักใช้กับคำศัพท์ P หรือคำศัพท์ PI เนื่องจากเป็นสัดส่วนกับอัตราการเปลี่ยนแปลงข้อผิดพลาด ซิงเกิลที่มีเสียงดังจะมีการขยายสัญญาณรบกวนซึ่งอาจทำให้ระบบไม่เสถียร ต้องคำนึงถึงเวลาด้วยเนื่องจากคำอนุพันธ์นั้นสัมพันธ์กับเวลาด้วย
U- นี่คือสัญญาณควบคุม สัญญาณนี้เป็นอินพุตไปยังแท่นขุดเจาะ ในกรณีของโครงการนี้ u คืออินพุตสัญญาณ PWM ไปยังพัดลมเพื่อเปลี่ยนความเร็ว
G- นี่คือระบบที่ถูกควบคุม ระบบนี้สามารถสร้างแบบจำลองทางคณิตศาสตร์ในโดเมน S หรือ Z ระบบสามารถอยู่ในลำดับที่ n ได้ แต่สำหรับผู้ที่เริ่มต้นด้วยการควบคุม ระบบลำดับแรกน่าจะได้รับการสมมติขึ้นเนื่องจากเป็นการคำนวณที่ง่ายกว่ามาก มีข้อมูลมากมายเกี่ยวกับระบบการสร้างแบบจำลองที่จะพบได้ทางออนไลน์ ขึ้นอยู่กับเวลาสุ่มตัวอย่างของเซ็นเซอร์ รุ่นของระบบเป็นแบบแยกส่วนหรือต่อเนื่อง สิ่งนี้มีผลกระทบอย่างมากต่อคอนโทรลเลอร์ ดังนั้นควรทำการวิจัยทั้งสองอย่าง
d- นี่คือการรบกวนที่เพิ่มเข้าไปในระบบ การรบกวนคือแรงภายนอกที่แบบจำลองของระบบไม่ได้คำนึงถึง ตัวอย่างง่ายๆ ของสิ่งนี้คือเสียงพึมพำที่คุณต้องการจะลอยขึ้นไปที่ระดับ 5 เมตร ลมกระโชกแรงพัดมา แล้วปล่อยโดรนลงมา 1 เมตร ตัวควบคุมจะปรับตำแหน่งโดรนหลังจากเกิดสิ่งรบกวน สิ่งนี้เรียกว่าการรบกวนเนื่องจากลมไม่สามารถทำซ้ำได้ดังนั้นจึงไม่สามารถจำลองได้
ในการปรับแต่งคอนโทรลเลอร์ มีกฎมากมายเกินกว่าจะตั้งชื่อได้ แต่มีกฎที่ดีบางอย่างที่ฉันเริ่มด้วยคือ Cohen Coon และ Zieger Nichols
การสร้างแบบจำลองระบบโดยทั่วไปเป็นส่วนที่สำคัญที่สุดหากไม่มีแบบจำลองที่ถูกต้อง ตัวควบคุมที่ได้รับการออกแบบจะไม่ตอบสนองตามที่ต้องการ
ควรมีข้อมูลเพียงพอที่นี่เพื่อทำความเข้าใจเกี่ยวกับวิธีการทำงานของคอนโทรลเลอร์ควบคู่ไปกับการวิจัยส่วนบุคคล และโค้ดด้านล่างตัวควบคุมที่มีทั้ง 3 คำรวมกันสามารถนำไปใช้ได้
ขั้นตอนที่ 2: การเขียนรหัส PID
หลักการพื้นฐานของรหัสที่พบในลิงก์ต่อไปนี้ถูกนำไปใช้และแก้ไขเนื่องจากรหัสนี้ใช้งานไม่ได้ แต่มีหลักการหลายอย่างที่ถูกต้องซึ่งเป็นจุดเริ่มต้นที่ดี PID ดั้งเดิม รหัสมีข้อผิดพลาดหลายประการเช่น
- การทำงานต่อเนื่อง - คอนโทรลเลอร์นั้นแยกจากกันโดยสืบทอดมา ดังนั้นคอนโทรลเลอร์ต้องได้รับการตั้งค่าให้คำนวณทั้ง 3 เงื่อนไขเมื่อมีอินพุตใหม่เท่านั้น วิธีแก้ปัญหาสำหรับการจำลองนี้คือตรวจสอบว่าอินพุตมีการเปลี่ยนแปลงตั้งแต่ครั้งล่าสุดหรือไม่ ใช้งานได้เพื่อจำลองโค้ดที่ทำงานอย่างถูกต้องเท่านั้น
- เวลาตัวอย่างไม่มีผลต่อปริพันธ์และพจน์อนุพันธ์ - ผู้ควบคุมไม่ได้พิจารณาเวลาที่ตัวอย่างถูกยึด ดังนั้นจึงเพิ่มค่าที่เรียกว่าตัวแบ่งสำหรับเวลาเพื่อให้แน่ใจว่าอินทิกรัลและพจน์อนุพันธ์ทำงานบนค่าที่ถูกต้อง ช่วงเวลา
- ข้อผิดพลาดอาจเป็นผลบวกเท่านั้น - เมื่อคำนวณข้อผิดพลาดก็มีปัญหาเช่นกันเนื่องจากข้อผิดพลาดไม่เคยมีความหมายเชิงลบเมื่อสัญญาณตอบรับเกินค่าอ้างอิงที่ตัวควบคุมจะเพิ่มเอาต์พุตต่อไปเมื่อควรจะลดลง
- ค่าที่ได้รับสำหรับ 3 คำนั้นเป็นจำนวนเต็ม - จากประสบการณ์ของฉันฉันมักจะพบว่าค่าสำหรับ 3 คำในคอนโทรลเลอร์จะเป็นตัวเลขทศนิยมเสมอเนื่องจาก Basys 3 ไม่มีเลขทศนิยม ค่าจะต้องได้รับค่าตัวเศษและ ค่าตัวส่วนที่จะทำหน้าที่เป็นวิธีแก้ปัญหานี้
รหัสที่แนบมาด้านล่างมีเนื้อหาหลักของรหัสและ testbench เพื่อจำลองรหัส โฟลเดอร์ zip มีรหัสและชุดทดสอบอยู่ใน Vivado อยู่แล้ว เพื่อให้สามารถเปิดได้เพื่อประหยัดเวลา นอกจากนี้ยังมีการทดสอบจำลองของรหัสซึ่งแสดงผลลัพธ์ที่ติดตามการอ้างอิง ซึ่งพิสูจน์ว่ารหัสทำงานตามที่ตั้งใจไว้
ขั้นตอนที่ 3: วิธีการปรับเปลี่ยนสำหรับระบบของคุณ
ประการแรกไม่ใช่ทุกระบบจะต้องวิเคราะห์อินพุตและเอาต์พุตของระบบ ในกรณีของฉัน เอาต์พุตของแท่นขุดเจาะซึ่งให้ค่าตำแหน่งแก่ฉันนั้นเป็นสัญญาณแอนะล็อก และอินพุตจากระบบเป็นสัญญาณ PWM หมายความว่าจำเป็นต้องมีการแปลง ADC โชคดีที่ Basys 3 มี ADC ในตัว ดังนั้นจึงไม่มีปัญหาที่เอาต์พุตของเซ็นเซอร์ IR จะต้องถูกลดขนาดลงเป็น 0V-1V เนื่องจากเป็นช่วงสูงสุดของ ADC ออนบอร์ด ทำได้โดยใช้วงจรแบ่งแรงดันซึ่งทำจากตัวต้านทาน 1k ที่ตั้งค่าเป็นตัวต้านทาน 3k แบบอนุกรมพร้อมตัวต้านทาน 1k ขณะนี้สัญญาณแอนะล็อกอยู่ในช่วงของ ADC อินพุต PWM ไปยังพัดลมสามารถขับเคลื่อนโดยตรงจากเอาต์พุตของพอร์ต PMOD บน Basys 3
ขั้นตอนที่ 4: การใช้ประโยชน์จาก I/O บน Basy 3
มี I/O จำนวนหนึ่งบน Basys 3 ซึ่งอนุญาตให้ทำการดีบักได้ง่ายขึ้นเมื่อรันโค้ด I/O ถูกตั้งค่าดังนี้
- Seven Segment Display - ใช้เพื่อแสดงค่าอ้างอิงและค่าบน ADC ในหน่วยโวลต์ ตัวเลขสองหลักแรกของการแสดงผลเจ็ดส่วนจะแสดงตัวเลขสองหลักหลังตำแหน่งทศนิยมของค่า ADC เนื่องจากค่าอยู่ระหว่าง 0-1V ตัวเลขสามและสี่บนจอแสดงผลเจ็ดส่วนแสดงค่าอ้างอิงเป็นโวลต์ และยังแสดงตัวเลขสองหลักแรกหลังตำแหน่งทศนิยมด้วยเนื่องจากช่วงยังอยู่ระหว่าง 0-1V
- ไฟ LED 16 ดวง - ไฟ LED ถูกใช้เพื่อแสดงค่าของเอาต์พุตเพื่อให้แน่ใจว่าเอาต์พุตอิ่มตัวและเอาต์พุตเปลี่ยนแปลงอย่างถูกต้อง
ขั้นตอนที่ 5: สัญญาณรบกวนบนเอาต์พุตเซ็นเซอร์ IR
มีสัญญาณรบกวนบนเอาต์พุตของเซ็นเซอร์เพื่อแก้ไขปัญหานี้ มีการวางบล็อกเฉลี่ยเข้าที่ เนื่องจากเพียงพอและต้องการงานเพียงเล็กน้อยจึงจะเสร็จสมบูรณ์
ขั้นตอนที่ 6: เค้าโครงโค้ดโดยรวม
มีโค้ดชิ้นหนึ่งที่ยังไม่ได้พูดถึง รหัสนี้เป็นตัวแบ่งนาฬิกาที่เรียกว่าทริกเกอร์ โค้ดบิตนี้ทริกเกอร์โค้ด ADC เพื่อสุ่มตัวอย่าง รหัส ADC ใช้เวลาสูงสุด 2us ในการทำให้เสร็จสมบูรณ์ ดังนั้นอินพุตปัจจุบันและอินพุตก่อนหน้าจะถูกหาค่าเฉลี่ย 1us หลังจากนี้ค่าเฉลี่ยคอนโทรลเลอร์จะคำนวณเงื่อนไข P, I และ D เค้าโครงโดยรวมของรหัสและการเชื่อมต่อจะแสดงในไดอะแกรมการเชื่อมต่อชั่วคราว
ขั้นตอนที่ 7: การทดสอบ
รหัสถูกปรับใช้บน Basys 3 และการตอบสนองต่อไปนี้ถูกบันทึก การอ้างอิงเปลี่ยนไประหว่าง 2 ค่า ซึ่งเป็นกรณีในรหัสโครงการที่เสร็จสมบูรณ์ที่แนบมาด้วย วิดีโอที่แนบมาแสดงการตอบสนองนี้แบบเรียลไทม์ การสั่นจะสลายเร็วขึ้นในส่วนบนของท่อเนื่องจากคอนโทรลเลอร์ได้รับการออกแบบสำหรับภูมิภาคนี้ แต่คอนโทรลเลอร์ไม่ทำงานเช่นกันในส่วนล่างของท่อเนื่องจากระบบไม่เป็นเชิงเส้น
ขั้นตอนที่ 8: การปรับเปลี่ยนเพื่อปรับปรุงโครงการ
โปรเจ็กต์ทำงานได้ตามที่ตั้งใจไว้ แต่มีการปรับเปลี่ยนเล็กน้อยซึ่งฉันจะทำหากโปรเจ็กต์สามารถขยายได้
- ใช้ตัวกรองดิจิตอลเพื่อลดสัญญาณรบกวนอย่างสมบูรณ์
- ตั้งค่ารหัส ADC รหัสเฉลี่ย และรหัสการรวมเพื่อทริกเกอร์ตามลำดับ
- ใช้เซ็นเซอร์อื่นสำหรับการป้อนกลับ เนื่องจากการตอบสนองที่ไม่เป็นเชิงเส้นของเซ็นเซอร์นี้ทำให้เกิดปัญหามากมายในโปรเจ็กต์นี้ แต่ที่มากกว่าในด้านการควบคุม ไม่ใช่ด้านการเข้ารหัส
ขั้นตอนที่ 9: งานพิเศษ
ในช่วงฤดูร้อน ฉันเขียนโค้ดสำหรับตัวควบคุมคาสเคดและดำเนินการแก้ไขที่ฉันแนะนำสำหรับคอนโทรลเลอร์ PID แบบวนซ้ำ
การปรับเปลี่ยนที่ทำกับตัวควบคุม PID ปกติ
· เทมเพลตตัวกรอง FIR ที่ใช้ต้องเปลี่ยนค่าสัมประสิทธิ์เพื่อให้ได้ความถี่ตัดที่ต้องการ การใช้งานปัจจุบันคือตัวกรองเฟอร์ 5 ก๊อก
· มีการตั้งค่าระยะเวลาของโค้ดเพื่อให้ตัวกรองเผยแพร่ตัวอย่างใหม่ผ่านและเมื่อเอาต์พุตพร้อม เงื่อนไขสำคัญจะถูกเรียกใช้ ซึ่งหมายความว่าโค้ดสามารถปรับเปลี่ยนให้ทำงานในช่วงเวลาต่างๆ ได้โดยไม่ต้องใช้ความพยายามในการเปลี่ยนแปลง รหัส.
· main for loop ที่ขับเคลื่อนโปรแกรมก็ถูกลดลงเช่นกัน เนื่องจาก for loop ใช้เวลา 7 รอบก่อนหน้านี้ สิ่งนี้ทำให้ความเร็วการทำงานสูงสุดของคอนโทรลเลอร์ช้าลง แต่ด้วยการลดสถานะ for loop t 4 นี่หมายความว่าบล็อกหลักของรหัสสามารถทำงานได้ ภายใน 4 รอบนาฬิกา
การทดสอบ
ตัวควบคุมนี้ได้รับการทดสอบและดำเนินการตามที่ตั้งใจไว้ ฉันไม่ได้ถ่ายรูปการพิสูจน์นี้ เนื่องจากส่วนนี้ของโครงการทำขึ้นเพื่อให้จิตใจตื่นตัว โค้ดสำหรับการทดสอบและ testbench จะพร้อมใช้งานที่นี่ เพื่อให้คุณสามารถทดสอบโปรแกรมก่อนนำไปใช้จริง
ทำไมต้องใช้ตัวควบคุมคาสเคด
ตัวควบคุมคาสเคดจะควบคุมสองส่วนของระบบ ในกรณีนี้ ตัวควบคุมคาสเคดจะมีวงรอบนอกซึ่งเป็นตัวควบคุมที่มีการป้อนกลับจากเซ็นเซอร์ IR วงในมีการตอบสนองในรูปแบบของเวลาระหว่างพัลส์จากเครื่องวัดวามเร็วซึ่งกำหนดความเร็วในการหมุนของพัดลม ด้วยการใช้การควบคุม การตอบสนองที่ดีขึ้นสามารถทำได้จากระบบ
ตัวควบคุมคาสเคดทำงานอย่างไร
วงรอบนอกของตัวควบคุมจะป้อนค่าสำหรับเวลาระหว่างพัลส์กับตัวควบคุมวงใน ตัวควบคุมนี้จะเพิ่มหรือลดรอบการทำงานเพื่อให้ได้เวลาที่ต้องการระหว่างพัลส์
การดำเนินการแก้ไขบนแท่นขุดเจาะ
น่าเสียดายที่ฉันไม่สามารถปรับใช้การแก้ไขเหล่านี้กับอุปกรณ์ได้เนื่องจากไม่มีสิทธิ์เข้าถึง ฉันทดสอบตัวควบคุมลูปเดี่ยวที่แก้ไขแล้วซึ่งทำงานตามที่ตั้งใจไว้ ฉันยังไม่ได้ทดสอบตัวควบคุมคาสเคดเลย ฉันมั่นใจว่าตัวควบคุมจะทำงานได้ แต่อาจต้องมีการปรับเปลี่ยนเล็กน้อยเพื่อให้ทำงานได้ตามที่ตั้งใจไว้
การทดสอบ
ฉันไม่สามารถทดสอบคอนโทรลเลอร์ได้ เนื่องจากจำลองแหล่งอินพุตสองแหล่งได้ยาก ปัญหาเดียวที่ฉันสามารถเห็นได้จากตัวควบคุมคาสเคดคือเมื่อลูปด้านนอกพยายามเพิ่มเซ็ตพอยต์ที่จ่ายให้กับวงใน โดยที่เซ็ตพอยต์ที่ใหญ่กว่านั้นจริง ๆ แล้วเป็น RPS ที่ต่ำกว่าสำหรับพัดลม แต่สิ่งนี้สามารถแก้ไขได้ง่าย หาค่าที่ตั้งไว้จากค่าสูงสุดของสัญญาณที่ตั้งไว้ (4095 - setpoint - tacho_result)
ขั้นตอนที่ 10: สรุป
โดยรวมแล้วโปรเจ็กต์ทำงานได้ตามที่ตั้งใจไว้เมื่อเริ่มโปรเจ็กต์ ดังนั้นฉันจึงพอใจกับผลลัพธ์ที่ได้ ขอบคุณที่สละเวลาอ่านความพยายามของฉันในการพัฒนาตัวควบคุม PID ใน VHDL หากใครกำลังพยายามใช้รูปแบบนี้ในระบบและต้องการความช่วยเหลือเพื่อทำความเข้าใจรหัส โปรดติดต่อฉัน ฉันจะตอบกลับโดยเร็วที่สุด ใครก็ตามที่พยายามทำงานพิเศษที่เสร็จสมบูรณ์แล้ว แต่ไม่ได้ดำเนินการ โปรดติดต่อฉันเพื่อขอความช่วยเหลือ ฉันจะขอบคุณมากถ้าใครใช้มันแจ้งให้เราทราบว่ามันไปอย่างไร
แนะนำ:
หุ่นยนต์ปรับสมดุลตนเอง - อัลกอริธึมการควบคุม PID: 3 ขั้นตอน
หุ่นยนต์ปรับสมดุลตนเอง - อัลกอริธึมการควบคุม PID: โครงการนี้เกิดขึ้นเพราะฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริธึมการควบคุมและวิธีการใช้ลูป PID ที่ใช้งานได้อย่างมีประสิทธิภาพ โครงการยังอยู่ในขั้นตอนการพัฒนาเนื่องจากยังไม่ได้เพิ่มโมดูล Bluetooth ซึ่งจะทำให้
ผู้ติดตาม PID Line Atmega328P: 4 ขั้นตอน
PID Line Follower Atmega328P: บทนำ คำสั่งนี้เกี่ยวกับการสร้าง Line Follower ที่มีประสิทธิภาพและเชื่อถือได้ด้วย PID (proportional-integral-derivative) Control (Mathematical) ที่ทำงานอยู่ในสมอง (Atmega328P) ผู้ติดตาม Line เป็นหุ่นยนต์อิสระที่ติดตามข
การออกแบบ Interrupt Controller ที่ตั้งโปรแกรมได้ใน VHDL: 4 ขั้นตอน
การออกแบบ Programmable Interrupt Controller ใน VHDL: ฉันรู้สึกท่วมท้นกับคำตอบที่ได้รับในบล็อกนี้ ขอบคุณสำหรับการเยี่ยมชมบล็อกของฉันและกระตุ้นให้ฉันแบ่งปันความรู้ของฉันกับคุณ ครั้งนี้ ฉันจะนำเสนอการออกแบบโมดูลที่น่าสนใจอื่นที่เราเห็นใน SOC ทั้งหมด -- Interrupt C
ควบคุมอุณหภูมิที่บ้านด้วย PID และ Labview: 4 ขั้นตอน
ควบคุมอุณหภูมิหน้าแรกด้วย PID และ Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan kontrolloer PID pada pengatur suhu ruangan menggunakan labview
NES Controller Shuffle (Nintendo Controller MP3, V3.0): 5 ขั้นตอน (พร้อมรูปภาพ)
NES Controller Shuffle (Nintendo Controller MP3, V3.0): ฉันลอก ryan97128 ออกจากการออกแบบของเขาสำหรับ Nintendo Controller MP3 เวอร์ชัน 2.0 และฉันได้ยินมาว่าเขาได้แนวคิดมาจาก Morte_Moya ที่ฉลาดทั้งหมด ดังนั้นฉันจึงรับเครดิตไม่ได้ อัจฉริยะทั้งหมดของพวกเขา ฉันแค่ต้องการเพิ่มความสะดวกสบายและเติมเงิน -