一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

用Arduino和距離傳感器制作小雞賽車?。ǖ?篇?最終篇)

李明聰 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-02-20 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

該項目旨在介紹用Arduino傳感器工作的一個電子作品。此次的分享嘉賓是福田和宏先生!他過去曾在DevicePlus上連載過“Arduino基礎(chǔ)”等作品。

在第2篇中,我們了解了小雞賽車中使用的電子部件的工作情況以及整個電子電路的制作過程。本文是第3篇,也是本項目的最后一篇,在這里我們將制作殼體和程序,徹底完成小雞賽車。

制作殼體

我決定使用第1篇中提到的“圓形機(jī)器人底盤套件”來制作殼體。利用圓形機(jī)器人底盤套件中的兩枚金屬板做成兩層,再安裝上電機(jī)和車輪,即可輕松完成能行駛的車身了。

但是,對于這次需要安裝兩塊電路板、兩節(jié)電池、還有超聲波距離傳感器和微動開關(guān)的情況而言,實在是顯得太擁擠了。另外,僅憑圓形機(jī)器人底盤套件附帶的前輪用球頭難以直行,而且一旦有點臺階,行進(jìn)方向還可能會發(fā)生偏移。

因此,我決定使用3D打印機(jī)自己制作所需部件,以完成殼體制作。我使用的是3D打印機(jī),這種打印機(jī)也可以加工板子類的部件,大家也可以試試。

安裝電機(jī)和車輪

在最底下的一層,除了左右兩個電機(jī)外,還需要安裝第2篇中制作的用來控制電機(jī)的電路板。另外,我在賽車的前部安裝了自己用3D打印機(jī)制作的支架,使之起到加長的作用,以便安裝迷你四驅(qū)車輪作為前輪。此外,還在與前方墻壁碰撞的部分安裝了左右兩個微動開關(guān)。

pYYBAGPyzwyAGPi6AAKdW0xTFzo761.png

安裝超聲波傳感器和電池

在電機(jī)上方一層安裝電池。這次,我分別準(zhǔn)備了Arduino和電機(jī)工作用的電池。兩者都是可提供9V電壓的006P電池。小雞賽車會受到諸如與墻壁碰撞等的沖擊。因此,如果不將電池安裝牢固,就可能會脫落。另外,由于電機(jī)的用電量較大,所以很容易耗盡電池電量。為了便于在沒電時更換電池,我用3D打印機(jī)做了一個電池盒,這樣就能從背面很方便地更換電池了。

除此之外,還在前方安裝了超聲波傳感器,以測量到墻壁之間的距離。這次使用的超聲波傳感器“HC-SR04”無法測量小于2cm的距離。出于這個原因,超聲波傳感器應(yīng)安裝在至少離小雞賽車頭部(微動開關(guān)被按下的位置)之后2cm的位置。

poYBAGPyzw6ATkZxAAN1POjRMco380.png

安裝主板

將主板安裝到賽車頂部。我用3D打印機(jī)制作了電池盒的頂蓋,這樣,就可以將主板安裝在它上面了。

poYBAGPyzxCANpl-AAPkhMYVLk8918.png

組裝好車身后,安裝車輪,然后將每個電子部件的導(dǎo)線連接到主板上,就完成了。

pYYBAGPyzxKAHzpKAAPYpfEsFZE499.png

另外,由于控制開關(guān)是用導(dǎo)線連接的,因此需要準(zhǔn)備幾米左右的導(dǎo)線并將其接到開關(guān)上。

用保險杠吸收沖擊

如果玩家未能在最后一刻將賽車停下來,那么小雞賽車就會撞到墻上。而撞到墻上后,車身就會受到?jīng)_擊。特別是如果有像這次這樣的由3D打印機(jī)打印的部件時,它們可能會因撞擊而開裂。而且,超聲波距離傳感器也可能會錯位,從而無法準(zhǔn)確地測量距離。

基于這些可能出現(xiàn)的問題,我給小雞賽車安裝了“保險杠”,以緩沖賽車與墻壁碰撞時的沖擊力,防止車身斷裂。保險杠上帶有彈簧,可以吸收撞擊墻壁時的沖擊力,從而避免其影響車身。

這次我使用了通過3D打印機(jī)制作的保險杠。另外,在保險杠上面還裝上了兩個微動開關(guān),用來檢測與墻壁的碰撞。安裝位置要確保墻壁碰到保險杠時開關(guān)被按下。

poYBAGPyzxSAUl_lAAKN7fsuN68200.png

當(dāng)然,如果您打算以低速行駛賽車,即使有碰撞也不會產(chǎn)生多大的沖擊力,那么就不需要安裝保險杠。

創(chuàng)建程序

殼體做好后,我們還需要完成編程工作。程序的主要結(jié)構(gòu)如下:

pYYBAGPyzxaAdSIGAACA2DsM6nk527.png

要想實現(xiàn)各個功能,就需把第1篇和第2篇中介紹過的讓每個零部件工作的方法通過編程結(jié)合起來。例如,賽車行駛起來之后,判斷控制開關(guān)被按下了還是保險杠被撞了的程序如下:

lcddisp.clear(); lcddisp.move( 0x00, 0x00 ); lcddisp.charwrite( " G O ! " ); digitalWrite( MOTOR1_PIN, HIGH ); flag = 0; while( 1 ){ if( digitalRead( BUMPER_PIN ) == LOW ){ flag = 2; break; } if( digitalRead( SW_PIN ) == LOW ){ flag = 1; break; } } digitalWrite( MOTOR1_PIN, LOW );

第1行到第3行,是在液晶顯示器上顯示“GO!”,讓玩家知道即將開始行駛。通過第5行的digitalWrite() 將連接到電機(jī)驅(qū)動器的引腳設(shè)置為“HIGH”,電機(jī)旋轉(zhuǎn),賽車向前行駛。

通過第8行的while(),一直持續(xù)行駛,直到控制開關(guān)被按下或保險杠的微動開關(guān)被按下。在保持行進(jìn)過程中,會隨時確認(rèn)控制開關(guān)和微動開關(guān)的狀態(tài)。

第9行用來判斷保險杠的開關(guān)是否被按下,即是否撞到了墻壁。通過digitalRead來確認(rèn)微動開關(guān)所連接的引腳的狀態(tài),若為Low,則判斷微動開關(guān)已被按下。通過將flag變量置“2”來記錄撞到了墻壁。通過第11行的“break”退出while循環(huán)。

第13行用來判斷控制開關(guān)被按下,即玩家按下停止開關(guān)。和微動開關(guān)的情況一樣,通過確認(rèn)控制開關(guān)所連接的引腳的狀態(tài),當(dāng)變?yōu)椤癓ow”時,判斷開關(guān)已被按下。在flag變量中記錄“1”并通過break退出循環(huán)。

退出循環(huán)后,通過第19行,將電機(jī)驅(qū)動器所連接的引腳置“Low”,使電機(jī)停止運行。

然后,確認(rèn)flag變量并進(jìn)行相應(yīng)的處理。如果為“1”,則判斷“成功”,通過超聲波距離傳感器測量到墻壁的距離,并顯示在液晶顯示器上。如果為“2”,則在液晶顯示器上顯示“Fail …”,表示挑戰(zhàn)失敗。

整個程序可以從以下鏈接下載:

下載程序(chickenracer.zip)

關(guān)于其他處理,請參考下載的程序。您可以通過Arduino IDE打開文件,并將程序傳輸?shù)紸rduino Nano,即可用于小雞賽車。

還配備了距離校準(zhǔn)功能

在測量到墻壁之間的距離時,需要使撞墻狀態(tài)下的距離為“0cm”。這個可以通過從超聲波距離傳感器測得的距離中減去超聲波傳感器和微動開關(guān)之間的距離來計算。例如,超聲波距離傳感器和微動開關(guān)之間的距離是3.5cm,測得的距離是5.1cm,那么到墻壁的距離可以計算得出“1.6cm”。

poYBAGPyzxiAV8UZAAEfKsNispQ183.png

但是,在使用過程中,安裝位置可能會發(fā)生偏移,超聲波距離傳感器和微動開關(guān)之間的距離可能會發(fā)生變化。這樣的話,即使撞墻,也不會是0cm,成功時測得的距離甚至可能會顯示為負(fù)數(shù)。

在這種情況下,需要每次在程序中改寫計算公式并將其傳輸?shù)紸rduino,這需要花費大量的時間和精力。因此,我決定安裝一個可以輕松調(diào)整距離校準(zhǔn)值的功能。

要進(jìn)行校正,請確保小雞賽車處于撞墻狀態(tài)(微動開關(guān)被按下的狀態(tài)),然后按下位于液晶顯示器右下方的距離校準(zhǔn)開關(guān)。接著,測量到墻壁的距離,通過從實際測量值中減去該值,即可得到正確的距離。

讓小雞賽車跑起來

poYBAGPyzxuAMMujAAJU9O0D4N8263.jpg

現(xiàn)在,讓我們試試做好的小雞賽車能不能跑起來。打開電源開關(guān)后,液晶顯示器將顯示“Chicken Racer”。想玩賽車比賽游戲時,請按下有線連接的控制開關(guān)。然后,LED將開始倒計時。

當(dāng)?shù)褂嫊rLED變?yōu)榫G燈時,小雞賽車開始向前行駛。在快要撞上墻壁之前,按下控制開關(guān),讓小雞賽車停下來。

如果您可以在不撞墻的情況下停下來,液晶顯示器上將會顯示出與墻壁之間的距離。如果失敗,則會顯示“Fail …”,讓您知道失敗了。如果在游戲結(jié)束后按下保險杠上的微動開關(guān),就會被重置,您可以重新開始游戲。

到這里,小雞賽車就大功告成了。本系列連載文章中介紹的電子部件的操作方法和制作過程,在創(chuàng)作其他作品時也會用得到,歡迎參考并嘗試使用Arduino挑戰(zhàn)各種電子作品的創(chuàng)作!

poYBAGPyzyGANl2-AAk6vSVzWPY891.jpg

福田和宏

作家,居住在日本札幌。喜歡撰寫有關(guān)電子創(chuàng)作、電腦Linux、智能手機(jī)等方面的文章。在為“Raspberry Pi Magazine”和“日經(jīng)Linux”供稿。著有《這本書足夠!Raspberry Pi超簡單入門教程》(SOTECHSHA)、《學(xué)習(xí)各種電子元器件的控制!Arduino電子創(chuàng)作 實戰(zhàn)教程》(SOTECHSHA)、《Arduino實用入門》(技術(shù)評論出版社)等書籍。目前,創(chuàng)辦了“札幌電子工藝部”(https://sapporo-elec.com/),這里匯集了眾多電子創(chuàng)作發(fā)燒友,大家使用各自的電子技能創(chuàng)作各種作品。任何人都可以參加,也期待您的加入!

審核編輯黃宇

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

    關(guān)注

    2564

    文章

    52788

    瀏覽量

    765305
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29607

    瀏覽量

    212153
  • 電機(jī)
    +關(guān)注

    關(guān)注

    143

    文章

    9275

    瀏覽量

    148850
  • Arduino
    +關(guān)注

    關(guān)注

    189

    文章

    6495

    瀏覽量

    190445
  • 距離傳感器
    +關(guān)注

    關(guān)注

    3

    文章

    76

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    基于Arduino Nano和HC-SR04超聲波傳感器制作社交距離項目

    傳感器制作社交距離項目。當(dāng)距離小于或等于 3 英尺時 LED 模塊自動開啟,當(dāng)距離大于
    發(fā)表于 08-09 06:30

    使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離傳感器

    電子發(fā)燒友網(wǎng)站提供《使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離傳感器.zip》資料免費下載
    發(fā)表于 10-31 09:35 ?1次下載
    使用超聲波<b class='flag-5'>傳感器</b>HC SR04和<b class='flag-5'>Arduino</b> Uno<b class='flag-5'>制作</b>超聲波<b class='flag-5'>距離</b><b class='flag-5'>傳感器</b>

    使用Arduino Uno和PIR傳感器的社交距離項目

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Uno和PIR傳感器的社交距離項目.zip》資料免費下載
    發(fā)表于 11-15 10:21 ?0次下載
    使用<b class='flag-5'>Arduino</b> Uno和PIR<b class='flag-5'>傳感器</b>的社交<b class='flag-5'>距離</b>項目

    使用Arduino和火焰傳感器制作火災(zāi)探測系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino和火焰傳感器制作火災(zāi)探測系統(tǒng).zip》資料免費下載
    發(fā)表于 11-23 10:00 ?1次下載
    使用<b class='flag-5'>Arduino</b>和火焰<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>火災(zāi)探測系統(tǒng)

    使用Labview、Arduino和超聲波傳感器制作距離/測距程序

    電子發(fā)燒友網(wǎng)站提供《使用Labview、Arduino和超聲波傳感器制作距離/測距程序.zip》資料免費下載
    發(fā)表于 11-30 11:19 ?6次下載
    使用Labview、<b class='flag-5'>Arduino</b>和超聲波<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b><b class='flag-5'>距離</b>/測距程序

    使用Arduino制作停車傳感器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino制作停車傳感器.zip》資料免費下載
    發(fā)表于 12-01 14:08 ?0次下載
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>停車<b class='flag-5'>傳感器</b>

    使用Arduino制作觸摸傳感器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino制作觸摸傳感器.zip》資料免費下載
    發(fā)表于 12-05 15:02 ?0次下載
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>觸摸<b class='flag-5'>傳感器</b>

    如何使用Arduino制作LED運動傳感器

    電子發(fā)燒友網(wǎng)站提供《如何使用Arduino制作LED運動傳感器.zip》資料免費下載
    發(fā)表于 12-12 10:39 ?0次下載
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>LED運動<b class='flag-5'>傳感器</b>

    Arduino控制伺服電機(jī)來演奏樂器!

    1Arduino控制曲別針電動機(jī)2:非接觸式開關(guān)的
    的頭像 發(fā)表于 02-20 10:15 ?1596次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>控制伺服電機(jī)來演奏樂器!

    Arduino和加速度傳感器制作數(shù)字滾球迷宮【后篇】

    Arduino和加速度傳感器制作數(shù)字滾球迷宮?這次將為大家介紹一個使用Arduino
    的頭像 發(fā)表于 02-20 11:54 ?2143次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>和加速度<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>數(shù)字滾球迷宮【后篇】

    Arduino距離傳感器制作小雞賽車?。?b class='flag-5'>第2

    1:在最后一刻停下來!Arduino距離傳感器制作
    的頭像 發(fā)表于 02-20 10:25 ?1284次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>和<b class='flag-5'>距離</b><b class='flag-5'>傳感器</b><b class='flag-5'>制作</b><b class='flag-5'>小雞</b><b class='flag-5'>賽車</b>?。?b class='flag-5'>第</b>2<b class='flag-5'>篇</b>)

    在最后一刻停下來!Arduino距離傳感器制作小雞賽車!(1

    到目前為止,我們已經(jīng)在DevicePlus上介紹過Arduino的使用方法和一些應(yīng)用案例。在本文中,我們將嘗試一個Arduino傳感器工作的電子作品。
    的頭像 發(fā)表于 03-23 15:15 ?2176次閱讀
    在最后一刻停下來!<b class='flag-5'>用</b><b class='flag-5'>Arduino</b>和<b class='flag-5'>距離</b><b class='flag-5'>傳感器</b><b class='flag-5'>制作</b><b class='flag-5'>小雞</b><b class='flag-5'>賽車</b>?。?b class='flag-5'>第</b>1<b class='flag-5'>篇</b>)

    一款Raspberry Pi和傳感器制作的可穿戴式小型健康管理設(shè)備!第四部分?劇終篇

    1部分:Raspberry Pi Zero和羅姆SensorMedal制作健康管理設(shè)備!2部分:根據(jù)傳感器的值計算步數(shù)、
    的頭像 發(fā)表于 02-24 10:06 ?2489次閱讀
    一款<b class='flag-5'>用</b>Raspberry Pi和<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>的可穿戴式小型健康管理設(shè)備!第四部分?劇<b class='flag-5'>終篇</b>

    Raspberry Pi和傳感器制作“可自動營造舒適空間的裝置” 第四部分?劇終篇

    1回:Raspberry Pi和傳感器制作“可自動營造舒適空間的裝置” 第一部分2回:R
    的頭像 發(fā)表于 02-24 10:17 ?1029次閱讀
    <b class='flag-5'>用</b>Raspberry Pi和<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>“可自動營造舒適空間的裝置” 第四部分?劇<b class='flag-5'>終篇</b>

    Arduino社交距離傳感器

    電子發(fā)燒友網(wǎng)站提供《Arduino社交距離傳感器.zip》資料免費下載
    發(fā)表于 06-30 14:33 ?0次下載
    <b class='flag-5'>Arduino</b>社交<b class='flag-5'>距離</b><b class='flag-5'>傳感器</b>