从对机器人感兴趣开始,买了一堆书,也看了很多资料,决定先从最简单的车轮机器人开始做。普通电脑虽然强大,但是不能直接采集外界环境的物理数据,也不能直接控制电机。查找了下,虽然可以直接在电脑上接USB接口的数据采集器用于采集传感器的数据,也可以使用PCI的电机控制卡来驱动各种电机,不过成本有些高,暂时不考虑了。找了一圈,发现还是单片机方案廉价,顺便可以学习下单片机控制和作一些电路实验。于是最终决定实验方案采用单片机来做了。
零件
下面是采购的零件:
8位单片机Atmega168开发板(Arduino)。
电路面包板和连线
用于驱动车轮的两个减速电机。没有找到合适的齿轮,自己也没有加工设备,图简单,所以直接用集成减速齿轮的电机代替了。
距离传感器,作为机器人的主要传感器,用来探测障碍物的距离。使用的是常用的红外距离传感器作为机器人的眼睛。
舵机,用来控制机器人“眼睛”的方向。
一堆零件:
实验
接下来先搞清楚怎么用单片机。 Hello world
先让单片机跑起来再说。习惯了操作系统下编程,第一次用单片机还真有些不习惯,担心遇到问题,不过比较顺利。这个程序用来点亮
单片机上的一个LED。
代码:
int ledPin = 13; // LED connected to digital pin 13
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin as output }
void loop() {
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
以间隔1000ms的时间把单片机的第13 个Pin脚循环输出高低电平,从而达到点亮和熄灭LED功能。很简单,就是验证下单片机是否可用。
控制舵机
舵机就是遥控模型上用来控制的,其实就是一个带闭环控制的电机,能转动到指定的角度。