Mục lục:

Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt: 7 bước (có hình ảnh)
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt: 7 bước (có hình ảnh)

Video: Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt: 7 bước (có hình ảnh)

Video: Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt: 7 bước (có hình ảnh)
Video: Xe đạp tập thể dục Airbike Sports: đạp êm, đo được nhiều thông số (MK-282) • Điện máy XANH 2024, Tháng mười một
Anonim
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt

Tập luyện tim mạch rất nhàm chán, đặc biệt là khi tập thể dục trong nhà. Một số dự án hiện tại cố gắng giảm bớt điều này bằng cách thực hiện những điều thú vị như ghép công cụ kế với máy chơi game hoặc thậm chí mô phỏng một chuyến đi xe đạp thực trong VR. Về mặt kỹ thuật, những điều thú vị này không thực sự giúp ích được gì nhiều: Tập luyện vẫn còn nhàm chán. Vì vậy, thay vào đó, tôi muốn có thể vừa đọc sách hoặc xem TV trong khi tập luyện. Nhưng sau đó rất khó để giữ một tốc độ ổn định.

Ý tưởng ở đây là tập trung vào vấn đề thứ hai và cung cấp phản hồi thẳng thắn về việc liệu trình độ đào tạo hiện tại của bạn có đủ tốt hay bạn nên nỗ lực hơn nữa. Tuy nhiên, mức độ "đủ tốt" sẽ thay đổi không chỉ ở mỗi người mà còn theo thời gian (lâu dài, khi bạn trở nên tốt hơn, mà còn trong một buổi tập: ví dụ, gần như không thể đi hết tốc độ trước khi bạn ấm lên). Do đó, ý tưởng đằng sau dự án này chỉ đơn giản là ghi lại a) lần chạy trước đó và b) lần chạy tốt nhất (hay còn gọi là điểm cao), sau đó cung cấp phản hồi trực tiếp về cách bạn hiện đang gặp khó khăn so với những lần chạy đó.

Nếu điều đó nghe có vẻ hơi trừu tượng, hãy chuyển sang Bước 7 để biết chi tiết về những gì màn hình đã hoàn thành sẽ hiển thị

Mục tiêu xa hơn của dự án này là giữ cho mọi thứ thực sự đơn giản và rẻ tiền. Tùy thuộc vào nơi bạn đặt hàng các bộ phận của mình, bạn có thể hoàn thành dự án này với giá khoảng 5 đô la (hoặc khoảng 30 đô la khi đặt hàng từ những người bán cao cấp trong nước) và nếu bạn đã chơi với môi trường Arduino trước đây, thì có một cơ hội khá tốt là bạn đã có hầu hết hoặc tất cả các bộ phận bạn cần.

Bước 1: Danh sách bộ phận

Danh sách bộ phận
Danh sách bộ phận

Hãy xem qua danh sách những thứ bạn cần:

Bộ vi xử lý tương thích Arduino

Khá nhiều Arduino được bán trong vài năm qua sẽ làm được. Biến thể chính xác (Uno / Nano / Pro Mini, 8 hoặc 16 MHz, 3.3. Hoặc 5V) không quan trọng. Tuy nhiên, bạn sẽ cần bộ xử lý ATMEGA328 hoặc tốt hơn, vì chúng tôi sẽ sử dụng gần 2 nghìn RAM và 1 nghìn EEPROM. Nếu bạn đã quen thuộc với thế giới Arduino, tôi khuyên bạn nên sử dụng Pro Mini ở 3.3V, vì nó sẽ rẻ nhất và tiết kiệm pin nhất. Nếu bạn (tương đối) mới sử dụng Arduino, tôi khuyên bạn nên sử dụng "Nano" vì nó cung cấp chức năng tương tự như "Uno" trong một gói nhỏ hơn và rẻ hơn.

Lưu ý rằng tài liệu hướng dẫn này sẽ không nói cho bạn những điều cơ bản. Ít nhất bạn phải cài đặt phần mềm Arduino và biết cách kết nối Arduino của mình và tải lên bản phác thảo. Nếu bạn không biết điều tôi đang nói đến, hãy đọc hai hướng dẫn đơn giản này, thứ nhất: Thứ nhất, thứ hai.

Màn hình OLED 128 * 64 pixel SSD1306 (biến thể I2C, tức là bốn chân)

Đây là một trong những loại màn hình rẻ nhất và dễ sử dụng nhất hiện nay. Đồng ý, nó nhỏ, nhưng đủ tốt. Tất nhiên, nếu bạn đã có màn hình có độ phân giải tương tự hoặc tốt hơn, bạn sẽ có thể sử dụng màn hình đó, nhưng hướng dẫn này được viết cho SSD1306.

  • Một "breadboard không hàn" và một số dây jumper, để xây dựng nguyên mẫu của bạn
  • Tụ gốm 100nF (có thể cần hoặc không; xem Bước 4)
  • Một số kẹp croc hoặc một nam châm, một công tắc sậy và một số dây cáp (xem Bước 4)
  • Mỗi đèn LED màu đỏ và màu xanh lá cây (tùy chọn; xem Bước 5)
  • Hai điện trở 220Ohm (nếu sử dụng đèn LED)
  • Một nút bấm (cũng không bắt buộc)
  • Pin phù hợp (xem Bước 6)

Bước 2: Kết nối màn hình

Kết nối màn hình
Kết nối màn hình

Điều đầu tiên, chúng tôi sẽ kết nối màn hình với Arduino. Hướng dẫn chi tiết có sẵn. Tuy nhiên, SSD1306 thực sự rất dễ kết nối:

  1. Hiển thị VCC -> Arduino 3.3V hoặc 5V (sẽ làm được)
  2. Display Gnd -> Arduino Gnd
  3. Hiển thị SCL -> Arduino A5
  4. Hiển thị SCA -> Arduino A4

Tiếp theo, trong môi trường Arduino của bạn, đi tới Sketch-> Bao gồm thư viện-> Quản lý thư viện và cài đặt "Adafruit SSD1306". Thật không may, bạn sẽ phải chỉnh sửa thư viện để định cấu hình nó cho biến thể 128 * 64 pixel: định vị thư mục "thư viện" arduino của bạn và chỉnh sửa "Adafruit_SSD1306 / Adafruit_SSD1306.h". Thay vào đó, hãy tìm kiếm "#define SSD1306_128_32", tắt dòng đó và bật "#define SSD1306_128_64".

Tại thời điểm này, bạn nên tải File-> Examples-> Adafruit SSD1306-> ssd1306_128x64_i2c để kiểm tra xem màn hình của bạn đã được kết nối chính xác chưa. Lưu ý rằng bạn có thể phải điều chỉnh địa chỉ I2C. 0x3C dường như là giá trị phổ biến nhất.

Trong trường hợp gặp sự cố, hãy tham khảo hướng dẫn chi tiết hơn.

Bước 3: Tải lên bản phác thảo

Nếu mọi thứ đều hoạt động, thì bây giờ đã đến lúc tải bản phác thảo thực tế lên Arduino của bạn. Bạn sẽ tìm thấy một bản sao của bản phác thảo, bên dưới. Đối với phiên bản có khả năng gần đây hơn, hãy tham khảo trang dự án github. (Vì đây là một bản phác thảo tệp duy nhất, chỉ cần sao chép tệp erogmetrino.ino vào cửa sổ Arduino của bạn là đủ).

Nếu bạn đã phải sửa đổi địa chỉ I2C trong bước trước, bạn sẽ phải thực hiện điều chỉnh tương tự, một lần nữa, ngay bây giờ, trong dòng bắt đầu bằng "display.begin".

Sau khi tải lên, bạn sẽ thấy một số số không hiển thị trên màn hình của mình. Chúng ta sẽ xem xét ý nghĩa của các phần khác nhau của màn hình, sau khi mọi thứ khác được kết nối.

Lưu ý rằng trong lần khởi động đầu tiên, màn hình sẽ sáng lên khá chậm (có thể mất đến khoảng mười giây), vì trước tiên, bản phác thảo sẽ không có bất kỳ dữ liệu nào được lưu trữ trong EEPROM.

Bước 4: Kết nối Ergometer

Kết nối Ergometer
Kết nối Ergometer

Bước này thực sự không thể được mô tả một cách phổ biến, vì không phải tất cả các máy đo công suất đều giống nhau. Tuy nhiên, chúng cũng không khác nhau. Nếu công tơ mét của bạn bao gồm màn hình hiển thị tốc độ điện tử, nó phải có cảm biến điện tử để phát hiện vòng quay của bàn đạp, hoặc một số bánh xe bay (có thể bên trong), ở đâu đó. Trong nhiều trường hợp, điều đó sẽ chỉ đơn giản bao gồm một nam châm đi qua gần một công tắc sậy (xem thêm, bên dưới). Mỗi lần nam châm đi qua, công tắc sẽ đóng lại, báo hiệu một vòng quay đến màn hình hiển thị tốc độ.

Điều đầu tiên bạn nên làm là kiểm tra màn hình hiển thị tốc độ trên máy đo tốc độ của bạn để biết cáp đến. Nếu bạn tìm thấy một dây cáp hai dây đến đâu đó từ bên trong máy đo công suất, gần như chắc chắn bạn đã tìm thấy kết nối với cảm biến. Và với một chút may mắn, bạn có thể chỉ cần rút phích cắm này và chỉ cần kết nối nó với Arduino của bạn bằng một số croc-clip (tôi sẽ cho bạn biết bạn nên kết nối với chân nào sau một phút).

Tuy nhiên, nếu bạn không thể tìm thấy một dây cáp như vậy, cảm thấy không chắc chắn nếu bạn đã tìm thấy đúng hoặc bạn không thể ngắt kết nối nó mà không làm hỏng bất cứ thứ gì, bạn có thể chỉ cần dán một nam châm nhỏ vào một trong các bàn đạp và cố định công tắc sậy vào khung của máy đo điện trở của bạn, sao cho nam châm sẽ đi ngang qua nó rất gần. Kết nối hai dây với công tắc và dẫn chúng đến Arduino của bạn.

Kết nối hai dây (cho dù dây của bạn hay dây từ một cảm biến hiện có) sẽ đi đến Arduino Gnd và chân D2 của Arduino. Nếu bạn có một cái trên tay, cũng kết nối tụ điện 100nF giữa chân D2 và Gnd để "gỡ lỗi". Điều này có thể cần hoặc không, nhưng giúp ổn định kết quả đọc.

Khi hoàn tất, đã đến lúc khởi động Arduino của bạn và khởi động xe đạp để thực hiện bài kiểm tra nhanh đầu tiên. Số trên cùng bên trái sẽ bắt đầu hiển thị số đo tốc độ. Nếu cách này không hiệu quả, hãy kiểm tra tất cả hệ thống dây điện và đảm bảo rằng nam châm đủ gần với công tắc cây lau. Nếu thước đo tốc độ dường như liên tục quá cao hoặc quá thấp, chỉ cần điều chỉnh định nghĩa "CM_PER_CLICK" gần đầu bản phác thảo (lưu ý: bản phác thảo sử dụng tên số liệu, nhưng không có đơn vị nào được hiển thị hoặc lưu ở bất kỳ đâu, vì vậy chỉ cần bỏ qua điều đó và cung cấp 100.000 phần nghìn dặm cho mỗi lần nhấp chuột).

Bước 5: Đèn LED trạng thái nhanh tùy chọn

Đèn LED trạng thái nhanh tùy chọn
Đèn LED trạng thái nhanh tùy chọn

Các đèn LED được mô tả trong bước này là tùy chọn, nhưng gọn gàng: Nếu bạn nghiêm túc về việc đọc sách / xem TV trong khi tập thể dục, bạn không muốn phải nhìn chằm chằm vào màn hình quá nhiều. Nhưng hai đèn LED có màu sắc khác nhau sẽ dễ dàng nhận thấy trong tầm nhìn ngoại vi và đủ để cung cấp cho bạn ý tưởng sơ bộ về cách bạn đang làm.

  • Kết nối đèn LED đầu tiên (màu đỏ) với chân D6 (chân dài hơn của đèn LED đi đến Arduino). Kết nối chân ngắn của đèn LED với Gnd thông qua điện trở 220Ohms. Đèn LED này sẽ sáng khi bạn ở dưới tốc độ tốt nhất của mình từ 10% trở lên trong giai đoạn huấn luyện hiện tại. Đã đến lúc phải nỗ lực hơn nữa!
  • Kết nối đèn LED thứ hai (màu xanh lá cây) với chân D5, một lần nữa với một điện trở Gnd. Đèn LED này sẽ sáng khi bạn ở trong khoảng 1% hoặc cao hơn mức chạy tốt nhất của bạn. Bạn đang làm tốt đấy!

Bạn muốn các đèn LED sáng lên tùy thuộc vào cách bạn đặt vé so với lần chạy trước đó hoặc một số tốc độ trung bình tùy ý? Chà, chỉ cần kết nối một nút bấm giữa chân D4 và Gnd. Sử dụng nút đó, bạn có thể chuyển đổi tham chiếu giữa "lần chạy tốt nhất của bạn", "lần chạy trước của bạn" hoặc "tốc độ hiện tại của bạn". Một chữ cái nhỏ "P" hoặc "C" ở góc dưới bên trái sẽ biểu thị hai chế độ sau.

Bước 6: Cấp nguồn cho màn hình Ergometer của bạn

Cấp nguồn cho màn hình Ergometer của bạn
Cấp nguồn cho màn hình Ergometer của bạn

Có nhiều cách để cung cấp năng lượng cho màn hình của bạn, nhưng tôi sẽ chỉ ra hai cách có vẻ thiết thực hơn những cách khác:

  1. Khi sử dụng Arduino Uno hoặc Nano, bạn có thể muốn cấp nguồn cho nó bằng bộ sạc dự phòng USB có chỉ báo pin yếu tích hợp.
  2. Khi sử dụng Arduino Pro Mini @ 3.3V (khuyến nghị của tôi dành cho người dùng nâng cao), bạn có thể cấp nguồn trực tiếp từ một pin LiPo duy nhất hoặc ba tế bào NiMH. Vì ATMEGA sẽ chịu được điện áp cung cấp lên đến 5.5V, bạn có thể kết nối trực tiếp với "VCC / ACC", bỏ qua bộ điều chỉnh điện áp trên bo mạch. Trong thiết lập này, cũng sẽ có cảnh báo "pin yếu" ở khoảng 3,4V mà không cần bất kỳ phần cứng bổ sung nào (hiển thị ở góc dưới bên phải). Vì ATMEGA có thể hoạt động chính xác, ít nhất là xuống đến 3.0V hoặc lâu hơn, nên bạn sẽ có đủ thời gian để hoàn thành thiết bị đào tạo của mình trước khi sạc lại.

Bước 7: Sử dụng màn hình Ergometer của bạn

Sử dụng màn hình hiển thị Ergometer của bạn
Sử dụng màn hình hiển thị Ergometer của bạn
Sử dụng màn hình Ergometer của bạn
Sử dụng màn hình Ergometer của bạn

Hãy xem xét kỹ hơn các con số khác nhau trên màn hình của bạn. Số lớn hơn ở trên cùng bên trái chỉ đơn giản là tốc độ hiện tại của bạn và số lớn hơn ở trên cùng bên phải là tổng quãng đường trong quá trình luyện tập hiện tại của bạn.

Dòng tiếp theo là tốc độ trung bình của bạn kể từ khi bắt đầu khóa đào tạo (bên trái) và thời gian kể từ khi bắt đầu khóa đào tạo (bên phải). Lưu ý rằng thời gian dừng lại trong khi xe đạp dừng lại.

Cho đến nay thật tầm thường. Hai dòng tiếp theo ở phía bên tay phải là nơi thú vị: Các dòng này so sánh thời gian hiện tại của bạn với quá trình đào tạo trước đây và tốt nhất của bạn, tương ứng. I E. "- 0:01:23" ở phía trên của những dòng này có nghĩa là bạn đã đạt được khoảng cách hiện tại sớm hơn 1 phút 23 giây so với lần chạy trước. Tốt. Dòng thấp hơn của "+ 0:00:12" sẽ có nghĩa là cho đến thời điểm hiện tại, bạn đang tụt lại 12 giây so với lần chạy tốt nhất của mình. (Lưu ý rằng những khoảng thời gian chênh lệch này sẽ không chính xác 100%. Các mốc thời gian được lưu trữ mỗi 0,5 km / dặm và được nội suy giữa các thời điểm đó.) Tất nhiên, trong lần chạy đầu tiên của bạn, chưa có tham chiếu thời gian nào được ghi lại và vì vậy cả hai dòng trên sẽ chỉ hiển thị "-: -: -".

Cuối cùng, khu vực phía dưới bên trái của màn hình chứa biểu đồ tốc độ của bạn trong phút qua. Điều này cho phép bạn xem nhanh, liệu bạn đang đi ổn định hay đang chậm lại. (Lưu ý rằng đường này sẽ mượt mà hơn nhiều trong quá trình luyện tập thực tế - nhưng đơn giản là không dễ dàng để duy trì tốc độ ổn định trong khi cố gắng chụp ảnh…) Các đường ngang cho biết tốc độ trước đó / tốt nhất mà bạn đạt được gần điểm hiện tại của lần trước đào tạo.

Các đèn LED được gắn gần phía trên so sánh tốc độ hiện tại của bạn với tốc độ tốt nhất của bạn trong giai đoạn đào tạo này. Màu xanh lá cây cho thấy bạn đang trong vòng 1% khả năng tốt nhất của mình, màu đỏ cho thấy bạn đang chậm hơn 10% so với quá trình rèn luyện tốt nhất của mình. Khi bạn nhìn thấy đèn đỏ, đã đến lúc bạn phải nỗ lực hơn nữa. Lưu ý rằng trái với thời gian chênh lệch được mô tả ở trên, chúng chỉ đề cập đến phần hiện tại của quá trình đào tạo, tức là có thể bạn đang bị tụt lại phía sau về thời gian tuyệt đối, nhưng màu xanh lục cho thấy bạn đang bắt kịp và ngược lại.

Tốc độ tham chiếu được sử dụng cho hai đèn LED có thể được thay đổi bằng cách sử dụng nút nhấn. Một lần nhấn sẽ chuyển nó từ đào tạo tốt nhất sang đào tạo đã ghi trước đó (một chữ cái nhỏ "P" sẽ hiển thị ở phía dưới bên trái). Một lần nhấn khác và tốc độ hiện tại của bạn tại thời điểm nhấn nút sẽ trở thành tốc độ tham chiếu mới (một chữ cái nhỏ "C" sẽ hiển thị). Cái sau đặc biệt hữu ích trong quá trình đào tạo đầu tiên của bạn với màn hình công cụ kế mới, khi chưa có tài liệu tham khảo nào được ghi lại.

Khi hoàn thành quá trình đào tạo của bạn, chỉ cần ngắt kết nối pin. Quá trình đào tạo của bạn đã được lưu trong EEPROM nội bộ của Arduino.

Như bạn có thể thấy, tôi đã kết thúc việc hàn nguyên mẫu của mình. Dấu hiệu chắc chắn rằng tôi thích kết quả, bản thân tôi. Tôi hy vọng bạn cũng sẽ thấy nó hữu ích. Chúc bạn tập thể dục vui vẻ!

Đề xuất: