单片机开发过程中,有一个好的调试系统可以极大地提高开发效率。
举个例子,做平衡系统时调节PID参数,你会选择 修改参数–>编译–>烧录–>运行–>修改…,还是做一个功能可以一边运行一边修改参数呢?
调试的方法有多种,在这就来分别谈一下我在开发过程中使用过的几种调试方案。
这里的调试方案也是一种交互方案,但此方案不是为了交互而设计,重在快速地搭建、方便地使用、高效地调试,换句话说长得丑无所谓。

  

拿到一个机械臂时你会怎么办?搭电路,写程序,控制这个机械臂,然后这套电路一直放在机械臂上。
拿到一个电调呢?找航模遥控器来测试电调?也是一个不错的办法~然而有没有更方便的办法呢?

博主最近很空虚,冥冥之中感觉生命中缺少一个美妙的通用舵机控制器,能够让我把舵机和电调快速地撸起来~

  

1、特性

我买的是美国手,油门在左边。
7通道。
自带4节5号电池盒,可以用5号电池供电,也可以换成锂电池供电。

可设置固定翼和直升机两种遥控模式。直升机模式下各个通道之间的调节会相互影响,比如调节油门一个通道,会有多个通道一起改变;而在固定翼模式下,各个通道是独立调节。
对我来说,我只想在接收端还原遥控器的操作,对操作进行何种响应由飞机上的程序决定,所以我用的是固定翼模式,下面的所有介绍都是在固定翼模式下。

  

  我们知道PWM信号可以控制舵机,一般信号周期是20ms,脉宽在500us~2500us之间。
  实际上这种pwm信号不仅可以控制舵机,航模中使用的电调(有刷和无刷)也是用这种信号控制,只不过它们的脉宽范围一般限制在1000us~2000us。
  而航模接收机输出的正是上述 周期20ms,脉宽1000us~2000us之间的pwm信号。可以理解为,接收机通过pwm信号来反映遥控器的操作。
  航模遥控器有多路通道,可以传输多个操作(油门、方向等),而无线信道只有一路,怎么把多路通道的pwm信息传输到接收机呢?这就是所谓的PPM调制。
  PPM信号把多路PWM信号调制到一路通道上,发送到接收机后再由接收机还原成多路PWM从各个通道输出。

  先来看一下这个东西吧:http://v.youku.com/v_show/id_XNTk2NzExMjg4.html

  看完之后应该会觉得这个东西的结构非常复杂,这是笔者做过的最复杂的项目之一。由于是给公司开发的,所以和上一章一样不能公开源代码,但是会举一些简单的例子说明。
  刚接到这个项目了解了大体功能后,第一反应是用“界面函数”的结构。确实,这个东西是非常适合用界面函数完成的,但是由于当时笔者正在自学C++,于是用C++的思路分析了一下这个项目:
  1、总共有4个界面,而且有两个和列表框好像啊。
  2、几乎所有的动作都是由旋转编码器触发的。
  经过一番思考之后,笔者决定做一次尝试,用面向对象的思想加上事件驱动的机制完成它。

  下面就介绍一下这种结构,也希望能借此说明“对象”和“事件”的概念。