想体验和小宝宝一起生活吗?婴儿抚育机器人可以帮到你!
请看视频:http://cache.tv.qq.com/qqplayerout.swf?vid= n0521xlf31r项目简介:
这是一款帮助您体验如何与婴儿相处的机器人。
在第一个关卡,我们的机器人内置了几款通用标准姿势,通过陀螺仪和传感器判断当前触碰位置及压力值,指导准爸妈们学习正确的抱姿。进入第二关后机器人通过Realsense扫描分析室内环境,当遇到可能对婴儿造成威胁的物品时,会预警提示,帮助营造一个安全的家庭环境。在“说说说”环节,机器人会模拟婴儿学习说话的情境,只有当反复教她说某个词句到达一定量次后,她才会掌握这个词句。同时它会默默记录您的语言习惯,不时说出您常说的词句,让您意识到作为家长在孩子的成长过程中扮演着“被学习者”的角色。
如果您想要个孩子,可以借助这款机器人提前感受当爸妈的体验,为未来对的婴儿抚育做好准备;如果您不确定会不会要孩子,和机器人互动的体验也可以作为参考依据。
硬件清单:DF Robot (SKU:ROB0112)履带机器人移动平台 Intel RealsenseCamera R200 Lattepanda 显示屏Arduino 触摸传感器 陀螺仪 微型音箱或喇叭 USB麦克风 LED灯珠 5号电池
可能使用的工具及设备:十字螺丝刀热熔胶枪3D打印机缝纫机激光切割机 等
使用场景:
制作步骤:1.3D建模——打印3D模型 —— 拼接3D模型
2.连接Intel Realsense Camera R200、Lattepanda与显示屏、Arduino、触摸传感器、陀螺仪、喇叭与USB麦克风和LED
a
3.组装DF Robot (SKU:ROB0112) 履带机器人移动平台
4.上传代码using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
namespace version2
{
public partial class Form1 : Form
{
private int index;
//private string[] vocabulary = new string[] { };
private PXCMSession session;
private bool closing = false;
private volatile bool stop = true;
//protected string curr_module_name;
public bool IsChinese;
protected int curr_volume;
protected int curr_pitch;
protected int curr_speech_rate;
public bool _isSuspended = false;
Thread thread_voice_recognition;
Thread thread_check_suspended;
public Form1(PXCMSession session)
{
InitializeComponent();
this.session = session;
Stop.Enabled = false;
English.Checked = true;
}
private void Start_Click(object sender, EventArgs e)
{
Start.Enabled = false;
Stop.Enabled = true;
stop = false;
//DoVoiceRecognition();
//Thread thread_face_tracking = new Thread(DoVoiceRecognition);
thread_voice_recognition = new Thread(DoVoiceRecognition);
thread_voice_recognition.Start();
System.Threading.Thread.Sleep(5);
thread_check_suspended = new Thread(CheckSuspended);
thread_check_suspended.Start();
/*Thread thread_speechSynthesis = new Thread(DoSpeechSynthesis);
thread_speechSynthesis.Start();
System.Threading.Thread.Sleep(5);*/
English.Enabled = false;
Chinese.Enabled = false;
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
//DoVoiceRecognition();
//DoSpeechSynthesis();
}
public void CheckSuspended()
{
if(_isSuspended)
{
thread_voice_recognition.Suspend();
}
else
{
if(thread_voice_recognition.ThreadState == ThreadState.Suspended)
{
thread_voice_recognition.Resume();
}
}
}
public string AlertToString(PXCMSpeechRecognition.AlertType label)
{
switch (label)
{
case PXCMSpeechRecognition.AlertType.ALERT_SNR_LOW: return "SNR_LOW";
case PXCMSpeechRecognition.AlertType.ALERT_SPEECH_UNRECOGNIZABLE: return "SPEECH_UNRECOGNIZABLE";
case PXCMSpeechRecognition.AlertType.ALERT_VOLUME_HIGH: return "VOLUME_HIGH";
case PXCMSpeechRecognition.AlertType.ALERT_VOLUME_LOW: return "VOLUME_LOW";
case PXCMSpeechRecognition.AlertType.ALERT_SPEECH_BEGIN: return "SPEECH_BEGIN";
case PXCMSpeechRecognition.AlertType.ALERT_SPEECH_END: return "SPEECH_END";
case PXCMSpeechRecognition.AlertType.ALERT_RECOGNITION_ABORTED: return "REC_ABORT";
case PXCMSpeechRecognition.AlertType.ALERT_RECOGNITION_END: return "REC_END";
}
return "Unknown";
}
//private delegate void VoiceRecognitionCompleted();
private void DoVoiceRecognition()
{
//bool _isChinese = this.IsChinese;
VoiceRecognition vr = new VoiceRecognition();
vr._isChinese = this.IsChinese;
vr.DoIt(this, session);
/*this.Invoke(new VoiceRecognitionCompleted(
delegate
{
Start.Enabled = true;
Stop.Enabled = false;
//Form1.Enabled = true;
if (closing) Close();
}
));*/
}
/*private void DoSpeechSynthesis()
{
int volume = int.Parse(textBox1.Text);
int pitch = int.Parse(textBox2.Text);
int rate = int.Parse(textBox3.Text);
bool _isChinese = this.IsChinese;
SpeechSynthesis ss = new SpeechSynthesis();
ss.DoIt(volume, pitch, rate, 1, "Today will be sunday", _isChinese);
}*/
private delegate void TreeViewUpdateDelegate(string line);
public void PrintConsole(string line)
{
Result.Invoke(new TreeViewUpdateDelegate(delegate(string line1) { Result.Nodes.Add(line1).EnsureVisible(); }), new object[] { line });
}
public void PrintStatus(string line)
{
//Status2.Invoke(new TreeViewUpdateDelegate(delegate(string line1) { Status2.Nodes.Add(line1).EnsureVisible(); }), new object[] { line });
System.Console.WriteLine(line);
}
private delegate void ConsoleReplaceTextDelegate(TreeNode tn1, string text);
public static string TrimScore(string s)
{
s = s.Trim();
int x = s.IndexOf('[');
if (x < 0) return s;
return s.Substring(0, x);
}
public void ClearScores()
{
foreach (TreeNode n in Result.Nodes)
{
string s = TrimScore(n.Text);
if (s.Length > 0)
Result.Invoke(new ConsoleReplaceTextDelegate(delegate(TreeNode tn1, string text) { tn1.Text = text; }), new object[] { n, s });
}
}
public void SetScore(int label, int confidence)
{
for (int i = 0; i < Result.Nodes.Count; i++)
{
string s = TrimScore(Result.Nodes.Text);
if (s.Length == 0) continue;
if ((label--) != 0) continue;
Result.Invoke(new ConsoleReplaceTextDelegate(delegate(TreeNode tn1, string text) { tn1.Text = text; }), new object[] { Result.Nodes, Result.Nodes.Text + " [" + confidence + "%]" });
break;
}
}
private void Stop_Click(object sender, EventArgs e)
{
Start.Enabled = true;
Stop.Enabled = false;
stop = true;
English.Enabled = true;
Chinese.Enabled = true;
textBox3.Enabled = true;
textBox2.Enabled = true;
textBox1.Enabled = true;
}
private void English_Click(object sender, EventArgs e)
{
label1.Text = "Volume";
label2.Text = "Pitch";
label3.Text = "Rate";
Start.Text = "Start";
Stop.Text = "Stop";
this.IsChinese = false;
}
private void Chinese_Click(object sender, EventArgs e)
{
label1.Text = "音量";
label2.Text = "音调";
label3.Text = "音速";
Start.Text = "开始";
Stop.Text = "结束";
this.IsChinese = true;
}
}
}
5.组装外壳与硬件
现在你拥有一个像小宝宝一样的机器人了。
我们还在考虑,在你有了真正的小宝宝以后,能不能让它变身成宝宝的玩伴。
66666
页:
[1]