資料介紹
描述
早餐可以說(shuō)是一天中最重要的一餐。在美國(guó),近四分之一的人不吃早餐,這主要是因?yàn)樵缟蠜](méi)有足夠的時(shí)間。我相信時(shí)間不是剝奪我們甜食的問(wèn)題,麥片盒太重是一個(gè)簡(jiǎn)單的事實(shí)。我想創(chuàng)造一臺(tái)機(jī)器,它可以使用人工智能來(lái)檢測(cè)特定的人,并為他們倒上他們喜歡的谷物,以節(jié)省解決這一天所需的關(guān)鍵能量。隨著麥片盒尺寸的增加,多年來(lái)拾起麥片盒變得越來(lái)越困難。為了對(duì)抗每天倒麥片盒可能導(dǎo)致的肌肉拉傷,我的設(shè)備可以輕松地保持您虛弱的肌肉的安全和營(yíng)養(yǎng)。
![pYYBAGNYzhaAEGPvAAKyAIlVgh4550.jpg](https://file.elecfans.com/web2/M00/74/0E/pYYBAGNYzhaAEGPvAAKyAIlVgh4550.jpg)
概念
該項(xiàng)目的概念是創(chuàng)建一個(gè)包含谷物的設(shè)備,并打開(kāi)一個(gè)翻蓋以釋放一部分谷物,然后關(guān)閉翻蓋以防止谷物使碗過(guò)飽和。用戶將他們的碗放在他們最喜歡的麥片下面,人工智能算法將檢測(cè)面部并向他們釋放正確的麥片。
硬件
這個(gè)項(xiàng)目的基本原理是一個(gè)步進(jìn)電機(jī),它連接到某種木頭或塑料銷釘上,以創(chuàng)建一個(gè)鉸鏈,使容器的底部可以打開(kāi)并釋放谷物。容器應(yīng)該是塑料容器,可以切出一個(gè)槽,讓谷物通過(guò)。
用于防止谷物從容器底部的孔中滲出的材料應(yīng)該足夠輕,以便能夠輕松打開(kāi)和關(guān)閉,但又足夠堅(jiān)固以保持谷物的重力向下推它。我推薦一塊輕質(zhì)膠合板,但聚苯乙烯泡沫塑料應(yīng)該沒(méi)問(wèn)題。
所有四個(gè)步進(jìn)電機(jī)都應(yīng)連接到一塊泡沫上并放置在懸掛的容器下方。我將容器翻轉(zhuǎn)一個(gè)角度以幫助倒麥片,但這不是必需的。
![poYBAGNYzh2AFFBSAA_qDQeZq_819.jpeg](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzh2AFFBSAA_qDQeZq_819.jpeg)
然后應(yīng)該將容器連接到 Pi
![pYYBAGNYziWAXSSmABF4YIOE4wc94.jpeg](https://file.elecfans.com/web2/M00/74/0E/pYYBAGNYziWAXSSmABF4YIOE4wc94.jpeg)
電路
由于需要連接四個(gè)不同的步進(jìn)電機(jī),該設(shè)備的電路有點(diǎn)復(fù)雜。本項(xiàng)目所需的電氣元件有:
- 5V直流步進(jìn)電機(jī)x4
- ULN2003 步進(jìn)電機(jī)驅(qū)動(dòng)板 x4
- Raspberry Pi 型號(hào) 2 B(型號(hào) 2+ 可以使用)
- 樹(shù)莓派攝像頭模組
這個(gè)微控制器很重要,因?yàn)?Raspberry Pi 具有很大的存儲(chǔ)容量以及更強(qiáng)大和更快的處理單元,這將使我們能夠在我們的項(xiàng)目中使用人工智能。
攝像頭模塊插入 Pi 上的攝像頭端口,色帶的藍(lán)色部分朝向 IO 端口。
![poYBAGNYzimAZTaUAADy27nkCxw07.jpeg](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzimAZTaUAADy27nkCxw07.jpeg)
帶有預(yù)布線的 5V DC 步進(jìn)電機(jī)插入 ULN2003 步進(jìn)電機(jī)驅(qū)動(dòng)板。然后將驅(qū)動(dòng)板的引腳 1-4 連接到 Raspberry Pi 的 GPIO 引腳,可以在接線圖或step.py中引用這些引腳以查看引腳的順序(順序很重要!)。5V(+) 電源引腳和 GND 引腳連接到面包板的電源軌,為機(jī)器供電。
![poYBAGNYzi-AKvXcAANfuP4qzh481.jpeg](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzi-AKvXcAANfuP4qzh481.jpeg)
在一切都連接好并暫停之后,我們完成了項(xiàng)目的物理部分,現(xiàn)在可以繼續(xù)使用適當(dāng)?shù)能浖O(shè)置 Raspberry Pi,以使我們能夠正確移動(dòng)電機(jī)。
樹(shù)莓派和人工智能
正如我之前所說(shuō),使用 Raspberry Pi 對(duì)于允許我們使用該項(xiàng)目的面部識(shí)別方面至關(guān)重要,因?yàn)樗梢垣@得更多空間和處理能力,這使其成為與其他微控制器相比的絕佳選擇。
我在這個(gè)項(xiàng)目中使用了 Raspberry Pi 2 Model B,但兩者之后的任何 Pi 都應(yīng)該很好用。在開(kāi)始使用 Pi 之前,我們需要先下載 Raspbian 操作系統(tǒng)。訪問(wèn)Raspberry Pi OS下載頁(yè)面并使用諸如balenaEtcher之類的刷機(jī)工具將 OS 刷入插入的 SD 卡。
![pYYBAGNYzjGAQHDsAAAM9RdW90A663.png](https://file.elecfans.com/web2/M00/74/0E/pYYBAGNYzjGAQHDsAAAM9RdW90A663.png)
刷機(jī)完成后,使用初始步驟配置您的 Pi,然后我們就可以開(kāi)始下載必要的軟件了。
設(shè)置 Pi
完成初始設(shè)置后,通過(guò)打開(kāi)終端并鍵入python3檢查是否在您的設(shè)備上下載了 Python 3.7 。
![poYBAGNYzjSAEhYVAAARN0pcRvk504.png](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzjSAEhYVAAARN0pcRvk504.png)
默認(rèn)情況下,應(yīng)在您的設(shè)備上下載 Python 3.7,但如果不是,請(qǐng)鍵入sudoaptupdate和sudoaptinstallpython3idle3來(lái)安裝和更新此項(xiàng)目的 python3。
![pYYBAGNYzjaAZcnQAAAN-ZRqLRs709.png](https://file.elecfans.com/web2/M00/74/0E/pYYBAGNYzjaAZcnQAAAN-ZRqLRs709.png)
安裝 Python 后,我們需要在終端中使用此命令將 OpenCV 安裝到 Pi。OpenCV 是一個(gè)針對(duì)視覺(jué)進(jìn)行了優(yōu)化的開(kāi)源人工智能庫(kù),它將擁有我們需要的關(guān)鍵方法,不僅可以跟蹤我們的面部,還可以識(shí)別不同的面部,從而為不同的人創(chuàng)建特定的訂單。
sudo apt-get install build-essential cmake pkg-config -y && sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev -y && sudo apt-get install libgtk2.0-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libv4l-0 libv4l-dev -y && sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y && sudo apt-get install libxvidcore-dev libx264-dev -y && sudo apt-get install libatlas-base-dev gfortran -y && sudo apt-get install python-numpy python-scipy python-matplotlib -y && sudo apt-get install default-jdk ant -y && sudo apt-get install libgtkglext1-dev -y && sudo apt-get install v4l-utils -y && sudo apt-get install python2.7-dev -y && sudo pip install numpy && cd ~ && wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip && unzip opencv.zip && wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip && unzip opencv_contrib.zip && cd opencv-3.2.0 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules -D BUILD_EXAMPLES=ON -D ENABLE_NEON=ON .. && sudo make -j$(nproc) && sudo make install && sudo ldconfig && sudo echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf && sudo echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/bash.bashrc && sudo echo "export PKG_CONFIG_PATH" >> /etc/bash.bashrc
這個(gè)過(guò)程可能需要幾個(gè)小時(shí),所以離開(kāi)去喝點(diǎn)牛奶,完成后回來(lái)。
安裝 OpenCV 后,我們可以下載我們將用于該項(xiàng)目的另外兩個(gè)庫(kù)。要下載庫(kù),請(qǐng)打開(kāi)終端并在完成下載后鍵入pip3 install face_recognition類型pip3 install imutils 。
![poYBAGNYzjiAdMQQAABf5gAyTXE835.png](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzjiAdMQQAABf5gAyTXE835.png)
一旦所有庫(kù)完成下載,我們將需要通過(guò) wifi 或以太網(wǎng)將 Pi 連接到互聯(lián)網(wǎng)。將您的 Pi 連接到 Internet 后,您可以訪問(wèn) Chromium 上的 Hackster 頁(yè)面并下載項(xiàng)目底部代碼選項(xiàng)卡下的所有文件。應(yīng)在pi文件夾中創(chuàng)建一個(gè)文件夾,該文件夾應(yīng)位于HomeFolder中并標(biāo)記為FaceRecognition (拼寫(xiě)和大寫(xiě)很重要)。
![pYYBAGNYzjuABxa6AAGtWaf_PjE648.png](https://file.elecfans.com/web2/M00/74/0E/pYYBAGNYzjuABxa6AAGtWaf_PjE648.png)
在代碼部分下載的所有文件都應(yīng)與另一個(gè)標(biāo)記為 dataset 的文件夾一起放置在此文件夾中,我們模型的所有數(shù)據(jù)都將存儲(chǔ)在該文件夾中。
![poYBAGNYzj6AXSVQAAGXSgwWICo224.png](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzj6AXSVQAAGXSgwWICo224.png)
這是我們開(kāi)始收集數(shù)據(jù)以訓(xùn)練模型并實(shí)際開(kāi)始使用設(shè)備所需的所有設(shè)置。
收集數(shù)據(jù)
要開(kāi)始收集數(shù)據(jù),請(qǐng)?jiān)跇?biāo)有您的姓名的數(shù)據(jù)集文件夾中創(chuàng)建一個(gè)文件夾。該文件夾將存儲(chǔ)我們將使用face_shot.py程序拍攝的所有照片,并允許我們訓(xùn)練模型。可以在標(biāo)有多個(gè)名稱的數(shù)據(jù)集文件夾中創(chuàng)建多個(gè)文件夾,以訓(xùn)練算法識(shí)別不同的人,以便我們可以為每個(gè)人制定個(gè)性化的訂單。
![pYYBAGNYzkKASTBDAAGEUFvSyRU613.png](https://file.elecfans.com/web2/M00/74/0E/pYYBAGNYzkKASTBDAAGEUFvSyRU613.png)
創(chuàng)建文件夾后,face_shot.py應(yīng)該在 Thonny Python IDE 中打開(kāi)。程序第 4 行:
name = 'Unknown' #replace with your name
應(yīng)該更改,以便在您的文件夾中準(zhǔn)確地寫(xiě)入名稱。
![poYBAGNYzkWAUnm6AAC9JEV14MA972.png](https://file.elecfans.com/web2/M00/73/7B/poYBAGNYzkWAUnm6AAC9JEV14MA972.png)
現(xiàn)在可以運(yùn)行face_shot.py程序,并將打開(kāi)一個(gè)相機(jī)查看器來(lái)調(diào)整自己在框架中的位置。按空格鍵開(kāi)始在數(shù)據(jù)集文件夾中為您自己或其他人拍照。按退出鍵完成拍照。我建議至少拍攝 1,000 張照片來(lái)訓(xùn)練模型以準(zhǔn)確區(qū)分?jǐn)?shù)據(jù)集中的人臉,拍攝的照片越多,模型就越準(zhǔn)確。專家提示:要快速拍攝一堆照片以加快數(shù)據(jù)收集速度,可以按住空格鍵。這將凍結(jié)相機(jī)預(yù)覽,但我保證它仍在拍照。在您對(duì)照片數(shù)量感到滿意后,程序可能會(huì)說(shuō)它仍在拍照,但這不是真的,打印語(yǔ)句只是試圖跟上已經(jīng)拍攝的照片。要在按住空格鍵后退出,請(qǐng)按停止而不是轉(zhuǎn)義或等待打印語(yǔ)句趕上(可能需要一分鐘)。
訓(xùn)練模型
訓(xùn)練 AI 模型非常簡(jiǎn)單,只需打開(kāi)train_model.py并運(yùn)行程序即可。該程序?qū)@取數(shù)據(jù)集文件夾中的每個(gè)文件夾,并將其添加到具有適當(dāng)名稱的模型中。這個(gè)過(guò)程也可能需要一段時(shí)間,具體取決于拍攝了多少?gòu)堈掌?,所以去多喝點(diǎn)牛奶,幾個(gè)小時(shí)后回來(lái),最終使用該設(shè)備。
谷物時(shí)間!
現(xiàn)在模型已經(jīng)訓(xùn)練好了,我們終于可以吃點(diǎn)甜食了。好吧,在我們可以吞噬我們的神圣營(yíng)養(yǎng)之前還有一步。需要設(shè)置數(shù)據(jù)集文件夾中每個(gè)人的訂單。訂單在代碼底部的step.py程序中設(shè)置。
if name == "Unknown":
openMotor1()
這個(gè) if 語(yǔ)句是唯一能讓你遠(yuǎn)離小麥的東西,為了讓它發(fā)揮作用,把你的名字放在語(yǔ)句中,并為數(shù)據(jù)集文件夾中的其他人創(chuàng)建多個(gè) if 語(yǔ)句。提示:如果行
time.sleep(0.01)
插入到 if 語(yǔ)句中,如果您喜歡在一個(gè)碗中食用多種谷物,您可以打開(kāi)多個(gè)電機(jī)并將您的谷物組合混合在一起。我不判斷。如果您選擇此決定,建議對(duì)時(shí)間進(jìn)行測(cè)試。
if name == "Your Name:
openMotor1()
time.sleep(0.01)
openMotor2()
time.sleep(0.01)
openMotor3()
time.sleep(0.01)
openMotor4()
time.sleep(0.01)
現(xiàn)在我們的訂單已經(jīng)設(shè)置好了,我們終于可以運(yùn)行face_rec.py程序來(lái)釋放酵母了。無(wú)需對(duì)此文件進(jìn)行任何編輯,并且應(yīng)該可以運(yùn)行。該文件將在每次檢測(cè)到與模型匹配的人臉時(shí)調(diào)用step.py程序,從而觸發(fā)電機(jī)打開(kāi)。運(yùn)行程序,最后吃你應(yīng)得的谷物。
?
- 自動(dòng)藥丸分配器開(kāi)源項(xiàng)目
- 自動(dòng)洗手分配器開(kāi)源設(shè)計(jì)
- 自動(dòng)酒精分配器開(kāi)源分享
- 自動(dòng)洗手分配器開(kāi)源分享
- 帶Arduino的自動(dòng)酒精分配器
- 點(diǎn)心分配器開(kāi)源分享
- 使用ATTiny13自動(dòng)洗手液分配器
- 多功能步進(jìn)電動(dòng)機(jī)環(huán)形分配器 10次下載
- OmateHDDVI高清視頻分配器 0次下載
- 使用tcl文件分配器件與管腳 0次下載
- 自動(dòng)轉(zhuǎn)換收發(fā)狀態(tài)的RS485信號(hào)分配器的設(shè)計(jì)(論文用) 17次下載
- 五路色差視音頻放大分配器
- 可調(diào)諧光功率分配器應(yīng)用及技術(shù)
- 微帶功率分配器設(shè)計(jì)方法
- 譯碼器 數(shù)據(jù)分配器
- 液壓分配器起什么作用的 1066次閱讀
- Linux內(nèi)核內(nèi)存管理之slab分配器 1307次閱讀
- Linux內(nèi)核內(nèi)存管理之ZONE內(nèi)存分配器 931次閱讀
- 如何制作低成本但全自動(dòng)的洗手液分配器電路 1693次閱讀
- 功率分配器的作用及技術(shù)指標(biāo) 1731次閱讀
- Linux內(nèi)核之塊分配器 1693次閱讀
- Linux內(nèi)核之伙伴分配器 1877次閱讀
- bootmem分配器使用的數(shù)據(jù)結(jié)構(gòu) 1471次閱讀
- 自制一個(gè)洗手液分配器 1835次閱讀
- 深入剖析SLUB分配器和SLAB分配器的區(qū)別 1119次閱讀
- linux內(nèi)存管理中的SLAB分配器詳解 2217次閱讀
- 分配器點(diǎn)涂技術(shù)的特點(diǎn)及方法介紹 4850次閱讀
- 功率分配器或合成器選擇的關(guān)鍵性能參數(shù)研究 2422次閱讀
- 基于DMA控制器的軟件環(huán)形脈沖分配器設(shè)計(jì) 4596次閱讀
- 功分器、分支器和分配器的區(qū)別 1.9w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論