- ส่วนประกอบที่จำเป็น
- แผนภาพวงจรอุลตร้าโซนิค
- การเขียนโปรแกรม Arduino สำหรับ Ultrasonic Levitation
- การสร้าง Ultrasonic Levitation Setup
มันน่าตื่นเต้นมากที่จะเห็นสิ่งที่ลอยอยู่ในอากาศหรือฟรีพื้นที่ว่าเป็นสิ่งที่เป็นโครงการต่อต้านแรงโน้มถ่วงเป็นเรื่องเกี่ยวกับ วัตถุ (โดยทั่วไปคือกระดาษแผ่นเล็ก ๆ หรือเทอร์โมคอล) วางอยู่ระหว่างทรานสดิวเซอร์อัลตราโซนิกสองตัวซึ่งสร้างคลื่นเสียงอะคูสติก วัตถุนั้นลอยอยู่ในอากาศเนื่องจากคลื่นเหล่านี้ซึ่งดูเหมือนจะต่อต้านแรงโน้มถ่วง นี่ไม่ใช่แค่โครงการลอยน้ำ Arduino ที่ดูเท่แต่ยังมีแอพพลิเคชั่นที่ใช้งานได้จริงมากมาย นักวิจัยกำลังทำงานกับ Ultrasonic Robotic Grippers ซึ่งทำงานคล้ายกันมากและกริปเปอร์เหล่านี้มีประโยชน์ในการเคลื่อนย้ายวัตถุโดยไม่ต้องสัมผัส
ส่วนประกอบที่จำเป็น
- Arduino Uno / Arduino นาโน ATMEGA328P
- โมดูลอัลตราโซนิก HC-SR04
- IC หรือ L239d โมดูล H-Bridge L239D
- Vero Board Dotted Vero
- ไดโอด 4007
- ตัวเก็บประจุ (PF) 104
ข้อกำหนดเพิ่มเติมสำหรับแหล่งจ่ายไฟ 8v ถึง 12v
- ตัวควบคุมแรงดัน LM 7809
- ไดร์เวอร์พาวเวอร์ซัพพลาย 12V 2Amp
วัสดุเพิ่มเติม:สายเชื่อมต่อบางส่วน, ส่วนหัวของชาย, สายจัมเปอร์หญิงกับหญิง
แผนภาพวงจรอุลตร้าโซนิค
วงจร Arduino Levitation ที่สมบูรณ์แสดงไว้ด้านล่างและหลักการทำงานของวงจรนั้นง่ายมาก ส่วนประกอบหลักของโครงการนี้คือArduino, L239D motor driving IC และตัวแปลงสัญญาณอัลตราโซนิกที่รวบรวมจากโมดูลเซ็นเซอร์อัลตราโซนิก HCSR04 โดยทั่วไปเซ็นเซอร์อัลตราโซนิกจะส่งคลื่นอะคูสติกของสัญญาณความถี่ระหว่าง 25khz ถึง 50 kHz และในโครงการนี้เราใช้ตัวแปลงสัญญาณอัลตราโซนิก HCSR04 ก่อนหน้านี้เราได้สร้างโครงการเซ็นเซอร์อัลตราโซนิกหลายโครงการซึ่ง HCSR04 ส่วนใหญ่ใช้ในการวัดระยะทาง ในโครงการนี้เราได้บัดกรีตัวแปลงสัญญาณออกจากโมดูล
ตามแผ่นข้อมูลความถี่ในการทำงานของตัวแปลงสัญญาณอัลตราโซนิกนี้คือ 40 kHz ดังนั้นจุดประสงค์ของการใช้ Arduino และรหัสชิ้นเล็ก ๆ นี้คือการสร้างสัญญาณการสั่นความถี่สูง 40KHzสำหรับเซ็นเซอร์อัลตราโซนิกหรือตัวแปลงสัญญาณของฉันและพัลส์นี้จะใช้กับอินพุตของตัวขับมอเตอร์ดวล IC L239D (Pin 2 & 6 จาก Arduino A0 & A1 pins) เพื่อขับเคลื่อนตัวแปลงสัญญาณอัลตราโซนิก สุดท้ายเราใช้ความถี่สูงนี้สัญญาณ 40kHz สั่นพร้อมกับขับรถผ่านแรงดันขับรถ IC (ปกติ 8 แรงดันไฟฟ้า to12 ได้รับใน 8 THขาของ L239D IC, Vcc2) ใน transducer ล้ำ อันเป็นผลมาจากการที่ตัวแปลงสัญญาณอัลตราโซนิกสร้างคลื่นเสียงอะคูสติก. เราวางทรานสดิวเซอร์สองตัวหันหน้าเข้าหากันในทิศทางตรงกันข้ามในลักษณะที่เหลือช่องว่างระหว่างพวกมัน คลื่นเสียงอะคูสติกเดินทางระหว่างทรานสดิวเซอร์สองตัวและปล่อยให้วัตถุลอย
โปรดทราบว่า L293D มีอินพุตแรงดันไฟฟ้าคู่หนึ่งคือการจ่ายไฟให้กับ IC ซึ่งใช้พลังงานจาก Arduino 5v ในโครงการนี้และอีก Vcc2 (8 th) ที่ใช้กับแรงดันไฟฟ้าในการขับของส่วนประกอบเอาต์พุตและขา VCC นี้สามารถรับได้สูงสุด 36v IC นี้มี 2 Enable pins, 4 input-output pins, 4 ground pins. แนวคิดของการใช้ IC นี้มาจากแนวคิดของการใช้ไมโครคอนโทรลเลอร์และชิปนี้ซึ่งเราสามารถเปลี่ยนทิศทางและความเร็วของมอเตอร์ 2 ตัวทีละตัวโดยเพียงแค่ให้สัญญาณตรรกะหรือดิจิทัลจากไมโครคอนโทรลเลอร์
ในวงจรนี้เราใช้อินพุต IC L293D เพียงสองอินพุตขาอินพุต 1 (2) และขาอินพุต 2 (7) ในการเปิดใช้งานพินทั้งสองนี้เราต้องให้ IC Enable PIN 1 อยู่สูงดังนั้นเราจึงยิงพินนี้ไปยัง IC pin 16 ซึ่งเป็นอินพุต Vcc 1 หากต้องการทราบข้อมูลเพิ่มเติมโปรดปฏิบัติตาม L293D Datasheet
การใช้งานของตัวเก็บประจุ 100nF เป็นทางเลือกสำหรับเพียงแค่กดอำนาจ IC และเป็นแหล่งจ่ายไฟที่เราใช้โปรแกรมควบคุม 12V 2Amp LED แล้ววางแรงดันให้ 9v ใช้ควบคุมแรงดันไฟฟ้า IC LM7809 และอุปทาน 8 THขา L139D กับบริเวณที่พบบ่อย. ตามบอร์ด Arduino, Cc และ Arduino บอร์ด Arduino UNO รองรับอินพุต 7 ถึง 12 โวลต์ แต่จะปลอดภัยกว่าถ้าใส่ 9V Max
การเขียนโปรแกรม Arduino สำหรับ Ultrasonic Levitation
การเข้ารหัสนั้นง่ายมากเพียงไม่กี่บรรทัด การใช้รหัสเล็ก ๆ นี้ด้วยความช่วยเหลือของตัวจับเวลาและฟังก์ชันขัดจังหวะเรากำลังสร้างสูงหรือต่ำ (0/1) และสร้างสัญญาณการสั่นที่ 40Khz ไปยังหมุดเอาต์พุต Arduino A0 และ A1
ขั้นแรกเริ่มต้นด้วยอาร์เรย์กะระยะ
ไบต์ TP = 0b10101010;
และทุกๆพอร์ตที่สองจะได้รับสัญญาณตรงกันข้าม หลังจากนั้นภายใต้การตั้งค่าโมฆะเรากำหนดพอร์ตอะนาล็อกทั้งหมดเป็นเอาต์พุตโดยใช้โค้ดบรรทัดนี้
DDRC = 0b11111111;
จากนั้นเราเริ่มต้นตัวจับเวลา 1 และปิดใช้งานการขัดจังหวะทั้งหมดเพื่อตั้งค่าเป็นศูนย์
ตามรหัสนี้
noInterrupts (); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0;
จากนั้นตัวจับเวลาจะถูกกำหนดค่าให้ทริกเกอร์นาฬิกาขัดจังหวะเปรียบเทียบที่ 80KHZ Arduino ทำงานที่ 16000000 MHZ ÷ 200 = 80,000 kHz คลื่นสี่เหลี่ยมถูกสร้างขึ้นโดยใช้ฟังก์ชันนี้
OCR1A = 200; TCCR1B - = (1 << WGM12); TCCR1B - = (1 << CS10);
หลังจากนั้นบรรทัดนี้จะเปิดใช้งานเปรียบเทียบการขัดจังหวะตัวจับเวลา
TIMSK1 - = (1 << OCIE1A);
และสุดท้ายเปิดใช้งานการขัดจังหวะโดยใช้ส่วนของรหัสนี้
ขัดจังหวะ ();
การขัดจังหวะแต่ละครั้งจะกลับสถานะของพอร์ตอนาล็อกซึ่งจะเปลี่ยนสัญญาณคลื่น 80 kHz เป็นสัญญาณการขี่จักรยานเต็มคลื่นที่ 40Khz จากนั้นเราจะส่งค่าไปยังพอร์ต Arduino เอาต์พุต A0 และ A1
ISR (TIMER1_COMPA_vect) {PORTC = TP; TP = ~ TP; // สลับ TP สำหรับการรันครั้งต่อไป}
และไม่มีอะไรต้องใส่หรือจำเป็นในการวิ่งภายใต้ลูป
การสร้าง Ultrasonic Levitation Setup
โปรดทราบว่าสำหรับโครงการนี้การติดตั้งตัวแปลงสัญญาณอัลตราโซนิกอย่างถูกต้องเป็นสิ่งสำคัญ พวกเขาควรหันหน้าเข้าหากันซึ่งมีความสำคัญมากและควรอยู่ในแนวเดียวกันเพื่อให้คลื่นเสียงอัลตราโซนิกสามารถเดินทางและตัดกันในทิศทางตรงกันข้าม สำหรับสิ่งนี้คุณสามารถใช้ไม้ชิ้นเล็ก ๆ สองชิ้นหรือแผ่น MD น็อตน็อตและกาว คุณอาจทำสองรูเพื่อให้พอดีกับตัวแปลงสัญญาณอย่างสมบูรณ์โดยเครื่องเจาะ บนขาตั้งคุณสามารถแขวนการจัดเรียงตัวแปลงสัญญาณอัลตราโซนิกได้
ในกรณีนี้ฉันใช้กระดาษแข็งสองชิ้นแล้วแก้ไข Ultrasonic Transducer ด้วยความช่วยเหลือของกาวจากปืนกาว ต่อมาสำหรับการสร้างขาตั้งฉันใช้กล่องปลอกสายไฟธรรมดาและแก้ไขทุกอย่างด้วยกาว
นี่คือภาพบางส่วนของการลอยตัวแบบอัลตราโซนิกที่แสดงการทำงานของโครงการ
การลอยตัวแบบอัลตราโซนิกหรือการลอยแบบอะคูสติกยังใช้งานได้หากด้านหนึ่งติดตั้งตัวแปลงสัญญาณอัลตราโซนิก แต่จะต้องใช้ตัวสะท้อนแสงในกรณีนั้นซึ่งจะทำหน้าที่เป็นอุปสรรคเพื่อให้สามารถใช้ในโฮเวอร์บอร์ดในอนาคตและการขนส่งต่อต้านแรงโน้มถ่วง คุณสามารถดูวิดีโอการทำงานที่สมบูรณ์ด้านล่าง
ฉันหวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้างสิ่งที่สนุกสนาน หากคุณมีคำถามใด ๆ โปรดทิ้งไว้ในส่วนความคิดเห็นด้านล่างคุณยังสามารถใช้ฟอรัมของเราสำหรับคำถามทางเทคนิคอื่น ๆ