前言
最近一个月,做的事情比较杂,又是做迷宫音箱,又是做PPT,又是出差培训,又是折腾光固化打印机,又是上手blender建模软件…到月底才专心折腾出一个还算满意的制作。
成品如下图所示,基于Processing和Arduino的交互,给定一种颜色,用Processing分析实时摄像图案的像素,传输控制信号至Arduino,调整摄像头的角度,跟踪选定的色彩。
简介
主要组成部分如下图所示,都是比较便宜的物件,可以在淘宝方便购得。
ULN2003步进电机驱动板简介
ULN2003步进电机驱动板和28BYJ-48步进电机是很便宜的套件,淘宝卖4.5左右一套。直接5V驱动,用Arduino就可以给它供电。
步进电机 | 28BYJ-48步进电机 |
---|---|
直径 | 28mm |
电压 | 5V |
步进角度 | 5.625 ✖ 1/64 |
重量 | 40g |
减速比 | 1/64 |
接线
接线比较简单,注意ULN2003的四个输入按1、3、2、4的顺序接到D2、D3、D4、D5,简介中的配图2和3接反了。
代码
Arduino代码
Arduino安装包中自带ULN2003步进电机驱动板的库,叫做Stepper
,使用库可以使代码简洁很多。
#include <Servo.h>
#include <Stepper.h>
Servo servo; //定义舵机
Stepper steppermotor(32, 2, 3, 4, 5); //定义28BYJ-48电机
int servoPin = 8;
char value;
int initial = 100;
int StepsRequired; //电机转动的数值,正值正转,负值反转
void setup() {
Serial.begin(9600);
servo.attach(servoPin);
servo.write(initial);
}
void loop() {
if( Serial.available() > 0 ) {
value = Serial.read();
Serial.println(value);
switch(value) {
case 'a': left(); break;
case 'b': right(); break;
case 'c': up(); break;
case 'd': down(); break;
}
}
}
void left() {
StepsRequired = - 20;
steppermotor.setSpeed(50);
steppermotor.step(StepsRequired);
}
void right(