基于Arduinoros的温度控制器
以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)題。
- 上一篇: MongoDB分片机制
- 下一篇: 秋天的枫叶