สารบัญ:

มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python: 6 ขั้นตอน
มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python: 6 ขั้นตอน

วีดีโอ: มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python: 6 ขั้นตอน

วีดีโอ: มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python: 6 ขั้นตอน
วีดีโอ: ADXL335: Raspberry Pi Interfacing with MEMS Sensor - 3 Axis Accelerometer 2024, พฤศจิกายน
Anonim
มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python
มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python

คิดถึงแกดเจ็ตที่สามารถตรวจสอบจุดที่ Offroader ของคุณเอียงไปทางค้างอยู่ จะเป็นเรื่องที่น่ายินดีหรือไม่หากมีคนปรับเปลี่ยนเมื่อมีโอกาสพลิกคว่ำ เห็นได้ชัดว่าใช่ มันจะเป็นประโยชน์อย่างแท้จริงกับผู้ที่รักการเดินทางบนภูเขาและการเดินทางเพื่อธุรกิจ

ไม่ต้องสงสัยเลยว่า ช่วงเวลาที่ยอดเยี่ยมอย่างแท้จริงของการประเมินการคิดขั้นสูง IoT มาถึงแล้ว ในฐานะผู้ชื่นชอบแกดเจ็ตและการเขียนโปรแกรม เราเชื่อว่า Raspberry Pi ซึ่งเป็นไมโครลินุกซ์พีซีได้ปฏิบัติต่อความสามารถในการสร้างสรรค์ของผู้คนโดยทั่วไป โดยถือเป็นวิธีการอันล้ำสมัย แล้วผลลัพธ์ที่เป็นไปได้ว่าสิ่งที่เราสามารถทำได้ในกรณีที่เรามี Raspberry Pi และ Accelerometer แบบ 3 แกนอยู่ใกล้ ๆ คืออะไร? เราควรค้นพบ! ในงานนี้ เราจะสัมผัสได้ถึงความเร่งใน 3 แกน X, Y และ Z โดยใช้ Raspberry Pi และ ADXL345 ซึ่งเป็นมาตรความเร่งแบบ 3 แกน ดังนั้นเราควรสังเกตการเดินทางนี้เพื่อสร้างกรอบการวัดความเร่ง 3 มิติขึ้นหรือ G-Force

ขั้นตอนที่ 1: ฮาร์ดแวร์พื้นฐานที่เราต้องการ

ฮาร์ดแวร์พื้นฐานที่เราต้องการ
ฮาร์ดแวร์พื้นฐานที่เราต้องการ
ฮาร์ดแวร์พื้นฐานที่เราต้องการ
ฮาร์ดแวร์พื้นฐานที่เราต้องการ
ฮาร์ดแวร์พื้นฐานที่เราต้องการ
ฮาร์ดแวร์พื้นฐานที่เราต้องการ

ปัญหาของเรามีน้อยลงเนื่องจากเรามีสิ่งต่างๆ มากมายรอดำเนินการ อย่างไรก็ตาม เรารู้ว่าการที่คนอื่นประกอบชิ้นส่วนที่ถูกต้องในช่วงเวลาที่เหมาะสมจากจุดที่เหมาะสมเป็นเรื่องยากลำบากเพียงใด และนั่นก็เป็นเรื่องที่สมเหตุสมผลโดยไม่คำนึงถึงเงินแต่ละบาท ดังนั้นเราจะช่วยคุณในทุกภูมิภาค อ่านต่อไปนี้เพื่อรับรายการชิ้นส่วนทั้งหมด

1. ราสเบอร์รี่ปี่

ขั้นตอนแรกคือการได้มาซึ่งบอร์ด Raspberry Pi คอมพิวเตอร์ขนาดเล็กที่ใช้พลังงานต่ำนี้เป็นพื้นฐานที่ราคาถูกและโดยทั่วไปสำหรับธุรกิจอิเล็กทรอนิกส์ Internet of Things (IoT) เมืองอัจฉริยะ การศึกษาในโรงเรียน

2. I2C Shield สำหรับ Raspberry Pi

สิ่งสำคัญที่ Raspberry Pi ขาดหายไปอย่างแท้จริงคือพอร์ตI²C ด้วยเหตุนี้ ตัวเชื่อมต่อ TOUTPI2 I²C จึงช่วยให้คุณใช้ Rasp Pi กับอุปกรณ์ I²C หลายตัวได้ เข้าถึงได้จาก DCUBE Store

3. มาตรความเร่งแบบ 3 แกน ADXL345

ADXL345 ผลิตโดย Analog Devices เป็นมาตรความเร่งแบบ 3 แกนที่ใช้พลังงานต่ำพร้อมการวัดแบบ 13 บิตความละเอียดสูงที่สูงถึง ±16g เราได้รับเซ็นเซอร์นี้จาก DCUBE Store

4. สายเคเบิลเชื่อมต่อ

เรามีสายเชื่อมต่อ I2C ที่เข้าถึงได้ที่ร้าน DCUBE

5. สายไมโคร USB

Raspberry Pi ที่สับสนน้อยที่สุด แต่เข้มงวดที่สุดเท่าที่จำเป็นต่อการใช้พลังงานคือ Raspberry Pi! วิธีการที่ง่ายดายที่สุดในการเพิ่มพลังให้กับ Raspberry Pi คือการใช้สาย Micro USB

6. การเข้าถึงเว็บเป็นสิ่งจำเป็น

การเข้าถึงเว็บสามารถทำได้ผ่านสายเคเบิลอีเทอร์เน็ต (LAN) ที่เชื่อมโยงกับเครือข่ายท้องถิ่นและเว็บ ในทางกลับกัน คุณสามารถเชื่อมโยงกับเครือข่ายไร้สายโดยใช้ดองเกิลไร้สาย USB ซึ่งจะต้องมีการกำหนดค่า

7. สาย HDMI/การเข้าถึงระยะไกล

ด้วยสาย HDMI บนบอร์ด คุณสามารถเชื่อมต่อกับทีวีดิจิตอลหรือจอภาพได้ ต้องสำรองเงินสด! Raspberry Pi สามารถใช้กลยุทธ์ที่โดดเด่นเช่น SSH และการเข้าถึงผ่านเว็บได้จากระยะไกล คุณสามารถใช้ซอฟต์แวร์โอเพนซอร์ส PuTTY ได้

ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์

การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์

ทำวงจรตามแผนผังที่ปรากฏ ร่างโครงร่างและดำเนินการตามการกำหนดค่าอย่างจงใจ

การเชื่อมต่อ Raspberry Pi และ I2C Shield

เหนือสิ่งอื่นใด ให้ใช้ Raspberry Pi และมองหา I2C Shield บนนั้น กด Shield อย่างประณีตเหนือพิน GPIO ของ Pi แล้วเราก็เสร็จสิ้นขั้นตอนง่ายๆ อย่างพาย (ดูสแน็ป)

การเชื่อมต่อของเซนเซอร์และ Raspberry Pi

นำเซ็นเซอร์และเชื่อมต่อสายเคเบิล I2C ด้วย สำหรับการทำงานที่เหมาะสมของสายเคเบิลนี้ โปรดเรียกคืนเอาต์พุต I2C ที่เชื่อมโยงกับอินพุต I2C เสมอ ต้องดำเนินการเช่นเดียวกันสำหรับ Raspberry Pi ที่มี I2C shield ติดตั้งอยู่เหนือหมุด GPIO

เรากำหนดการใช้สายเคเบิล I2C เนื่องจากเป็นการหักล้างข้อกำหนดสำหรับการอ่านพินเอาต์ การบัดกรี และอาการป่วยไข้ที่เกิดจากความผิดพลาดเพียงเล็กน้อย ด้วยสายเคเบิลแบบพลักแอนด์เพลย์พื้นฐานนี้ คุณสามารถแนะนำ สลับอุปกรณ์ หรือเพิ่มอุปกรณ์อื่นๆ ในแอปพลิเคชันได้อย่างง่ายดาย ทำให้สิ่งต่าง ๆ ไม่ซับซ้อน

หมายเหตุ: สายสีน้ำตาลควรเป็นไปตามการเชื่อมต่อกราวด์ (GND) ระหว่างเอาต์พุตของอุปกรณ์เครื่องหนึ่งกับอินพุตของอุปกรณ์อื่น

เครือข่ายเว็บคือคีย์

เพื่อให้การลงทุนของเราประสบความสำเร็จ เราต้องการการเชื่อมต่อเว็บสำหรับ Raspberry Pi ของเรา สำหรับสิ่งนี้ คุณมีทางเลือกอื่น เช่น การเชื่อมต่อสายเคเบิลอีเทอร์เน็ต (LAN) กับระบบโฮม อย่างไรก็ตาม เส้นทางที่เป็นประโยชน์คือการใช้ตัวเชื่อมต่อ WiFi เพื่อเป็นทางเลือกหนึ่ง ในบางครั้ง คุณต้องมีไดรเวอร์จึงจะใช้งานได้ ดังนั้นให้เอนเอียงไปทางลีนุกซ์ในภาพ

พาวเวอร์ซัพพลาย

เสียบสาย Micro USB เข้ากับแจ็คไฟของ Raspberry Pi สว่างขึ้นและเราดีไป

การเชื่อมต่อกับหน้าจอ

เราสามารถเชื่อมต่อสาย HDMI กับหน้าจออื่นได้ ในบางกรณี คุณต้องใช้ Raspberry Pi โดยไม่ต้องเชื่อมต่อกับหน้าจอ หรือคุณอาจต้องดูข้อมูลบางส่วนจากที่อื่น เป็นไปได้ว่ามีแนวทางที่เป็นนวัตกรรมและชาญฉลาดทางการเงินในการทำเช่นนั้น หนึ่งในนั้นกำลังใช้งาน - SSH (การเข้าสู่ระบบบรรทัดคำสั่งระยะไกล) คุณยังสามารถใช้ซอฟต์แวร์ PuTTY สำหรับสิ่งนั้นได้เช่นกัน

ขั้นตอนที่ 3: การเข้ารหัส Python สำหรับ Raspberry Pi

การเข้ารหัส Python สำหรับ Raspberry Pi
การเข้ารหัส Python สำหรับ Raspberry Pi

รหัส Python สำหรับ Raspberry Pi และ ADXL345 Sensor สามารถเข้าถึงได้ใน Github Repository ของเรา

ก่อนดำเนินการกับโค้ด ตรวจสอบให้แน่ใจว่าคุณได้อ่านหลักเกณฑ์ที่ให้ไว้ในเอกสาร Readme และตั้งค่า Raspberry Pi ของคุณตามนั้น มันจะหยุดชั่วครู่หนึ่งเพื่อทำอย่างนั้น

มาตรความเร่งเป็นอุปกรณ์ที่วัดความเร่งที่เหมาะสม ความเร่งที่เหมาะสมไม่เหมือนกับความเร่งเชิงพิกัด (อัตราการเปลี่ยนแปลงของความเร็ว) มาตรวัดความเร่งรุ่นแกนเดียวและหลายแกนสามารถเข้าถึงได้เพื่อระบุขนาดและทิศทางของการเร่งความเร็วที่เหมาะสม เป็นปริมาณเวกเตอร์ และสามารถใช้เพื่อรับรู้การวางแนว การเร่งพิกัด การสั่นสะท้าน การกระแทก และการตกลงมาในตัวกลางต้านทาน

รหัสมีความชัดเจนต่อหน้าคุณและอยู่ในโครงสร้างที่ตรงไปตรงมาที่สุดที่คุณสามารถจินตนาการได้และคุณไม่ควรมีปัญหาใด ๆ

# แจกจ่ายด้วยใบอนุญาตฟรี # ใช้งานได้ตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือให้เปล่า หากเหมาะสมกับใบอนุญาตของงานที่เกี่ยวข้อง # ADXL345 # รหัสนี้ออกแบบมาเพื่อทำงานร่วมกับ ADXL345_I2CS I2C Mini Module จาก dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -โมดูล/

นำเข้า smbus

เวลานำเข้า

# รับรถบัส I2C

รถบัส = smbus. SMBus(1)

# ADXL345 ที่อยู่ 0x53 (83)

# เลือกการลงทะเบียนอัตราแบนด์วิดท์, 0x2C(44) # 0x0A(10) โหมดปกติ, อัตราข้อมูลขาออก = 100 Hz bus.write_byte_data(0x53, 0x2C, 0x0A) # ADXL345 address, 0x53(83) # เลือกการลงทะเบียนการควบคุมพลังงาน, 0x2D(45) # 0x08(08) ปิดใช้งานโหมดสลีปอัตโนมัติ bus.write_byte_data(0x53, 0x2D, 0x08) # ที่อยู่ ADXL345, 0x53 (83) # เลือกการลงทะเบียนรูปแบบข้อมูล, 0x31 (49) # 0x08 (08) การทดสอบตัวเองถูกปิดใช้งาน, 4 สาย อินเทอร์เฟซ # ความละเอียดเต็ม, ช่วง = +/-2g bus.write_byte_data(0x53, 0x31, 0x08)

เวลานอน(0.5)

# ADXL345 ที่อยู่ 0x53 (83)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x32(50), 2 ไบต์ # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data(0x53, 0x32) data1 = bus.read_byte_data(0x53, 0x33)

# แปลงข้อมูลเป็น 10 บิต

xAccl = ((data1 & 0x03) * 256) + data0 ถ้า xAccl > 511: xAccl -= 1024

# ADXL345 ที่อยู่ 0x53 (83)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x34(52), 2 ไบต์ # Y-Axis LSB, Y-Axis MSB data0 = bus.read_byte_data(0x53, 0x34) data1 = bus.read_byte_data(0x53, 0x35)

# แปลงข้อมูลเป็น 10 บิต

yAccl = ((data1 & 0x03) * 256) + data0 ถ้า yAccl > 511: yAccl -= 1024

# ADXL345 ที่อยู่ 0x53 (83)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x36(54), 2 ไบต์ # แกน Z LSB, แกน Z MSB data0 = bus.read_byte_data(0x53, 0x36) data1 = bus.read_byte_data(0x53, 0x37)

# แปลงข้อมูลเป็น 10 บิต

zAccl = ((data1 & 0x03) * 256) + data0 ถ้า zAccl > 511: zAccl -= 1024

# ส่งออกข้อมูลไปยังหน้าจอ

พิมพ์ "ความเร่งในแกน X: %d" %xAccl พิมพ์ "ความเร่งในแกน Y: %d" %yAccl พิมพ์ "การเร่งในแกน Z: %d" %zAccl

ขั้นตอนที่ 4: การใช้งานจริงของโค้ด

การปฏิบัติจริงของรหัส
การปฏิบัติจริงของรหัส

ดาวน์โหลด (หรือ git pull) รหัสจาก Github และเปิดใน Raspberry Pi

รันคำสั่งเพื่อคอมไพล์และอัพโหลดโค้ดในเทอร์มินัลและดูผลลัพธ์บนมอนิเตอร์ อีกสักครู่จะแสดงพารามิเตอร์ทั้งหมด หลังจากทำให้แน่ใจว่าทุกอย่างทำงานได้อย่างง่ายดาย คุณสามารถดำเนินการนี้ให้มากขึ้น

ขั้นตอนที่ 5: แอปพลิเคชันและคุณสมบัติ

ADXL345 เป็นมาตรความเร่งแบบ 3 แกนที่มีขนาดเล็ก บาง และใช้พลังงานต่ำเป็นพิเศษ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ADXL345 เหมาะสำหรับแอปพลิเคชันโทรศัพท์มือถือ โดยจะวัดปริมาณการเร่งความเร็วแบบคงที่ของแรงโน้มถ่วงในแอปพลิเคชันตรวจจับการเอียงและนอกจากนี้ การเร่งแบบไดนามิกที่จะเกิดขึ้นเนื่องจากการเคลื่อนไหวหรือการกระแทก แอปพลิเคชันอื่นๆ ได้แก่ โทรศัพท์มือถือ อุปกรณ์ทางการแพทย์ อุปกรณ์เล่นเกมและอุปกรณ์ชี้ตำแหน่ง เครื่องมือวัดทางอุตสาหกรรม อุปกรณ์นำทางส่วนบุคคล และการป้องกันฮาร์ดดิสก์ไดรฟ์ (HDD)

ขั้นตอนที่ 6: บทสรุป

หวังว่างานนี้จะเป็นแรงบันดาลใจให้ทดลองต่อไป เซ็นเซอร์ I2C นี้มีความยืดหยุ่นเป็นพิเศษ ราคาถูก และเข้าถึงได้ เนื่องจากเป็นระบบที่ไม่ถาวรในระดับที่ดี มีวิธีที่น่าสนใจที่คุณสามารถขยายงานนี้และปรับปรุงได้

ตัวอย่างเช่น คุณสามารถเริ่มต้นด้วยแนวคิดเกี่ยวกับ Inclinometer โดยใช้ ADXL345 และ Raspberry Pi ในโครงการข้างต้น เราได้ใช้การคำนวณพื้นฐาน คุณสามารถกำหนดรหัสสำหรับค่า G มุมเอียง (หรือเอียง) ระดับความสูงหรือความลาดเอียงของวัตถุตามแรงโน้มถ่วงได้ จากนั้นคุณสามารถตรวจสอบตัวเลือกล่วงหน้า เช่น มุมการหมุนสำหรับการม้วน มาตรความเร่งนี้แสดง 3-D G-Forces คุณจึงสามารถใช้เซ็นเซอร์นี้ได้หลายวิธี

เพื่อความสบายใจของคุณ เรามีวิดีโอฝึกสอนที่น่าสนใจบน YouTube ซึ่งอาจช่วยคุณในการตรวจสอบได้ เชื่อมั่นว่าการลงทุนครั้งนี้จะกระตุ้นให้เกิดการสำรวจต่อไป พิจารณาต่อไป! อย่าลืมที่จะแสวงหาเมื่อมีมากขึ้นเรื่อย ๆ

แนะนำ: