用 Arduino 制造自行车数字码表


MAKER:HarshadB9/译:趣无尽 Cherry(转载请注明出处)
最近的天气很适合户外运动啊~下面我们来DIY一台自行车数字码表,给你的爱车装上,一起出去浪吧!
这台码表可以显示自行车的里程、时速和实时加速度,用一块 Aduino nano 控制!下面我们一起来看一下如何制造吧!

材料清单

Arduino nano × 1
磁铁 × 1
A3144霍尔效应传感器 × 1
20k电阻 × 1
0.96英寸的OLED × 1
LED灯带 × 若干
移动电源 × 1
迷你USB电缆 × 1
热熔胶 × 1
螺母 × 若干
螺栓 × 若干

结构说明


在这个项目中,结实的支撑架是非常重要的。因为当你骑行在坑洼不平的路面时或者遇到水坑时会受到很大的冲击。当车轮转动时,车轮上的磁铁穿过支架上的霍尔效应传感器,就可以收集输入数据。如果设备没有安装稳固,自行车运转时,Arduino显示的画面会出现偏差。另外,我也不希望我心爱的Arduino因为固定的问题或者使用了水货材料而在自行车运转时掉落。

因此,为了安全起见,我决定使用铝带。铝带不仅容易地切割和钻孔,而且耐腐蚀还便宜,对于 maker 来说是非常好的选择。

项目还需使用了一些螺母(带垫圈)和螺栓将它们固定在框架上,因为它们必须牢固地放在底盘上。

另一个重要的部分是,这些电子元件必须与支架完好的隔离。热胶是很好的选择,它也可以起到给显示屏减震的作用。

传感器和磁铁


对速度的测量就依赖于这个部分。做法就是在轮胎上放置一个磁铁并在框架上添加一个霍尔效应传感器。这样每次磁铁穿过传感器时,Arduino 可以计算速度和距离。

该项目使用的是经典款传感器—— A3144 霍尔效应传感器。当特定的磁面向正确方向时,传感器的输出就会拉的很低。方向非常重要,因为外磁场不会影响输出。

如图显示正确方向。霍尔效应传感器需要一个 10k 的上拉电阻。在该项目中我使用 Arduino 中的 20k上拉电阻代替。

磁铁安放的位置也很重要。将其安放的远一点可能导致读数不一致或旋转丢失数据,将其安放的非常近可能导致磁体接触传感器,效果都会不太理想。
如果仔细观察,车轮与轴会有一些倾斜,这将影响结壳和波谷。

显示屏


显示屏是可选的,但是你需要它来显示速度、里程和实时加速度。我使用的显示器是 0.96 英寸的 OLED 显示器, I2C 作为从设备和主设备之间的通信协议。
如下图所示,Arduino自动切换的三种模式。

1、Arduino 刚刚启动并成功启动。

2、km/hr 的速度单位。该模式是在运动时显示,并在运行停止后自动关闭。

3、以米作为单位显示运动的距离。一旦运动停止,Arduino 开关将在3秒内显示里程。

这个系统并不完美。需要在保持运动时,才能显示运动的里程等,有待你的完善。

电源问题


该项目使用的电源比较笨重,如图所示。为了便于充电,我决定使用移动电源作为电源供应,并使 用MiniUSB 线将移动电源的USB电源线连接到 Arduino nano 上。

电池的选择很重要,要选择一款方便安装的。我使用的是长方形的,易于固定。

市面上的移动电源在设计上也有些傻瓜式。为了节省电量,如果电流消耗不高于某个阈值,电源组被设计为关闭输出。我设定的阈值至少为 200-300 mA 。电路最大电流消耗不超过 20mA 。因此,一般的移动电源都会自动关闭输出。因此我选择了这款支持微小电流消耗的移动电源。

刹车灯(可选)



我决定添加一个刹车灯作为附加功能。问题是我的灯如何自动在刹车的时候亮呢?实验证明,如果制动系统减速(也意味着如果我在计算加速度,其结果为负时),就可以打开刹车灯。只要当我停止蹬车,灯就会亮起。

这样真的很棒!刹车灯直接从 Arduino nano 的引脚2取电。

代码

我用 Arduino IDE 编程。最初的目标是将参数记录到 SD 卡上。但是那样我得使用三个库,SD.h ,Wire.h 和 SPI.h. 这些会占84%的内存, IDE 警告我稳定性问题。用不了多久 nano 就会崩溃,然后会死机好一会。重新启动后也会重蹈覆辙。

所以我放弃 SD 这一块并评论有关 SD 卡线路的问题。如果有人可以解决这个问题,那就最好不过了。

详细的代码说明请在项目文件库中下载。
https://make.quwj.com/project/102
https://www.quwj.com/2019/03/20/diy-cycle-speedometer.html



坐沙发

发表评论