色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Arduino的實時人臉檢測和跟蹤機器人

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2023-01-25 15:54 ? 次閱讀

曾經想過通過簡單地使用 Arduino 而不是任何其他編程(如 OpenCV、視覺基礎 C# 等)來構建面部跟蹤機械臂或機器人嗎?然后繼續閱讀,在這個項目中,我們將通過融合Arduino和Android的強大功能來實現人臉檢測。在這個項目中,移動相機將在伺服系統的幫助下隨著你的臉一起移動。在這里使用Android手機的優勢在于,您無需投資攝像頭模塊,整個圖像檢測工作可以在手機本身中完成,您不需要將Arduino連接到計算機即可正常工作。在這里,我們使用藍牙模塊與Arduino進行無線通信

本項目中使用的Android應用程序是使用處理Android創建的,您可以通過下載APK文件直接安裝該應用程序(進一步閱讀鏈接),或者戴上編程帽,使用教程中進一步給出的處理代碼制作自己的更具吸引力的Android應用程序。

在本教程結束時,您將擁有一個迷你傾斜和跨度機械臂,可以跟蹤您的臉部并隨之移動。您可以使用它(進一步發展)來錄制您的視頻博客視頻,甚至可以使用手機的后置攝像頭自拍,因為它將您的臉正好定位在手機屏幕的中心。所以!!聽起來很有趣?檢查本教程末尾的演示視頻以查看其工作情況。讓我們看看如何構建一個...

我已經盡力使這個項目盡可能簡單,任何對硬件或編碼有最少知識的人都可以使用此指南使這個項目立即工作。但是,一旦你做到了,我建議你落后于代碼,這樣你就可以真正知道是什么讓這個東西工作以及如何工作。

面部跟蹤機器人與Arduino和Android藍牙

所需材料:

  1. Arduino Nano
  2. 伺服電機 SG90 – 2Nos
  3. 安卓手機與體面的相機
  4. HC-05/HC-06 藍牙模塊
  5. 編程計算機
  6. 3D打印機(可選)
  7. 9V電池

3D 打印所需部件(可選):

為了平移和傾斜我們的手機,我們需要一些機械結構,如移動支架和一些伺服支架。你可以用紙板做一個,因為我有一臺3D打印機,我決定3D打印這些零件。

3D打印是一個了不起的工具,在構建原型項目或試驗新的機械設計時可以做出很多貢獻。如果您還沒有發現3D打印機的好處或它是如何工作的,你可以閱讀3D打印初學者指南

如果您擁有或可以使用3D打印機,則可以使用可以從此處下載的STL文件直接打印和組裝它們。但是,像手機支架這樣的一些部件可能需要根據手機的尺寸進行一些修改。我為我的MOTO G手機設計了它。我使用我的一臺非常基本的打印機來打印所有零件。打印機是來自3ding的FABX v1,價格實惠,打印量為10立方厘米。便宜的價格伴隨著低打印分辨率和沒有SD卡或打印恢復功能的權衡。我正在使用名為Cura的軟件來打印STL文件。下面給出了我用于打印材料的設置,您可以使用相同的設置或根據您的打印機更改它們。

用于打印Arduino面部跟蹤機器人零件的3D打印機設置

打印所有必需的材料后,您可以使用螺釘和一些熱膠將它們固定到位。組裝完成后,它應該如下所示。

Arduino面部跟蹤機器人的3D打印零件Arduino面部跟蹤機器人的3D打印零件

Arduino面部跟蹤機器人的3D打印零件Arduino面部跟蹤機器人的3D打印部件

原理圖和硬件:

智能手機面部跟蹤項目的電路如下圖所示:

具有Arduino和Android電路圖的面部跟蹤機器人

該電路由兩個伺服電機組成,其中一個用于向左/向右移動手機,另一個用于向上/向下傾斜手機。伺服器必須移動的方向將由Arduino Nano指示,Arduino Nano本身從藍牙(HC-05)模塊獲取信息。整個電路由9V電池供電

該電路可以很容易地連接到您的面包板上,或者您也可以像我在這里所做的那樣將它們焊接在小型 Perf 板上。

設置您的安卓應用程序:

正如我之前所說,這個項目背后的主要大腦是這個Android應用程序。這個安卓應用程序是使用處理安卓開發的。您可以直接在手機上安裝此應用程序,然后按照以下步驟啟動它。

  1. 從這里下載APK文件
  2. 打開上面顯示的電路的電源
  3. 在手機設置中搜索名為“HC-05”的藍牙模塊
  4. 如果您將其命名為“HC-05”以外的其他名稱,請將其更改回HC-05,因為只有這樣應用程序才能工作。
  5. 使用密碼“1234”或“0000”與您的藍牙模塊配對。
  6. 現在,以縱向模式啟動應用程序。您應該會看到相機屏幕,并在屏幕頂部看到“連接到:HC-05”。
  7. 嘗試將相機移到臉部上方,其頂部應會出現一個綠色框,其位置也將顯示在屏幕的左上角,如下所示。

使用帶有藍牙的Arduino和Android手機跟蹤圖片

您可以通過引入許多不需要編寫自己的Android應用程序即可獲得的進步,從而將這個Arduino面部跟蹤項目提升到一個新的水平。創建一個Android應用程序可能聽起來很困難,但相信我,在Processing的幫助下,您可以立即學習它。

對 Arduino 進行編程:

安卓應用程序將檢測人臉及其在屏幕上的位置;然后,它將根據面部的位置決定應該移動的方向,以便面部到達屏幕中心。然后通過藍牙模塊將此方向發送到Arduino。

該項目的Arduino程序相當簡單,我們只需要根據從藍牙模塊接收的值控制兩個伺服電機的方向。完整的代碼可以在本教程的末尾找到,我還在下面解釋了幾個重要的行。

下面的代碼行建立串行連接,引腳 D12 作為 RX,D11 作為 TX。因此,引腳 D12 必須連接到 BT 模塊的 TX,引腳 D11 必須連接到 BT 模塊的 RX。

SoftwareSerial cam_BT(12, 11);  // RX, TX

然后我們以 9600 的波特率初始化藍牙模塊.確保您的模塊也以相同的波特率工作。否則相應地更改它。

cam_BT.begin(9600); //start the Bluetooth communication at 9600 baudrate
cam_BT.println("Ready to take commands");

下面一行讀取通過藍牙模塊傳入的內容.此外,數據保存在變量“藍牙數據”中。

if (cam_BT.available()) //Read whats coming in through Bluetooth
   {
BluetoothData=cam_BT.read();
Serial.print("Incoming from BT:");
Serial.println(BluetoothData);
}

根據從藍牙接收的數據,控制電機方向。要向左轉動電機,電機會從其先前的位置遞減 2 的值。如果您需要手臂移動得更快,您可以將此值增加到 4 或 6。但是,它可能會產生一些顛簸,使相機不穩定。

if (BluetoothData==49) //Turn Left
{pos1+=2; servo1.write(pos1);}

if (BluetoothData==50) //Turn Right
{pos1-=2; servo1.write(pos1);}

if (BluetoothData==51) //Turn Up
{pos2-=2; servo2.write(pos2);}

if (BluetoothData==52) //Turn Down
{pos2+=2; servo2.write(pos2);}

加工:

一旦我們準備好了我們的硬件,代碼和Android應用程序,就該采取一些行動了。只需為您的 Arduino 供電并打開安卓應用程序。應用程序將自動連接到 HC-05 (必須命名為 HC-05) 藍牙模塊,并等待檢測到人臉.只需將手機放在我們的手機支架中并坐在它前面即可。您應該注意到伺服電機移動手機,以便將臉部放置在屏幕中央。現在在相機的范圍內四處走動,您的手機將跟隨您的動作。您也可以通過放置和移動任何圖片來嘗試。

面部跟蹤機器人與Arduino和處理Android

/*Arduino Code for Face Tracking Arduino

 * Coded by Circuitdigest.com

 * On 25-05-2017

 */


 /*CONNECTION DETIALS

  * Arduino D11 -> RX of BT Module

  * Arduino D12 -> Tx of BT

  * Servo1 -> pin 3 of arduino Nano to pan

  * Servo2 -> pin 5 of arduino Nano to tilt

  */


#include  //header to drive servo motors

#include // import the serial library

SoftwareSerial cam_BT(12, 11);  // RX, TX

int ledpin=13; // led on D13 will show blink on / off

int BluetoothData; // the data given from Computer


//lets declare the servo objects

Servo servo1;  

Servo servo2;


long gmotor,gnum1,gnum2;

int pos;

int flag=0; 

int pos1 = 40;

int pos2 = 90;


void setup() {

   servo1.attach(3);

   servo2.attach(5);;


   //**Initial position of all four servo motors**//

   servo1.write(pos1);

   servo2.write(pos2);

   //**initialised**//

   

cam_BT.begin(9600); //start the Bluetooth communication at 9600 baudrate

cam_BT.println("Ready to take commands");


Serial.begin(57600); 

Serial.println("Face tracking programming by CircuitDigest.com");

}


//***Function for each Servo actions**//

void call(int motor, int num1, int num2) // The values like Motor number , from angle and to angle are received 

{

Serial.println("Passing values...");

flag =0;

switch (motor) 

  {  

    case 1:            // For motor one

    { 

    Serial.println("Executing motor one");

    if(num1// Clock wise rotation

    { 

        for ( pos =num1; pos<=num2; pos+=1)

            {

            servo1.write(pos);

            delay( 20);

            }

    }

    

    if(num1>num2) // Anti-Clock wise rotation

    {

        for ( pos =num1; pos>=num2; pos-=1)

        {

        servo1.write(pos);

        delay( 20);

        }

    }

     break;

    }     


       ////////JUST  DUPLICATE FOR OTHER SERVOS////


       

    case 2:    // For motor 2

    {

    Serial.println("Executing motor two");

    if(num1for ( pos =num1; pos<=num2; pos+=1)

        {

        servo2.write(pos);

        delay( 20);

        }

    }

    if(num1>num2)

    {

        for ( pos =num1; pos>=num2; pos-=1)

        {

        servo2.write(pos);

        delay( 20);

        }

    }

    break;

    }     

  }

}


void loop() {

 if(Serial.available()>0) //Read whats coming in through Serial

  {

  gmotor= Serial.parseInt(); 

  Serial.print(" selected Number-> ");  

  Serial.print(gmotor);

  Serial.print(" , ");    

  gnum1= Serial.parseInt();   

  Serial.print(gnum1);  

  Serial.print(" degree , ");

  gnum2= Serial.parseInt();   

  Serial.print(gnum2);  

  Serial.println(" degree ");

  flag=1;

  }

   

 if (cam_BT.available()) //Read whats coming in through Bluetooth

 {

  BluetoothData=cam_BT.read();

  Serial.print("Incoming from BT:");

  Serial.println(BluetoothData);

 }


 if (flag ==1)

 call(gmotor,gnum1,gnum2); //call the respective motor for action


 if (BluetoothData==49) //Turn Left

 {pos1+=2; servo1.write(pos1);}


 if (BluetoothData==50) //Turn Right

 {pos1-=2; servo1.write(pos1);}


 if (BluetoothData==51) //Turn Up

 {pos2-=2; servo2.write(pos2);}


 if (BluetoothData==52) //Turn Down

 {pos2+=2; servo2.write(pos2);}


 flag=0;

 BluetoothData=0;

}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    211

    文章

    28390

    瀏覽量

    206951
  • 人臉檢測
    +關注

    關注

    0

    文章

    80

    瀏覽量

    16457
  • Arduino
    +關注

    關注

    188

    文章

    6469

    瀏覽量

    186966
收藏 人收藏

    評論

    相關推薦

    【mBot申請】基于Nao機器人的視覺跟蹤處理

    申請理由:采用此小型機器人進行一個目標模擬項目描述:1、目標機器人的擬定2、Nao機器人目標取樣,并訓練3、進行實時跟蹤
    發表于 10-29 14:14

    自律型機器人制作入門.基于Arduino

    [size=0.83em]自律型機器人制作入門.基于Arduino.jpg(101.91 KB, 下載次數: 0)下載附件[color=rgb(153, 153, 153) !important
    發表于 06-23 11:18

    舊手機 Arduino的巔峰之作—視頻監控機器人 ,異地遠程遙控

    手機計算能力,基于OpenCV軟件庫,實現手勢分析和人臉追蹤。原材料和組件方形卡通寵物外觀的紙巾盒 1個萬能手機夾 1個網靈機器人3D打印件 1套Arduino控制板 + 藍牙小板1塊L298N電機
    發表于 09-27 14:01

    Arduino機器人制作指南

    Arduino機器人制作指南
    發表于 06-14 17:40

    焊縫跟蹤:自動化機器人實時焊縫跟蹤尋位

    焊縫跟蹤:自動化機器人實時焊縫跟蹤尋位自動化機器人焊接過程中會出現工件夾偏、鈑金件熱變形、機器人
    發表于 04-19 10:48

    焊縫跟蹤機器人焊縫跟蹤系統的優勢分析

    `焊縫跟蹤機器人焊縫跟蹤系統的優勢分析目前我們的焊縫跟蹤系統已于國內外40多種主流機器人品牌成功完成通訊,如下:國產品牌:卡諾普,配天,金
    發表于 04-29 12:02

    焊縫跟蹤:焊接機器人配焊縫跟蹤傳感器是科技發展的必然趨勢

    。焊縫跟蹤系統優勢抗弧光和飛濺,實時跟蹤,焊縫寬度自動適應非接觸,支持多種焊接類型提高生產效率和焊接質量,提高生產率確保焊縫成型美觀牢固;可使焊槍處于理想位置;可實現一致的和可復現的焊接效果;對于復雜的焊件,可減少編程工作。具有
    發表于 08-01 13:47

    在黑暗里機器人怎么識別人臉

    在當今的機器人領域,基于視覺的人臉面部識別和檢測發展得非常之快,并且已經運用于很多領域。
    發表于 09-17 09:11

    家庭智能小管家機器人資料分享!

    戶提供家里情況,比如室內溫度、煤氣檢測實時上傳到互聯網。使用云服務器,大數據等。用戶可以通過網頁,或者微信對機器人進行一個部署。并且會報警處理一些事情,例如降溫功能,人臉
    發表于 10-09 20:32

    使用旅游機器人需要注意哪些問題?

    、講解互動功能  新型的旅游機器人,可以在公共場與游客互動交流,與人進行實時語音對話,通過語音識別、屏交互等方式,為人提供智能化、人性化的咨詢、指導、產品宣傳、迎賓接待等服務。  2、看路徑導航
    發表于 06-12 17:04

    微信控制的家庭智能機器人(附語音聊天、人臉檢測、自主巡航等)

    機器人作為家庭里的小管家,當室內沒人的時候,機器人在室內自主巡航進行環境檢測、安全報警等并隨時向用戶提供家里情況,比如室內溫度、煤氣檢測實時
    發表于 09-30 14:33

    淺談差速機器人的純軌跡跟蹤仿真

    差速機器人的純軌跡跟蹤仿真(Matlab)剛入門,有的地方不對,煩請大家指正。目錄差速機器人的純軌跡跟蹤仿真(Matlab)1 差速機器人
    發表于 09-01 08:11

    構建ARLOK arduino機器人的教程

    描述ARLOK arduino機器人PCB+展示代碼https://github.com/Settorezero/Arlok
    發表于 08-08 07:14

    Arduino教學機器人的使用教程

    本文檔的主要內容詳細介紹的是Arduino教學機器人的使用教程
    發表于 09-27 06:53

    實時車輛檢測跟蹤系統設計

    實時車輛檢測跟蹤是室外移動機器人尤其是智能汽車研究領域的一個重要課題。本文介紹了多功能室外移動機器人THMR-V 的
    發表于 03-03 14:50 ?20次下載
    主站蜘蛛池模板: 国产高清在线观看视频| 亚欧日韩毛片在线看免费网站 | 久久天天躁狠狠躁夜夜躁| 成年女人色毛片免费| 鞋奴的视频VK| 日本亚洲中文字幕无码区| 久久亚洲伊人| 黄色三级在线| 国产美女裸身网站免费观看视频 | 欧美末成年videos丨| 久久性综合亚洲精品电影网| 国产亚洲精品AV麻豆狂野| 儿子操妈妈视频| 成人免费视频在线观看| CHINSEFUCKGAY无套| 91系列在线观看免费| 在线观看中文| 又黄又湿免费高清视频| 亚洲欧美精品无码大片在线观看| 五月丁香婷姐色| 天美传媒果冻传媒入口视频| 日欧一片内射VA在线影院| 欧美另类老女人| 欧美白人战黑吊| 蜜臀亚洲AV永久无码精品老司机| 久久精品亚洲| 国产亚洲精品黑人粗大精选| 广播电台在线收听| 久久性综合亚洲精品电影网| 夫妻日本换H视频| 国产精品成人久久久久A伋| 国产欧美精品一区二区三区-老狼 国产欧美精品国产国产专区 | 国产三级级在线电影| 国产专区_爽死777| 久久精品天天中文字幕| 欧美日韩精品一区二区三区四区| 青柠在线观看免费全集| 色即是空之甜性涩爱| 亚洲精品另类有吗中文字幕| 制服的微热| 别插我B嗯啊视频免费|