实验环境:PT8.2
实验目标:通过实验了解基于PT8.2小车远程控制实验
实验拓扑:
实验过程:
设备准备
(1)设备连接
依照实验拓扑设备连接,注意MCU中与按钮连接端口关系。
(2)设备IP地址设置
server0 | sbc0 | IoT4 | |
IP地址 | 192.168.25.1 | 192.168.25.1 | 192.168.25.1 |
子网掩码 | 255.255.255.0 | 255.255.255.0 | 255.255.255.0 |
(3)server0开启IoT服务并注册账号admin/admin
(4)SBC0和IoT4设备注册
程序设计
(1)MCU的程序设计
main.py
from usb import *
from time import *
from gpio import *
def main():
usb=USB(0,57600)
pinMode(0,IN)
pinMode(1,IN)
pinMode(2,IN)
pinMode(3,IN)
while True:
if digitalRead(1)==HIGH:
usb.write("right")
elif digitalRead(2)==HIGH:
usb.write("up")
elif digitalRead(3)==HIGH:
usb.write("left")
elif digitalRead(4)==HIGH:
usb.write("down")
else:
usb.write("stop")
delay(500)
if __name__=="__main__":
main()
(2)SBC程序设计
main.py
from usb import *
from time import *
from gpio import *
from ioeclient import *
def getDir(x):
if "up" in x:
print("up")
return "0"
elif "down" in x:
print("down")
return "1"
elif "left" in x:
print("left")
return "2"
elif "right" in x:
print("right")
return "3"
else:
print("stop")
return "4"
def main():
usb=USB(0,57600)
IoEClient.setup({
"type":"SBC",
"states":[{
"name":"Direction",
"type":"options",
"options":{
"0":"up",
"1":"down",
"2":"left",
"3":"right",
"4":"stop"},
"controllable":False
}]
});
while True:
direction=""
while usb.inWaiting()>0:
direction=usb.readLine()
IoEClient.reportStates(getDir(direction))
delay(500)
if __name__=="__main__":
main()
(3)小车程序设计
main.py
from time import *
from physical import *
from gpio import *
from ioeclient import IoEClient
def onInputReceive(input):
if input=="0":
print("going up")
moveBy(0,-20)
elif input=="1":
print("going down")
moveBy(0,20)
elif input=="2":
print("going left")
moveBy(-20,0)
elif input=="3":
print("going right")
moveBy(20,0)
else:
print("stop")
def main():
IoEClient.setup({
"type":"car",
"states":[{
"name":"Direction",
"type":"options",
"options":{
"0":"up",
"1":"down",
"2":"left",
"3":"right",
"4":"stop"
},
"controllable":True
}]
});
IoEClient.onInputReceive(onInputReceive)
while True:
delay(500)
if __name__=="__main__":
main()
(4)联动控制
图 设备注册后在IoT服务器的显示
图 SBC与IoT4之间的联动控制
设备运行
ALT+鼠标点击上下左右按钮,观察汽车的轨迹。
到此基于PT8.2小车远程控制实验完成,动手感受一下吧。
不足之处敬请批评指正:qhedu@139.com或者私信。
2023年2月16日