0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用微控制器ATmega328的无线手势控制机器人

454398 来源:wv 2019-10-16 14:34 次阅读

步骤1:电路组件

半导体

IC1-7805,5V稳压器

IC2-ATmega328微控制器

IC3- LM1117-33,3.3电压调节器

IC4-HT12E,2 12串联编码器

IC5-HT12D,2 12串联解码器

IC6-L293D,双H桥式电动机驱动器

LED1和4-5mm LED

电阻器(全部1/4瓦,碳含量为5%):

R1-1兆欧

R2-10千欧

R3-750千欧

R4-R7-220欧姆

R8-47千欧

电容器

C1,C2-22pF陶瓷盘

C3-0.1μF陶瓷盘

C4-0.33μF陶瓷盘

C5-10μF,16V电解

其他:

CON1,CON3-2针连接器

CON2-6针连接器

X TAL 1-16MHz晶体

TX1-433MHz发射器模块

RX1-433MHz接收器模块

M1,M2 -直流减速电机,100rpm

S1,S2-开/关开关

电池1-9V PP3电池

电池2-4.5V, 1.5Ah铅酸电池

ANT.1,ANT.2-17厘米长的单股线天线

-ADXL335 3轴加速度计

第2步:这是什么?

ATmega328

ATmega328是Atmel的单芯片微控制器,属于mega AVR系列。基于Atmel 8位AVR RISC的微控制器结合了具有读写功能的32kB ISP闪存,1kB EEPROM,2kB SRAM,23个通用I/O线,32个通用工作寄存器,三个灵活的定时器/计数器,以及比较模式,内部和外部中断,串行可编程USART,面向字节的2线串行接口,SPI串行端口,10位A/D转换器,带有内部振荡器的可编程看门狗定时器和5个软件可选的电源-节能模式。设备工作在1.8至5.5伏之间它实现了接近每MHz 1 MIPS的吞吐量。 ATmega328p可以替代ATmega328p。

ADXL335

这是一个完整的三轴加速度测量系统。 ADXL335的最小测量范围为±3g。它包含一个多晶硅表面微机传感器信号调理电路,以实现开环加速度测量架构。输出信号是与加速度成比例的模拟电压。加速度计可以测量倾斜感应应用中的静态重力加速度,以及由于运动,冲击或振动而产生的动态加速度。

该传感器是一个多晶硅表面微加工结构,位于顶部硅晶片。多晶硅弹簧将结构悬挂在晶片表面上方,并提供抵抗加速力的能力。使用由独立的固定板和连接到运动物体上的板组成的差分电容器来测量结构的挠度。固定板由180°异相方波驱动。加速度会使移动的质量偏转并使差动电容器不平衡,从而导致传感器输出的幅度与加速度成比例。然后使用相位敏感的解调技术确定加速度的大小和方向。

L293D

这是一个16引脚DIP封装电机驱动器IC(IC6),具有四个输入引脚和四个输出引脚。全部四个输入引脚连接到解码器IC(IC5)的输出引脚,四个输出引脚连接到机器人的直流电动机。启用引脚用于启用IC6两侧的输入/输出引脚。

编码器(HT12E)和解码器(HT12D)IC

212编码器是用于远程控制系统应用的一系列CMOS LSI。它们能够编码由N个地址位和12 N个数据位组成的信息。每个地址/数据输入可以设置为两个逻辑状态之一。接收到触发信号后,已编程的地址/数据将与标头位一起通过RF红外传输介质进行传输。选择HT12E上的TE触发或HT12D解码器上的数据(DIN)触发的能力进一步增强了212系列编码器的应用灵活性。 HT12D还为红外系统提供38kHz的载波。

发射器

发送器由ATmega328微控制器(IC2),ADXL335加速度计,HT12E编码器(IC4)和433MHz RF发送器模块(TX1)组成。在该电路中,来自ADXL335引脚(x,y)的两个模拟输出与微控制器的输入引脚(23,24)连接。模拟信号通过微控制器转换为数字信号。来自微控制器的引脚16、17、18和19的数字输出直接发送到编码器IC4的引脚13、12、11和10。此数据通过RF模块TX1进行编码和传输。

接收器

接收器部分由433MHz射频接收器模块(RX1),HT12D解码器(IC5)和L293D电机驱动器(IC6)组成,用于运行电机。此处,接收器模块RX1接收发送的信号,该信号由解码器IC解码以获得相同的数字输出。 IC6的四个输出驱动两个电动机。机器人按照发射器中加速度计的倾斜方向移动。

步骤3:方框图

步骤4:发射器和接收器电路

步骤5:收发器电路的PCB布局

前两个图像是接收器电路的布局,其他两个图像是发射器电路的布局。/p》

步骤6:软件程序

该软件程序是用Arduino编程语言编写的。我借助Arduino IDE 1.0.5和Arduino Uno板编写了一个新的ATmega328微控制器。

首先,您必须将引导加载程序代码加载到微控制器中。为此,通过选择文件→示例→Arduino ISP,我将Arduino Uno用于IDE中给出的系统内编程(ISP)。将引导程序上传到微控制器后,即可上载该项目的pose.ino代码。

步骤7:源代码

const int ap1 = A0;

const int ap2 = A1;

int sv1 = 0;

int ov1 = 0;

int sv2 = 0;

int ov2 = 0;

void setup()

{//以9600 bps初始化串行通信

Serial.begin(9600);

pinMode(13,OUTPUT);

pinMode(12,OUTPUT);

pinMode(11,OUTPUT);

pinMode(10,OUTPUT);

}

void loop()

{AnalogReference(EXTERNAL);//将3.3v连接到AREF

//读取模拟值:

sv1 = AnalogRead(ap1);

ov1 = map(sv1,0,1023,0,255);

delay(2);

sv2 = AnalogRead(ap2);

ov2 = map(sv2,0,1023,0,255);

延迟(2);

Serial.print(“ Xsensor1 =”);

Serial.print(SV1);

Serial.print(“ \ t output1 =”);

Serial.println(OV1);

Serial.print(“ Ysensor2 =”);

Serial.print(sv2);

Serial.print(“ \ t output2 =”);

Serial.println(OV2);

if(analogRead(ap1)《514 && analogRead(ap2)《463)//用于向后移动

{

digitalWrite(13,HIGH);

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

digitalWrite(10,LOW);

}

else

{

if(analogRead(ap1)《486 && analogRead(ap2)》 508)//左打开

{

digitalWrite(13,LOW);

digitalWrite(12,HIGH);

digitalWrite(11,HIGH);

digitalWrite(10,LOW);

}

其他

{

if(analogRead(ap1)》 512 && analogRead(ap2)》 560)//用于转发

{

digitalWrite(13,LOW);

digitalWrite(12,HIGH);

digitalWrite(11,LOW);

digitalWrite(10,HIGH);

}

else

{

if(analogRead(ap1)》 550 && analogRead(ap2)》 512)//右打开

{

digitalWrite(13,HIGH);

digitalWrite(12,LOW);

digitalWrite(11,LOW);

digitalWrite(10,HIGH);

}

否则

{

digitalWrite(13,HIGH);

digitalWrite(12,HIGH);

digitalWrite(11,HIGH);

digitalWrite(10,HIGH);

}

}

}

}

}

步骤8:测试

安装此处所示PCB上的所有组件,以最大程度地减少组装错误。将接收器PCB和4.5V电池固定在机器人的机箱上。在机器人的后侧固定两个电机以及车轮,在前侧固定一个脚轮。将主代码上传到微控制器后,将其从Arduino Uno板上移除,然后将其插入到组装好的发送器PCB中。

现在,打开发送器和接收器电路中的电源。将变送器电路连接到您的手(或手套)上,然后向前,向后和侧向移动您的手。机器人的运动方向在表I中给出。如果您保持手掌水平并平行于地球表面,则机器人将停止运转。

为进行故障排除,请首先验证各个测试点的电压是否符合表1所述。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6734

    浏览量

    147371
  • 机器人
    +关注

    关注

    206

    文章

    26820

    浏览量

    201023
  • 手势控制
    +关注

    关注

    4

    文章

    44

    浏览量

    21488
  • ATmega328
    +关注

    关注

    1

    文章

    37

    浏览量

    20924
收藏 人收藏

    评论

    相关推荐

    开源项目!教你如何复刻自平衡赛车机器人、智能家居中控、竞技机器人先进模糊控制器

    ;gt;>点此查看全文 3.全志XR806基于FreeRTOS下部署竞技机器人先进模糊控制器 前言 很荣幸参与到由全志在线举办的XR806开发板试用活动。本人热衷于各种的开发板的开发,同时
    发表于 12-26 09:17

    LabVIEW的六轴工业机器人运动控制系统

    LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹规划算法的实现和测试。LabVIEW作为一个关键技术,在项目中扮演了核
    发表于 12-21 20:03

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)
    的头像 发表于 12-07 10:55 171次阅读
    【<b class='flag-5'>微控制器</b>基础】——从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(上)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)
    的头像 发表于 12-06 17:23 235次阅读
    【<b class='flag-5'>微控制器</b>基础】—— 从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(下)

    使用Arduino和PAJ7620手势传感制作手势控制机器人

    使用Arduino和PAJ7620手势传感制作手势控制机器人,简单程序即可实现。小小的传感
    发表于 09-27 06:17

    教你做个PID控制巡线机器人

    在本项目中,我们将学习如何使用带PID控制器的线跟随机器人使用Arduino Nano来解决迷宫。
    发表于 09-25 06:54

    【IoT毕设】机智云平台+STM32+树莓派的草莓采摘机器人控制系统

    采摘耗时长成本大的问题,提出了一种全向移动的草莓采摘机器人系统方案。 系统的硬件电路主要包括以STM32F407ZGT6为核心的主控制器、电源电路、WIFI模块、激光测距单元、电机驱动模块。系统
    发表于 08-16 17:35

    手势控制机器人开源项目

    电子发烧友网站提供《手势控制机器人开源项目.zip》资料免费下载
    发表于 07-12 11:18 0次下载
    <b class='flag-5'>手势</b><b class='flag-5'>控制</b><b class='flag-5'>机器人</b>开源项目

    DIY机器人控制器

    电子发烧友网站提供《DIY机器人控制器.zip》资料免费下载
    发表于 07-10 15:22 1次下载
    DIY<b class='flag-5'>机器人</b><b class='flag-5'>控制器</b>

    PLC与机器人控制器的关系

    机器人控制器机器人系统的核心部件,负责接收来自PLC或其他传感器的指令,并根据这些指令控制机器人的运动和操作。
    发表于 07-10 11:07 1635次阅读

    基于ATmega328P微控制器的Ardu键盘

    电子发烧友网站提供《基于ATmega328P微控制器的Ardu键盘.zip》资料免费下载
    发表于 06-19 14:47 0次下载
    基于<b class='flag-5'>ATmega328</b>P<b class='flag-5'>微控制器</b>的Ardu键盘

    简单的独立ATMega328p微控制器

    电子发烧友网站提供《简单的独立ATMega328p微控制器.zip》资料免费下载
    发表于 06-12 10:57 0次下载
    简单的独立<b class='flag-5'>ATMega328</b>p<b class='flag-5'>微控制器</b>

    手势控制机器人开源硬件

    电子发烧友网站提供《手势控制机器人开源硬件.zip》资料免费下载
    发表于 06-12 10:39 0次下载
    <b class='flag-5'>手势</b><b class='flag-5'>控制</b><b class='flag-5'>机器人</b>开源硬件

    浅谈儿童陪护机器人

    儿童陪护机器人中得到了广泛应用。 在儿童陪护机器人中,步进电机芯片主要用于转动控制。在此过程中,控制器通过对步进电机芯片输出的脉冲信号进行控制
    发表于 05-11 15:12

    扫地机器人是如何实现液位检测的

    的不是水位的高度,而是污水的量。当机器人开始工作时,污水将进入污水箱,每当进入指定容量的污水,传感会测量并发送信号到微控制器,通知其污水箱已满并需要清洁。总体而言,液位检测对于扫地机器人
    发表于 04-15 11:21