日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于Arduinoros的温度控制器

發(fā)布時(shí)間:2023/12/20 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Arduinoros的温度控制器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以arduino為下位機(jī),控制加熱器和傳感器。將讀取的傳感器數(shù)據(jù)上傳到上位機(jī)。上位機(jī)是安裝了ros的電腦或樹(shù)莓派,通過(guò)獲取到溫度的變化情況控制加熱器。


0.代碼

github:https://github.com/zhangjiali1201/temp_control

arduino_exercise是感熱燈的代碼。

arduino_ntc是ros_arduino_bridge對(duì)應(yīng)的下位機(jī)代碼。

1.前言

使用ros開(kāi)源包ros_arduino_bridge進(jìn)行ros和arduino之間的通信。關(guān)于ros_arduino_arduino相關(guān)的實(shí)驗(yàn),見(jiàn)之前的博客ros_arduino_bridge控制舵機(jī)。

使用熱敏電阻的熱敏燈實(shí)驗(yàn),見(jiàn)之前的博客arduino學(xué)習(xí)筆記6 感熱燈。

2.傳感器

將熱敏電阻用于測(cè)溫控溫裝置是很常見(jiàn)的用法。熱敏電阻本身范疇也比較大,從狹義上的熱敏電阻NTC PTC,熱電偶TC到薄膜電阻RTD等都算。

我手頭也沒(méi)有多少可用的元器件,只有好久以前買(mǎi)arduino組件的時(shí)候附帶的兩個(gè)負(fù)溫度系數(shù)熱敏電阻,具體型號(hào)不可考,也沒(méi)有附帶應(yīng)用文檔。

NTC熱敏電阻會(huì)隨著溫度升高而減小電阻。

3.加熱器

加熱器暫時(shí)無(wú)可用器件,待定。暫時(shí)以輸出1代表加熱,輸出0表示停止加熱。

4.下位機(jī)代碼

按常理,下位機(jī)部分代碼應(yīng)該根據(jù)傳感器的技術(shù)手冊(cè)所標(biāo)明的控制方式編寫(xiě)和獲取數(shù)據(jù)。

這里缺少參考,就只簡(jiǎn)單的獲取一下數(shù)據(jù)。接線(xiàn)方式和傳感器控制部分代碼與之前的博客arduino學(xué)習(xí)筆記6 感熱燈相同。

下位機(jī)代碼比較簡(jiǎn)單,主要就是三部分,主程序、傳感器和串口通信。具體見(jiàn)代碼,不復(fù)雜。

5.上位機(jī)代碼

首先下載一下ros_arduino_bridge,并切換到對(duì)應(yīng)的分支,我這里系統(tǒng)用的是kinetic,所以切換到kinetic-devel.

$ git clone https://github.com/hbrobotics/ros_arduino_bridge.git $ git checkout kinetic-devel

檢查一下分支。

zjl@zjl-X550ZE:~/temp_control/ros_arduino_bridge$ git branchindigo-devel * kinetic-devel

然后是修改主節(jié)點(diǎn)node.py(ros_arduino_bridge/ros_arduino_python/nodes)

在八十行左右添加一個(gè)獲取溫度的服務(wù)。

# A service to get temperaturerospy.Service('~getTemperature', GetTemperature, self.GetTemperatureHandler)

440行左右添加:

def GetTemperatureHandler(self, req):value = self.controller.get_temperature()return GetTemperatureResponse(value)

修改驅(qū)動(dòng)代碼arduino_driver.py(ros_arduino_bridge/ros_arduino_python/src/ros_arduino_python)

340行左右增加:

def get_teperature(self): #獲取溫度傳感器的結(jié)果return self.execute_ack('t')

380行左右:

rospy.loginfo("Now print temperature sensors value:")values = myArduino.get_temperature()distances = np.array([values[0]])rospy.loginf(distances)

創(chuàng)建srv文件

--- float32 temp

?

總結(jié)

以上是生活随笔為你收集整理的基于Arduinoros的温度控制器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。