基於Arduino UNO開發板無線連接伺服電機方案設計

2021-01-09 電子發燒友
基於Arduino UNO開發板無線連接伺服電機方案設計

風箏 發表於 2021-01-09 11:47:36

在機器人中使用伺服電機進行精確控制很常見。在本文中,我們將向您展示如何使用Arduino UNO開發板無線連接一個伺服電機,並且通過藍牙連接一臺Android設備。我們已經介紹過如何使用Arduino開發板控制伺服電機,這次我們使用無線藍牙模塊HC-06控制伺服電機。

所需的材料

●    Arduino UNO開發板

●    HC-05或HC-06藍牙模塊

●    伺服電機

●    Playstore的Roboremo App

●    麵包板

●    連接導線

HC-06藍牙模塊

藍牙可以運行在以下兩種模式:

1.    AT指令設置模式

2.    工作模式

在AT指令設置模式下,我們可以配置藍牙屬性,如藍牙信號的名稱、密碼、運行波特率等。工作模式是我們可以在PIC單片機和藍牙模塊之間發送和接收數據的一種模式。因此,在本教程中,我們將僅使用工作模式進行測試。AT指令設置模式保留為默認設置。設備名稱將是HC-05,密碼將為0000或1234,最重要的是所有藍牙模塊的默認波特率為9600。

該模塊工作在5V電源,信號引腳工作在3.3V,所以模塊內部安裝有一個3.3V穩壓器。因此我們不必擔心。在六個引腳中工作模式只使用了四個引腳。引腳連接表如下所示

序號 HC-05模塊的引腳 MCU的引腳 PIC的引腳 1 Vcc Vdd 第31腳 2 Gnd Gnd 第32腳 3 Tx RC6 / Tx / CK 第25腳 4 Rx RC7 / Rx / DT 第26腳 5 State NC NC 6 EN(Enable) NC NC

電路原理圖

使用Arduino開發板藍牙控制伺服電機的電路圖:

配置Roboremo App以控制伺服電機

第1步: 從Android Play商店下載Roboremo應用程式並將其安裝到您的智慧型手機中。安裝完成後,您將看到如下圖左側所示的應用程式窗口,然後點擊「Menu」按鈕,您將看到如下圖右側所示的窗口:

第2步: 然後點擊「connect」按鈕,你會看到如下圖3所示的窗口,然後你需要選擇'Bluetooth RFCOMM',然後你就可以將HC-06藍牙模塊連接到Android應用'Roboremo'。

第3步: 連接HC-06藍牙模塊後,返回到第2步右側的窗口,然後點擊'edit ui'按照您的需要創建用戶界面。

當點擊''edit ui"時,您將再次看到圖1所示的窗口,然後在屏幕上的任意位置點擊屏幕,您將看到如下圖所示的應用程式窗口,並選擇「Button」以獲得一個按鈕模板。

第4步: 選擇按鈕模板後,您將在屏幕上獲得一個按鈕進行編輯。您可以調整大小並將結構移動到屏幕的任何位置。現在,為了設置通過藍牙點擊發送的值,需要設置「set press action」,並鍵入您想要從該特定按鈕發送的值。就像我們通過按下Roboremo android應用程式中的'Start'按鈕發送'1'來旋轉伺服。

第5步: 最終我們設計了一個用戶界面來使用智慧型手機來控制伺服電機。

代碼和說明

本文末尾給出了使用藍牙控制伺服電機的完整Arduino代碼。

Arduino自帶有伺服電機庫,它處理所有PWM相關的事情來旋轉伺服,你只需要輸入你想旋轉的角度,然後使用函數servo1.write(angle)即可;該函數將使伺服電機旋轉到所需的角度。

因此,我們首先定義伺服電機庫和軟體串行庫用於定義Rx和Tx引腳。

#include

#include

在下面的代碼中,我們正在初始化Arduino的Rx和Tx引腳,為伺服電機和其他事情定義變量。

Servo myServo;

int TxD = 11;

int RxD = 10;

int servoposition;

int servopos;

int new1;

SoftwareSerial bluetooth(TxD, RxD);

現在,將所有變量和組件設置為初始階段。在這裡,我們使用Arduino開發板的第9腳連接了伺服電機,並將伺服電機的初始位置設置為0度。串行和藍牙通信的波特率也設置為9600。

void setup() {

int pos=0;

myServo.attach(9);

myServo.write(0);

Serial.begin(9600);       // start serial communication at 9600bps

bluetooth.begin(9600);

}

在void loop()函數中,Arduino將始終檢查輸入值,並根據智慧型手機接收到的值旋轉伺服器。所有的值將通過串行通信接收。

如果該值為0,伺服將旋轉到0度。同樣,如果我們從藍牙應用程式發送45、90、135和180,則伺服器將分別旋轉到45、90、135和180度角。

void loop() {

if (bluetooth.available()){

String value = bluetooth.readString();

servoposition = value.toInt();

if (value.toInt() == 0){

Serial.println(servoposition);

myServo.write(0);

}

if (value.toInt() == 45){

Serial.println(servoposition);

myServo.write(45);

}

if (value.toInt() == 90){

Serial.println(servoposition);

myServo.write(90);

}

if (value.toInt() == 135){

Serial.println(servoposition);

myServo.write(135);

}

if (value.toInt() == 180){

Serial.println(servoposition);

myServo.write(180);

}

如果我們通過按下開始按鈕發送值'1',伺服將一直旋轉,直到按下停止按鈕。在這裡我們按下停止按鈕時發送'2',Arduino開發板讀取後,它將跳出while循環,伺服電機停止旋轉。

while(value.toInt()==1){

if (bluetooth.available())

{

value = bluetooth.readString();

Serial.println(value);

if (value.toInt()==2)

{Serial.println("YYY");  break; }

}

servopos++;

delay(30);

Serial.println(servopos);

myServo.write(servopos);

if (servopos ==180 )

{servopos=0;break;}   

}   

}

}

使用藍牙的伺服電機控制的工作過程

在這個項目中,我們使用Android應用程式「Roboremo」來控制伺服電機。在這個應用程式的界面中,我們創建了5個按鈕來控制伺服電機,如前所述。每個按鈕的功能在下表中給出:

序號 按鈕名稱 發送值 描述 1 Start 1 該按鈕用於開始將伺服從0°旋轉到180°。 2 Stop 2 該按鈕用於在任何時候停止伺服。 3 0⁰ 0 該按鈕用於將伺服旋轉至0°。 4 90⁰ 90 該按鈕用於將伺服旋轉至90°。 5 180⁰ 180 該按鈕用於將伺服旋轉至180°。

因此,通過在Android應用程式Roboremo上按下這些按鈕,數據將通過智慧型手機的藍牙發送到HC-06藍牙模塊。Arduino接收來自該HC-06模塊的數據,然後根據代碼中按鈕表示的角度旋轉伺服電機。我們也可以編寫角度45和135的代碼,但由於Roboremo應用程式的限制,只能創建5個按鈕,所以我們跳過了這兩個按鈕。

通過使用這種方式,我們可以使用藍牙將數據從智慧型手機發送到Arduino開發板,然後以無線方式控制伺服器。這可以用於許多應用程式,如玩具車、機器人等。
編輯:hfy

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於Arduino Uno開發板的藥物提醒系統
    打開APP 基於Arduino Uno開發板的藥物提醒系統 風箏 發表於 2020-12-13 11:53:57 為了簡單起見,我們使用Arduino開發板做了一個簡單的醫學提醒器,提醒每天服用1次或2次或3次藥物。可以使用按鈕選擇時隙。此外,它顯示當前日期和時間。我們將在未來的文章中將其進一步擴展到物聯網項目,其中將向用戶發送電子郵件或SMS通知。該藥物提醒器還可以與患者監測系統集成。
  • 基於Arduino和Raspberry Pi開發板的嵌入式設計案例
    基於Arduino和Raspberry Pi開發板的嵌入式設計案例 Steve Leibson 發表於 2020-12-09 09:48:37 作者:Steve Leibson
  • 十個中文例程教會你輕鬆上手製作Arduino智能小車
    當時的想法是設計一款基於Arduino的入門級機器人,可以和三五好友在有限的空間裡進行踢足球等互動,而且要做到取材容易製作簡單,在設計的上採用了模塊化的接插結構,同時還要注重外觀擁有個性。2、基於Arduino的自平衡遙控小車車模平衡控制也是通過負反饋來實現的。因為車模有兩個輪子著地,車體只會在輪子滾動的方向上發生傾斜。
  • arduino開發板有什麼用
    對Arduino的編程是通過 Arduino程式語言 (基於 Wiring)和Arduino開發環境(基於 Processing)來實現的。基於Arduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟體,他們之間進行通信 (比如 Flash, Processing, MaxMSP)來實現。   總有一款適合你——Arduino開發板終極盤點。
  • 從51系列單片機到Arduino UNO開發板
    不過和計算機等專業相比較,軟體方面弱化很多,小編是這麼感覺的,這種感覺也源於目前論文沒設計到Java,小編還處於C語言階段。設備實習崗位也讓小編打雞血一樣又對電機充滿了熱情和學習動力,本來小編還以為自己要轉行去工商管理領域發展掙口飯吃嘞,果然生活充滿了不可預測性。今天和昨天,小編主要研究學習了下軟體設計內容,嵌入式功能有些多,需要寫的代碼也比較多。
  • 國外知名伺服電機/系統製造商盤點
    、可編程型及多軸運動控制型伺服驅動產品及相關解決方案的生產和貿易性企業。 SIMOTICS 1FT7永磁同步電機 歐系伺服特點是過載能力高,動態響應好,驅動器開放性強,且具有總線接口,包括現場總線、工業乙太網甚至無線網絡技術。
  • 安信可科技WiFi/WiFi+BLE開發板產品清單
    NodeMCU-8266元器件標識1.產品簡介NodeMCU是安信可科技基於ESP8266系列模組而設計的一款開發板開發板僅需一根micro USB數據線,就可以連接電腦進行配置。開發板將全部的I/O口引出至兩側的排針,讓開發者可以根據自己的需求連接外設。
  • 上海伺服電機維修
    洋伺服電機故障的常見原因: 與任何電氣組件一樣,洋伺服電機在生產線上會發生退化和徹底故障。無論您從事哪個行業,此類故障都可能影響運營並導致財務損失。歐陸伺服驅動器問題維修奇怪故障: 要對伺服驅動器進行故障排除,請先從出現問題的簡單問題開始,然後再進行處理。為了幫助降低成本,隔離或確定您可能遇到的任何問題並自行解決。
  • 三菱電機宋高升:伺服驅動器用第7代DIPIPM助力機器人核心部件
    首先,單軸伺服驅動逐漸向多軸伺服驅動方案轉變,其不僅擁有更好的性能及更多功能,同時可大幅減小現有伺服驅動器的產品尺寸,降低成本;由於多軸伺服驅動回饋的能量可以供其他電機使用,因此具有更低的損耗。其二,驅控一體化技術得到進一步發展,相比傳統的伺服驅動系統架構,驅控一體化方案的硬體成本更低、控制性能和效率跟高。
  • Trinamic強大的伺服驅動器TMCM-1636是三相BLDC電機和DC電機的理想...
    所有這些都可以使用簡單直觀的TMCL-DIE,Trinamic的免費編程環境進行編程,以便快速設置和調整設計,減少開發時間。Trinamic的創始人Michael Randt解釋說: 「磁場定向控制,或稱矢量控制,已經證明是以最佳轉矩和速度驅動電機的有效方法。過去實現FOC是一項非常艱巨的任務,如今越來越多的工程師使用TMC4671這樣的專用伺服控制器IC。
  • 高創DDHD雙軸伺服驅動器參數詳情
    概述:卓越的伺服性能和緊湊的外形設計讓DDHD雙軸伺服驅動器成為中低電壓應用節約成本的理想解決方案。DDHD雙軸伺服驅動器由Servotronix的成功產品CDHD 伺服驅動器進化而來,基於同一平臺設計,採用同樣強大的 HD 控制算法。
  • 用於機器人上的伺服電機,到底選直流伺服還是交流伺服?
    在智能化快速發展的今天,履帶機器人和輪式機器人在許多領域都有廣泛的應用,履帶機器人一般都採用雙直流伺服電機驅動,輪式機器人一般採用四驅設計,配合單軸或雙軸直流伺服電機驅動器來實現車輛行走設計,但是許多用戶在選型時並沒有很好的把握如何選擇合適的直流伺服電機或直流伺服驅動器,今天我就跟大家分享一下
  • 回收電機小武:普通電機、減速電機、步進電機、伺服電機的區別
    回收電機小武今日為大家轉載好的文章和大家共同學習!這裡所說的普通電機、步進電機、伺服電機、舵機是指直流微電機,平時我們接觸的也多是直流電機。電動機,別名「馬達」,就是指根據電磁感應定律保持電磁能的變換或傳送的這種電磁感應設備。電機也稱(別名電機),在電源電路連用英文字母「M」(舊規範用「D」)表達。
  • 用G2系列伺服電機,做移動機器人空間管理大師
    G2系列低壓伺服電機機身長度僅有7.5cm    在保證低壓伺服電機出眾性能的前提下,G2系列低壓伺服電機擁有更短的機身,與上一代低壓伺服電機相比,G2系列低壓伺服電機的平均長度縮短了17%,僅有7.5cm。
  • 一文分清普通電機、減速電機、步進電機、舵機、伺服電機的區別
    減速電機工作原理減速齒輪電機又稱齒輪減速電機或減速電機,是電機驅動閉式傳動齒輪減速裝置,對電機及齒輪箱進行集成組裝的減速傳動機構,用來降低轉速和增大轉矩,以滿足機械設備工作的需要。減速齒輪電機的用途:①降低轉速。
  • 伺服電機和步進電機的區別
    伺服電機和步進電機的區別:這個問題是困擾許多工程師的問題,而且它也是經常被作為一個面試試題出現在工程師的面前。二者在電機原理、啟動方法、啟動特性、過載特性、制動、控制方法、輸出特性方面的區別請翻閱相關資料。
  • 步進電機和直流伺服電機的十大優缺點
    步進電機是一種特殊的無刷直流電機,電磁線圈布置在電機的外部,電機的中心有一個鐵或磁芯附在軸上。通過對線圈電壓進行排序,可以以相對較低的成本實現精確的旋轉控制。控制通常是開環的,所以系統不知道電機是否失速或與控制器失去同步。
  • 用Arduino開發物聯網設備之初識Arduino
    硬體部分:最初Arduino硬體只有那麼幾種,uno、mini等,但是現在經過這麼多年的發展,越來越多的硬體支持了arduino開發環境,所以現在也很難去界定什麼是血統純正的arduino硬體了。軟體部分:這部分也就是我們平時說的Arduino,我們其實使用的就是arduino框架來對很多的mcu來進行編程。這裡很多小夥伴其實有很多疑問,比如為什麼要用arduino來進行?