5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 33717|回复: 106
打印 上一主题 下一主题

一步一步实现,超声波直升机高度锁定

[复制链接]
跳转到指定楼层
楼主
发表于 2011-3-24 04:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击查看详情
前言:
大家会觉得我的进度很慢。 是的,进度确实慢 主要是以下2点原因。
1. 我是学生,以学业为主,有好多作业。由于在海外留学,有好多生活上的事情都得自理。 有时候还得照顾别的同学。
2. 我的专业是机械工程,单片机都是自学的。现在还没有一个像样的中文的学习网站,我学到的知识都是从国外论坛上学到的。

公开自己的代码,不是幼稚的表现。
我发帖不图名,不图利。 只为了能把我学到的东西跟大家分享。 更希望有人能从我的帖子中得到启发,做出更好的东西贴出来,能够互相学习。我能学到这些东西,也是应为别人把源代码公开出来。  

这个帖子是我学习的过程。最新的东西永远都放在最后。

[ 本帖最后由 切风40.83 于 2011-11-6 14:08 编辑 ]

IMG_0575.JPG (73.25 KB, 下载次数: 166)

IMG_0575.JPG

欢迎继续阅读楼主其他信息

沙发
 楼主| 发表于 2011-3-24 04:52 | 只看该作者
以后打算用它控制4轴飞碟的油门, 这样玩FPV就方便了。
3
发表于 2011-3-24 08:49 | 只看该作者
这个要顶 等结果
4
发表于 2011-3-24 12:36 | 只看该作者
:em22:
5
发表于 2011-3-24 20:51 | 只看该作者
噪声早就把超声波淹没了
6
发表于 2011-3-24 21:02 | 只看该作者
这是哪门子的语言,子函数呢?
7
 楼主| 发表于 2011-3-25 00:20 | 只看该作者
我用的是 Ardoino Duemilanove。 是一种AVR 开发板。 我的方法是用超声波传播的时间 直接映射一个相应的伺服电机角度,这样的话 会是整个系统最终达到平衡。
8
 楼主| 发表于 2011-3-25 02:25 | 只看该作者
为了方便大家看效果 我还是决定把视频发到YOUKU上面。 估计明天才能审核好。
9
 楼主| 发表于 2011-3-25 03:16 | 只看该作者



视频来啦
10
发表于 2011-3-25 08:17 | 只看该作者
视频看不到哦 顶起来
11
 楼主| 发表于 2011-3-25 08:52 | 只看该作者
12
发表于 2011-3-25 11:25 | 只看该作者
厉害
13
 楼主| 发表于 2011-3-27 07:36 | 只看该作者
喔哦 今天审核速度极快啊, 谢谢了啊, 哈哈。

http://v.youku.com/v_show/id_XMjUzOTcwNzgw.html
14
 楼主| 发表于 2011-3-27 07:36 | 只看该作者
差点忘了分享程序



#include <Servo.h>
Servo myservo;
const int echo = 2;
const int trig = 13;
const int sw = 3;
const int th = 4;


void setup()
{
  Serial.begin(9600);
  pinMode(echo,INPUT);
  pinMode(trig,OUTPUT);
  int sensorValue = digitalRead(echo);
  int swValue = digitalRead(sw);
  int thValue = digitalRead(th);
  myservo.attach(9);
}

void loop()
{
  long duration, inches, cm ,hold ,power;
  digitalWrite(trig,LOW);
  delayMicroseconds(2);
  digitalWrite(trig,HIGH);
  delayMicroseconds(12);
  digitalWrite(trig,LOW);
  duration = pulseIn(echo,HIGH);
  hold = pulseIn(sw,HIGH);
  power = pulseIn(th,HIGH);
   // convert the time into a distance
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.print(duration);
  Serial.print("-");
  Serial.print(hold);
  Serial.print("th=");
  Serial.print(power);
  Serial.println();
  
  if (hold>1500)
{
  duration = map(duration, 0, 10000, 135, 45);
  myservo.write(duration);
}
else
{map(power, 1090, 1900, 135, 45);
myservo.write(power);
}
  
}

long microsecondsToInches(long microseconds)
{

  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{

  return microseconds / 29 / 2;
}
15
发表于 2011-3-27 14:19 | 只看该作者
支持ccpm控制方式?有效距离是多少?这个控制小车没问题,直机不是那么简单。
16
发表于 2011-3-27 14:26 | 只看该作者
不知道可靠性怎样,机体倾斜时的误差、过草地时出错等等
17
发表于 2011-3-27 14:51 | 只看该作者
:em26: :em26:
18
发表于 2011-3-27 15:17 | 只看该作者
:em26: :em26:
19
发表于 2011-3-27 17:15 | 只看该作者
这个距离能有多远啊,看你的测试视频都不超过50CM
20
发表于 2011-3-27 19:55 | 只看该作者
那个iphone控制的四轴就是类似的结构
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表