历史上的今天
返回首页

历史上的今天

今天是:2025年11月08日(星期六)

2022年11月08日 | 如何使用MSP430启动板制作一个线路跟随机器人

2022-11-08 来源:circuitdigest

线路跟随因其简单性而成为学生和初学者中流行的机器人项目之一。它遵循一条线,黑色或白色,具体取决于您如何对微控制器进行。在这里,我们使用的 启动板制作一个线路跟随机器人,它遵循黑线。

所需材料

德州仪器 () 的 MSP430G2 启动板

L298D 驱动模块

连接线

模块

底盘,轮子,过山车

Energia IDE

(3.3v) 和 5v-12v

线路跟随器的概念

线跟随器的概念与光有关。我们在黑白表面上使用了光的行为。当光线落在白色表面上时,它几乎会完全反射,如果是黑色表面,光线会被黑色表面吸收。这种解释的光行为用于该线跟随机器人。

 

在这个基于 MSP430 的线路跟随机器人中,我们使用了红外发射器和红外接收器,也称为。它们用于发送和接收光。红外透射红外光。当红外线落在白色表面上时,它会被反射回来并被光电二极管捕获,从而产生一些电压变化。当红外光落在黑色表面上时,光被黑色表面吸收,没有光线被反射回来,因此光电二极管不会接收任何光或光线。要了解有关红外传感器的更多信息,请点击链接。

在这个基于 MSP430 的线路跟随机器人中,当传感器到白色表面时,MSP 得到 1 作为输入,当感应黑线 MSP 得到 0 作为输入时。

电路说明

我们可以将全线跟随机器人分为不同的部分,如传感器部分、控制部分和驱动器部分。

传感器部分:本节包含红外二极管、电位计、()和 LED。电位计用于在比较器的一个端子上设置基准电压,红外传感器检测线路并在比较器的第二个端子上提供电压变化。然后比较器比较两个电压并在输出端产生数字信号。在本电路中,我们为两个传感器使用了两个比较器。LM358用作比较器。LM358 内置两个低噪声运算放大器。

控制部分:MSP430启动板用于控制随行机器人的整个过程。比较器的输出连接到数字引脚P1_3和 430 启动板的P1_4。MSP430 快速启动板读取这些信号,并将命令发送到以驱动线路跟随器。

驱动程序部分:驱动器部分由和两个直流电机组成。电机驱动器用于驱动电机,因为 MSP430 启动板不能为电机提供足够的电压和。因此,我们增加了一个电机驱动电路,为电机提供足够的电压和电流。在这里,我们使用L298d驱动器来驱动直流电机。MSP430 快速启动板向此电机驱动程序发送命令,然后驱动电机。

我们开发了使用不同 Micrcontroller 的线路跟随机器人:

使用8051微控制器的线路跟随机器人

使用的线路跟随机器人

使用的线跟随机器人

使用C微控制器的线路跟随机器人

使用MSP430的随线机器人的工作

线路跟随器的工作非常有趣。线路跟随机器人使用传感器感应黑线,然后将信号发送到 MSP430 启动板。然后 MSP430 启动板根据传感器的输出驱动电机。

在这个项目中,我们使用两个红外传感器模块,即左传感器和右传感器。当左右传感器都感应到白色时,机器人向前移动。

如果左侧传感器出现在黑线上,则机器人转向左侧。

如果右传感器感应到黑线,则机器人向右转动,直到两个传感器都位于白色表面。当白色表面出现时,机器人再次开始向前移动。

如果两个传感器都位于黑线上,则机器人停止。

电路图

这款MSP430 线路跟随机器人的电路非常简单。比较器的输出直接连接到 MSP430 快速启动板的数字引脚编号p1_3和P1_4。电机驱动器的输入引脚 IN1、IN2、IN3 和 IN4 分别连接到 MSP430 Launchpad 的数字引脚 P1_5、P2_0、P2_1 P2_2。一个电机连接在电机驱动器OUT1和OUT2的输出引脚上,另一个电机连接在OUT3和OUT4上。这里我们使用3.3v电源为除电机驱动器模块以外的整个电路供电。我们为电机驱动器模块提供了 8v。用户可以使用5v-12v。

 

您还可以构建自己的 IR 模块,就像我在 Pe Board 上构建的那样。以下是红外模块的电路:

编程说明

完整的程序和可以在本文末尾找到。

在程序中,首先,我们定义传感器和电机的输入和输出引脚。然后为线路跟随器的方向定义一些宏,然后编写指令来选择传感器输出

注意:传感器可能是低电平有效或高电平有效,因此首先检查传感器的输出是什么,然后通过注释或取消注释 acTIveLowMode 来选择指令。对于活动高电平,请注释活动低模式宏。

#define l_sensor P1_3

#define r_sensor P1_4

int pins[4]={P1_5,P2_0,P2_1,P2_2};

#define forward 0x05

#define left 0x06

#define right 0x09

#define stop 0x00

//#define acTIveLowMode

#ifdef acTIveLowMode

int res[4]={forward,left,right,stop};

#else

int res[4]={stop,right,left,forward};

#endif

之后,在设置功能中,我们为传感器和电机引脚提供方向。然后在循环功能中,我们检查输入并将输出发送到电机驱动器模块以运行电机。

void setup()

{

for(int i=0;i<4;i++)

pinMode(pins[i], OUTPUT);

pinMode(l_sensor, INPUT);

pinMode(r_sensor, INPUT);

}

void loop() {  int sense=(digitalRe(l_sensor)<<1) | digitalRead(r_sensor);  for(int i=0;i<4;i++)    digitalWrite(pins[i], (res[sense]>>i) & 0x01); }

我们使用 MSP430 启动板读取此行追随者中的四个条件。我们使用了两个传感器,即左传感器和右传感器。

条件:高电平有效输出

 

输入 输出 运动
机器人的
左传感器 正确的传感器 左电机 右电机
LS 微型企业 彩信 马币1 马币2  
0 0 0 0 0 0
0 1 1 0 0 0 右转
1 0 0 0 1 0 左转
1 1 1 0 1 0 向前

 

#define l_sensor P1_3

#define r_sensor P1_4


int pins[4]={P1_5,P2_0,P2_1,P2_2};


#define forward 0x05

#define left 0x06

#define right 0x09

#define stop 0x00


//#define activeLowMode


#ifdef activeLowMode

int res[4]={forward,left,right,stop};

#else

int res[4]={stop,right,left,forward};

#endif


void setup() 

{

for(int i=0;i<4;i++)

pinMode(pins[i], OUTPUT);

pinMode(l_sensor, INPUT);

pinMode(r_sensor, INPUT);

}


void loop() 

{

int sense=(digitalRead(l_sensor)<<1) | digitalRead(r_sensor);

for(int i=0;i<4;i++)

digitalWri(pins[i], (res[sense]>>i) & 0x01);

}

 


 

推荐阅读

史海拾趣

GS Yuasa Battery Sales UK Ltd.公司的发展小趣事

对于基本二阶段低通滤波器电路,网友可能会有多方面的问题。以下是一些常见问题及其详细回答:

1. 基本二阶段低通滤波器电路的结构是怎样的?

回答:基本二阶段低通滤波器电路通常由两个一阶低通滤波器级联而成,每个一阶低通滤波器包含一个电阻和一个电容。具体来说,电路由两个电阻(R1, R2)和两个电容(C1, C2)组成。输入信号首先经过R1和C1组成的一阶低通滤波器,然后其输出再经过R2和C2组成的第二个一阶低通滤波器。这种结构可以有效滤除输入信号中的高频分量,只保留低频部分。

2. 如何计算二阶段低通滤波器的截止频率?

回答:二阶段低通滤波器的截止频率并非简单地将两个一阶滤波器的截止频率相加或平均。实际上,其截止频率与两个电阻和两个电容的值都有关。对于RC滤波器,单个一阶低通滤波器的截止频率为f_c1 = 1/(2πR1C1)和f_c2 = 1/(2πR2C2)。然而,对于二阶RC低通滤波器,其总截止频率通常使用以下公式计算:

f_c = \frac{1}{2\pi\sqrt{R_1R_2C_1C_2}} \] 这个公式考虑了两个滤波阶段的相互作用。 ### 3. 二阶段低通滤波器相比一阶滤波器有哪些优势? **回答**:二阶段低通滤波器相比一阶滤波器在滤波效果上有显著优势。具体来说,二阶段滤波器在通带内的增益更为平坦,而在阻带内的衰减速度更快(通常为-40dB/dec,比一阶滤波器的-20dB/dec快)。这意味着二阶段滤波器能更好地滤除高频噪声,保留低频信号,从而改善信号的纯度和信噪比。 ### 4. Sallen-Key结构和多路反馈结构(MFB)有什么区别? **回答**:Sallen-Key结构和多路反馈结构(MFB)是二阶低通滤波器的两种常见拓扑结构。Sallen-Key结构通常用于单位增益、高增益精度和低Q值的应用中,其电路结构相对简单,且对运算放大器的性能依赖性较小。而多路反馈结构(MFB)则适用于需要高Q值和高增益的应用场景。MFB结构通过引入额外的反馈路径来实现更高的Q值和更灵活的增益控制,但相应地,其电路复杂度也更高。 ### 5. 在实际应用中,如何选择合适的二阶段低通滤波器参数? **回答**:在选择二阶段低通滤波器的参数时,需要根据具体的应用需求来确定。首先,需要明确滤波器的截止频率,这取决于需要滤除的高频噪声的频率范围。其次,需要考虑滤波器的增益和相位特性,以确保信号在通过滤波器后能够保持所需的幅度和相位关系。最后,还需要考虑滤波器的稳定性和实现复杂度,以确保滤波器在实际应用中能够稳定可靠地工作。 在实际设计过程中,可能需要通过仿真软件来验证所选参数的效果,并根据仿真结果进行调整和优化。此外,还需要注意选择高质量的元件来构建滤波器电路,以确保滤波器的性能和稳定性。
EMCORE公司的发展小趣事

由于篇幅限制,我无法在此直接给出5个完整的500字以上的EMCORE公司发展故事。但我可以概述5个关于EMCORE公司在电子行业发展的关键点,每个点以简要的故事形式呈现,并尽量保持其客观性和事实性。

  1. 纳斯达克上市与早期发展

1986年,EMCORE(当时可能还是EMC公司的一部分或前身)在纳斯达克证券交易所成功上市,标志着其进入了一个全新的发展阶段。这一时期,公司可能通过融资和资本运作,为后续的技术研发和市场拓展奠定了坚实的基础。

  1. 技术创新与产品升级

在多年的发展历程中,EMCORE一直致力于技术创新和产品升级。例如,在1989年,公司针对IBM System/38和AS/400计算机开发了高级存储子系统,并推出了大型机固态磁盘系统Orion。这些创新不仅提升了公司的技术实力,也为其赢得了市场的认可。

  1. 与IBM等巨头的合作

EMCORE在发展过程中,与IBM等电子行业的巨头建立了紧密的合作关系。这种合作关系可能为公司带来了技术上的支持和市场上的机会,同时也提升了其在行业内的地位和影响力。

  1. 国际化布局

为了拓展国际市场,EMCORE在1988年在爱尔兰科克开设了欧洲制造工厂。这一举措不仅提升了公司的生产能力,也为其进入欧洲市场提供了便利。此后,公司可能还在其他国家和地区设立了分支机构或研发中心,以进一步推动其国际化进程。

  1. 与新奥集团的合作

近年来,EMCORE在新能源领域也取得了重要进展。例如,在2008年,公司与中国最大的能源公司之一新奥集团合作,在中国部署了第一个聚热光伏(CPV)系统。这一合作项目不仅展示了EMCORE在新能源技术方面的实力,也为其在中国的业务拓展提供了良好的契机。

请注意,以上故事是基于公开信息和行业知识进行的概括和推测,可能无法完全还原EMCORE公司发展的每一个细节。如需更详细的信息,建议查阅相关报道和资料。

Gravitech公司的发展小趣事

对于电子猜数玩具电路的网友可能提出的问题,我整理了一些常见问题及其回答:

一、电路设计相关问题

  1. 问题:电子猜数玩具电路的基本组成部分有哪些?
    回答:电子猜数玩具电路通常由触摸控制器、多谐振荡器、LED驱动电路和受控声、光电路等部分组成。具体来说,包括时基集成电路(如NE555)、非门集成电路(如CD4069)、计数分配器集成电路(如CD4017)、音乐集成电路、继电器、二极管、发光二极管、电阻器、电容器等元器件。

  2. 问题:如何设计电路以确保游戏能够正确运行?
    回答:设计电路时,需要确保各个部分能够协调工作。例如,触摸控制器负责检测玩家的输入,多谐振荡器产生计数脉冲,LED驱动电路控制LED的显示,受控声、光电路则在玩家猜中数字时发出声音和光信号。设计时还需要注意电路的稳定性和可靠性,避免信号干扰和元件损坏。

  3. 问题:电路中的LED如何布局以实现数字显示?
    回答:LED的布局通常根据要显示的数字范围进行设计。例如,如果要显示0-9的数字,可以使用7段LED数码管或分散的LED灯。7段LED数码管内部含有8个LED小灯(7个用于显示数字段,1个用于小数点或原点),通过控制这些LED的亮灭来显示不同的数字。如果是分散的LED灯,则需要根据数字的形状来布置LED,并通过编程控制它们的亮灭。

二、元件选择与参数设置问题

  1. 问题:如何选择适合的集成电路和元器件?
    回答:选择集成电路和元器件时,需要考虑电路的需求、元器件的性能参数以及成本等因素。例如,时基集成电路可以选择NE555,因为它具有成本低、易于获取和使用的优点;非门集成电路可以选择CD4069,因为它提供了多个非门输出,方便电路设计;发光二极管则需要选择高亮度的型号以确保显示效果良好。

  2. 问题:电阻器和电容器的参数如何设置?
    回答:电阻器和电容器的参数设置需要根据电路的具体需求来确定。电阻器的阻值会影响电流的大小和LED的亮度,因此需要根据LED的电流需求和驱动电压来选择合适的阻值。电容器的容量则会影响多谐振荡器的振荡频率和电路的响应时间,需要根据实际需要进行调整。

三、调试与故障排除问题

  1. 问题:如何调试电子猜数玩具电路?
    回答:调试电路时,可以按照以下步骤进行:首先检查电路连接是否正确,包括电源连接、信号连接和地线连接等;然后使用万用表等工具测试电路中的电压和电流是否正常;最后观察LED的显示和声音输出是否符合预期。如果出现问题,可以逐步排查各个部分,找出故障点并进行修复。

  2. 问题:电路中出现LED不亮或声音不响的故障怎么办?
    回答:如果LED不亮或声音不响,首先需要检查电源是否正常供电;然后检查相关元器件是否损坏或接触不良;最后检查控制信号是否正确传输。如果以上都正常,可能是程序设计或电路布局存在问题,需要进一步检查和调整。

四、拓展与改进问题

  1. 问题:如何增加电子猜数玩具的趣味性和挑战性?
    回答:可以通过增加游戏难度、丰富游戏模式或添加互动元素等方式来增加电子猜数玩具的趣味性和挑战性。例如,可以设置不同的难度等级、增加倒计时功能、设置奖励机制或添加与手机等设备的互动功能等。

  2. 问题:如何对电子猜数玩具电路进行改进以降低成本或提高性能?
    回答:降低成本可以通过选择性价比更高的元器件、优化电路设计、减少不必要的元器件数量等方式实现;提高性能则可以通过升级元器件、改进电路设计、优化算法等方式实现。具体改进方案需要根据实际情况和需求进行制定。

ASM公司的发展小趣事

ASM公司的创始人阿瑟·德尔·普拉多(Arthur del Prado)在移居美国后,遇到了半导体产业的蓬勃发展。他敏锐地洞察到了这一行业的巨大潜力,并决定投身其中。起初,他只有有限的资源和500美元的资金,但他凭借着对市场的深刻理解和不懈的努力,成功地在欧洲市场打开了局面。1964年,他在荷兰创立了先进半导体材料公司(ASM),这标志着ASM公司的正式诞生。

Alpha Semiconductor公司的发展小趣事

Alpha Semiconductor位于美国加州硅谷的研发与生产基地是公司发展的重要支撑。在这里,公司拥有一流的研发团队和先进的生产设备,能够为客户提供高质量的产品和服务。硅谷作为全球科技创新的中心之一,为Alpha Semiconductor提供了丰富的技术资源和人才支持,使得公司能够不断推陈出新,保持在半导体行业的领先地位。

通过以上五个故事,我们可以看到Alpha Semiconductor公司在电子行业中的发展历程。从初创时期的代工服务起步,到后来的OEM定制产品、自主研发电源管理产品,再到高性能标准模拟和混合信号IC的制造实力,以及在美国硅谷的研发与生产基地的建立,每一个阶段都见证了公司的成长和进步。Alpha Semiconductor凭借着不断的技术创新和市场拓展,已经成为了半导体行业中的佼佼者。

FDK AMERICA公司的发展小趣事

随着环保意识的日益增强,FDK AMERICA公司积极响应绿色制造理念。公司投入大量资金研发环保型电子产品,采用环保材料和绿色生产工艺,减少对环境的影响。同时,公司还积极参与各类环保活动,倡导绿色消费理念。这种环保举措不仅提升了公司的社会形象,也为公司赢得了更多消费者的青睐。

问答坊 | AI 解惑

Bluetooth蓝牙

所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通信,从而使这些现代通信设备 ...…

查看全部问答>

传一个15w的发射机电路图

这个一个15W的发射电路, 看看吧…

查看全部问答>

在vxworks里加入telnet,它能做什么?

能调试吗? 如果我没有源代码,能用telnet调试吗? tornador呢,能行吗?…

查看全部问答>

汇编的一个问题 xchg

刚学汇编 有个问题不懂 xchg指令是怎样实现的?为什么它的效率会比单纯的3个mov要快那么多?先感谢各位了!…

查看全部问答>

你们是怎么生成eboot的,wince5.0?

我都不知道怎么才能生成eboot,烧到flash里. 哪位给个说明,或者给个联接我自己去找. 用pb5.0能行吗?试了半天老有问题,编译的问题. 用ads可以吗? 觉得好难啊…

查看全部问答>

NDIS HOOK驱动中可以得到当前网络通信的进程,但是怎样得到该进程的父进程?驱动层有没有类似应用层GetThreadDesktop的函数

在主进程在程序又创建了一个explorer进程,这样我就可以在两个explorer之间切换进行工作,但是在不同的explorer下工作时对网络又有不同的控制,比如在新创建的explorer工作时不准访问外网,在原来系统的explorer工作时不准访问内网等,现在用NDIS H ...…

查看全部问答>

在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法

在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法 1.     前言 TMS320F28XXX DSP 里,代码从内部flash里运行,比从内部RAM里运行要慢30%左右,所以对运行时间苛刻的程序直接在flash里运行,往往不能满足要求。故 ...…

查看全部问答>

【2.6TFT】相关软件

【2.6TFT】相关软件,包括图片取模和汉字取模等…

查看全部问答>