用蓝牙实时模仿人手的机械手

2018-08-095967
AI 快速预览详细 收起
本文介绍了如何使用Arduino UNO和Nano通过蓝牙HC-05实现机械手实时模仿人手的功能。发送端使用UNO板读取弯曲传感器的数值并通过蓝牙发送,接收端使用Nano板接收数据并控制舵机。文章详细分析了发送数据与接收数据不一致的问题,并提供了具体的调试方法。通过调整`analogRead`和`map`函数的参数范围,解决了数据处理不正确的问题,确保机械手能够准确模仿人手动作。


弯曲传感器通过蓝牙HC-05实时模仿人手时,接收的数据跟发送的数据不同,有哪位大神帮忙看看要怎么处理?发送数据用Arduino UNO板
代码如下
[mw_shl_code=cpp,true]
int a,b,c,d,e;

void setup() {
  Serial.begin(38400);
}

//本段代码实现功能是读取弯曲传感器数值。
void loop() {
  a=analogRead(A0);           //读取A0端口的传感器的数值,并赋值为a。
  b=analogRead(A1);           //以下均同上。
  c=analogRead(A5);
  d=analogRead(A3);
  e=analogRead(A4);

//本段代码实现功能是由发送端向接收端发送数值的代码。

  Serial.println('<');
  Serial.println(a);
  Serial.println(b);
  Serial.println(c);
  Serial.println(d);
  Serial.println(e);
}


[/mw_shl_code]

接收数据用arduino nano板
代码如下[mw_shl_code=cpp,true]
#include<Servo.h>
Servo s1,s2,s3,s4,s5;                     //舵机
unsigned int val;
int a,b,c,d,e;
int val1,val2,val3,val4,val5;
char ch;
void setup() {
Serial.begin(38400);
s1.attach(6);                           //舵机角度的数值函数
s2.attach(7);
s3.attach(8);
s4.attach(9);
s5.attach(10);
}


void loop() {
if(Serial.available()>0)
  {
    ch=Serial.read();
    if(ch=='<')
    {
       a=Serial.parseInt();
       b=Serial.parseInt();
       c=Serial.parseInt();
       d=Serial.parseInt();
       e=Serial.parseInt();

    }
  }
  Serial.println('<');
  Serial.println(a);
  Serial.println(b);
  Serial.println(c);
  Serial.println(d);
  Serial.println(e);   

   val1 = analogRead(a);            
   val1= map(val1,1024,0, 0, 130);     
   s1.write(val1);   

   val2 = analogRead(b);            
   val2= map(val2, 1024, 0, 0, 130);     
   s2.write(val2);   

   val3 = analogRead(c);            
   val3= map(val3, 1024, 0, 0, 130);     
   s3.write(val3);  

   val4 = analogRead(d);           
   val4= map(val4, 1024, 0, 0, 130);     
   s4.write(val4);  

   val5 = analogRead(e);            
   val5= map(val5, 0, 1024 , 0, 120);   
   s5.write(val5);  
   delay(10);                     

}[/mw_shl_code]




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
gada888
gada888
没看到蓝牙部分代码
LY2
LY2
你这好像都没把蓝牙写进去,同步机械手我已经做出来了,如果有需要,请加qq:2422022898
sanri14
sanri14
作者


[font=Tahoma, "]发送的数据 接收的数据[/font]
[font=Tahoma, "]两个数据不同。[/font]
[font=Tahoma, "]蓝牙波特率是:38400,0,0[/font]
- 没有更多了 -