随着智能家居变得越来越流行,重要的是要记住,DIY 家居装修始终是一种选择。虽然 10 年前对于嵌入式爱好者来说,智能锁或门铃摄像头之类的东西似乎是不可能的,但今天的技术使它变得像从婴儿身上拿糖果一样简单(并不是任何人都应该从婴儿身上拿糖果,这是一种卑鄙的做法)。在这个项目中,我们将使用人脸检测和深度神经网络等热门话题来创建一个使用面部识别来锁定和解锁的智能锁。即使没有任何嵌入式经验,这个项目也不应该太难重新创建并在一天内启动和运行。
。超过 6 小时会自动删除。
2. 如果检测到人脸,图像通过卷积神经网络生成人脸指纹。
硬件设置
首先,我们必须在 Ultra96-V2 上设置 PYNQ。为此,首先访问http://www.pynq.io/board.html并单击“Avnet Ultra96-V2:v2.4 PYNQ 映像”选项,它将提示您下载开发板所需的启动映像为了运行 PYNQ 软件。使用 USB 转 SD 转换器或 SD 转 MicroSD 转换器(如果您的计算机有 SD 卡插槽)将 16 GB MicroSD 卡插入您的 PC,然后使用 Win32 Disk Imager 将图像写入其中。在下图中,我的 SD 卡名为[E:/] ,我的 PYNQ 启动映像的路径是C:/VM_Shared/ultra96v2_v2.4.img ,但你的很可能会有所不同。
Win32 完成写入后,通过右键单击文件资源管理器中的驱动器并选择弹出来弹出您的 SD 卡。现在您可以将它从您的 PC 中取出并将其放入 Ultra96 V2 MicroSD 卡插槽中。使用 DC 筒形插孔将电路板连接到电源,并使用 Micro USB 电缆连接到您的 PC。然后,确保启动开关 (SW3) 设置为 SD 模式,如下面的 GIF 所示,使用 USB 端口附近的开关四 (SW4) 将其打开。您应该会看到 MicroSD 卡插槽附近的红色 LED (INIT) 亮起,几秒钟后,它应该会关闭,并且附近的蓝色 LED (DONE) 应该会亮起。
此时,您可以打开一个新的 Google Chrome 窗口并在搜索栏中输入192.168.3.1 (或 192.168.3.1:9090/lab)到搜索栏中,这将带您进入 PYNQ Jupyter Notebooks 标志-在页面中。密码是赛灵思。如果页面没有加载,请稍等片刻,然后点击刷新;有时板子需要一点时间才能完全完成启动。
进入 PYNQ 主页后,导航到common/wifi.ipynb并按照步骤将 Ultra96 连接到 WiFi。此时,您可以按照以下可选步骤对您的开发板进行无线编程,但它很可能比使用 Micro USB 电缆慢。
可选无线编程
1. 在 Jupyter Notebooks 中通过选择New → Terminal (或JupyterLab 中的+ → Terminal)打开一个新终端。
2. 在终端中,键入ifconfig
并复制该部分下的 IP 地址wlan
。
3. 在谷歌浏览器中打开一个新选项卡并在搜索栏中输入 IP 地址(如果您想使用实验室环境,请再次输入:9090/lab),确保您的 PC 与开发板在同一个 WiFi 上。
4. 现在,您可以断开 Micro USB 电缆并无线编程您的开发板。
软件设置
通过选择New → Terminal (或JupyterLab 中的+ → Terminal)打开一个新终端,然后按照以下步骤将必要的软件安装到 Ultra96 上(注意:您可以从此处复制代码(不带$
)并使用粘贴到终端中ctrl+shift+v) :
1.升级pip:
$ pip3 install --upgrade --user pip
2. 在 OpenCV 上安装最新版本,我们将用于人脸检测的软件。虽然 PYNQ 引导映像已经有 OpenCV,但我们需要安装最新版本来满足我们的需要:
$ cd /home/xilinx
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.3.zip
3. 解压 OpenCV 并移动一些目录:
$ unzip opencv.zip
$ mv opencv-3.4.3 opencv
$ cd opencv
$ mkdir build
$ cd build
4. 将 USB 闪存驱动器插入 Ultra96 USB 端口,然后运行以下命令将其用作交换内存:
$ sudo blkid
我的被称为sdb1
。
$ sudo mkswap /dev/sdx
$ sudo swapon /dev/sdx
5. 使用以下命令配置 OpenCV:
$ cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=OFF \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DBUILD_EXAMPLES=ON ..
6. 现在使用以下命令编译 OpenCV(注意:这可能需要大约 3 小时):
$ make -j2
7. OpenCV 编译完成后,使用以下命令安装它:
$ sudo make install
$ sudo ldconfig
8. 将目录更改为/home/xilinx :
$ cd /home/xilinx
9. 安装 PYNQ 计算机视觉覆盖:
$ sudo pip install --upgrade --user git+https://github.com/Xilinx/PYNQ-ComputerVision.git
10. 您可能需要更新 pandas 才能使叠加层正常工作:
$ pip install --upgrade pandas
11.安装smbus:
$ sudo apt-get install python3-smbus
12. 在 Jupyter Notebooks 中创建一个新目录(随意命名)。然后$ cd
进入终端中的新目录并从 Github 克隆项目文件:
$ cd /home/xilinx/jupyter_notebooks/$ git clone https://github.com/julianbartolone/doorbellcam
现在是时候把所有东西放在一起了。这是一些用户创造力发挥作用的地方,因为我不一定找到组装锁定机制的最佳方法。将伺服器固定到锁舌上取决于您(我的如下图所示),但我们现在将讨论如何将其全部连接起来。
首先,保存您的 Jupyter Notebooks。然后,通过按下电源按钮 (SW4) 或$ sudo shutdown now
在终端中键入来关闭 Ultra96。板子关机后,断开直流电源线。现在,将 Click Mezzanine 板放在 Ultra96 的顶部,将 Click Mezzanine 的引线插入 Ultra96 上的引脚插座(它应该非常适合)。接下来,将 Click 伺服插入 Click Mezzanine 上的 mikroBUS 1(它也应该非常适合)。您现在可以重新插入电源并使用 Click Mezzanine 上的 PWR 按钮打开 Ultra96。如果您之前使用 WiFi 对电路板进行编程,则需要使用 Micro USB 电缆再次进行设置。
在 Click Servo 上,您会看到 16 个不同插槽的 3 个头针;这些中的每一个都可以接受伺服。在这个项目中,我们将使用插槽 #1。首先,通过将电线末端的黑色部分一分为三,将电线与伺服器分开(重要提示:保持电线末端的插座完好无损,否则您将不得不重新焊接它们。黑色塑料部分没那么重要,但它屏蔽的金属部分是你需要保留的。)将棕色线插入插槽#1的顶部引脚,将红色线插入 mikroBUS 2 的+5V引脚,然后将黄色插入线插入插槽#1的底部引脚。这是因为,由于某种原因,Servo Click 的 VCC 不适合我,所以我不得不从 Click Mezzanine 提供它。
现在是最令人困惑和摇摇欲坠的部分。为了使 Servo Click 工作,有一个引脚需要接地。该引脚是 OE/CS(Servo Click 上的输出使能/Click Mezzanine 上的芯片选择)引脚,但它是反相的,因此我们必须将其驱动为低电平而不是驱动它高电平来启用输出。我不知道如何使用软件来做到这一点,所以我不得不将它物理连接到 Click Mezzanine mikroBUS 2 GND 引脚。
瞧!你完成了。Jupyter Notebook 包含有关如何使用该项目的说明。如果您对任何事情感到困惑或有任何疑问,请随时给我留言!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !