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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Arduino的實(shí)時(shí)人臉檢測和跟蹤機(jī)器人

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

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

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

在本教程結(jié)束時(shí),您將擁有一個(gè)迷你傾斜和跨度機(jī)械臂,可以跟蹤您的臉部并隨之移動。您可以使用它(進(jìn)一步發(fā)展)來錄制您的視頻博客視頻,甚至可以使用手機(jī)的后置攝像頭自拍,因?yàn)樗鼘⒛哪樥枚ㄎ辉谑謾C(jī)屏幕的中心。所以!!聽起來很有趣?檢查本教程末尾的演示視頻以查看其工作情況。讓我們看看如何構(gòu)建一個(gè)...

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

面部跟蹤機(jī)器人與Arduino和Android藍(lán)牙

所需材料:

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

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

為了平移和傾斜我們的手機(jī),我們需要一些機(jī)械結(jié)構(gòu),如移動支架和一些伺服支架。你可以用紙板做一個(gè),因?yàn)槲矣幸慌_3D打印機(jī),我決定3D打印這些零件。

3D打印是一個(gè)了不起的工具,在構(gòu)建原型項(xiàng)目或試驗(yàn)新的機(jī)械設(shè)計(jì)時(shí)可以做出很多貢獻(xiàn)。如果您還沒有發(fā)現(xiàn)3D打印機(jī)的好處或它是如何工作的,你可以閱讀3D打印初學(xué)者指南

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

用于打印Arduino面部跟蹤機(jī)器人零件的3D打印機(jī)設(shè)置

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

Arduino面部跟蹤機(jī)器人的3D打印零件Arduino面部跟蹤機(jī)器人的3D打印零件

Arduino面部跟蹤機(jī)器人的3D打印零件Arduino面部跟蹤機(jī)器人的3D打印部件

原理圖和硬件:

智能手機(jī)面部跟蹤項(xiàng)目的電路如下圖所示:

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

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

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

設(shè)置您的安卓應(yīng)用程序:

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

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

使用帶有藍(lán)牙的Arduino和Android手機(jī)跟蹤圖片

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

對 Arduino 進(jìn)行編程:

安卓應(yīng)用程序?qū)z測人臉及其在屏幕上的位置;然后,它將根據(jù)面部的位置決定應(yīng)該移動的方向,以便面部到達(dá)屏幕中心。然后通過藍(lán)牙模塊將此方向發(fā)送到Arduino。

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

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

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

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

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

下面一行讀取通過藍(lán)牙模塊傳入的內(nèi)容.此外,數(shù)據(jù)保存在變量“藍(lán)牙數(shù)據(jù)”中。

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

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

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);}

加工:

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

面部跟蹤機(jī)器人與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;

}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28632

    瀏覽量

    208272
  • 人臉檢測
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    16502
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187741
收藏 人收藏

    評論

    相關(guān)推薦

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

    申請理由:采用此小型機(jī)器人進(jìn)行一個(gè)目標(biāo)模擬項(xiàng)目描述:1、目標(biāo)機(jī)器人的擬定2、Nao機(jī)器人目標(biāo)取樣,并訓(xùn)練3、進(jìn)行實(shí)時(shí)跟蹤
    發(fā)表于 10-29 14:14

    自律型機(jī)器人制作入門.基于Arduino

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

    舊手機(jī) Arduino的巔峰之作—視頻監(jiān)控機(jī)器人 ,異地遠(yuǎn)程遙控

    手機(jī)計(jì)算能力,基于OpenCV軟件庫,實(shí)現(xiàn)手勢分析和人臉追蹤。原材料和組件方形卡通寵物外觀的紙巾盒 1個(gè)萬能手機(jī)夾 1個(gè)網(wǎng)靈機(jī)器人3D打印件 1套Arduino控制板 + 藍(lán)牙小板1塊L298N電機(jī)
    發(fā)表于 09-27 14:01

    Arduino機(jī)器人制作指南

    Arduino機(jī)器人制作指南
    發(fā)表于 06-14 17:40

    焊縫跟蹤:自動化機(jī)器人實(shí)時(shí)焊縫跟蹤尋位

    焊縫跟蹤:自動化機(jī)器人實(shí)時(shí)焊縫跟蹤尋位自動化機(jī)器人焊接過程中會出現(xiàn)工件夾偏、鈑金件熱變形、機(jī)器人
    發(fā)表于 04-19 10:48

    焊縫跟蹤機(jī)器人焊縫跟蹤系統(tǒng)的優(yōu)勢分析

    `焊縫跟蹤機(jī)器人焊縫跟蹤系統(tǒng)的優(yōu)勢分析目前我們的焊縫跟蹤系統(tǒng)已于國內(nèi)外40多種主流機(jī)器人品牌成功完成通訊,如下:國產(chǎn)品牌:卡諾普,配天,金
    發(fā)表于 04-29 12:02

    焊縫跟蹤:焊接機(jī)器人配焊縫跟蹤傳感器是科技發(fā)展的必然趨勢

    。焊縫跟蹤系統(tǒng)優(yōu)勢抗弧光和飛濺,實(shí)時(shí)跟蹤,焊縫寬度自動適應(yīng)非接觸,支持多種焊接類型提高生產(chǎn)效率和焊接質(zhì)量,提高生產(chǎn)率確保焊縫成型美觀牢固;可使焊槍處于理想位置;可實(shí)現(xiàn)一致的和可復(fù)現(xiàn)的焊接效果;對于復(fù)雜的焊件,可減少編程工作。具有
    發(fā)表于 08-01 13:47

    在黑暗里機(jī)器人怎么識別人臉

    在當(dāng)今的機(jī)器人領(lǐng)域,基于視覺的人臉面部識別和檢測發(fā)展得非常之快,并且已經(jīng)運(yùn)用于很多領(lǐng)域。
    發(fā)表于 09-17 09:11

    家庭智能小管家機(jī)器人資料分享!

    戶提供家里情況,比如室內(nèi)溫度、煤氣檢測實(shí)時(shí)上傳到互聯(lián)網(wǎng)。使用云服務(wù)器,大數(shù)據(jù)等。用戶可以通過網(wǎng)頁,或者微信對機(jī)器人進(jìn)行一個(gè)部署。并且會報(bào)警處理一些事情,例如降溫功能,人臉
    發(fā)表于 10-09 20:32

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

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

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

    機(jī)器人作為家庭里的小管家,當(dāng)室內(nèi)沒人的時(shí)候,機(jī)器人在室內(nèi)自主巡航進(jìn)行環(huán)境檢測、安全報(bào)警等并隨時(shí)向用戶提供家里情況,比如室內(nèi)溫度、煤氣檢測實(shí)時(shí)
    發(fā)表于 09-30 14:33

    淺談差速機(jī)器人的純軌跡跟蹤仿真

    差速機(jī)器人的純軌跡跟蹤仿真(Matlab)剛?cè)腴T,有的地方不對,煩請大家指正。目錄差速機(jī)器人的純軌跡跟蹤仿真(Matlab)1 差速機(jī)器人運(yùn)
    發(fā)表于 09-01 08:11

    構(gòu)建ARLOK arduino機(jī)器人的教程

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

    Arduino教學(xué)機(jī)器人的使用教程

    本文檔的主要內(nèi)容詳細(xì)介紹的是Arduino教學(xué)機(jī)器人的使用教程
    發(fā)表于 09-27 06:53

    實(shí)時(shí)車輛檢測跟蹤系統(tǒng)設(shè)計(jì)

    實(shí)時(shí)車輛檢測跟蹤是室外移動機(jī)器人尤其是智能汽車研究領(lǐng)域的一個(gè)重要課題。本文介紹了多功能室外移動機(jī)器人THMR-V 的
    發(fā)表于 03-03 14:50 ?20次下載
    主站蜘蛛池模板: 成人在线视频播放 | 久久久免费热线精品频 | 国产午夜精品理论片影院 | 無码一区中文字幕少妇熟女H | 朋友的娇妻好爽好烫嗯 | 国产精品ⅴ视频免费观看 | 在线视频久久只有精品第一日韩 | 国产成人自拍视频在线观看 | 黄网13区| 日韩AV片无码一区二区三区不卡 | 伊人久久大香线蕉综合电影 | 韩国羞羞秘密教学子开车漫书 | 青柠在线观看免费完整版 | 国产学生在线播放精品视频 | 嫩草国产福利视频一区二区 | 亚州AV中文无码乱人伦在线 | 色鲁97精品国产亚洲AV高 | 精品国产自在现线拍400部 | 国产精品久久人妻无码蜜 | 麻美ゆま夫の目の前で犯 | 特级做A爰片毛片免费看108 | 国产区免费在线观看 | 美女图片131亚洲午夜 | 68日本xxxxxxxx79 | 久久综合久久鬼 | 黑人干亚洲人 | 99视频精品全部免费观看 | 小寡妇水真多好紧 | brazzers欧美最新版视频 | 久久热免费视频 | free18sex性自拍裸舞 | 亚洲黄色免费观看 | 亚洲 欧美 国产 视频二区 | 女人夜夜春 | 午夜理论片日本中文在线 | 午夜一级免费视频 | 天天爽夜夜爽夜夜爽 | 色偷偷伊人 | 最新高清无码专区 | JIZJIZJIZ 日本老师水多 | 亚洲欧美高清在线精品一区 |