基于Yanshee机器人的树莓派编程

本文介绍了如何使用VNC连接Yanshee机器人并进行编程。首先,确保电脑与机器人在同一局域网内,通过VNC Viewer连接机器人获取IP地址。接着,使用默认账号pi和密码raspberry登录树莓派,调整分辨率,并通过文件传输将.py文件传入。在树莓派上运行python命令启动程序,要求test.neck.py与RestfulAPI.py位于同一目录下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值