分享

0基础转交互,我在UXD完成了人生第一个硬件交互探索

 UXD尤克斯 2020-11-11

Arduino UNO板是硬件交互中常用的工具,利用Arduino UNO板和红外线传感器的联动,UXD的学员完成了跟着热源产生行为改变的随感小车制作。今天UXD就给大家来复盘下,零基础小白是如何完成随感小车制作的全过程。


分享人

-Han-

UXD在读学员

申请交互设计方向

以下是我们本次随感小车制作过程中所需要的电路图,在实际操作之前,同学已经在老师的带领下完成了电路图重点知识的领会。本次随感小车主要涉及的硬件包括:1.红外线传感器/2.Arduino UNO板/3.L9110S电机驱动模块/4.DC直流电机/5.充电宝/6.面包板

以上排序为1.红外线传感器/2.Arduino UNO板/3.L9110S电机驱动模块

/4.DC直流电机/5.充电宝/6.面包板


最终完成的预装车的照片@UXD

本文我将从如下几个方面来还原随感小车制作全过程。

01 红外信号传输部分

02 电机驱动模块组装

03 红外传感器输出信号调试 

04 组装测试

01

红外信号传输部分

红外线传输部分的连接电路示意图如上图所示,原理如下:

红外线传感器的VCC引脚接面包板的上的火线(红线);

红外线传感器的GND引脚接面包板的上的地线(蓝线);

两个红外线传感器的OUT输出引脚分别接Arduino UNO板的数字电路的6、7号引脚(之后再在Arduino软件上使用digitalRead(6)/digitalRead(7)函数读取红外线传感器的输出信号)

1.红外线工作原理

红外线传感器是利用红外线的物理性质来进行测量的传感器。红外线又称红外光,它具有反射、折射、散射、干涉、吸收等性质。任何物质,只要它本身具有一定的温度(高于零度),都能辐射红外线。我们利用这个原理去控制小车行为。

红外线传感器实拍@UXD

2.测试红外线

在制作小车之前,需要测试红外线的感应功能。在一定区域内,输出指示灯亮起说明在一定范围内,可以感应到发热物体。距离范围的灵敏程度可以通过红外线传感器中的分压器(potentiometer)控制。

红外线的测试视频@UXD

3.面包板的功能介绍

在搭建电路时,面包板是最基础的零件之一。面包板上有很多小插孔,专为电子电路的无焊接实验设计制造。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。

02

电机驱动模块组装

我们需要对L9110S电机驱动模块、DC直流电机与Arduino UNO板接线进行线路的连接,如图所示:

在L9110S电机驱动模块的输入端,

L9110S电机驱动模块的VCC端口连接面包板的火线(红线);

L9110S电机驱动模块的GND端口连接面包板的地线(蓝线)

这两个端口的连接负责给电机模块进行供电。

L9110S电机驱动模块的A-IA端口连接Aruino UNO板数字电路的2号引脚pin;

L9110S电机驱动模块的A-IB端口连接Aruino UNO板数字电路的3号引脚pin;

L9110S电机驱动模块的B-IA端口连接Aruino UNO板数字电路的4号引脚pin;

L9110S电机驱动模块的B-IB端口连接Aruino UNO板数字电路的5号引脚pin;

这里的四个接口负责电的流通。

面包板上火线端需要接到Arduino Uno的5v引脚;

面包板上地线端需要接到Arduino Uno的GND引脚;


在L9110S电机驱动模块的输出端,上方的马达由A-IA与A-IB接口控制,下方的马达由B-IA与B-IB接口控制。

03

红外传感器输出信号调试

红外线传感器的感应结果将输出到Arduino的串口监视器上:

如果红外线传感器的输出指示灯亮起,串口监视器的输入值为0;
如果红外线传感器的输出指示灯不亮,串口监视器的输入值为1。


在Arduino软件程序中,通过红外线传感器的输入数据0或1来控制小车左右轮的转与不转

下面展示感应小车转动方式的关键程序语句:

if ((BLOOD_left == 0) && (BLOOD_right == 0) && (S<10.00)) {

    Serial.println("Beast is forwarding!");

    digitalWrite(2, HIGH); 

    digitalWrite(3, LOW); 

    digitalWrite(4, HIGH); 

    digitalWrite(5, LOW); 

    }

    if (BLOOD_left == 1 && BLOOD_right == 1) {

    Serial.println("Beast is backwarding!");

    digitalWrite(2, LOW); 

    digitalWrite(3, LOW); 

    digitalWrite(4, LOW); 

    digitalWrite(5, LOW); 

    }

    if (BLOOD_left == 0 && BLOOD_right == 1) {

    Serial.println("Beast is turning left!");

    digitalWrite(2, HIGH); 

    digitalWrite(3, LOW);  

    digitalWrite(4, LOW); 

    digitalWrite(5, LOW); 

    }    

    if (BLOOD_left == 1 && BLOOD_right == 0) {

    Serial.println("Beast is turning right!");

    digitalWrite(2, LOW); 

    digitalWrite(3, LOW);  

    digitalWrite(4, HIGH); 

    digitalWrite(5, LOW); 

    }

下图展示的就是红外线成功感应后小车左右轮的转动情况:

04

组装测试阶段

完成上述连接后,就可以来到组装测试环节。


小车组装前一片狼藉状态实拍,不过马上就可以看到满地飞奔的小车了。

最后我们来看一下小车组装完成后的运动效果,效果还是挺不错的,后期可以根据不同的需要对小车的外观进行优化,最终就可以得到满意的成品啦。

 - 导师说 - 

Shizhe Sun

爱丁堡大学Design Informatics

UXD交互课程金牌导师🏅️

Arduino UNO的应用场景非常丰富,这也得益于arduino有非常丰富的配套原件。我们可以通过简单的处理,即可用arduino实现人与机器的交互互联。UXD大量的基础硬件小课程,可以帮助零基础的同学快速掌握硬件交互必要的原理和知识。

完成此类原型机的制作后,同学们可以根据自己的需要对小车进行迭代和优化,最终做出想要的交互产品。比如帮助用户进行货物搬运的跟随装货小车、智能搬运机等。

扫码获取讲座回顾

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多