- วัสดุที่จำเป็น
- Magnetometer คืออะไรและทำงานอย่างไร?
- HMC5883L Sensor Module ทำงานอย่างไร
- แผนภูมิวงจรรวม
- การประดิษฐ์ PCB สำหรับ Digital Compass
- การประกอบ PCB
- การเขียนโปรแกรม Arduino
สมองของมนุษย์สร้างขึ้นจากชั้นโครงสร้างที่ซับซ้อนซึ่งช่วยให้เราเป็นสิ่งมีชีวิตที่โดดเด่นบนโลก ตัวอย่างเช่นเยื่อหุ้มสมองส่วนปลายในสมองของคุณสามารถให้ความรู้สึกถึงทิศทางที่ช่วยให้คุณนำทางไปยังสถานที่ที่คุณไม่คุ้นเคยได้อย่างง่ายดาย แต่แตกต่างจากเราหุ่นยนต์และยานพาหนะแอเรียลไร้คนขับต้องการบางสิ่งบางอย่างเพื่อรับความรู้สึกของทิศทางนี้เพื่อที่พวกเขาจะได้เคลื่อนที่ได้โดยอัตโนมัติในภูมิประเทศและภูมิประเทศใหม่ ๆ หุ่นยนต์ที่แตกต่างกันใช้เซ็นเซอร์ประเภทต่างๆเพื่อให้บรรลุเป้าหมายนี้ แต่ที่ใช้กันทั่วไปคือแมกนีโตมิเตอร์ซึ่งสามารถแจ้งให้หุ่นยนต์ทราบว่ากำลังหันไปทางไหน สิ่งนี้ไม่เพียง แต่ช่วยให้หุ่นยนต์รับรู้ทิศทาง แต่ยังผลัดกันไปในทิศทางที่กำหนดไว้ล่วงหน้าและทูตสวรรค์
เนื่องจากเซ็นเซอร์สามารถระบุภูมิศาสตร์กราฟิกเหนือใต้ตะวันออกและตะวันตกมนุษย์เราจึงสามารถใช้มันได้ในบางครั้งเมื่อจำเป็น ดังนั้นในบทความนี้ให้เราพยายามทำความเข้าใจว่าเซ็นเซอร์ Magnetometer ทำงานอย่างไรและจะเชื่อมต่อกับไมโครคอนโทรลเลอร์เช่น Arduinoได้อย่างไร ที่นี่เราจะสร้างเข็มทิศดิจิตอลที่ยอดเยี่ยมซึ่งจะช่วยเราในการค้นหาทิศทางโดยการส่องไฟ LED ที่ชี้ไปทางทิศเหนือ เข็มทิศดิจิตอลนี้ถูกสร้างขึ้นอย่างประณีตบน PCB จาก PCBGOGO เพื่อให้ฉันสามารถพกพาได้ในครั้งต่อไปเมื่อฉันออกไปในป่าและหวังว่าฉันจะหลงทางเพียงเพื่อใช้สิ่งนี้ในการหาทางกลับบ้าน มาเริ่มกันเลย.
วัสดุที่จำเป็น
- Arduino Pro mini
- เซ็นเซอร์ HMC5883L Magnetometer
- ไฟ LED - 8Nos
- ตัวต้านทาน 470 โอห์ม - 8Nos
- แจ็คบาร์เรล
- ผู้ผลิต PCB ที่เชื่อถือได้เช่น PCBgogo
- FTDI Programmer สำหรับ mini
- พีซี / แล็ปท็อป
Magnetometer คืออะไรและทำงานอย่างไร?
ก่อนที่เราจะดำดิ่งสู่วงจรเรามาทำความเข้าใจเกี่ยวกับแมกนีโตมิเตอร์และวิธีการทำงานกันก่อน ตามชื่อที่แนะนำคำว่า Magneto ไม่ได้หมายถึงมนุษย์กลายพันธุ์ที่บ้าคลั่งในความมหัศจรรย์ที่สามารถควบคุมโลหะได้เพียงแค่เล่นเปียโนกลางอากาศ โอ้โห! แต่ฉันชอบผู้ชายคนนั้นเขาเท่
Magnetometer เป็นอุปกรณ์ชิ้นหนึ่งที่สามารถตรวจจับขั้วแม่เหล็กของโลกและชี้ทิศทางตามนั้น เราทุกคนรู้ดีว่าโลกเป็นแม่เหล็กทรงกลมขนาดใหญ่ที่มีขั้วโลกเหนือและขั้วโลกใต้ และมีสนามแม่เหล็กเพราะมัน Magnetometer ตรวจจับสนามแม่เหล็กนี้และขึ้นอยู่กับทิศทางของสนามแม่เหล็กที่สามารถตรวจจับทิศทางที่เรากำลังเผชิญอยู่
HMC5883L Sensor Module ทำงานอย่างไร
HMC5883Lเป็นเซ็นเซอร์ magnetometerจะเป็นสิ่งเดียวกัน มี HMC5883L IC อยู่ซึ่งมาจาก Honeywell IC นี้มีวัสดุต้านทานแม่เหล็ก 3 ชิ้นอยู่ภายในซึ่งจัดอยู่ในแกน x, y และ z ปริมาณของกระแสไฟฟ้าที่ไหลผ่านวัสดุเหล่านี้มีความไวต่อสนามแม่เหล็กโลก ดังนั้นโดยการวัดการเปลี่ยนแปลงของกระแสที่ไหลผ่านวัสดุเหล่านี้เราสามารถตรวจจับการเปลี่ยนแปลงของสนามแม่เหล็กโลกได้ เมื่อการเปลี่ยนแปลงคือสนามแม่เหล็กถูกดูดซับแล้วค่าสามารถส่งไปยังคอนโทรลเลอร์แบบฝังตัวใด ๆ เช่นไมโครคอนโทรลเลอร์หรือโปรเซสเซอร์ผ่านโปรโตคอล I2C
เนื่องจากเซ็นเซอร์ทำงานโดยการตรวจจับสนามแม่เหล็กค่าเอาต์พุตจะได้รับผลกระทบอย่างมากหากวางโลหะไว้ใกล้ ๆ พฤติกรรมนี้สามารถใช้ประโยชน์เพื่อใช้เซ็นเซอร์เหล่านี้เป็นเครื่องตรวจจับโลหะได้เช่นกัน ควรใช้ความระมัดระวังไม่ให้แม่เหล็กเข้าใกล้เซ็นเซอร์นี้เนื่องจากสนามแม่เหล็กแรงสูงจากแม่เหล็กอาจทำให้เกิดค่าที่ผิดพลาดบนเซ็นเซอร์
ความแตกต่างระหว่าง HMC5883L และ QMC5883L
มีความสับสนทั่วไปเกี่ยวกับเซ็นเซอร์เหล่านี้สำหรับผู้เริ่มต้นหลายคน เนื่องจากผู้ขายบางราย (ส่วนใหญ่จริง ๆ) ขายเซ็นเซอร์ QMC5883L แทน HMC5883L ดั้งเดิมจาก Honeywell ส่วนใหญ่เป็นเพราะ QMC5883L มีราคาถูกกว่าโมดูล HMC5883L ส่วนที่น่าเศร้าคือการทำงานของเซ็นเซอร์ทั้งสองนี้แตกต่างกันเล็กน้อยและไม่สามารถใช้รหัสเดียวกันสำหรับทั้งสองอย่างได้ เนื่องจากที่อยู่ I2C ของเซ็นเซอร์ทั้งสองไม่เหมือนกัน รหัสที่ให้ในบทช่วยสอนนี้จะใช้ได้เฉพาะกับ QMC5883Lโมดูลเซ็นเซอร์ที่มีอยู่ทั่วไปเท่านั้น
หากต้องการทราบว่าคุณมีเซ็นเซอร์รุ่นใดคุณเพียงแค่ต้องมองขึ้นไปที่ IC อย่างใกล้ชิดเพื่ออ่านสิ่งที่เขียนไว้ด้านบน ถ้ามันเขียนบางอย่างเช่นL883 แสดงว่าเป็น HMC58836L และถ้ามันเขียนบางอย่างเช่นDA5883 แสดงว่าเป็น QMC5883L IC โมดูลทั้งสองแสดงในภาพด้านล่างเพื่อให้เข้าใจง่าย
แผนภูมิวงจรรวม
วงจรสำหรับDigital Compass ที่ใช้ Arduinoนี้ค่อนข้างง่ายเราต้องเชื่อมต่อเซ็นเซอร์ HMC5883L กับ Arduino และเชื่อมต่อ LED 8 ดวงเข้ากับพิน GPIO ของ Arduino Pro mini แผนภาพวงจรทั้งหมดแสดงอยู่ด้านล่าง
โมดูลเซนเซอร์มี 5 ขาออกซึ่ง DRDY (ข้อมูล Ready) ไม่ได้ใช้ในโครงการของเราเนื่องจากเรามีการดำเนินงานในโหมดเซ็นเซอร์อย่างต่อเนื่อง Vcc และพินกราวด์ใช้เพื่อจ่ายไฟให้กับโมดูลด้วย 5V จากบอร์ด Arduino SCL และ SDA คือสายบัสสื่อสาร I2C ที่เชื่อมต่อกับพิน A4 และ A5 I2C ของ Arduino Pro mini ตามลำดับ เนื่องจากตัวโมดูลเองมีตัวต้านทานแรงดึงสูงบนเส้นจึงไม่จำเป็นต้องเพิ่มจากภายนอก
เพื่อระบุทิศทางเราใช้ LED 8 ดวงซึ่งทั้งหมดนี้เชื่อมต่อกับพิน GPIO ของ Arduino ผ่านตัวต้านทาน จำกัด กระแสที่ 470 โอห์ม วงจรสมบูรณ์ใช้พลังงานจากแบตเตอรี่ 9V ผ่านแจ็คบาร์เรล 9V นี้มีให้โดยตรงกับขา Vin ของ Arduino ซึ่งควบคุมเป็น 5V โดยใช้ตัวควบคุมออนบอร์ดบน Arduino จากนั้น 5V นี้จะใช้เพื่อจ่ายไฟให้กับเซ็นเซอร์และ Arduino ด้วย
การประดิษฐ์ PCB สำหรับ Digital Compass
แนวคิดของวงจรคือการวาง LED 8 ดวงในลักษณะวงกลมเพื่อให้ Led แต่ละดวงชี้ไปทั้ง 8 ทิศทาง ได้แก่ เหนือ, ตะวันออกเฉียงเหนือ, ตะวันออก, ตะวันออกเฉียงใต้, ใต้, ตะวันตกเฉียงใต้, ตะวันตกและตะวันตกเฉียงเหนือตามลำดับ ดังนั้นจึงไม่ใช่เรื่องง่ายที่จะจัดเรียงอย่างเรียบร้อยบนเขียงหั่นขนมหรือแม้แต่บนกระดานที่สมบูรณ์แบบสำหรับเรื่องนั้น การพัฒนา PCB สำหรับวงจรนี้จะทำให้ดูเรียบร้อยและใช้งานง่ายขึ้น ดังนั้นฉันจึงเปิดซอฟต์แวร์ออกแบบ PCB ของฉันและวาง LED และตัวต้านทานในรูปแบบวงกลมที่เป็นระเบียบและเชื่อมต่อแทร็กเพื่อสร้างการเชื่อมต่อ การออกแบบของฉันมีลักษณะดังนี้ด้านล่างเมื่อเสร็จสิ้น คุณยังสามารถดาวน์โหลดไฟล์ Gerber ได้จากลิงค์ด้านล่าง
- ดาวน์โหลดไฟล์ Gerber สำหรับ Digital Compass PCB
ฉันได้ออกแบบให้เป็นบอร์ดสองด้านเนื่องจากฉันต้องการให้ Arduino อยู่ที่ด้านล่างของ PCB เพื่อไม่ให้เสียรูปลักษณ์ที่ด้านบนของ PCB ของฉัน หากคุณกังวลว่าคุณจะต้องจ่ายเงินสูงสำหรับ PCB สองด้านแล้วรอฉันมีสินค้าใหม่ที่ดี
ตอนนี้การออกแบบของเราพร้อมแล้วก็ถึงเวลาประดิษฐ์ ในการทำ PCB นั้นค่อนข้างง่ายเพียงทำตามขั้นตอนด้านล่างนี้
ขั้นตอนที่ 1: เข้าสู่ www.pcbgogo.com ลงทะเบียนหากนี่เป็นครั้งแรกของคุณ จากนั้นในแท็บ PCB Prototype ให้ป้อนขนาดของ PCB ของคุณจำนวนเลเยอร์และจำนวน PCB ที่คุณต้องการ PCB ของฉันคือ 80 ซม. × 80 ซม. ดังนั้นแท็บจึงมีลักษณะดังนี้ด้านล่าง
ขั้นตอนที่ 2:ดำเนินการต่อโดยคลิกที่ปุ่ม ใบเสนอราคา ทันที คุณจะเข้าสู่หน้าที่ตั้งค่าพารามิเตอร์เพิ่มเติมหากจำเป็นเช่นวัสดุที่ใช้ระยะห่างแทร็กเป็นต้น แต่ส่วนใหญ่แล้วค่าเริ่มต้นจะใช้ได้ดี สิ่งเดียวที่เราต้องพิจารณาที่นี่คือราคาและเวลา ดังที่คุณเห็นเวลาสร้างเพียง 2-3 วันและมีค่าใช้จ่ายเพียง $ 5 สำหรับ PSB ของเรา จากนั้นคุณสามารถเลือกวิธีการจัดส่งที่ต้องการตามความต้องการของคุณ
ขั้นตอนที่ 3:ขั้นตอนสุดท้ายคือการอัปโหลดไฟล์ Gerber และดำเนินการชำระเงิน เพื่อให้แน่ใจว่ากระบวนการนี้ราบรื่น PCBGOGO ตรวจสอบว่าไฟล์ Gerber ของคุณถูกต้องหรือไม่ก่อนดำเนินการชำระเงิน ด้วยวิธีนี้คุณจะมั่นใจได้ว่า PCB ของคุณเป็นมิตรต่อการผลิตและจะไปถึงคุณตามที่มุ่งมั่น
การประกอบ PCB
หลังจากสั่งซื้อบอร์ดแล้วมันก็มาถึงฉันหลังจากผ่านไปหลายวันแม้ว่าผู้ให้บริการจัดส่งจะอยู่ในกล่องบรรจุที่มีฉลากอย่างดีและเช่นเคยคุณภาพของ PCB นั้นยอดเยี่ยม ฉันกำลังแบ่งปันรูปภาพบางส่วนของบอร์ดด้านล่างเพื่อให้คุณตัดสิน
ฉันเปิดแกนบัดกรีและเริ่มประกอบบอร์ด เนื่องจาก Footprints แผ่นรองรอยต่อและซิลค์สกรีนนั้นมีรูปร่างและขนาดที่เหมาะสมอย่างสมบูรณ์แบบฉันจึงไม่มีปัญหาในการประกอบบอร์ด บอร์ดก็พร้อมใช้งานในเวลาเพียง 10 นาทีนับจากแกะกล่อง
รูปภาพของบอร์ดหลังการบัดกรีแสดงอยู่ด้านล่าง
การเขียนโปรแกรม Arduino
เมื่อฮาร์ดแวร์ของเราพร้อมแล้วให้เราตรวจสอบโปรแกรมที่ต้องอัปโหลดลงในบอร์ด Arduino ของเรา วัตถุประสงค์ของรหัสคือการอ่านข้อมูลจากเซ็นเซอร์ QMC5883L magnetometer และแปลงเป็นองศา (0-360) เมื่อเรารู้ระดับแล้วเราต้องเปิดไฟ LED เพื่อชี้ทิศทางเฉพาะ ทิศทางที่ฉันใช้ในโปรแกรมนี้คือทิศเหนือ ดังนั้นไม่ว่าคุณจะอยู่ที่ไหนจะมีไฟ LED เพียงดวงเดียวที่ส่องสว่างบนบอร์ดของคุณและทิศทางของ LED จะระบุทิศทางทิศเหนือ เมื่อสามารถคำนวณทิศทางอื่นได้ในภายหลังก็เป็นที่ทราบทิศทางเดียว
รหัสที่สมบูรณ์สำหรับโครงการเข็มทิศดิจิทัลนี้มีอยู่ที่ส่วนท้ายของหน้านี้ คุณสามารถอัปโหลดโดยตรงบนบอร์ดของคุณหลังจากรวมไลบรารีแล้วคุณก็พร้อมที่จะไป แต่ถ้าคุณอยากรู้