Processing 与Arduino交互之颜色跟踪

本文介绍了一个基于Processing和Arduino的交互项目,通过颜色跟踪来调整摄像头角度。用户选择一种颜色,Processing分析视频像素并发送控制信号到Arduino,使摄像头追踪选定色彩。项目主要使用ULN2003步进电机驱动板和28BYJ-48步进电机,通过特定的接线和代码实现功能。演示视频展示了颜色跟踪的效果,代码中还提到可以进一步扩展用于人脸识别互动。
摘要由CSDN通过智能技术生成

前言

最近一个月,做的事情比较杂,又是做迷宫音箱,又是做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(
  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值