สารบัญ:
- ขั้นตอนที่ 1: รวบรวมวัสดุ
- ขั้นตอนที่ 2: ประกอบวงจร
- ขั้นตอนที่ 3: ตั้งค่า PWM บน MCU
- ขั้นตอนที่ 4: ตั้งโปรแกรมไมโครคอนโทรลเลอร์
- ขั้นตอนที่ 5: การสื่อสารพอร์ตอนุกรม
วีดีโอ: Servo Squirter - ปืนฉีดน้ำ USB: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:09
ปืนฉีดน้ำเซอร์โวควบคุมด้วย USB เหมาะอย่างยิ่งสำหรับการยิงใส่ผู้สัญจรโดยที่ไม่สงสัย หรือทำให้ผู้คนมีคำถามที่น่ารำคาญที่อ่าว โปรเจ็กต์นี้เป็นเครื่องสูบน้ำขนาดเล็กที่ติดตั้งอยู่บนเซอร์โวสำหรับการยิงแบบมีทิศทาง ทั้งหมดนี้ขับเคลื่อนโดยไมโครคอนโทรลเลอร์ และควบคุมจากแป้นพิมพ์ของคุณผ่าน USB หากต้องการดูโครงการเพิ่มเติมและวิดีโอแนะนำฟรี โปรดดูเว็บไซต์ของเราที่
ขั้นตอนที่ 1: รวบรวมวัสดุ
โปรเจ็กต์นี้ใช้ไมโครคอนโทรลเลอร์ นอกเหนือจากไมโครคอนโทรลเลอร์ ATmega168 ที่รวมอยู่ใน USB NerdKit สำหรับโครงการนี้ เราใช้สิ่งต่อไปนี้: 1 Hobby Servo, Hitec HS-501 ปั๊มน้ำลูกสูบแรงดันต่ำ1 MOSFET n-channel ขนาดเล็ก, 2N7000
ขั้นตอนที่ 2: ประกอบวงจร
ส่วนแรกของวงจรของเราเพียงแค่เชื่อมต่อกับเซอร์โว นี่เป็นเรื่องง่าย: สายเดียวจากไมโครคอนโทรลเลอร์ไปยังเซอร์โว มีการติดฉลากสีที่แตกต่างกันเล็กน้อยขึ้นอยู่กับผู้ผลิต ดังนั้นโปรดตรวจสอบก่อนลองทำ ภาพแผนผังของวงจร ServoSquirter บนเขียงหั่นขนม NerdKits ส่วนที่สองของวงจรช่วยให้ไมโครคอนโทรลเลอร์เปิดและปิดมอเตอร์ปั๊มได้ ชิป ATmega168 นั้นอนุญาตให้เข้าหรือออกจากพินสูงสุด 40mA เท่านั้น แต่ปั๊มของเราต้องการใกล้กับ 1,000mA! ดังนั้นเพื่อควบคุมโหลดที่ใหญ่กว่านี้ เราจึงเลือกใช้ทรานซิสเตอร์ที่ใหญ่กว่า นั่นคือ 2N7000 อันดับแรก เราจะอธิบายพื้นฐานของการใช้ MOSFET (Metal Oxide Semiconductor Field Effect Transistors) เป็นสวิตช์: การนำแรงดัน Gate มาไว้เหนือแหล่งกำเนิด เราสามารถปล่อยให้กระแสไหลจาก Drain ไปยัง Source ได้ จากแผ่นข้อมูล 2N7000 เราได้ดึงข้อมูลรูปที่ 1 ซึ่งแสดงความสัมพันธ์ระหว่างกระแสไฟเดรนและแรงดันแหล่งจ่ายสำหรับการตั้งค่าแรงดันเกท-ซอร์สที่ต่างกัน มีสิ่งสำคัญสองสามประการที่คุณสามารถเรียนรู้ได้จากกราฟนี้ 1. สำหรับ VGS ที่ต่ำกว่า 3.0 โวลต์ จะไม่อนุญาตให้กระแสไหล นี่คือสถานะปิดหรือที่เรียกว่า "จุดตัด" 2. สำหรับ VDS ขนาดเล็ก เส้นโค้งจะมีลักษณะเป็นเส้นตรงผ่านจุดกำเนิด ซึ่งหมายความว่าจะ "ดูเหมือน" ทางไฟฟ้าเหมือนตัวต้านทาน ความต้านทานที่เท่ากันคือความชันผกผันของเส้นโค้ง ขอบเขตของการดำเนินการ MOSFET นี้เรียกว่า "ไตรโอด" 3. สำหรับ VDS ที่ใหญ่กว่า จะถึงระดับกระแสสูงสุดบางระดับ สิ่งนี้เรียกว่า "ความอิ่มตัว" 4. เมื่อเราเพิ่ม VGS กระแสไฟมากขึ้นจะได้รับอนุญาตให้ไหลทั้งในโหมดไตรโอดและความอิ่มตัว และตอนนี้ คุณได้เรียนรู้เกี่ยวกับการทำงานของ MOSFET ทั้งสามโหมดแล้ว: คัทออฟ ไตรโอด และความอิ่มตัว เนื่องจากการควบคุมเกตของเราเป็นแบบดิจิทัล (+5 หรือ 0) เรากังวลเฉพาะเส้นโค้งที่ไฮไลต์ด้วยสีเหลือง สำหรับ VGS=5V โดยปกติ การใช้ MOSFET เป็นสวิตช์โดยทั่วไปจะเกี่ยวข้องกับโหมดการทำงานแบบไตรโอด เนื่องจาก MOSFET จะกระจายพลังงาน PD=ID*VDS และสวิตช์ที่ดีควรกระจายพลังงานเพียงเล็กน้อยในตัวสวิตช์เอง แต่ในกรณีนี้ เรากำลังจัดการกับมอเตอร์ และมอเตอร์มักจะต้องการกระแสไฟจำนวนมาก (โดยที่แรงดันไฟตกเพียงเล็กน้อย) เมื่อสตาร์ทเครื่องในครั้งแรก ดังนั้นสำหรับวินาทีหรือสองวินาทีแรก MOSFET จะทำงานด้วย VDS สูงและจะถูกจำกัดด้วยกระแสสูงสุด - ประมาณ 800mA จากเส้นประสีแดงที่เราวาดบนแผ่นข้อมูล เราพบว่าสิ่งนี้ไม่เพียงพอสำหรับการเริ่มต้นปั๊ม ดังนั้นเราจึงใช้กลอุบายเล็กน้อยและวาง MOSFET สองตัวขนานกัน ด้วยวิธีนี้ พวกมันจะแบ่งปันกระแสไฟ และสามารถจมรวมกันได้อย่างมีประสิทธิภาพประมาณ 1600mA นอกจากนี้ เนื่องจากความต้องการพลังงานสูงของปั๊ม เราจึงใช้หม้อแปลงติดผนังที่มีเอาต์พุตกระแสไฟที่สูงขึ้น หากคุณมีหม้อแปลงไฟฟ้าติดผนังที่มีเอาต์พุตมากกว่า 5V - อาจเป็น 9V หรือ 12V - คุณก็สามารถทำได้
ขั้นตอนที่ 3: ตั้งค่า PWM บน MCU
การลงทะเบียนและการคำนวณ PWM ในวิดีโอ เราจะพูดถึงสองระดับที่ใช้โดยโมดูลตัวจับเวลา/ตัวนับ: ค่าบนสุด และค่าเปรียบเทียบ ทั้งสองสิ่งนี้มีความสำคัญในการสร้างสัญญาณ PWM ที่คุณต้องการแต่เพื่อเปิดใช้งานเอาต์พุต PWM ของ ATmega168 ของคุณตั้งแต่แรก เราต้องตั้งค่ารีจิสเตอร์สองสามตัว อันดับแรก เราเลือกโหมด Fast PWM โดยมี OCR1A เป็นค่าสูงสุด ซึ่งช่วยให้เรากำหนดความถี่ในการเริ่มพัลส์ใหม่ได้ตามอำเภอใจ จากนั้นเราตั้งค่านาฬิกาให้ทำงานโดยมีค่าก่อนหาร 8 ซึ่งหมายความว่าตัวนับจะเพิ่มขึ้น โดย 1 ทุกๆ 8/(14745600 Hz) = 542 นาโนวินาที เนื่องจากเรามีรีจิสเตอร์ 16 บิตสำหรับตัวจับเวลานี้ หมายความว่าเราสามารถกำหนดระยะเวลาสัญญาณโดยรวมให้สูงถึง 65536*542ns = 36 มิลลิวินาที ถ้าเราใช้จำนวนการหารที่มากขึ้น เราก็สามารถทำให้พัลส์ของเราห่างกันมากขึ้น (ซึ่งไม่ช่วยในสถานการณ์นี้) และเราจะสูญเสียความละเอียด หากเราใช้เลขหารที่น้อยกว่า (เช่น 1) เราจะไม่สามารถแยกพัลส์ของเราได้อย่างน้อย 16 มิลลิวินาที ตามที่เซอร์โวของเราคาดไว้ สุดท้าย เราตั้งค่าโหมดเปรียบเทียบเอาต์พุตสำหรับ PWM ที่ "ไม่กลับด้าน" เอาต์พุตซึ่งอธิบายไว้ในวิดีโอของเรา นอกจากนี้เรายังตั้งค่าพิน PB2 ให้เป็นพินเอาต์พุต - ไม่แสดงที่นี่ แต่อยู่ในรหัส คลิกเพื่อขยายภาพเหล่านี้จากหน้า 132-134 ของแผ่นข้อมูล ATmega168 โดยเน้นการเลือกค่าการลงทะเบียนของเรา:
ขั้นตอนที่ 4: ตั้งโปรแกรมไมโครคอนโทรลเลอร์
ตอนนี้ได้เวลาตั้งโปรแกรม MCU จริงๆ แล้ว ซอร์สโค้ดที่สมบูรณ์มีอยู่ในเว็บไซต์ของเรา https://www.nerdkits.com/videos/servosquirter โค้ดแรกจะตั้งค่า PWM เพื่อขับเคลื่อนเซอร์โว จากนั้นโค้ดก็นั่งรอสักครู่เพื่อรอการป้อนข้อมูลของผู้ใช้ อักขระ 1 และ 0 เปิดหรือปิดพิน MCU ที่เชื่อมต่อกับทรานซิสเตอร์ปั๊ม สิ่งนี้จะเปิดและปิดปั๊มทำให้เราสามารถยิงได้ตามต้องการ รหัสยังตอบสนองต่อปุ่ม '[' และ ']' คีย์เหล่านี้จะเพิ่มหรือลดค่าเปรียบเทียบบนพิน PWM ซึ่งจะทำให้เซอร์โว มอเตอร์เพื่อเปลี่ยนตำแหน่ง ซึ่งจะทำให้คุณสามารถเล็งก่อนยิงได้
ขั้นตอนที่ 5: การสื่อสารพอร์ตอนุกรม
ขั้นตอนสุดท้ายคือการตั้งค่าคอมพิวเตอร์เพื่อให้คุณสามารถส่งคำสั่งไปยังไมโครคอนโทรลเลอร์ได้ ใน NerdKit เราใช้สายเคเบิลอนุกรมเพื่อส่งคำสั่งและข้อมูลไปยังคอมพิวเตอร์ เป็นไปได้ที่จะเขียนโปรแกรมอย่างง่ายในภาษาการเขียนโปรแกรมส่วนใหญ่ที่สามารถสื่อสารผ่านพอร์ตอนุกรมไปยัง NerdKit อย่างไรก็ตาม มันง่ายกว่ามากที่จะใช้โปรแกรมเทอร์มินัลเพื่อทำการสื่อสารแบบอนุกรมสำหรับเรา ด้วยวิธีนี้ คุณเพียงแค่พิมพ์บนแป้นพิมพ์ และดูการตอบสนองจาก NerdKit Windowsหากคุณใช้ Windows XP หรือรุ่นก่อนหน้า HyperTerminal จะรวมอยู่ด้วย และควรอยู่ในเมนูเริ่มของคุณภายใต้ "เริ่ม -> โปรแกรม -> อุปกรณ์เสริม -> สื่อสาร". เมื่อคุณเปิด HyperTerminal เป็นครั้งแรก ระบบจะขอให้คุณตั้งค่าการเชื่อมต่อ ยกเลิกจนกว่าคุณจะอยู่ที่หน้าจอหลักของ HyperTerminal คุณจะต้องตั้งค่า HyperTerminal เลือกพอร์ต COM ที่ถูกต้อง และตั้งค่าพอร์ตอย่างเหมาะสมเพื่อทำงานกับ NerdKit ทำตามภาพหน้าจอด้านล่างเพื่อตั้งค่า HyperTerm ให้ถูกต้อง หากคุณใช้ Windows Vista ระบบจะไม่รวม HyperTerminal อีกต่อไป ในกรณีนี้ ให้ไปดาวน์โหลด PuTTY (ตัวติดตั้ง Windows) ใช้การตั้งค่าการเชื่อมต่อด้านล่างเพื่อตั้งค่า Putty โดยใช้พอร์ต COM ที่เหมาะสม Mac OS X หลังจากเข้าสู่แอปพลิเคชัน Terminal แล้ว ให้พิมพ์ "screen /dev/tty. PL* 115200" เพื่อเริ่มการสื่อสารผ่านพอร์ตอนุกรมLinuxOn Linux เราใช้ " minicom" เพื่อคุยกับพอร์ตอนุกรม ในการเริ่มต้น ให้เรียกใช้ "minicom -s" ที่คอนโซลเพื่อเข้าสู่เมนูการตั้งค่าของ minicom ไปที่ "การตั้งค่าพอร์ตอนุกรม" ตั้งค่าพารามิเตอร์ดังนี้:การกำหนดค่า Minicom บน Linuxจากนั้นกด Escape และใช้ "บันทึกการตั้งค่าเป็น dfl" เพื่อบันทึกการตั้งค่าเป็นค่าเริ่มต้น ตอนนี้คุณควรจะสามารถกด "Exit" และใช้ minicom เพื่อพูดคุยกับ NerdKit ได้แล้ว
แนะนำ:
Sound Sensor & Servo: Reactive Motion: 4 ขั้นตอน
Sound Sensor & Servo: Reactive Motion: ก่อนอื่นคุณต้องรวบรวมวัสดุที่เกี่ยวข้องเพื่อรวมวงจรนี้เข้าด้วยกัน
วิธีควบคุม Servo Motor Arduino Tutorial: 4 ขั้นตอน
วิธีควบคุม Servo Motor Arduino Tutorial: เฮ้พวก! ยินดีต้อนรับสู่บทช่วยสอนใหม่ของฉัน ฉันหวังว่าคุณจะสนุกกับคำสั่งก่อนหน้านี้ของฉัน "การควบคุมสเต็ปเปอร์มอเตอร์ขนาดใหญ่" วันนี้ ' ฉันกำลังโพสต์ thsi บทแนะนำข้อมูลเพื่อสอนพื้นฐานของการควบคุมเซอร์โวมอเตอร์ใด ๆ ฉันได้โพสต์ vid
รีโมท Servo Dropper สำหรับ Drone Fishing Super Neat: 7 ขั้นตอน
Remote Servo Dropper สำหรับ Drone Fishing Super Neat: นี่คือวิธีที่ฉันสร้างเซอร์โวหยดเล็ก ๆ น้อย ๆ ที่ยอดเยี่ยมอย่างรวดเร็วจากชิ้นส่วนที่ฉันได้นอนอยู่รอบ ๆ สิ่งนี้จะเหมาะสำหรับการตกปลาด้วยโดรน ทิ้งสิ่งของแบบสุ่มด้วยโดรนของคุณเพื่อความสนุกสนานเช่นการกินของว่างให้เพื่อน ๆ และวางน้ำ บอลลูนกับพวกเขา
Arduino Adafruit Servo Shield Power Module: 3 ขั้นตอน
Arduino Adafruit Servo Shield Power Module: โมดูลพลังงานนี้ออกแบบมาสำหรับ Arduino Uno ร่วมกับ Adafruit 16-Channel Servo Shield Adafruit Servo Shield เป็นส่วนเสริมที่ยอดเยี่ยมสำหรับ Arduino แต่ต้องใช้แหล่งจ่ายไฟ 5V วินาที ด้วยอุปกรณ์นี้ คุณยังคงต้องใช้ 5V
พอร์ต USB ของ NODEMcu ไม่ทำงาน? อัปโหลดโค้ดโดยใช้โมดูล USB เป็น TTL (FTDI) ใน 2 ขั้นตอน: 3 ขั้นตอน
พอร์ต USB ของ NODEMcu ไม่ทำงาน? อัปโหลดรหัสโดยใช้โมดูล USB เป็น TTL (FTDI) ใน 2 ขั้นตอน: เหนื่อยกับการเชื่อมต่อกับสายไฟจำนวนมากจากโมดูล USB เป็น TTL ไปยัง NODEMcu ให้ปฏิบัติตามคำแนะนำนี้เพื่ออัปโหลดรหัสในเวลาเพียง 2 ขั้นตอน หากพอร์ต USB ของ NODEMcu ใช้งานไม่ได้ อย่าเพิ่งตกใจ เป็นเพียงชิปไดรเวอร์ USB หรือขั้วต่อ USB