下载VNC Viewer程序
如何用VNC连接机器人?
确保WINDOWS电脑端网络和机器人连接的网络在同一局域网内,APP连接上机器人,进入侧边栏-设置-机器人信息界面查看机器人IP地址
连接Yanshee机器人的IP,进入树莓派
账号:pi 密码:raspberry
修改树莓派的分配率
https://jingyan.baidu.com/article/95c9d20d62f41eec4e75619e.html
用文件传输,将.py文件传入树莓派
打开命名行,运行python test.neck.py
运行的文件需要和RestfulAPI.py在同一文件夹里
test.neck.py的代码如下:
import RestfulAPI
import time
ip_addr = "127.0.0.1"
RestfulAPI.put_servos_angles({"NeckLR": 60})
time.sleep(2)
RestfulAPI.put_servos_angles({"NeckLR": 115})
time.sleep(2)
RestfulAPI.put_servos_angles({"NeckLR": 90})
RestfulAPI.py的代码如下:
''' This code is an interface for users to use Restful API in Yanshee.
the message format please refer to "http://127.0.0.1:9090/v1/ui"
version is 1.5 and author is sanson from UBTech.
it is an open source API,have fun!
'''
import requests
import json
import time
basic_url = "http://127.0.0.1:9090/v1/"
headers={'Content-Type':'application/json'}
def RobotInit(ip_addr):
global basic_url
basic_url = "http://"+ip_addr+":9090/v1/"
def get_devices_battery():
devices_url = basic_url+"devices/battery"
response=requests.get(url=devices_url, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_devices_fall_management():
devices_url = basic_url+"devices/fall_management"
response=requests.get(url=devices_url, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def put_devices_fall_management(enable):
devices_url = basic_url+"devices/fall_management"
param={"enable": enable}
json_data = json.dumps(param)
response=requests.put(url=devices_url,data=json_data, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_devices_languages():
languages_url = basic_url+"devices/languages"
response=requests.get(url=languages_url, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def put_devices_languages(language):
languages_url = basic_url+"devices/languages"
param={"language": language}
json_data = json.dumps(param)
response=requests.put(url=languages_url,data=json_data, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_devices_led():
led_url = basic_url+"devices/led"
response=requests.get(url=led_url, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def put_devices_led(type,color,mode):
led_url = basic_url+"devices/led"
param={ "type": type,"color": color,"mode": mode}
json_data = json.dumps(param)
response=requests.put(url=led_url,data=json_data, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_devices_versions(type):
version_url = basic_url+"devices/versions"
params = {'type': type}
response=requests.get(url=version_url, headers=headers,params=params)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_devices_volume():
volume_url = basic_url+"devices/volume"
response=requests.get(url=volume_url, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def put_devices_volume(volume):
volume_url = basic_url+"devices/volume"
param={ "volume": volume}
json_data = json.dumps(param)
response=requests.put(url=volume_url,data=json_data, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
######media########
def delete_media_music(name):
''' delete music file in /home/pi/Document/music'''
music_url = basic_url+"media/music"
param={ "name": name}
json_data = json.dumps(param)
response=requests.delete(url=music_url,data=json_data, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_media_music():
music_url = basic_url+"media/music"
response=requests.get(url=music_url, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def post_media_music(file):
music_url = basic_url+"media/music"
headers={'Authorization':'multipart/form-data'}
files={'file': open(file,'rb')}
response=requests.post(url=music_url,files=files, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def put_media_music(operation,name=""):
music_url = basic_url+"media/music"
param={ "operation":operation}
if (len(name)>0):
param["name"]=name
json_data = json.dumps(param)
response=requests.put(url=music_url,data=json_data, headers=headers)
res = json.loads(str(response.content.decode("utf-8")))
return res
def get_media_music_list():
music_url = basic_url+"media/music/list"
response=requests.get(url