91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

帶藍牙的清潔機器人的制作

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-06 16:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:你需要什么?

零件:

為了構(gòu)建這個機器人,你需要在Ebay上購買一些物品。你可以自己制造一些傳感器,但你必須看到它值得你的時間 - 沒有必要重新發(fā)明輪子。所以這里是清單:

HMC5883L數(shù)字羅盤Ebay(1);

Arduino Uno或兼容的Ebay(2);

2WD汽車底盤Ebay(3);

HC-06藍牙模塊(可選)Ebay(4);

2個雙H橋(將需要其中兩個)Ebay(5);

Arduino Uno Ebay原型盾(6) );

5V Ebay(7)以上的可充電電池;

I2C LCD顯示器1602(可選)Ebay(8) ;

3超聲波傳感器HC-SR04(至少)Ebay(9);

超聲波傳感器固定支架或類似物(可選)Ebay(10);

兩片丙烯酸到機器人的制作層;

額外的12V電機Ebay(11);

一堆黃銅支座墊片Ebay(12);

Carpet Sweeper Ebay( 13);

如果您希望車輪上的光耦合器作為編碼器工作,我建議:

Optocoupler Ebay(14);

而且,如果你想要一個photoelec用于檢測墻壁的三位一體傳感器:

紅外傳感器Ebay(15);

步驟2:焊接Eletronics

您需要什么知道:

在開始焊接之前,您需要觀察上圖。您可以使用3到6個超聲波傳感器。如果使用3,則必須將一個放在機器人前面,另外兩個放置120度。前面的那個將在物體靠近時檢測到物體,另外兩個物體將指向機器人的后部。他們兩個都會找到距離較近的物體(后面)的距離,所以“ SweeperBot ”可以決定,如果在找到一堵墻之后,它會更多回到它的右側(cè),或更左側(cè)。那是因為,當然,如果在找到一堵墻之后機器人直接向后移動,它將總是直線前進,并且永遠不會清理整個房間。

如果你想要更多的讀數(shù),更多信息,以及機器人檢測來自側(cè)面的物體,以及檢測其后面的物體,您可以使用所有6種可能的傳感器。為避免障礙而可能使用的一種控制方法是潛在字段,它可以充分利用所有這些信息。但是我還沒有實現(xiàn)這個。

還在寫關(guān)于聲納的內(nèi)容,另外需要注意的是,使用我將提供的代碼如下,你可以只使用一個連接到所有六個它們作為觸發(fā)引腳,這意味著您將使用相同的命令一起觸發(fā)所有6個觸發(fā)引腳。這樣您就可以避免使用更多5根線來觸發(fā)它們。通常,使用此傳感器的標準庫,您將無法這樣做,因為每個傳感器都會與另一個傳感器有問題。但是,每個傳感器都有自己的回波(引腳和接線),因為它們的讀數(shù)不同,每個傳感器都會向Arduino發(fā)送不同的信號。

HC-SR04聲納的另外兩個引腳是正面和正面。這兩個與所有其他電子設(shè)備相同:指南針,顯示屏和藍牙。指南針將通過I2C(IIC)進行通信,將SDA和SCL連接到Arduino上的SDA和SCL。藍牙將其發(fā)送器引腳和接收器引腳連接到微控制器的數(shù)字0和1引腳。注意它們的配置是通過軟件完成的,如果你切換這些引腳,藍牙將無法與設(shè)備配對。顯示器還將在與羅盤相同的引腳上連接I2C,因為使用I2C,Arduino可以使用相同的引腳同時控制多個器件。

相對于H橋,您必須連接使能A和將B啟用到正極引腳(在它旁邊,只需使用跳線),否則電機不會運行。然后,將每個電機連接到H橋的正極和負極(帶螺釘?shù)膫?cè)面引腳),并且用螺釘保留的三個連接器是:接地,它將連接到arduino和所有其他設(shè)備,包括電池,正極9V-12V,完全來自電池,5V輸出,將提供所有其他不是直流電機的設(shè)備。剩余的連接器是兩對邏輯信號,用于控制每個電機的方向和功率。

PINOUT:

HMC5883L數(shù)字羅盤;

PIN 0 - SDA 》》》 Arduino模擬引腳A4;

PIN 1 - SCL 》》》 Arduino模擬引腳A5;

PIN 2 - GND 》》》 GND;

PIN 3 - VCC 》》》 VCC 5V;

HC-06藍牙;

PIN 0 - RX 》》》 Arduino數(shù)字引腳0;

PIN 1 - TX 》》》 Arduino數(shù)字引腳1;

PIN 2 - GND 》》》 GND;

PIN 3 - VCC 》》》 VCC 5V;

第一個雙H橋;

PIN 0 》》》 Arduino Digital Pin 4;

PIN 1 》》》 Arduino Digital Pin 5;

PIN 2 》》》 Arduino Digital Pin 6;

PIN 3 》》》 Arduino Digital Pin 7;

啟用A 》》》 VCC;

啟用B 》》》 VCC;

電源》》》電池正極9 - 12V;

GND 》》》電池GND和Arduino GND;

+ 5V OUT 》》》 Arduino VCC;

第二雙H橋;

PIN 0 》》》 Arduino Digital Pin 3;

PIN 1 》》》 GND;

PIN 2 》》》未連接;

PIN 3 》》》未連接;

啟用A 》》》 VCC;

啟用B 》》》 GND;

電源》》》電池正極9 - 12V;

GND 》》》電池GND和Arduino GND;

+ 5V OUT 》》》未連接;

I2C LCD顯示1602;

引腳0 - GND 》》》 Arduino GND;

引腳1 - VCC 》》》 Arduino VCC;

引腳2 - SDA 》》》 Arduino模擬引腳A4;

針腳3 - SCL 》》》 Arduino模擬針腳A5;

6超聲波傳感器HC-SR04;

引腳0 - VCC 》》》 Arduino VCC;

引腳1 - 觸發(fā)》》》 Arduino數(shù)字引腳2;

Pin 2 - Echo 》》》連接Arduino數(shù)字引腳8,9,10,11,12和13;

引腳3 - GND 》》》 Arduino GND。

步驟3:安裝機器人

讓超聲波傳感器彼此之間以相等的角度固定例如,如果您使用六個,則將第一個放在機器人前面,將其他放置在距離它60度的位置。使用丙烯酸板作為機器人的層,因此更容易安裝并使部件就位。擰緊所有層,將電池放在電機上方,但放在電子設(shè)備下面。這樣你就可以降低它的重心,從而使它更穩(wěn)定。

將所有正極導線和接地針也焊接在一起。我用傳感器的所有引腳和另外5個直流電機引腳制作了一個連接器,因此在安裝和拆卸時更容易理解。在H橋上方放置一層最后一層并將Arduino放在那里。我在微控制器上方使用了Prototyping Shield,因為它更容易焊接并固定指南針,這是需要特別注意的部分。沒有必要將它放在機器人的中心,但它需要遠離大的金屬部件,如電機和電池。

可以將直流電機安裝在一起。地毯清掃車有許多不同的方式,但有些比其他更好。因為我只有一個掃地機,我的嘗試中有點難看。我發(fā)現(xiàn)將電機的軸線粘在清掃器的軸線上非常困難,通常在工作幾分鐘后,它們會斷裂,特別是因為沒有辦法將它們正確對齊。所以我取下了電動機的減速軸,并將一個小齒輪粘在掃地機的軸上。然后我把馬達的齒輪放在一起接觸,一切都像魅力一樣。但是,我希望我有一臺3D打印機,事情會更簡單,也更專業(yè)。

第4步:代碼

圖書館:

“SweeperBot”使用Wire,I2Cdev,TimerOne(用于中斷),Adafruit傳感器,HMC5883和LCD庫。您可以下載Zip文件,其中包含Arduino的代碼和所有庫。還包含適用于Windows Phone的藍牙項目。

WINDOWS PHONE 8.1代碼:

通過控制機器人的項目Windows Phone中的藍牙改編自互聯(lián)網(wǎng)上的示例。它改為有四個按鈕,每個方向一個。上,下,左,右。每個按鈕都會向機器人發(fā)送一個字母,分別是U,D,L和R.當機器人收到這些信件時,它會生成以下內(nèi)容之一:

U - 機器人將方向設(shè)置為直接前進;

D - 機器人將轉(zhuǎn)向背部直行;

L - 機器人將將方向設(shè)置為與當前“正在觀察”的位置完全相差90度;

R - 機器人將方向設(shè)置為與其正好相差90度目前正在“尋找”;

機器人處理這些命令的方式可以通過Arduino上的代碼進行更改。可以添加更多按鈕來轉(zhuǎn)動機器人,或者停止它,甚至可以讓它向后移動。這段代碼只是一個例子。也可以為其他設(shè)備制作類似的程序,例如用于IOSAndroids和。您必須發(fā)送機器人的唯一信件是這些字母 - U,D,L或R.

private async void RedButton_Click_1(object sender, RoutedEventArgs e) {

string command = “U”;

await connectionManager.SendCommand(command);

}

private async void GreenButton_Click_1(object sender, RoutedEventArgs e) {

string command = “L”;

await connectionManager.SendCommand(command);

}

private async void YellowButton_Click_1(object sender, RoutedEventArgs e) {

string command = “R”;

await connectionManager.SendCommand(command);

}

private async void RedButton_Copy_Click(object sender, RoutedEventArgs e) {

string command = “D”;

await connectionManager.SendCommand(command);

}

要將此代碼部署到Windows Phone,您需要Visual Studio和開發(fā)人員解鎖電話。這可以按照此鏈接上的說明進行。

ARDUINO代碼:

在簡歷中,主要邏輯是機器人如下:

在6個可能的傳感器中找到距離更近的物體的距離;

機器人處理距離的行為,并用向量X,Y指向所需方向(但是,如果從智能手機收到消息,則步驟2由設(shè)備發(fā)送的指示代替);

數(shù)字羅盤給出了機器人的方向,以控制其輪子;

來自羅盤的信息X‘,Y’被歸一化為空間[-1,1];

期望方向的矢量與實際方向之間的交叉產(chǎn)物發(fā)現(xiàn)它們之間的誤差;

PID方法計算兩個車輪(2WD)的每個直流電機的PWM(功率);

中斷激活PWM;

隨著項目的發(fā)展,我發(fā)現(xiàn)GitHub上可用的超聲波傳感器標準庫與電機的PWM激活相沖突,因為他們都使用相同的計時器。由于這個項目使用5個引腳配置三個直流電機的PWM(這是唯一可能的,因為地毯清掃器只轉(zhuǎn)向一個方向),而傳感器更多7個,微控制器必須不斷檢查收到了閱讀,無法使用互聯(lián)網(wǎng)上提供的資料。

因此,為避免沖突,只配置了定時器1中斷。通過這種中斷,Arduino可以檢查每個傳感器上是否有讀數(shù):如果沒有,它會為每個傳感器增加一個變量,它將用作參數(shù)來查找到物體的距離。

void callback() { //callback is the interruption name

noInterrupts();

//if no reading, increases variable sonarCount[n], where n is the number of sensor

if ((sonar[0] == 1) && (digitalRead(ECHO))) sonarCount[0]++;

//if there is readind on that sensor, sonar[n] = 2 accuses object found

if ((sonar[0] == 1) && (!digitalRead(ECHO)) && (sonarCount[0] 》 0)) sonar[0] = 2;

此外,在此中斷期間,它會向電機投入全部電量。如果有一定數(shù)量的中斷超過了PWM_R或PWM_L變量的數(shù)量,那么它對該給定電機的效力為零。

if (PWMCount == 0) {

if (PWML) { //if pwm left is positive then turn to a certain way

digitalWrite(MOTOR + 2, HIGH);

digitalWrite(MOTOR + 3, LOW);

} else { //else turn to the other side the left motor

digitalWrite(MOTOR + 2, LOW);

digitalWrite(MOTOR + 3, HIGH);

}

(。..)

if (PWMCount 》= abs(PWM_L)) { //if the counter equals the power we want

digitalWrite(MOTOR + 2, LOW); //shut down both pins of this motor

digitalWrite(MOTOR + 3, LOW);

}

(。..)

PWMCount++; //increases counter

if (PWMCount == 250) PWMCount = 0; //if counter equals maximum value we want

Timer1.attachInterrupt(callback); //250 equals 100% power

}

在主循環(huán)期間,機器人繼續(xù)搜索障礙和計算路線以避免它們或改變它的路徑。如果開發(fā)人員想要配置潛在字段控制方法,或者更改機器人的行為,他只需要使用更好的obst()函數(shù)。該程序的其他部分是必要的,不需要更改。當機器人通過藍牙接收消息時,它會停止避開障礙物,只是聽取用戶輸入。

void loop() //main loop

{

lcd.clear(); //clears previous messages on lcd

delay(10);

search(); //search obstacles and saves the distance value to each sensor

readings(); //reads compass and calculates the error from its desired direction

calcPWM(); //calculates the PWM for each motor based on PID

if (!mensagem) { //message from Bluetooth? if not, continue doing this

obst(); //here is where the robot defines its behavior

} //and where it defines the direction it want to go

(。..)

從代碼的所有部分開始,所有部分都是非?;镜?,唯一的一個這里要注意的有趣功能是讀數(shù)()。在其中,機器人獲取數(shù)字羅盤上當前位置的值X,Y和Z.那么,如何將讀數(shù)轉(zhuǎn)化為讓機器人知道它看哪個方向的東西?

首先得到原始值:

double rawX = event.magnetic.x;

double rawY = event.magnetic.y;

double rawZ = event.magnetic.z;

然后檢查是否機器人在正確的平面上。這可以通過查看Z(垂直軸)是否具有某個小范圍之間的值來實現(xiàn)

if ((rawZ 》 Zprim + 10) || (rawZ 《 Zprim - 10)) return; //if not right, return

現(xiàn)在是時候?qū)和Y值標準化為[ - 之間的空間 - 1,1],以便從這些值計算sin()和cos()。

//Ymin, Ymax, Xmin and Xmax are obtained when the calibration occurs

vector[1] = ((rawY) - ((Ymax + Ymin) / 2)) / ((Ymax - Ymin) / 2);

vector[0] = ((rawX) - ((Xmax + Xmin) / 2)) / ((Xmax - Xmin) / 2);

我們現(xiàn)在使vectorOBJ [n]成為一個雙向向量,指向計劃中的位置,我們想要機器人去。因此,要找到兩個向量之間的誤差,我們必須在它們之間產(chǎn)生交叉積。結(jié)果值是另一個向量,但與兩者垂直,向上或向下,取決于其符號。

error = (vectorOBJ[0] * vector[0] + vectorOBJ[1] * vector[1]) /

(sqrt(vectorOBJ[0] * vectorOBJ[0] + vectorOBJ[1] * vectorOBJ[1])

* sqrt(vector[0] * vector[0] + vector[1] * vector[1]));

error = (acos(error)) * 180 / PI; //from rad to degrees

//find out the way the result vector is pointing

sentido = vector[0] * vectorOBJ[1] - vector[1] * vectorOBJ[0];

if (sentido 》 0) error = -error;

步驟5:結(jié)論

最終詞匯

焊接后,安裝機器人并將代碼部署到Arduino和手機,您仍然需要配置其許多屬性。例如,代碼上的正PWM值可能會轉(zhuǎn)動輪子使機器人向后移動,而不是向前移動。也許正面將一個電機轉(zhuǎn)向一側(cè)而另一個轉(zhuǎn)向另一側(cè)。在這種情況下,只需切換電機端子上的電線,這很好。

也許您必須更改變量read而不是X和Y,也許您的指南針計劃將使用X和Z,或Y和Z.取決于您如何放置和配置數(shù)字指南針。也許名為0(零)的傳感器不會在機器人前面,你必須以不同方式連接或配置它們。

畢竟,你可能已經(jīng)完成了你的機器人。您可以根據(jù)需要更改其行為,但我可以保證它將起作用,或者至少代碼將會起作用。機器人將正確讀取指南針,將計算他前進的位置,他想要去的方向,為每個電機提供多少功率,以及看每個傳感器的障礙物有多遠。剩下大量的ROM內(nèi)存,所以你可以按照自己的意愿實現(xiàn)不同的策略。

再次,正如我在之前的Instructable(鏈接)中所寫,這是關(guān)于帶藍牙和紅外遙控的鬧鐘,我還有其他一些我想和你們分享的項目。如果有人喜歡這個,請在這里發(fā)表評論并關(guān)注我,因為我可能會再寫一篇關(guān)于我為Windows Phone(或任何其他平臺)制作的帶有數(shù)字指南針,加速度計和藍牙的智能手表(再次 - “ 藍牙“ )一切都更好。抱歉英文不好。

責任編輯:wv

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

    關(guān)注

    213

    文章

    31217

    瀏覽量

    222995
  • 藍牙
    +關(guān)注

    關(guān)注

    119

    文章

    6349

    瀏覽量

    179007
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    普渡科技清潔機器人PUDU CC1實現(xiàn)規(guī)模化落地的成功秘訣

    單品銷量突破20000臺,多年保持100%+同比增長,在歐美高標準市場出貨占比超60%——這是清潔機器人PUDU CC1交出的成績單。
    的頭像 發(fā)表于 01-09 12:49 ?697次閱讀

    科沃斯深度參編商用清潔機器人國家標準發(fā)布

    近日,國家市場監(jiān)督管理總局(國家標準委)正式批準發(fā)布 GB/T 46495—2025《商用清潔機器人》國家標準。
    的頭像 發(fā)表于 11-10 10:43 ?1592次閱讀

    RK3576機器人核心:三屏異顯+八路攝像頭,重塑機器人交互與感知

    瑞芯微RK3576 AIoT處理器處理器憑借其卓越的多屏異顯與8路攝像頭接入能力,為機器人領(lǐng)域帶來革新。米爾電子MYD-LR3576開發(fā)板實測數(shù)據(jù)顯示,在高負載下CPU占用僅34%,完美實現(xiàn)多路視覺
    發(fā)表于 10-29 16:41

    小蘿卜機器人的故事

    經(jīng)過我的申請, 馬老師發(fā)放了, 小蘿卜機器人的, 開發(fā)權(quán)限, 原來的小蘿卜公司, 因為經(jīng)營不善倒閉, 作為科研產(chǎn)品, 幾個技術(shù)對此惋惜, 自掏腰包, 要讓小蘿卜機器人, 再生, 每次聽到小蘿卜說
    發(fā)表于 10-23 05:24

    普渡機器人全新發(fā)布自清潔工作站

    在智能清潔領(lǐng)域,每一次技術(shù)突破都向著解放人力更進一步。9月23日,普渡機器人在CMS Berlin展會上全新發(fā)布的自清潔工作站,融合自動回充、自主加排水、部件自清潔及移動水站協(xié)同功能,
    的頭像 發(fā)表于 09-29 15:05 ?989次閱讀

    清潔機器人遠程監(jiān)控智慧運維系統(tǒng)方案

    隨著智能化技術(shù)的飛速發(fā)展,清潔行業(yè)正經(jīng)歷著從傳統(tǒng)人工清潔向自動化、智能化清潔的轉(zhuǎn)型。清潔機器人作為新興
    的頭像 發(fā)表于 09-29 10:59 ?690次閱讀
    <b class='flag-5'>清潔</b><b class='flag-5'>機器人</b>遠程監(jiān)控智慧運維系統(tǒng)方案

    商用清潔機器人 “不掉鏈” 的秘訣:Amass LCB50 系列連接器來守護

    在商場、寫字樓、機場等大型公共場所,商用清潔機器人早已成為高效保潔的“主力軍”。它們需在復雜路況下長時間連續(xù)作業(yè),而設(shè)備能否穩(wěn)定運行,關(guān)鍵就藏在負責電力與信號傳輸?shù)倪B接器里。AmassLCB50
    的頭像 發(fā)表于 09-18 15:14 ?875次閱讀
    商用<b class='flag-5'>清潔</b><b class='flag-5'>機器人</b> “不掉鏈” 的秘訣:Amass LCB50 系列連接器來守護

    工業(yè)機器人的特點

    的基礎(chǔ),也是三者的實現(xiàn)終端,智能制造裝備產(chǎn)業(yè)包括高檔數(shù)控機床、工業(yè)機器人、自動化成套生產(chǎn)線、精密儀器儀表、智能傳感器、汽車自動化焊接線、柔性自動化生產(chǎn)線、智能農(nóng)機、3D 打印機等領(lǐng)域。而智能制造裝備中工業(yè)
    發(fā)表于 07-26 11:22

    科沃斯商用清潔機器人入駐MFG集團總部

    近期,科沃斯商用機器人合作伙伴與高端辦公空間運營商 MFG 正式達成協(xié)議,為其提供專業(yè)的清潔機器人解決方案,助力室內(nèi)空間清潔工作的智能化升級。
    的頭像 發(fā)表于 07-26 09:19 ?1873次閱讀

    沃斯商用清潔機器人上崗徐州地鐵

    繼成功服務(wù)蘇州、深圳地鐵后,科沃斯商用清潔機器人再添新戰(zhàn)績——正式進駐徐州地鐵!
    的頭像 發(fā)表于 07-04 18:21 ?1443次閱讀

    漢思新材料|芯片級底部填充膠守護你的智能清潔機器人

    漢思新材料|芯片級底部填充膠守護你的智能清潔機器人智能清潔機器人的廣泛應(yīng)用隨著現(xiàn)代科技的飛速發(fā)展,智能清潔
    的頭像 發(fā)表于 07-04 10:43 ?1012次閱讀
    漢思新材料|芯片級底部填充膠守護你的智能<b class='flag-5'>清潔</b><b class='flag-5'>機器人</b>

    盤點#機器人開發(fā)平臺

    地瓜機器人RDK X5開發(fā)套件地瓜機器人RDK X5開發(fā)套件產(chǎn)品介紹 旭日5芯片10TOPs算力-電子發(fā)燒友網(wǎng)機器人開發(fā)套件 Kria KR260機器人開發(fā)套件 Kria KR260-
    發(fā)表于 05-13 15:02

    詳細介紹機場智能指路機器人的工作原理

    帶)定位、Wi - Fi 定位等。藍牙定位可以通過與機場內(nèi)部署的藍牙信標進行通信,獲取機器人的大致位置信息。UWB 定位則利用超寬帶信號實現(xiàn)更精確的定位,能夠在復雜的室內(nèi)環(huán)境中達到較高的定位精度,誤差
    發(fā)表于 05-10 18:26

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】機器人入門的引路書

    ROS的全稱:Robot Operating System 機器人操作系統(tǒng) ROS的 目的 :ROS支持通用庫,是通信總線,協(xié)調(diào)多個傳感器 為了解決機器人里各廠商模塊不通用的問題,讓機器人快速開發(fā)
    發(fā)表于 04-30 01:05

    普渡機器人獲頒2025酒店杰出智能配送清潔機器人

    近日,為期四天的2025CCE上海國際清潔技術(shù)與設(shè)備博覽會,和HOTEL&SHOP PLUS上海國際酒店與商業(yè)空間展兩場行業(yè)重磅展會正在如火如荼的進行中,本屆展會上,普渡機器人受邀參加了由
    的頭像 發(fā)表于 04-03 11:14 ?1489次閱讀