小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 13778|回复: 4
打印 上一主题 下一主题

改造 ar drone 换flymaple 飞控 但电调搞不定

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-25 09:53:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 怪怪金小鱼 于 2012-8-25 20:39 编辑






由于 换了 flymaple 的飞控 所以 电调 要重新 写控制  他的电调 不是 普通 pwm 控制   我找了一些 资料 但是没 弄不明白  而且 电调 资料没有 什么



这是资料


AR.Drone的ARM Linux飞控主板很强大, 但它与电调/电机之间的通信协议却一直是个迷.

最近我与rcgroups上的miru:
http://www.rcgroups.com/forums/showthread.php?t=1420951
一直在PM中讨论这个问题.在Fenrir:
http://fenrir.naruoka.org/
的前期研究基础上, 搞清了AR.Drone电调通信协议.

AR.Drone电调上的CPU为ATmega8a.

AR.Drone的飞控主板与电调之间用5线连接, 串口PWM油门数据通信:
Pin 1: 12V 电源 (红线)
Pin 2: 5V 电源 (白线)
Pin 3: TTL半双工串口(即RX与TX接在一起), 用于PWM油门数据发送等. 波特率115200. 详细见后.
Pin 4: 电机报警(低电位: 正常, 高电位: 电机卡住或空转)
Pin 5: 地 (黑线)

飞控主板发送给电调的串口数据前3bits为命令字:
001 油门量: 5字节数据, 后37bits为:8bits电机1油门量 + 0 +8bits电机2油门量 + 0 +8bits电机3油门量 + 0 +8bits电机4油门量 + 00
010 版本查 询: 1字节数据, 后5bits为:00000  
011 LED电机灯控制: 2字节: 4个LED各2bits
100 状态查 询: 1字节数据, 后5bits为: 01 +3bits BLC# (0...3)
101 同步字节: 1字节数据, 后5bits为:00000  
111 复位: 1字节数据, 后5bits为:00000

我们可以通过Arduino I/O小板子来与普通电调PWM进行中转通信, 这可用Arduino上的Servo库来简单实现:
http://gaishi.vicp.net/#article_id_8

这样就可以使用市场上能买到的普通电调/电机, 乃至机架来作替代品.



flymaple 编程 类似于 arduino  所以我先用 arduino 控制电调    求高手   



回复

使用道具 举报

沙发
 楼主| 发表于 2012-8-25 20:40:54 | 只看该作者
找到了 arduino  的 单双工串口  例程
但是 没搞定
/*
  Analog input, analog output, serial output

Reads an analog input pin, maps the result to a range from 0 to 255
and uses the result to set the pulsewidth modulation (PWM) of an output pin.
Also prints the results to the serial monitor.

The circuit:
* potentiometer connected to analog pin 0.
   Center pin of the potentiometer goes to the analog pin.
   side pins of the potentiometer go to +5V and ground
* LED connected from digital pin 9 to ground

created 29 Dec. 2008
modified 9 Apr 2012
by Tom Igoe

This example code is in the public domain.

*/

// These constants won't change.  They're used to give names
// to the pins used:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 255);  
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);           

  // print the results to the serial monitor:
  Serial.print("sensor = " );                       
  Serial.print(sensorValue);      
  Serial.print("\t output = ");      
  Serial.println(outputValue);   

  // wait 2 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:
  delay(2);                     
}
回复 支持 反对

使用道具 举报

板凳
发表于 2012-8-25 23:21:29 | 只看该作者
LZ有钱人!AR.Drone大约多少?
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-8-26 09:56:36 | 只看该作者
liuviking 发表于 2012-8-25 23:21
LZ有钱人!AR.Drone大约多少?

买的 时候早  不到 2000 一 代  实验室 共同财产  所以我 不是我有钱 嘻嘻
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-8-26 09:59:08 | 只看该作者
liuviking 发表于 2012-8-25 23:21
LZ有钱人!AR.Drone大约多少?

这个 要是 改不动  估计 又得 投资了 接下来 就我我 自己 投资了 还得 重新买电调 马达  这学期 的日子就 艰苦了。。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-23 09:24 , Processed in 1.282393 second(s), 20 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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