开源触发器机器人 - 请参阅,通过网络说话和驾驶

5,369

87

2

简介:开源电视转播机器人 - 请参阅,通过网络说话和驾驶

关于:发明家,科学家,制造商,企业家,问题解决者和兼职无政府主义者。

在199年期间,大流行家庭被悲惨地阻止了他们的亲人在医院拜访亲人。我认为触觉机器人将是使关键接触恢复的理想解决方案。这些机器人的购买价格昂贵,所以我开始建造一个带有一个开源电视机器人低价$ 100的标签。这是结果。

这个怎么运作:

  1. 旧智能手机 - 提供双向视频会议和网络连接
  2. Web插座 - 启用实时控件,该控件可以向前,左右向前,左右向机器人驱动
  3. Jitsi Meet(免费) - 启用双向视频聊天
  4. LDRS-检测通过网络发送的驾驶说明并显示在智能手机屏幕上
  5. Arduino-根据LDR的驾驶说明驱动车轮
  6. PHP,JavaScript和MySQL网页 - 将它们全部带入在线门户和电话应用程序中

结果是一个独立的机器人,等待访客远程连接,然后访客可以从机器人那里看到,在机器人屏幕上看到,说话和听到,并能够驱动机器人。

是的,机器人可能更高。但这就是你要做的:)

补给品

  1. 面包板
  2. Arduino Uno R3(任何其他Arduino都可以正常工作)
  3. 旧智能手机(必须具有前置摄像头,运行Chrome Web浏览器并通过WiFi / Cell具有互联网)
  4. DC-DC转换器能够将12V DC变成5V DC
  5. 12V迷你铅酸电池(1.4AH)
  6. 2 X步进电动机NEMA-14 / 35mm(尺寸并不重要)
  7. 基于DRV8825的2 X步进电动机驱动器
  8. 2 x 10UF 50V电解电容器
  9. 2 x机器人 /汽车玩具轮
  10. 3 x LDR(轻度电阻)50-100K欧姆
  11. 3 x 10k电阻
  12. 1N4004二极管(任何能够12V的人)
  13. 1-2m的基本铜线以连接面包板,LDR和Arduino
  14. 底盘的某种材料 - 我使用了乐高和乐高技术。可以使用木头或硬纸板。
  15. 一个域名和网站,您可以在其中使用MySQL数据库托管PHP脚本

步骤1:构建机器人

1.为底盘选择材料

我选择使用乐高和乐高技术,因为我将其躺在周围,并且其尺寸是标准化的。它使原型制作和更改变得容易。您也可以使用硬纸板或胶合板制作底盘。形状并不特别,它只需要能够在底部支撑两个步进电动机和车轮,并在后部有一个脚轮。


2.基础构造

从基地开始。我在乐高基部钻了四个孔,并用拉链扎带固定了我的步进电动机。然后,我使用一些乐高积木来稳定电动机。

我从乐高生物中创建了一个自由旋转的脚轮,并将其修复在后面。由于两个步进电动机将提供力量,因此该轮是支撑的第三站,但需要自由移动。您可以以任何方式解决此问题。

然后,我建造一个垂直墙壁以将智能手机贴在上面,并为12V铅酸电池建造了基础。然后,我建造了由Arduino Uno和面包板组成的电路,并将其粘在乐高基础板上。然后使用Prestick / Blu Tak(临时粘性腻子)将其粘在铅酸电池的顶部。


3.驾驶的LDR传感器

Arduino通过从LDR中获取说明来驱动步进电动机,并将其压在智能手机屏幕的右侧。根据驾驶员在浏览器中推动的转向按钮,有三个正方形从黑色变为白色。因此,必须将LDR固定在彼此之间约2厘米处,以将其紧紧地压在屏幕上,以便没有其他灯可以从侧面泄漏。我使用了带有圆形孔的标准乐高技术砖,并将LDR推到每个第二个孔中(请参见上图)。然后,我在LDR上方放置一条条带,将电线固定在适当的位置,并从背面挡住光线。将其放在约25厘米的铜线上,以便可以自由移动。我用弹性带固定在电话屏幕上 - 方便,因为您可能会在测试,打开镀铬,打开wifi等时多次打开/关闭电话 - 您希望传感器可移动。

步骤2:上传机器人大脑

  1. 确保您的Arduino电源关闭并且没有电池连接
  2. 将您的USB连接器插入您的Arduino
  3. 在计算机上加载Arduino IDE软件(https://www.arduino.cc/en/software)
  4. 在此处下载附加的文件“ avatar1.ino”并在IDE中打开此文件
  5. 将其上传到Arduino
  6. 打开Arduino IDE中的串行显示器(顶部工具栏 /工具菜单的右侧)
  7. 您应该看到与LDR上光级有关的输出的日志
  8. 覆盖中间和左LDR-串行显示器应说“左转!”
  9. 覆盖中间和右LDR-串行显示器应说“右转!”
  10. 基本上只是确保您的LDR掩盖时会产生动态行为
  11. 从Arduino上拔下USB电缆
  12. 插入铅酸12V电池并打开Arduino-板上的光线应发光
  13. 现在重复步骤8和9-步进电动机应该转动

步骤3:设置Web插座

您可以使用所需的任何技术来设置Web插座。我想要最简单,最快,最便宜的选择,因此我选择使用Pusher.com提供的托管解决方案。

  1. 转到https://pusher.com/websockets
  2. 注册免费帐户
  3. 通过单击发送给您的电子邮件中的链接来确认您的电子邮件地址
  4. 设置您的频道:
  5. 命名您的应用程序
  6. 选择最接近物理位置的群集
  7. 选择“香草JS”作为您的前端
  8. 单击“创建应用程序”按钮
  9. “入门”页面将显示演示代码以进行。这与文件pusher.php中显示的内容相似(但不相同)(下面的步骤4-可以等到此步骤)。查看javascript包含部分(看起来这样:),并确保URL与文件pusher.php中的内容相同。也许自发布此版本以来,当前7.0的版本号已上升。
  10. 转到“应用程序设置”。单击“启用客户端事件”旁边的切换以打开此功能。
  11. 转到“应用程序键”。写下钥匙,秘密和集群。这些将进入pusher.php的顶线(步骤4)。

欢迎您安装自己的套接字系统或使用另一个提供商,但是您需要更改pusher.php文件并了解JavaScript的方式。

步骤4:设置网站门户

1.获取一些网络空间

好的,因此您现在将建立一个机器人或机器人的网站(如果您正在制作舰队!)。本网站显示在线机器人列表,可以连接。该网站还为您将在智能手机上打开的Chrome打开的网页为设备级别的界面提供动力。您将需要连接到托管空间的实时域名(例如您的GreatProject.com)。

这个托管空间1)必须允许运行PHP脚本,2)必须提供MySQL数据库,3)必须拥有SSL证书。

如今,大多数主机都安装了Letsencrypt,这是生产SSL证书的免费方法。视频会议软件JITSI Meet不会在非SSL域名上运行(以http://)开头,只有SSL确定的域才能使用(从https:// https://-小绿锁图标开始)。


2.设置数据库

根据您的托管提供商为您提供的软件,您应该能够登录到管理员后端并开始更改托管空间。我的托管空间使用CPANEL。您应该能够找到一个称为“ MySQL数据库”或类似MySQL管理员工具的工具。使用此工具,您将需要:

  1. 创建一个MySQL数据库
  2. 创建MySQL用户
  3. 将MySQL用户连接到MySQL数据库
  4. 写下数据库和用户的详细信息,包括密码。这些将进入functions.php的顶线。

现在,您需要打开MySQL控制台,或打开称为PhpMyAdmin的MySQL控制台工具。您需要运行以下命令来创建所需的数据库表:

创建表`bot_list`(`id` id` int(11)not null auto_increment,`hashmini` bashmini` varchar(10)not null,`name'name` varchar(20)not null,'last_ping dateTime dateTime default default null,`session_id int(11)默认为null,主键(`iD`))引擎= innodb auto_increment = 1默认charset = latin1;

您应该看到已经创建了一个名为“ bot_list”的新的MySQL表。伟大的!


3.上传PHP文件

现在,您需要在主机空间中将下面附加到默认 / public_html文件夹附加的PHP文件上传。如果您使用的是CPANEL后端,则可以这样做的工具称为“文件管理器”。

  1. 将下面的TXT文件保存到您的计算机
  2. 重命名每个人.php扩展而不是.txt扩展。Directables不支持.php文件类型,因此我不得不将其重命名为.txt以上传(烦人)。
  3. 编辑pusher.php在基本的文本编辑器/代码IDE中,例如Atom(https://atom.io)。在上面步骤3上的第7点添加您的密钥,秘密和群集。单击“保存”。
  4. 编辑functions.php在基本的文本编辑器中,如上所述。添加您的数据库用户用户名和密码,然后添加数据库名称。您可能还需要通过编辑$ GMT_OFFSET变量来设置时区。在格林威治子午线(GMT)上,我的我的时间为+2小时。
  5. 将所有文件(您编辑的文件和其余的文件)上传到默认目录 / home Directory / public_html目录。
  6. 请记住将文件权限设置为755(这也称为CHMODING),以便他们可以执行 /运行。
  7. 在你的计算机/笔记本电脑,如果您立即访问域名(较早前我们使用了yourgreatproject.com的示例域)并加载bot-web.php文件(例如https://yourgreatproject.com/bot-web.php)然后,您应该看到一个屏幕,上面写着“机器人列表 - 找不到机器人”。完成下一步并添加第一个机器人后,此页面将自动更新以显示可连接的机器人列表。它每10秒自动刷新一次以显示机器人列表。
  8. 在你的手机(您在机器人上使用的一个),打开Chrome Internet浏览器,然后加载bot-phone.php文件(例如https://yourgreatproject.com/bot-phone.php)。屏幕应要求您命名机器人。输入名称,或输入机器人将存在的地方的名称,例如“仓库#1”或“ T1000”。可以是什么。单击“保存”。该页面现在应显示“等待访客”。

4.智能手机设置

在Chrome中,您应该能够在浏览器设置中选择“桌面站点”作为复选框。制作浏览器力桌面视图将阻止Jitsi Meet Dist您反复启用麦克风和网络摄像头,并下载JITSI MEET METEAL应用程序。您无需下载JITSI MEET应用程序 - 只需通过单击“ Web In in Web”按钮通过浏览器运行它。

在“等待访问者”页面上,还有一个可以使网页全屏获取的按钮。单击此操作以使其全屏幕,然后将Chrome工具栏 /菜单隐藏在顶部。您将需要一个完全变黑的屏幕才能将LDR传感器放在上面,以使一个传感器无法检测到工具栏,结果是一个机器人,它占据了芭蕾舞和无休止的旋转;)


步骤5:最终测试并进行!

好的,我们快完成了!

在你的计算机,在 /bot-web.php上的机器人列表现在应显示您的机器人名称,并且状态应为“在线”。您现在可以单击“联接”按钮。这将打开一个新页面。阅读弹出窗口。您将需要允许Jitsi Meet启用您的麦克风和网络摄像头。

在你的手机,几秒钟后的状态页面 /bot-phone.php应该更改为视频会议布局,右侧有三个黑色块。顶部的状态栏应显示“连接”,“连接”然后“准备就绪”。您将需要允许Jitsi Meet启用您的麦克风和网络摄像头。将来连接时,您不必再允许 - 它应该记住您的选择。

几秒钟后,您可以从计算机中看到智能手机。从智能手机中,您应该能够从计算机上看到。这是现场视频会议。您也可以说话和听到。如果有效,您会知道通过Jitsi Meet的视频会议正在工作。好消息!

在你的计算机,尝试单击驾驶按钮。在你的手机,右侧的黑色块应根据您按下的按钮暂时点亮白色。如果有效,您会知道使用Pusher设置的套接字正常-RAD!

现在你可以放置LDR传感器在智能手机屏幕的右侧。确保每个LDR只能看到一个街区,两侧都有一个很好的宽度。除屏幕的光线外,没有其他光线应到达LDR。用弹性频带固定LDR传感器,使其保持良好的位置。

如果还没有,请使用Prestick / Blu Tak将智能手机贴在机器人的垂直墙上。现在,您可以在机器人上打开铅酸12V电池,它将活跃起来!您应该能够从计算机上驱动它,查看,谈话和听到:D

做得好,您只是制作了一个远程机器人!

>如果网站 /计算机上的驱动程序离开并且无法正确关闭浏览器,则该机器人可能会被卡住,显示一个空的视频会议。您只需单击顶部菜单栏中的小“ X”即可取消会话,然后返回“等待访客”页面。

步骤6:改进

有很多潜在的改进要做。我想到了一些:

  1. 使机器人更高,这样您就可以看到人们眼前而不是看到脚踝。这将需要更大的底座和杆子才能使智能手机更高。
  2. 使软件支持按钮保持向前按钮,以便更轻松地进行长时间的前进跑步。
  3. 使软件句柄自动删除连接。
  4. 高级:当电池低时,将基本返回充电码头。

玩得开心,请分享您的复制!

首次作家竞赛

一等奖
首次作家竞赛

成为第一个分享的人

    建议

    • 垃圾

      垃圾
    • 面包和汤速挑战

      面包和汤速挑战
    • 设想升降机卡车学生设计竞赛的未来

      设想升降机卡车学生设计竞赛的未来

    2条评论

    0
    throbscottle

    6周前

    哦,我的天啊!这是如此出色,笨拙,我完全喜欢它!