2018-11-26 22:10:29 [显示全部楼层]
3979浏览
查看: 3979|回复: 0

[项目] 教你用arduino的触控功能做一个实用的颈椎病预防器

[复制链接]
本帖最后由 gada888 于 2018-11-26 22:12 编辑

我知道学生一般写作业都会写很晚。头不由自主的会前倾。时间久了颈椎久会变形。时间长了就是颈椎病。
这里教大家做一个颈椎前倾的物理提醒。它主要是通过Arduino的capacitance库来实现这个功能的。这里并不讲cap库的具体用法。大家有兴趣可以去google搜索。
除了这个触控功能,主要硬件就是arduino和一个电机驱动以及一个马达。这个马达可以在人的头部碰到触控点后。向左转3转。然后停止,再向右转3转。回到原位。当再次触发触控时候,马达重复以上动作。

教你用arduino的触控功能做一个实用的颈椎病预防器图1

一年前做的。电机可以用小型的减速电机。如果有3D打印机,打印一个直线驱动结构。用这个机构把弯曲的颈部给顶回来。那就更完美了。我没有3D打印机。无法完美呈现这种效果。
注意:主控可以是很小的arduino mini电机驱动也可以用很小的。完全可以做成可穿戴的。程序就是这个程序。’

[mw_shl_code=applescript,true]//============add lib=============
#include <CapSense.h>
//============define================
#define ON_PERCH 1500
#define CAP_SENSE 30
#define ONBOARD_LED 13
//==========placement=============
CapSense foil_sensor = CapSense(10,7);

int perch_value = 0;
const int AIA = 5;  
const int AIB = 6;  
byte speed = 250;
//==========setup===========
void setup()
{
// for serial window debugging
Serial.begin(9600);
// set pin for onboard led
//pinMode(ONBOARD_LED, OUTPUT);
pinMode(AIA, OUTPUT); // set pins to output
pinMode(AIB, OUTPUT);
}
//============functions=============
void SendPerchAlert(int perch_value, int perch_state)
{
digitalWrite(AIA, perch_state ? HIGH : LOW);
digitalWrite(AIB, perch_state ? HIGH : LOW);
if (perch_state)
Serial.print("Perch arrival event, perch_value=");
else
Serial.print("Perch departure event, perch_value=");
Serial.println(perch_value);
}
//============loop============
void loop() {

delay(1000);

perch_value = foil_sensor.capSense(CAP_SENSE);
switch (perch_state)
{
case 0:
if (perch_value >= ON_PERCH)
{
perch_state = 1;
SendPerchAlert(perch_value, perch_state);
}
break;
case 1:
if (perch_value < ON_PERCH)
{
perch_state = 0;
SendPerchAlert(perch_value, perch_state);
forward();
  delay(2000);
  STOP();
  Serial.println( "Indietro..." );
  backward();
  delay(2000);
  STOP();
}
break;
}
}
void backward()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, speed);
}
void forward()
{
  analogWrite(AIA, speed);
  analogWrite(AIB, 0);
}
void STOP()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, 0);
  delay (4000);
}[/mw_shl_code]

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail