- ส่วนประกอบที่จำเป็น
- ADXL335 Accelerometer
- แผนภูมิวงจรรวม
- Pedometer ทำงานอย่างไร?
- การเขียนโปรแกรม Arduino Step Counter
- ทดสอบ Arduino Pedometer
วงดนตรีออกกำลังกายกำลังได้รับความนิยมอย่างมากในปัจจุบันซึ่งไม่เพียง แต่นับฝีเท้าเท่านั้น แต่ยังติดตามการเผาผลาญแคลอรี่ของคุณแสดงอัตราการเต้นของหัวใจเวลาแสดงและอื่น ๆ อีกมากมาย และอุปกรณ์ IoT เหล่านี้จะซิงค์กับระบบคลาวด์เพื่อให้คุณสามารถรับประวัติทั้งหมดของการออกกำลังกายบนสมาร์ทโฟน นอกจากนี้เรายังได้สร้างระบบตรวจสอบผู้ป่วยที่ใช้ IoT ซึ่งข้อมูลสำคัญถูกส่งไปยัง ThingSpeak เพื่อให้สามารถตรวจสอบได้จากทุกที่
Pedometersเป็นอุปกรณ์ที่ใช้ในการนับฝีเท้าเท่านั้น ดังนั้นในการกวดวิชานี้เราจะไปสร้างที่ง่ายและราคาถูกPedometer DIY ใช้ Arduino และ accelerometer Pedometer นี้จะนับจำนวนฝีเท้าและแสดงบนโมดูล LCD 16x2 เครื่องนับก้าวนี้สามารถใช้ร่วมกับ Arduino Smart Watch นี้ได้
ส่วนประกอบที่จำเป็น
- Arduino นาโน
- ADXL 335 Accelerometer
- 16 * 2 LCD
- โมดูล LCD I2C
- แบตเตอรี่
ADXL335 Accelerometer
ADXL335 เป็นเครื่องวัดความเร่งแบบอะนาล็อก 3 แกนที่สมบูรณ์แบบและทำงานบนหลักการของการตรวจจับแบบ capacitive เป็นโมดูลขนาดเล็กบางและใช้พลังงานต่ำพร้อมด้วยเซ็นเซอร์ที่มีพื้นผิวโพลีซิลิคอน - ไมโครกลึงและวงจรปรับสภาพสัญญาณ ADXL335 accelerometer สามารถวัดความเร่งแบบคงที่และแบบไดนามิก ที่นี่ในโครงการ Arduino Pedometer นี้ accelerometer ADXL335 จะทำหน้าที่เป็นเซ็นเซอร์ Pedometer
Accelerometerเป็นอุปกรณ์ที่สามารถแปลงการเร่งความเร็วในทิศทางใดเพื่อให้แรงดันไฟฟ้าตัวแปรตามลำดับ สิ่งนี้ทำได้โดยใช้ตัวเก็บประจุ (ดูภาพ) ในขณะที่ Accel เคลื่อนที่ตัวเก็บประจุที่อยู่ภายในจะได้รับการเปลี่ยนแปลงด้วย (อ้างอิงภาพ) ตามการเคลื่อนไหวเนื่องจากความจุแตกต่างกันจึงสามารถรับแรงดันไฟฟ้าผันแปรได้
ด้านล่างนี้เป็นภาพของ Accelerometer จากด้านหน้าและด้านหลังพร้อมกับคำอธิบายพิน -
คำอธิบายพินของ accelerometer:
- แหล่งจ่ายไฟ Vcc- 5 โวลต์ควรเชื่อมต่อที่พินนี้
- X-OUT- พินนี้ให้เอาต์พุตอนาล็อกในทิศทาง x
- Y-OUT- พินนี้ให้เอาต์พุตอนาล็อกในทิศทาง y
- Z-OUT- พินนี้ให้เอาต์พุตอนาล็อกในทิศทาง z
- GND- กราวด์
- ST- พินนี้ใช้สำหรับตั้งค่าความไวของเซ็นเซอร์
เราสร้างโครงการมากมายโดยใช้ Accelerometer ADXL335 รวมถึงหุ่นยนต์ควบคุมด้วยท่าทาง, สัญญาณเตือนภัยแผ่นดินไหว, เกมปิงปอง ฯลฯ
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับArduino Accelerometer Step Counter แสดงไว้ด้านล่าง
ในวงจรนี้เราจะเชื่อมต่อกับ Arduino Nano กับ ADXL335 Accelerometer หมุด X, Y และ Z ของเครื่องวัดความเร่งเชื่อมต่อกับหมุดอะนาล็อก (A1, A2 & A3) ของ Arduino Nano ในการเชื่อมต่อโมดูล LCD 16x2 กับ Arduino เรากำลังใช้โมดูล I2C พิน SCL และ SDA ของโมดูล I2C เชื่อมต่อกับพิน A5 และ A4 ของ Arduino Nano ตามลำดับ การเชื่อมต่อที่สมบูรณ์จะได้รับในตารางด้านล่าง:
Arduino นาโน | ADXL335 |
3.3V | VCC |
GND | GND |
A1 | X |
A2 | ย |
A3 | Z |
Arduino นาโน | โมดูล LCD I2C |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
เราสร้างPedometerนี้เป็นครั้งแรกโดยใช้การตั้งค่าArduinoบนเขียงหั่นขนม
และหลังจากการทดสอบสำเร็จเราได้จำลองมันบน Perfboard โดยการบัดกรีส่วนประกอบทั้งหมดบน Perfboard ดังที่แสดงด้านล่าง
Pedometer ทำงานอย่างไร?
เครื่องนับก้าวจะคำนวณจำนวนก้าวทั้งหมดของบุคคลโดยใช้องค์ประกอบสามส่วนของการเคลื่อนไหวคือไปข้างหน้าแนวตั้งและด้านข้าง ระบบเครื่องนับก้าวใช้เครื่องวัดความเร่งเพื่อรับค่าเหล่านี้ Accelerometer จะอัปเดตค่าสูงสุดและต่ำสุดของการเร่งความเร็ว 3 แกนอย่างต่อเนื่องทุกครั้งที่กำหนด ของตัวอย่าง ค่าเฉลี่ยของ 3 แกน (สูงสุด + ต่ำสุด) / 2 นี้เรียกว่าระดับขีด จำกัด แบบไดนามิกและค่าขีด จำกัด นี้ใช้เพื่อตัดสินใจว่าจะดำเนินการตามขั้นตอนหรือไม่
ขณะวิ่งเครื่องนับก้าวสามารถอยู่ในทิศทางใดก็ได้ดังนั้นเครื่องนับก้าวจะคำนวณขั้นตอนโดยใช้แกนที่มีการเปลี่ยนแปลงความเร่งมากที่สุด
ตอนนี้ให้ฉันให้คำแนะนำอย่างรวดเร็วเกี่ยวกับการทำงานของ Arduino Pedometer นี้:
- ประการแรกเครื่องนับก้าวจะเริ่มการสอบเทียบทันทีที่ขับเคลื่อน
- จากนั้นในฟังก์ชัน void loop จะรับข้อมูลจากแกน X, Y และ Z อย่างต่อเนื่อง
- หลังจากนั้นจะคำนวณเวกเตอร์การเร่งความเร็วทั้งหมดจากจุดเริ่มต้น
- เวกเตอร์การเร่งความเร็วคือรากที่สอง (x ^ 2 + y ^ 2 + z ^ 2) ของค่าแกน X, Y และ Z
- จากนั้นจะเปรียบเทียบค่าความเร่งเฉลี่ยกับค่าขีด จำกัด เพื่อนับจำนวนขั้นตอน
- หากเวกเตอร์ความเร่งข้ามค่าขีด จำกัด ก็จะเพิ่มจำนวนก้าว มิฉะนั้นจะทิ้งการสั่นสะเทือนที่ไม่ถูกต้อง
การเขียนโปรแกรม Arduino Step Counter
สมบูรณ์Arduino ขั้นตอนที่เคาน์เตอร์รหัสจะได้รับในตอนท้ายของเอกสารนี้ เรากำลังอธิบายตัวอย่างที่สำคัญบางส่วนของโค้ดนี้
ตามปกติเริ่มต้นรหัสโดยรวมไลบรารีที่จำเป็นทั้งหมด ADXL335 accelerometer ไม่จำเป็นต้องมีไลบรารีใด ๆ เนื่องจากให้เอาต์พุตแบบอะนาล็อก
# รวม
หลังจากนั้นกำหนด Arduino Pins ที่เชื่อมต่อ accelerometer
const int xpin = A1; const int ypin = A2; const int zpin = A3;
กำหนดค่า threshold สำหรับ accelerometer ค่าขีด จำกัด นี้จะถูกเปรียบเทียบกับเวกเตอร์การเร่งความเร็วเพื่อคำนวณจำนวนก้าว
เกณฑ์ลอย = 6;
ภายในการ ตั้งค่าโมฆะ ฟังก์ชันจะปรับเทียบระบบเมื่อมีการขับเคลื่อน
ปรับเทียบ ();
ภายในฟังก์ชัน void loop จะอ่านค่าแกน X, Y และ Z สำหรับ 100 ตัวอย่าง
สำหรับ (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); ล่าช้า (1); yaccl = ลอย (analogRead (ypin) - 346); ล่าช้า (1); zaccl = ลอย (analogRead (zpin) - 416); ล่าช้า (1);
หลังจากได้ค่า 3 แกนแล้วให้คำนวณเวกเตอร์ความเร่งทั้งหมดโดยหาค่ารากที่สองของค่าแกน X, Y และ Z
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
จากนั้นคำนวณค่าเฉลี่ยของค่าเวกเตอร์ความเร่งสูงสุดและต่ำสุด
โทเทฟ = (totvect + totvect) / 2;
ตอนนี้เปรียบเทียบความเร่งเฉลี่ยกับเกณฑ์ หากค่าเฉลี่ยมากกว่าเกณฑ์ให้เพิ่มจำนวนก้าวและยกธง
ถ้า (totave> threshold && flag == 0) {steps = steps + 1; ธง = 1; }
หากค่าเฉลี่ยมากกว่าเกณฑ์ แต่มีการยกธงขึ้นก็ไม่ต้องทำอะไรเลย
else if (totave> threshold && flag == 1) {// Don't Count}
หากค่าเฉลี่ยรวมน้อยกว่าเกณฑ์และมีการตั้งค่าสถานะขึ้นให้วางค่าสถานะลง
ถ้า (totave <threshold && flag == 1) {flag = 0; }
พิมพ์จำนวนขั้นตอนบนจอภาพอนุกรมและ LCD
Serial.println (ขั้นตอน); lcd.print ("ขั้นตอน:"); lcd.print (ขั้นตอน);
ทดสอบ Arduino Pedometer
เมื่อฮาร์ดแวร์และรหัสของคุณพร้อมแล้วให้เชื่อมต่อ Arduino เข้ากับแล็ปท็อปและอัปโหลดรหัส ตอนนี้ใช้การตั้งค่าเครื่องนับก้าวในมือของคุณและเริ่มเดินทีละขั้นตอนควรแสดงจำนวนก้าวบน LCD บางครั้งอาจเพิ่มจำนวนก้าวเมื่อเครื่องนับก้าวสั่นอย่างรวดเร็วหรือช้ามาก
วิดีโอและรหัสการทำงานที่สมบูรณ์สำหรับเครื่องนับก้าว ADXL335 Arduinoมีดังต่อไปนี้