步驟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服務器?,F在,只需將SD卡放入Pi中,為Pi連接足夠的電源,并在Pi和計算機之間添加以太網電纜即可。
打開膩子,然后輸入IP地址:169.254.10.1 ?,F在,單擊“是”并登錄,默認用戶名是 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
責任編輯:wv
-
傳感器
+關注
關注
2565文章
52999瀏覽量
767392 -
互聯網
+關注
關注
55文章
11251瀏覽量
106410 -
樹莓派
+關注
關注
121文章
2007瀏覽量
107464
發布評論請先 登錄
評論