資料介紹
描述
在這個項目中,我們通過使用 Arduino 使用藍牙將速度廣播到我們使用處理創建的 Android 應用程序,為自行車或任何汽車制作了一個很酷的速度計。
因此,讓我們看看我們需要什么材料來構建這個項目并計劃我們的預算。所有這些組件都很容易獲得;如果您在購買這些產品時遇到問題,請在評論部分告訴我。
硬件要求:
- Arduino 迷你版 (5V 16MHz)
- FTDI 板(對于 mini 編程,您也可以使用 UNO)
- TP4056鋰電池模塊
- 藍牙模塊(HC-05/HC-06)
- 霍爾效應傳感器(US1881/04E)
- 18650鋰電池
- 小塊磁鐵
- 穿孔板
- 焊接套件
- 用于安裝套件的小外殼盒。
編程要求:
- 開發環境
- 使用 android ADK 處理 IDE(僅當您想編寫自己的應用程序時。)
- Windows/蘋果電腦
- 安卓手機。
它可能看起來像一些組件和材料,但相信我,一旦你完成了這個項目,你就會覺得它們是值得花時間和精力的。
使用霍爾傳感器和 Arduino 測量速度:
在我們接觸硬件之前,讓我們知道我們實際上將如何使用 Arduino 測量速度。使用 Arduino 測量車輛速度的方法有很多,但使用霍爾傳感器是最經濟、最簡單的方法。霍爾傳感器是檢測磁鐵極性的組件。例如,只要將磁鐵的一個特定磁極靠近傳感器,傳感器就會改變其狀態。有多種類型的霍爾傳感器可用;你可以在這個項目中使用其中的任何一個,但要確保它是一個數字霍爾傳感器。
為了測量速度,我們必須將一小塊磁鐵粘在車輛的車輪上。每次磁鐵越過霍爾傳感器時,它都會檢測到并將信息發送給 Arduino。
每次檢測到磁鐵時,Arduino 都會收到一個中斷。我們使用
millis()
使用以下公式計算并計算車輪完成兩圈旋轉所需的時間(以盡量減少誤差):
Timetaken = millis() – pevtime;
一旦我們知道所花費的時間,我們就可以使用以下公式計算轉速:
rpm = (1000/timetaken) * 60;
其中 (1000/timetaken) 給出 rps(每秒轉數)并將其乘以 60 以將 rps 轉換為 rpm(每分鐘轉數)。?
計算出轉速后,我們可以使用下面提供的公式計算車輛的速度(我們知道車輪的半徑)。
v= radius_of_wheel * rpm * 0.37699;
Arduino 在計算速度后,將使用藍牙模塊廣播它。完整的代碼已在下面的代碼部分給出。此外,請在此處查看我們涉及藍牙模塊 HC-05的其他項目。
原理圖和硬件部分:
該項目的完整電路圖如下:
在這里,硬件部分分為兩部分;一個是包含所有主要文件的主板。另一塊板只包含一個霍爾傳感器和一個安裝在車輪附近的電阻器。讓我們開始構建主板。
建立連接后,讓我們使用我們的18650 鋰電池測試設置。鋰電池本質上是高度易爆的,因此必須格外小心處理。這就是為什么我們使用TP4056 鋰電池充電模塊的原因。該模塊具有過充電/放電保護和反極性保護。因此,電池可以使用普通的微型 USB 充電器輕松充電,并且可以安全放電,直到達到欠壓切斷限值。下表給出了 TP4056 充電模塊的一些重要細節。
參數 ----- 每個單元格的值
欠壓切斷----- 2.4V
過壓切斷----- 4.2V
充電電流----- 1A
保護:過電壓和反極性保護
IC的存在:TP4056(充電器IC)和DW01保護IC
指示 LED:
- 紅色 - 充電中
- 綠色——充電完成
現在,讓我們從霍爾傳感器板開始。該板僅包含兩個組件:一個是 10K 電阻,另一個是霍爾傳感器。可以按照上面的示意圖所示進行連接。電路板準備就緒后,根據原理圖使用跳線連接它們。一旦完成,它應該看起來像這樣。
該項目的另一個關鍵步驟是使用電線將 18650 電池連接到 TP4056 模塊的 B+ 和 B- 端子。由于 Li+ 電池易爆,因此強烈不建議在這些電池上使用烙鐵。人們雖然做到了,但風險很大,很容易落得個大爛攤子。所以最簡單的方法是使用磁鐵,如下所示:
只需將電線焊接到一小塊磁鐵上,然后將磁鐵粘到電池的端子上(它們會很好地吸引到端子上),如上所示。您可以使用一些鴨嘴來進一步固定磁鐵的位置。
編程Arduino:
這個項目的程序非常簡單。我們只需使用霍爾傳感器中斷輸入來計算旋轉輪的速度,并使用藍牙模塊通過無線方式廣播計算出的速度。完整的程序在下面的代碼部分給出,并使用注釋行進行解釋。
每當霍爾傳感器檢測到磁鐵時,它都會觸發中斷。該中斷函數由magnet_detect()
函數調用。這是計算車輛轉速的地方。
一旦計算出轉速,就可以在函數中計算出車輪的速度。
車速表的 Android 移動應用程序:
該項目的 Android 應用程序是使用名為 Processing 的軟件制作的。如果您對制作自己的 Android 應用程序不感興趣,只想安裝此處使用的應用程序,您可以下載 APK 文件并按照以下步驟將其直接安裝到您的智能手機上。
1. 您可以直接?從下面的鏈接下載APK文件。?此 APK 文件適用于 Android 版本 4.4.2 及更高版本(Kitkat 及更高版本)。從 zip 文件中提取 APK 文件。
2. 將 .APK 文件從您的計算機傳輸到您的手機。
3. 在您的 Android 設置中啟用從未知來源安裝應用程序。
4. 安裝應用程序。
如果安裝成功,你會發現手機上安裝了名為“ Processing_code ”的應用程序,如下圖:
使用 Processing 開發您自己的應用程序:
您可以使用上面給出的 .APK 文件,也可以按照此處的說明使用 Processing 構建您自己的應用程序。您可以從這里下載所有處理 Android 應用程序代碼。該程序使用注釋行進行自我解釋。但是,如果您有任何問題或者想稍微修改您的應用程序,請使用評論部分,我會幫助您。
Android 程序在應用程序啟動期間與我們的藍牙模塊建立連接,并接收由 Arduino Pro Mini 計算和廣播的車輛速度。我還創建了一個小圖形來顯示使用模擬速度計的速度,使其看起來有點吸引人。您可以提出自己的想法并調整代碼以根據您的需要對其進行個性化設置。另外,查看我們的其他處理項目以了解更多信息:?
將應用程序安裝到手機后,就可以測試我們的項目了。但是我們還沒有將我們的套件安裝到車輛上。我們開始做吧。
將車速表套件安裝到車輛上:
我已將此套件安裝在我的自行車上并進行了測試,它非常有效。安裝套件由您發揮創意,您??可以從商店購買自己的小盒子,為電線和連接鉆孔,然后將其安裝到您的車輛上。一件需要注意的重要事項是,磁鐵應粘在車輪的邊緣,霍爾傳感器應安裝在盡可能靠近磁鐵的位置,以便每次磁鐵穿過霍爾傳感器時,它都應該能夠檢測到它。安排如下圖。
因為我有一臺 3D 打印機,所以我設計了自己的外殼,使它們看起來不錯,并且可以很容易地安裝和斷開與我們的自行車的連接,以便為電池充電。因此,如果您有一臺 3D 打印機,或者如果您可以使用它來打印一些材料,請繼續閱讀,否則請跳過這一部分并使用您自己的創造力來安裝這些東西。在這里學習使用 3D 打印機。
如果您決定使用我的設計文件并打印您的外殼,請確保您的主要穿孔板接近以下尺寸
可從此處下載用于 3D 打印的完整設計和 STL 文件。如果電路板與此處制作的電路板相似,那么您可以使用給定的 STL 文件直接 3D 打印您的外殼,或者您可以使用設計文件并根據您的電路板進行修改。
讓我們從將用于霍爾傳感器模塊的 3D 打印小型外殼開始。打印外殼,將電路放入其中并通過提供的孔連接電線,然后將其安裝到您的車輛上,使霍爾傳感器靠近磁鐵,如下所示。
建議在為其設計外殼之前對主板進行建模,以便我們可以確保它正確安裝,因為相信我,當您長時間打印外殼 6 小時并且最終它不會時,這將是一場噩夢。不適合您的性能板。我的主要性能板的模型板如下所示。
現在設計主圍箱就很容易了。我將主箱設計成兩個文件,這樣箱子的一部分將容納電子設備,另一部分將使用夾具和螺栓永久固定在腳踏車上。這兩個部分可以很容易地固定在一起形成一個完整的外殼,然后在我們需要為鋰電池充電或處理電子設備時將其分開。?
外殼的第一部分設計和打印完成后,讓我們將所有組件放入其中,如下所示,它應該看起來像這樣:
如您所見,盒子前面有兩個開口;一個用于USB,我們可以通過它為手機充電。另一個是微型 USB,我們可以使用它為鋰電池充電。
現在讓我們打印主外殼的第二部分并檢查它是否符合預期的第一部分。
一旦我們對零件感到滿意,我們就可以使用 C 型夾和一些螺母和螺栓安裝外殼的第二部分,如下所示:
現在讓我們使用上面討論的磁鐵和膠帶將電池連接到我們的主電路,并將其永久保存在我們的外殼內。
這就對了!我們的硬件已準備好進行最終安裝。只需將霍爾傳感器模塊與主板連接并將活動外殼滑入固定外殼,即可開始使用。
工作說明:
確保您的鋰電池已充電后,只需使用撥動開關打開套件并打開您的 Android 應用程序即可。如果一切順利,您應該會看到下面的屏幕,它應該顯示您的應用程序已連接到藍牙模塊 HC-05,如下所示。請記住在打開應用程序之前將您的藍牙模塊與手機配對。
現在只需駕駛您的車輛,您就會注意到速度表顯示了您車輛的當前速度。?
代碼:?
/*Arduino Code for measuring speed of the Vechile using Hall Sensor
?* Coded by Circuitdigest.com
?* On 14-04-2017
?*/
?/*CONNECTION DETIALS
? * Arduino D11 -> RX of BT Module
? * Arduino D12 -> Tx of BT
? * Arduino D2 ?-> Hall sensor 3rd pin
? */
#include // import the serial library
SoftwareSerial Cycle_BT(11, 12); ?// RX, TX
int ledpin=13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer
float radius_of_wheel = 0.33; ?//Measure the radius of your wheel and enter it here
volatile byte rotation; // variale for interrupt fun must be volatile
float timetaken,rpm,dtime;
int v;
unsigned long pevtime;
void setup()
?{
? ?Cycle_BT.begin(9600); //start the Bluetooth communication at 9600 baudrate
? ?//pinMode(ledpin,OUTPUT); //LED pin aoutput for debugging
? ?attachInterrupt(0, magnet_detect, RISING); //secound pin of arduino used as interrupt and magnet_detect will be called for each interrupt
? ?rotation = rpm = pevtime = 0; //Initialize all variable to zero
?}
void loop()
{
? /*To drop to zero if vehicle stopped*/
?if(millis()-dtime>1500) //no magnet found for 1500ms
?{
? rpm= v = 0; // make rpm and velocity as zero
? Cycle_BT.write(v);
? dtime=millis();
?}
?v = radius_of_wheel * rpm * 0.37699; //0.33 is the radius of the wheel in meter
}
void magnet_detect() //Called whenever a magnet is detected
{
? rotation++;
? dtime=millis();
? if(rotation>=2)
? {
? ? timetaken = millis()-pevtime; //time in millisec for two rotations
? ? rpm=(1000/timetaken)*60; ? ?//formulae to calculate rpm
? ? pevtime = millis();
? ? rotation=0;
? ? Cycle_BT.write(v);
? ? //Cycle_BT.println("Magnet detected...."); //enable while testing the hardware
? }
}
。
?
- 使用霍爾傳感器和磁鐵的Arduino車速表
- 帶有RT-Thread的Arduino應用程序
- 使用Arduino DIY電流表
- Arduino/Android藍牙串行監視器應用程序
- 基于Arduino的DIY避邊機器人 0次下載
- 適用于帶ESP8266的Arduino和NodeMCU的Android應用程序
- 使用Arduino Pro Micro的GPS車速表
- 使用Arduino DIY歐姆表
- DIY Arduino多功能電能表
- Android應用程序組件間通信的模糊測試方法 8次下載
- Visual C++和MFC創建的應用程序基礎知識 0次下載
- 如何使用Android應用程序安裝包隱蔽下載劫持漏洞 3次下載
- 基于Android系統自啟動程序設計 5次下載
- Android應用程序GUI遍歷自動化方法 0次下載
- ANDROID開發應用程序的方法和技巧 7次下載
- PreEmptiveProtection:全面的移動應用程序保護 529次閱讀
- 怎么使用uboot引導應用程序? 1360次閱讀
- 如何使用Arduino來制作一個簡單的歐姆表 5565次閱讀
- DIY一個簡單的Arduino板子 5350次閱讀
- 淺談RAM 執行應用程序 3061次閱讀
- 基于Arduino UNO和HC-05藍牙模塊控制伺服電機 4824次閱讀
- 基于Arduino的DIY梭芯繞線機器的制造過程 5427次閱讀
- 利用Android應用程序進行智能燈泡的無線控制方案 3940次閱讀
- HarmonyOS應用程序Ability的作用 2391次閱讀
- 應用程序安全怎樣來提供保障 1145次閱讀
- 車速傳感器在哪個位置_車速傳感器安裝位置 9.8w次閱讀
- 使用android通過USB調試真機程序 1908次閱讀
- DIY一款基于arduino的自動澆花系統 7.5w次閱讀
- 工程師必學DIY:用Arduino打造專屬萬用表 4.4w次閱讀
- 基于Android系統的車載娛樂系統構架 2540次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多