- Thành phần bắt buộc
- Gia tốc kế ADXL335
- Sơ đồ mạch
- Máy đếm bước đi hoạt động như thế nào?
- Lập trình bộ đếm bước Arduino
- Kiểm tra máy đếm bước chân Arduino
Các ban nhạc thể dục ngày nay đang trở nên rất phổ biến, không chỉ đếm bước chân mà còn theo dõi lượng calo bạn đốt cháy, hiển thị nhịp tim, thời gian chiếu và nhiều hơn nữa. Và các thiết bị IoT này được đồng bộ hóa với đám mây để bạn có thể dễ dàng nhận được tất cả lịch sử hoạt động thể chất của mình trên điện thoại thông minh. Chúng tôi cũng đã xây dựng Hệ thống giám sát bệnh nhân dựa trên IoT, nơi dữ liệu quan trọng được gửi đến ThingSpeak để được theo dõi từ mọi nơi.
Máy đếm bước chân là thiết bị chỉ dùng để đếm bước chân. Vì vậy, trong hướng dẫn này, chúng ta sẽ chế tạo một Máy đếm bước chân tự làm dễ dàng và rẻ tiền bằng cách sử dụng Arduino và gia tốc kế. Máy đếm bước chân này sẽ đếm số bước chân và hiển thị chúng trên một mô-đun LCD 16x2. Máy đếm bước đi này có thể được tích hợp với Đồng hồ thông minh Arduino này.
Thành phần bắt buộc
- Arduino Nano
- Gia tốc kế ADXL 335
- 16 * 2 LCD
- Mô-đun LCD I2C
- Ắc quy
Gia tốc kế ADXL335
ADXL335 là một máy đo gia tốc Analog 3 trục hoàn chỉnh và nó hoạt động trên nguyên tắc cảm biến điện dung. Nó là một mô-đun nhỏ, mỏng, công suất thấp với cảm biến vi gia công bề mặt polysilicon và mạch điều hòa tín hiệu. Gia tốc kế ADXL335 có thể đo gia tốc tĩnh cũng như động. Ở đây trong dự án Máy đo bước đi Arduino này, gia tốc kế ADXL335 sẽ hoạt động như một cảm biến Máy đo bước đi.
Một gia tốc kế là một thiết bị mà có thể chuyển đổi tăng tốc theo hướng nào để biến điện áp tương ứng của nó. Điều này được thực hiện bằng cách sử dụng tụ điện (hình ảnh tham khảo), khi Accel di chuyển, tụ điện hiện diện bên trong nó, cũng sẽ trải qua những thay đổi (hình ảnh tham khảo) dựa trên chuyển động, vì điện dung thay đổi, cũng có thể thu được điện áp thay đổi.
Dưới đây là hình ảnh của Accelerometer từ mặt trước và mặt sau cùng với mô tả pin-
Mô tả Pin của máy đo gia tốc:
- Nguồn cung cấp Vcc- 5 volt nên kết nối tại chân này.
- X-OUT- Chân này cung cấp đầu ra Analog theo hướng x
- Y-OUT- Chân này cho đầu ra Analog theo hướng y
- Z-OUT- Chân này cung cấp đầu ra Analog theo hướng z
- GND- Mặt đất
- ST- Chân này được sử dụng để đặt độ nhạy của cảm biến
Chúng tôi xây dựng nhiều dự án sử dụng Accelerometer ADXL335 bao gồm robot điều khiển bằng cử chỉ, Báo động phát hiện động đất, Trò chơi Ping Pong, v.v.
Sơ đồ mạch
Sơ đồ mạch cho bộ đếm bước gia tốc kế Arduino được đưa ra bên dưới.
Trong mạch này, chúng tôi đang giao tiếp với Arduino Nano bằng ADXL335 Accelerometer. Các chân X, Y và Z của máy đo gia tốc được kết nối với các chân Analog (A1, A2 & A3) của Arduino Nano. Để giao tiếp các mô-đun LCD 16x2 với Arduino, chúng tôi đang sử dụng mô-đun I2C. Các chân SCL & SDA của mô-đun I2C được kết nối tương ứng với các chân A5 và A4 của Arduino Nano. Các kết nối hoàn chỉnh được đưa ra trong bảng dưới đây:
Arduino Nano | ADXL335 |
3,3V | VCC |
GND | GND |
A1 | X |
A2 | Y |
A3 | Z |
Arduino Nano | Mô-đun LCD I2C |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Đầu tiên chúng tôi xây dựng Máy đếm bước đi này bằng cách sử dụng thiết lập Arduino trên bảng mạch
Và sau khi thử nghiệm thành công, chúng tôi đã sao chép nó trên Perfboard bằng cách hàn tất cả các thành phần trên Perfboard như hình dưới đây:
Máy đếm bước đi hoạt động như thế nào?
Máy đếm bước chân tính toán tổng số bước mà một người thực hiện bằng cách sử dụng ba thành phần của chuyển động là tiến, thẳng đứng và nghiêng. Hệ thống đếm bước chân sử dụng gia tốc kế để lấy các giá trị này. Gia tốc kế liên tục cập nhật các giá trị lớn nhất và nhỏ nhất của gia tốc 3 trục sau mỗi số được xác định. của các mẫu. Giá trị trung bình của 3 trục này (Tối đa + Tối thiểu) / 2, được gọi là mức ngưỡng động và giá trị ngưỡng này được sử dụng để quyết định xem bước có được thực hiện hay không.
Trong khi chạy, máy đếm bước có thể ở bất kỳ hướng nào, vì vậy máy đếm bước chân sẽ tính toán các bước bằng cách sử dụng trục có sự thay đổi gia tốc là lớn nhất.
Bây giờ hãy để tôi cung cấp cho bạn một hướng dẫn nhanh về hoạt động của Máy đếm bước chân Arduino này:
- Đầu tiên, máy đếm bước đi bắt đầu hiệu chuẩn ngay khi được cấp nguồn.
- Sau đó, trong hàm void loop , nó liên tục lấy dữ liệu từ trục X, Y và Z.
- Sau đó, nó tính tổng vectơ gia tốc từ điểm xuất phát.
- Véc tơ gia tốc là căn bậc hai (x ^ 2 + y ^ 2 + z ^ 2) của các giá trị trục X, Y và Z.
- Sau đó, nó so sánh các giá trị gia tốc trung bình với các giá trị ngưỡng để đếm số bước.
- Nếu vectơ gia tốc vượt qua giá trị ngưỡng, thì nó sẽ tăng số bước; nếu không, nó loại bỏ các rung động không hợp lệ.
Lập trình bộ đếm bước Arduino
Mã bộ đếm bước Arduino hoàn chỉnh được đưa ra ở cuối tài liệu này. Ở đây chúng tôi đang giải thích một số đoạn mã quan trọng của mã này.
Như thường lệ, hãy bắt đầu mã bằng cách bao gồm tất cả các thư viện được yêu cầu. Gia tốc kế ADXL335 không yêu cầu bất kỳ thư viện nào vì nó cho đầu ra tương tự.
#include
Sau đó, xác định các Ghim Arduino, nơi kết nối gia tốc kế.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Xác định giá trị ngưỡng cho gia tốc kế. Giá trị ngưỡng này sẽ được so sánh với véc tơ gia tốc để tính số bước.
ngưỡng phao = 6;
Bên trong thiết lập void , chức năng hiệu chỉnh hệ thống khi nó được cấp nguồn.
hiệu chỉnh ();
Bên trong hàm void loop , nó sẽ đọc các giá trị trục X, Y và Z cho 100 mẫu.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); trì hoãn (1); yaccl = float (analogRead (ypin) - 346); trì hoãn (1); zaccl = float (analogRead (zpin) - 416); trì hoãn (1);
Sau khi nhận được giá trị 3 trục, hãy tính tổng vectơ gia tốc bằng cách lấy căn bậc hai của các giá trị trục X, Y và Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Sau đó tính giá trị trung bình của giá trị vectơ gia tốc cực đại và cực tiểu.
totave = (totvect + totvect) / 2;
Bây giờ so sánh gia tốc trung bình với ngưỡng. Nếu mức trung bình lớn hơn ngưỡng, thì hãy tăng số bước và giương cờ.
if (totave> ngưỡng && cờ == 0) {step = step + 1; cờ = 1; }
Nếu mức trung bình lớn hơn ngưỡng nhưng cờ được nâng lên thì không làm gì cả.
else if (totave> ngưỡng && cờ == 1) {// Không tính}
Nếu tổng số trung bình nhỏ hơn ngưỡng và cờ được nâng lên, thì hãy đặt cờ xuống.
if (totave <ngưỡng && flag == 1) {flag = 0; }
In số bước trên màn hình nối tiếp và màn hình LCD.
Serial.println (các bước); lcd.print ("Các bước:"); lcd.print (các bước);
Kiểm tra máy đếm bước chân Arduino
Khi phần cứng và mã của bạn đã sẵn sàng, hãy kết nối Arduino với máy tính xách tay và tải mã lên. Bây giờ hãy cầm thiết lập máy đếm bước đi trên tay và bắt đầu đi từng bước, nó sẽ hiển thị số bước trên màn hình LCD. Đôi khi nó làm tăng số bước khi máy đếm bước chân rung rất nhanh hoặc rất chậm.
Video hoạt động hoàn chỉnh và mã cho Arduino máy đếm bước ADXL335 được cung cấp bên dưới.