步骤1:收集零件
在实际创建任何东西之前,我对要使用的零件,如何进行连接进行了大量研究。 ,用python等编写软件类。
零件清单将作为文件包含在内,以便您可以轻松地搜索所需的零件。
我决定在raspberry pi旁边使用arduino uno,这样我就可以有效地读取我的传感器而不会给raspberry pi造成压力。我还选择了uno,因为它具有不错的时钟速度,并且因为有模拟引脚。我本可以为raspberry pi使用adc(例如mcp3008),但我将需要更多的电线,这将更加昂贵,并且我的pi必须更加努力地工作。
然后,我开始检查破碎的机器人真空吸尘器中可用的零件。内部电子设备损坏了,但这没问题,因为无论如何我都会完全替换掉。幸运的是,直流电动机仍在工作,因此无需更换。
零件清单:
raspberry pi 3至少具有8gb microsd class 10和一个保护套;
raspberry pi t型补鞋匠和面包板;
arduino uno或类似产品(最好是非中文版本,带有不错的adc,有些中国人有aref问题);
以太网电缆;
一个(破碎的)机器人真空吸尘器;
3个hc-sr04超声波模块;
1x霍尔传感器模块;
几个不同值的电阻器;
一个ldr;
6x 18650锂离子电池+ 3v电池座,适用于12v(最好您使用新电池,甚至更好地使用lipo电池,这些电池最后的时间会更长 );
18650(或使用任何类型的电池)12v 3节充电pcb;
一些pcb diy板可焊接您的组件;
一片聚氨酯塑料;
一台笔记本电脑/台式计算机。
l列表:
带有多个钻头的钻头;
角向磨光机(如果您没有经验,请不要使用它)或类似dremel的东西;
一张砂纸;
几把螺丝刀;
强力胶,安装胶水,。..;
烙铁(使用油脂更容易焊接);
一对剪钳和剥线工具。
软件列表(可选):
adobe xd:线框图和创建原型;
装饰:创建电气方案;
pycharm professional:具有使用部署和远程解释器的功能的python ide;
putty:与pi进行快速便捷的ssh连接;
etcher.io:简便的工具将raspbian映像刷新到sd卡;
win32diskimager:从现有raspbian设置创建映像的简便工具;
程序员记事本:可用于安全编辑/boot/cmdline.txt文件。
第2步:喷涂和设计界面
在开始之前在创建设计时,我对外部喷涂了油漆,因为我根本不喜欢颜色。我去商店买了一个塑料底漆,一罐白色和一罐绿松石来重新喷涂顶盒。
让喷漆干燥后,我查找了确切的十六进制颜色代码我使用的油漆,以便我可以将web界面与设备完美匹配。找到此十六进制代码非常容易,因为我使用了蒙大拿州94涂鸦,并且十六进制和rgb代码在他们的网站上。
我为网站的每一页创建了高保真线框,因此我知道很好,我打算如何创建此界面。向老师展示我的界面后,我得到了建议,使背景稍微偏灰,按钮变为白色,我认为效果很好。
步骤3:创建数据库
下一个逻辑步骤是开始考虑我要在mysql数据库中存储哪些数据。没有太多人喜欢知道它们的真空度,因此我使用了用户表和他们的登录数据,以及传感器表(电池,距离和灰尘容器)。
图像向您显示了在mysql workbench中绘制的表的布局以及表之间的所有关系。
对于我的用户,我想跟踪他们的姓名和姓氏,以个性化界面和电子邮件。当然要发送电子邮件,我也需要他们的电子邮件地址。我还添加了一个表格来跟踪用户的电子邮件首选项(无论他们是否愿意接收电子邮件)。我要存储的关于用户的最后一件事是用户在设备中的角色。我将用户分为管理员和普通用户。管理员有权在系统中添加,删除和管理用户,而普通用户则不能访问这些工具。
下表包含“ deviceruns”,它们是设备实际执行的操作。设备运行由某个用户(开始运行的人员)拥有,并具有开始时间和结束时间来计算运行时间。
另一个表用于将sensordata链接到每个设备运行。传感器本身存储在另一个表中,其中包含它们的id,名称和描述。
步骤4:将零件连接在一起
创建数据库方案后,我开始使用面包板和布线将所有零件连接在一起,并成为一个可用的原型。
第5步:设置raspberry pi
要下载raspbian的最新图像,请访问raspbian网站。在这里,您可以选择要下载的发行版。为了更快地操作,您可以下载无头发行版,以减少ram使用量,或者如果您更喜欢图形用户界面,则可以使用gui下载桌面。
要安装操作系统,只需下载etcher,它是一个gui。
要启用无头模式,以便可以访问pi,则需要在计算机上安装putty。下一步是转到由etcher创建的boot文件夹,并使用您喜欢的文本编辑器(例如programmers notepad)打开文件cmdline.txt。将此文本添加到文件末尾:
ip=169.254.10.1
只需确保不创建新行,将此文本添加到该行末尾即可!
接下来,返回到boot文件夹的根目录,并创建一个名为 ssh 的文件。请勿添加任何扩展,这将确保每次启动pi时都启动ssh服务器。现在,只需将sd卡放入pi中,为pi连接足够的电源,并在pi和计算机之间添加以太网电缆即可。
打开腻子,然后输入ip地址:169.254.10.1 。现在,单击“是”并登录,默认用户名是 pi ,密码是 raspberry。
下一步,执行以下命令以获取最新信息。 -date:
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
最后一步是在raspberry pi上创建虚拟python解释器,这将执行您的代码。为此,只需打开腻子并键入以下内容:
sudo mkdir project1
cd project1
python3 -m pip install --upgrade pip setuptools wheel virtualenv
python3 -m venv --system-site-packages venv
步骤6:编写web应用程序
连接每个部分并设置raspberry pi之后,我开始使用flask和jinja2编写主要的web应用程序。 flask是用于python的易于使用的后端框架,而jinja2是我使用的模板语言。借助jinja,您可以使用for循环,if结构等创建普通的html文件。
在编码后端时,我还为应用程序编写了前端,包括一些html,css和javascript元素。我在样式表中使用了itcss方法和bem表示法。
除了主要的web应用程序之外,我还创建了另外两个主要程序。编写一个将设备的ip地址发送给列表中的用户。每个已接受接收电子邮件的注册用户,都会收到一封带有启动web界面链接的邮件。该程序作为systemd服务运行。
另一个主文件用于实际设备。可通过我的flask应用程序调用该主管道,以启动和停止设备并收集数据。收集的数据也通过该主接口上传到设备的数据库。然后可以在web应用程序中查看此数据。
web应用程序通过python threading连接到主运行设备。当用户单击开始按钮时,将生成一个线程以在后台运行设备。同时,用户可以完美浏览该应用程序。单击“停止”时,该线程将停止,因此设备也将停止。
步骤7:创建零件以完成套管
在编写了应用程序的大部分内容之后,我开始修改设备外壳,这样我的传感器和其他零件就可以实际安装了。为此,我在当地的diy商店买了一块聚氨酯,然后开始切割2个支架。我使用了这种聚氨酯薄片,因为它在切割时不易碎成碎片,并且因为它相当柔韧性,因为我的机器人是圆形的,所以非常完美。
第一个托架被制成可以填充顶部有个孔,以前的显示器可以放在这里。我用一个开/关开关替换了显示器,以便可以实际上关闭电池。
另一个支架是我的hc的支撑架。 -sr04超声波传感器位于设备的前面。
剩下要做的最后一件事是在一个车轮的加强件上切出一个孔,并插入一块磁铁,以便我可以监视车轮的旋转。
完成这些支架之后,我还用剩下的油漆对其进行了喷涂,以使其适合设计。
第8步:代码
要安装该程序,请下载文件code.zip,然后将其解压缩到project1目录中。
下一步,在raspbian或putty上的终端:
sudo cp project1/conf/project-1* /etc/systemd/system/
sudo cp project1/conf/project1-* /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable project-1*
sudo systemctl enable project1*
sudo systemctl restart nginx
机械革命新款钛钽笔记本开售,搭载i7-9750H处理器
国内第一款光纤激光器件设计仿真软件设计应用
T12数显白光焊台 制作过程全分享
人工智能开发出了全新用途,用来预测地震和海啸
如何为各个行业选择合适的物联网平台
如何使用树莓派创建连接到互联网的设备并从传感器收集数据
江苏联通携手华为首次在一个网络同时开通部署三大解决方案
双频段GSM/DCS移动电话射频指标分析
Android系统仍需改进的五大功能
基于单片机和HC-SR04设计的超声波防盗报警器
配网行波故障预警与定位装置的故障定位精度等级划分
冠状病毒影响全球智能家居市场,2020年设备收入预期下调195亿美元
一颗来自40年前的透明芯片究竟暗藏了哪些奥秘
区块链让医疗数据存储变得安全
手触式定时供水控制阀电路
特斯拉Model 2渲染图疑似曝光
洲明新项目或创LED显示行业新记录
高通5G调制解调器应用场景广阔 不止于骁龙5G手机
国产伺服电机借工业机器人市场崛起
PHP7在内存方面你是否知道都进行了哪些优化