与会唱歌的Arduino机器猫互动
时间:2017-05-15 08:01 来源:本站 作者:haodiy 点击:次
机器猫傻傻的眼睛看着您,准备为您唱首歌,只不过这次的歌声不是从她的嘴巴里唱出的,而是从她肚子上的喇叭中传出的。那么我是如何与她互动,请她唱出我们爱听的儿歌。互动设备是她前面放着的PS2蓝牙遥控器,摇动PS2摇杆,向她点歌。 视频:
这个作品应该属于互动媒体范畴。我们这一代人为了符合高考的要求,青少年时就很少接触乐理知识和美术实践,这为电子与艺术的结合带来了不少难以逾越的障碍,但是不管谁,总是能从自身角度出发去欣赏艺术和体验艺术,而Arduino的两个主要应用就是机器人和互动媒体,于是也想做这方面的尝试。比如我的博客文章《 Processing互动之光敏电阻与莫奈油画 》就介绍了如何通过光敏电阻的反馈使PC机屏幕里的莫奈油画光影效果发生变化,文章网址: 。
国外创客爱好者制作了一个木琴,它使用Arduino Mega检测琴键下的压电元件敲击信号,并用蜂鸣器发出MIDI音乐。
我也做一个与音乐有关的作品,通过DFRobot公司出品的Arduino控制器、PS2游戏杆扩展板、蓝牙模块和mp3模块,来控制音乐,让机器猫为我们唱歌。在游戏杆扩展板上,左右摇动PS2摇杆可以确定播放mp3播放顺序,按下红色按钮B暂停播放音乐,而按下蓝色按钮C又继续播放音乐,还有一个按钮,就在PS2摇杆上,直接点压PS2摇杆端部,PS2按钮就会按下,这个按钮A可以点播您指定文件名的mp3音频文件,看看上文我的视频里,mp3模块的SD卡里我存放了6首歌,这个按钮选取的歌是哪首,这首歌很不专业,但是我认为它最可能是机器猫唱出的歌。
Arduino微控制器是一种简易计算机,可以轻松地完成各种稀奇古怪的事情,比如植物需要浇水时会发送微博,用激光做成的竖琴,画板电子闹钟,兼具酒精测试器功能的话筒,以及可以显示你骑车速度的背心等等。Arduino控制器已经在国外发达国家流行起来,2011年销售量达20万套,现在Arduino原厂出品UNO板子的价格已经降至了148元(人民币),中国代理商网址:。这样的品牌知名度和几乎与国内厂家价格靠近的价格,必然使Arduino原厂板子在2012年大卖。未来有一天会不会,人们像买iphone一样选购Arduino设备。下图是在2012美国旧金山湾区Maker Faire展会中Arduino公司的卖场照片。
Arduino为什么这么红,我认为它与iphone的特质是一样的,它到底满足了科技男内心怎样的需求,我想无非是三点:1、这个产品能不能让我们更懒;2、这个产品能不能让我们更爽;3、这个产品能不能让我们更“拽”,更强大。这三方面的需求Arduino都能满足我们,它的软件易学、硬件积木化,还有大量的网络共享资源,让我们能够轻松快速地创意自己的作品。其实我们是懒人,只不过利用Arduino软硬件资源放大了自己的能力,制作出的作品也相当炫目,让人感觉自己是科技宅男,很爽,很“拽”,而这一切过程,对于别人是一个“谜”。
会唱歌的机器猫作品用到的Arduino电控设备组成如下图:
上图Arduino设备中,主角是DFRobot公司出品的mp3播放模块,这个模块设计初衷是为了让您的机器人会说话。如果机器人能与人进行简单交流的话,那么机器人就会显得更加智能,同时也增加了不少可玩性。模块具有立体声输出,可与有源音箱连接;2路功放输出,每路最大3W,可直接接喇叭;支持两种通讯模式,I2C模式和TTL串口模式,方便与各种Arduino、单片机以及电脑连接。这次mp3模块应用,我采用的是I2C模式。DFRduino mp3通过一个ATMEGA168芯片进行处理,尽量不占用Arduino或其他控制器上的资源,只需要将语音文件放置在SD卡中,Arduino或其他控制器通过通讯发送文件名信息即可播放相应的语音文件。 DFRduino mp3模块各端口分布与功能图:
上图中,模块的MODE跳针用于选择串口(UART)或者I2C模式(蓝色框标注),使用前请先设置模式。 模块的MONO跳针短路就切换为单声道(如果你只使用一个喇叭时,可以将两个声道音频用一个喇叭放音,短路该跳针即可作为单声道输出),当MONO跳针断开时,2根针分别可作为左右声道立体声输出,可直接接有源音箱。(绿色框标注) 在使用模块时,要保证电源电压为5V,电流最好大于1000毫安,如果电流不够需需要将音量调小或者使用单个喇叭播放。这次我用了一块“骐源”9V锂电池供电,在淘宝买的。 您将SD卡插到USB适配器里,再插到PC电脑的USB插槽里,格式化为FAT格式,然后新建一个sound文件夹,从酷狗音乐下载的音频文件放在sound文件夹内。然后,再把SD卡插到mp3模块电路板下方的Micro SD卡插槽里。注意:SD卡需要Micro SD卡,容量不能超过2G,我用的就是从电脑城买的2G容量SD卡。 如果您采用I2C主从机模式通信,先把语音播放器模块的MODE跳线帽插在I2C位置,如图:
再将mp3模块的数据线接到XBEE V5传感器扩展板的I2C插针上,模块的DI接扩展板SCL上,模块DO接扩展板SDA上,模块+5V接和扩展板的5V,模块GND接扩展板的GND。最后将喇叭接到mp3模块的功放输出端,如图:
Arduno硬件设备设置和联机完成后,剩下的事就是编写Arduino遥控器和接收器的程序了。 Arduino遥控器程序任务:采集遥控器的游戏杆扩展板上的PS摇杆和A、B、C按键信息,处理后,通过蓝牙串口,向Arduino接收器发送字符控制命令,这些命令分别控制mp3文件的播放顺序和暂停播放、继续播放以及指定文件名的mp3播放。 Arduino遥控器程序: //向ps2摇杆X轴,左右摇动来确定播放mp3播放顺序 int JoyStick_X = 1; //游戏杆扩展板的PS摇杆X轴连在Arduino模拟端口1 //A按键控制播放文件名为star的mp3文件 //B按键控制播放下一个mp3文件 //C按键控制播放上一个mp3文件 int button_A = 5; //游戏杆扩展板的摇杆A按键连在Arduino数字端口5 int button_B =3; //红色B按键连在数字端口3 int button_C =4; //蓝色C按键连在数字端口4 int A, B,C;//存储游戏杆扩展板的开关量按键的当前读取值 int x; //存储游戏杆扩展板的模拟量PS摇杆X轴的当前读取值 char flag;//存储Arduino遥控器向Arduino接收器发送的单“字符”命令 //初始化 void setup() { //把游戏杆扩展板上三个按键设置为开关量输入模式 pinMode(button_A, INPUT); pinMode(button_B, INPUT); pinMode(button_C, INPUT); //启动串行通信 Serial.begin(115200);//设置串行通信的波特率为115200b/s } //主程序 void loop() { x=analogRead(JoyStick_X);//读取PS摇杆X轴的模拟量信息 //读取游戏杆扩展板上三个按键“是否按下”的状态 B= digitalRead(button_B); C= digitalRead(button_C); A=digitalRead(button_A); //如果B按键为按下状态,同时C按键为松开状态 if((B ==LOW)&&(C==HIGH)) { //向Arduino接收器发送“暂停播放”命令 flag='p'; Serial.print(flag); } //如果C按键为按下状态,同时B按键为松开状态 else if((C==LOW)&&(B==HIGH)) { //向Arduino接收器发送“继续播放”命令 flag='s'; Serial.print(flag); } //如果A按键为按下状态 else if(A==LOW) { //向Arduino接收器发送“播放指定文件名mp3文件”命令 flag='m'; Serial.print(flag); } //如果PS摇杆向X轴右方摇动 else if(x<212) { //向Arduino接收器发送“播放下一个mp3文件”命令 flag='n'; Serial.print(flag); } //如果PS摇杆向X轴左向摇动 else if(x>812) { //向Arduino接收器发送“播放上一个mp3文件”命令 flag='u'; Serial.print(flag); } //否则,不执行任何操作 else {flag='http://www.cndzz.com/diagram/4234_4235/h'; Serial.print(flag); } delay(200);//延时,等待数据发送成功 }
Arduino遥控器与Arduino接收器通信方式是“平等”的RS232串行通信。而Arduino接收器与mp3模块通信方式是主从机模式的I2C通信。Arduino接收器是I2C总线中的主机,mp3模块是I2C总线中的从机,从机地址为0x35。I2C通讯指令使用字符串形式。mp3模块操作指令列表:(例如暂停播放,指令字符串为“\\:p\r\n”)
根据以上mp3模块的I2C通信协议,编写I2C总线主机程序,即,Arduino接收器程序。
美国宇航局耗资25亿美元打造的“好奇”号火星探测器2012年8月6日成功登陆火星(这篇机器猫的文章发表于8月9日)。它将展开为期两年的任务,“好奇”号火星车体积类似于一辆小型SUV汽车,有已经在火星工作了八年多的“机遇”号的五倍大。它搭载了包括相机、样本分析仪、探测器在内的一系列尖端仪器,将尽一切努力考察火星有没有水和有机分子存在的可能性,以及火星的环境是否适宜人类前往。
“好奇号”火星探测器 发射、着陆、探测过程3D模拟动画视频:
本文转自:
|









