导航:首页 > 编程语言 > python树莓派机器人

python树莓派机器人

发布时间:2022-11-05 04:07:52

① 如何优雅的用python玩转语音聊天机器人

所需硬件:
树莓派B+
人体红外线感应模块
内置麦克风摄像头(实测树莓派免驱淘宝链接)
申请API:
网络语音api
图灵api
语音聊天机器人实现原理:当有人来到跟前时--》触发聊天功能,开始以每2s检测录制语音--》通过网络语音api合成文字--》传递给图灵api返回回答信息--》通过网络语音合成播放
【人体感应识别部分Python代码renti.py】


#/usr/bin/python#coding:utf-8import RPi.GPIO as GPIOimport timeimport osimport signalimport atexitGPIO.setmode(GPIO.BCM) GPIO_PIR = 14 GPIO.setup(GPIO_PIR,GPIO.IN) # Echojing = 0dong = 0 sum = 0sum1 = 0oldren = 0sleep = 0def ganying(): i = 0 ok = 0 error = 0 while i < 10: if GPIO.input(GPIO_PIR) == 1 : ok = ok + 1 if GPIO.input(GPIO_PIR) == 0 : error = error + 1 time.sleep(0.01) i = i + 1 ren = ok/(error+1) return ren

1

GPIO_PIR = 14

为 红外线检测模块与树莓派的针脚,脚本函数返回0表示无人,>0 为有人
【Python语音识别聊天部分robot.py】


#/usr/bin/python# -*- coding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding( "utf-8" )import urllibimport urllib2import jsonimport uuidimport base64import osimport timefrom renti import * #获取网络tokenappid=7647466apikey="网络API"secretkey="网络API" _url="h.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apikey + "&client_secret=" + secretkey; y_post=urllib2.urlopen(_url)y_read=y_post.read()y_token=json.loads(y_read)['access_token']#print y_read#print y_token #------------------function------------- def luyin(): os.system('arecord -D plughw:1,0 -c 1 -d 2 1.wav -r 8000 -f S16_LE 2>/dev/null') def fanyi():
#---------------语音识别部分 mac_address="haogeoyes" with open("1.wav",'rb') as f: s_file = f.read() speech_base64=base64.b64encode(s_file).decode('utf-8') speech_length=len(s_file) data_dict = {'format':'wav', 'rate':8000, 'channel':1, 'cuid':mac_address, 'token':y_token, 'lan':'zh', 'speech':speech_base64, 'len':speech_length} json_data = json.mps(data_dict).encode('utf-8') json_length = len(json_data) asr_server = 'm/server_api' request = urllib2.Request(url=asr_server) request.add_header("Content-Type", "application/json") request.add_header("Content-Length", json_length) fs = urllib2.urlopen(url=request, data=json_data) result_str = fs.read().decode('utf-8') json_resp = json.loads(result_str) if json_resp.has_key('result'): out_txt=json_resp['result'][0] else: out_txt="Null" return out_txt def tuling(b): f=urllib.urlopen("23.com/openapi/api?key="此处为图灵API"&info=%s" % b) f=json.loads(f.read())['text'] return f def hecheng(text,y_token): #text="你好我是机器人牛牛很高兴能够认识你" geturl="u.com/text2audio?tex="+text+"&lan=zh&per=1&pit=9&spd=6&cuid=CCyo6UGf16ggKZGwGpQYL9Gx&ctp=1&tok="+y_token return os.system('omxplayer "%s" > /dev/null 2>&1 '%(geturl)) #return os.system('omxplayer "%s" > /dev/null 2>&1 '%(geturl)) def nowtime(): return time.strftime('%Y-%m-%d %H:%M:%S ') #---------------main-----------------num=0 #num用来判断是第一次说话,还是在对话过程中first=1 #判断是不是第一说话 当1000次没有人动认为是第一次while True: if ganying()!=0: run=open('run.log','a') if first==0: hecheng("你好,我是牛牛机器人,你可以和我聊天,不过说话的时候你必须靠近话筒近一点,",y_token) hecheng("说点什么吧,2秒钟内说完哦.",y_token) first=1 #为1一段时间就不执行 num=0 #从新计数 #print ganying() run.write(nowtime()+"说点神马吧..........."+'\n') print nowtime()+"说点神马吧.........." luyin() #开始录音 out=fanyi().encode("utf-8") #翻译文字 run.write(nowtime()+"我说:"+out+'\n') print nowtime()+"我说:"+out if out == "Null": text="没有听清楚你说什么" os.system('omxplayer "shenme.wav" > /dev/null 2>&1 ') else: text=tuling(out) hecheng(text,y_token) print nowtime()+"牛牛:"+text run.write(nowtime()+"牛牛:"+text+'\n') run.close() else: #print ganying() #调试查看是否为0有人没人 #print num num=num+1 #num长时间增大说明没有人在旁边 if num > 1000: first=0 #0表示第一次说话

万事俱备 运行nohup python robot.py 哈哈就可以脱离屏幕开始愉快的语音聊天啦
下面看看聊天的日志记录吧
后续更新。。。。。。Python如何用语音优雅的控制小车

② 请问新手入门适合什么型号的树莓派主要用python编程,倾向于机器人编程,无人机这两方面

有钱就买最贵的4代,缺钱买3b

③ 怎么在树莓派上用python做机器人

  1. 先在树莓派上安装python


$sudoapt-getinstallpython-dev

2.然后更新

$sudoeasy_install-Udistribute

3.安装python-pip

$sudoapt-getinstallpython-pip

4.安装python的GPIO库

$sudopipinstallrpi.gpio

5.然后去下一本书《python指南》就可以开始学习python基础了。

6.学习完基础,就可以开始树莓派的开发了,网上有很多例子,可以开发机器人的语音识别,自动寻路,开关门等等功能。

④ 《树莓派机器人实战秘笈》pdf下载在线阅读全文,求百度网盘云资源

《树莓派机器人实战秘笈》网络网盘pdf最新全集下载:
链接: https://pan..com/s/1-Kk8vMJcPKxvauzBEW_9-g

?pwd=urak 提取码: urak
简介:这是一本为读者讲解利用树莓派实现酷炫机器人设计的电子书,书中一共拥有七大章节帮助你认识到树莓派,内容非常的精髓且丰富。

⑤ 最近想做个机器人是要用树莓派还是Arino

我毕业设计做的是基于物联网控制的机器人,如果你是计算机专业的,二选一的话,我推荐用raspberry PI B+,如果计算机基础不是很好,可以用Arino,这个实现方便,开发周期短,本身带了很多类库。
嗯,直接告诉你,树莓派可以直接控制舵机和动力模块,但是仍然需要加一个电机驱动芯片,可以选择经典的 L298或者L9110。这里不需要arino,当然可以连上。我做的是远程视频监控,用的是树莓派。
有一整套的论文,但是不能给你哈,因为已经提交,如果泄露,可能面临学位证被收回的风险。不过如果你想交流一下还是可以的。

⑥ 树莓派使用java还是python编程

树莓派使用python编程。树莓派项目的一个核心思想就是Python编程语言的使用。Python允许树莓派的拥有者将项目扩展到令人难以置信的规模。
树莓派是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓派的体积小,但是它的潜力无限。你可以像使用常规台式计算机一样在树莓派上创建一个非常酷的工程。例如,你可以用树莓派搭建你自己的家用云存储服务器。
树莓派用python来进行编程。树莓派项目的一个核心思想是Python编程语言的使用。Python允许树莓派的拥有者将项目扩展到令人难以置信的规模。
Python是一个解释型的面向对象的、跨平台的编程语言。良好的可靠性、清晰的语法和易用性,使它成为最流行的编程语言之一。Python是一个优雅的、功能强大的语言。
树莓派为Python编程提供了一个便宜到令人难以置信的开发平台。Python被认为是一种“教学”语言,是因为它很容易学习,但绝不表示Python羸弱。
有了树莓派和Python,唯一限制你的就是想象力了。你可以用Python编写游戏并将其运行在树莓派控制的游戏机上。你可以编写程序来控制连接到树莓派上的机器人。或者你可以像Dave Akerman一样将你的树莓派发送到39000千米的地球上空拍摄令人难以置信的照片
推荐课程:数据挖掘基础(黑马程序员)

⑦ 关于python和树莓派

导入错误,没有模块名叫flask-xx的模块,你把中划线换成下划线_试试看嘛,再有就是看看是不是没进虚拟环境。

⑧ 全球首个云端8位计算机,树莓派创始人玩得很开心

大数据文摘出品

作者:Olivia、曹培信


用280个字符编写一个程序,你能写出什么?


也许你会说,我用Python调个包,啥功能都能给你实现了。



那可不行,你还得 用BBC BASIC语言编写,在BBC Micro Model B上运行 ,是不是听着很陌生?


BASIC,一个有着56年 历史 的直译式编程语言,是许多程序员大佬的入门语言,BBC BASIC是由Acorn Computers为BBC编写的版本,相比原来的BASIC加入了许多额外的结构体关键字;BBC Micro Model B则是20世纪80年代的8位计算机,是当时风靡一时的微型电脑开发板,也是许多程序员大佬的入门神器。


我们先来看看大神用这两个古董加上280字符的程序能实现什么?



一个充满 历史 厚重感的 Windows 95 logo ,没错,这就是用280个字符写出来的BASIC程序的输出结果!当然,如果你也想亲手试一下,倒不用去淘一台BBC Micro Model B古董机,现在 只要发条Twitter就可以一试!


首个云端的“8位机”,被各路大佬玩坏


Arino业务开发副总裁Dominic Pajak创建了一个名为 “@bbcmicrobot” 的推特账户,又叫做 BBC Micro Robot



你只要用编写一段BBC BASIC程序,然后发推特@bbcmicrobot,机器人就会接收推文并通过BBC Micro Model B的仿真器运行Basic程序来处理推文,再将结果推回仿真器输出三秒钟的动图。



据统计,这个机器人在最初的几周内获得了超过 1000万次 的浏览,并且每周要处理超过 1000个Basic程序


许多大佬也爱上了这个机器人,包括喜剧演员达拉 · 布莱恩(Dara Ó Briain),科普作家本 · 戈达克(Ben Goldacre),当然,最着名的要数树莓派创始人 埃本 · 厄普顿 (Eben Upton)。


厄普顿编写的是一个 Game of Life (生命的 游戏 )程序,我们先来看看输出结果。



你可能会很疑惑,这是个啥?其实,这是一个经典的 细胞自动机 ,也可以说是一个零玩家 游戏 ,它的演变是由它的初始状态决定的,不需要进行后续的输入,是最一种模拟包括自组织结构在内的复杂现象的一个强有力的方法。


大佬的炫技,我们看不懂。


也有人做了一些大佬做的是一看就知道很厉害的东西,比如这个三维的滚动的小球,作者是 游戏 巨头Activision的技术总监 Paul Malin ,他使用了一种特殊的编码将361个ASCII代码字符压缩成了280个Unicode字符推文。



据Pajak介绍,这款BBC Micro Robot原本部署在树莓派4上,但此后转移到了亚马逊云服务器上,大概是是 世界上唯一一个云端的8位计算机 了。


BBC Micro Robot是用Javascript编写的,运行环境是Node.js,具体来说,当机器人发现一条是Basic程序的推文时,它会进行过滤,再将文本输入模拟的BBC Micro缓冲区中,在30秒后使用ffmpeg创建一个3秒的视频。


发个Twitter缅怀40年前的极简编程岁月


之所以这个BBC Micro Robot会得到像树莓派创始人厄普顿这样的大佬的回应,这背后的原因主要还是情怀。


1988年,当埃本 · 厄普顿还是一个10岁的小孩时,他买了他人生中的第一台电脑—— 一台二手的BBC Micro ,没错,就是BBC Micro Robot模拟的那个8位计算机!


电脑一到手,厄普顿就开始用BBC BASIC语言开始编写程序,很快便得心应手。


所以,当厄普顿发现了这个发个Twitter就能用BBC BASIC编写一个小程序的时候,他一定想起了30多年前的少年时代。


埃本 · 厄普顿和他的树莓派


其实作者的经历也是如此,Dominic Pajak也是成长于20世纪80年代的英国,在学校里学会了BBC Micro编程。


Pajak说:“BBC Basic主要由Sophie Wilson(就是后来设计ARM架构的那个大神)开发,而这是 迄今为止最好的Basic实现语言 ,其中一些非常好的特征允许我们 将代码最小化 。”


受制于当时的技术,老一代的程序员大佬们对于用有限的代码实现更多的功能可谓是乐此不疲,也可以说是那一代人的情怀。


正如Ableton创始人罗伯特•亨克(Robert Henke)所说,“ 当技术在表达方面受到限制时,极简主义是必要的。


如果你也想试一试


如果你也想试一试,缅怀一下30多年前的编程岁月,很简单,只要发一个推特@bbcmicrobot就可以了。


当然,你的推文内容必须是BBC BASIC语言,BASIC(Beginner's All-purpose Symbolic Instruction Code),意思就是“ 初学者的全方位符式指令代码 ”,是一种设计给初学者使用的程序设计语言。BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连结等手续即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。


如果你还不熟悉BBC BASIC语言,没关系,作者也提供了很好的学习教程。


网站链接:

https://www.dompajak.com/bbcmicrobot.html


入门教程肯定是从“Hello World”开始了。



如果想要进一步 探索 BBC BASIC,也可以看一些专门的博客,比如Paul Malin的 “Fun with BBC Micro Bot”



博客地址:

https://blog.mousefingers.com/post/bbc/bbc_bbcmicrobot/


“发推”编程,乐趣无穷,文摘菌推荐大家自己动手一试。

⑨ 求助树莓派避障小车,遇到 python 了

小白第一次上手 python ,用树莓派,红外和超声波传感器做智障小车。 编译错误:
RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(trip,GPIO.OUT)
Traceback (most recent call last):
File "xiaochetest.py", line 82, in <mole>
fwd()
TypeError: fwd() takes exactly 1 argument (0 given)

下面是小车的代码:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)

m1_fwd = 12
m1_rev = 11
m2_fwd = 13
m2_rev = 15
red_left = 07
red_right = 16
trip = 38
echo = 37
def init():
GPIO.setup(m1_fwd,GPIO.OUT)
GPIO.setup(m1_rev,GPIO.OUT)
GPIO.setup(m2_fwd,GPIO.OUT)
GPIO.setup(m2_rev,GPIO.OUT)
def stop(sleep_time):
GPIO.output(m1_fwd,False)
GPIO.output(m1_rev,False)
GPIO.output(m2_fwd,False)
GPIO.output(m2_rev,False)
time.sleep(sleep_time)
GPIO.cleanup()
def fwd(sleep_time):
GPIO.output(m1_fwd,GPIO.HIGH)
GPIO.output(m1_rev,GPIO.LOW)
GPIO.output(m2_fwd,GPIO.HIGH)
GPIO.output(m2_rev,GPIO.LOW)
time.sleep(sleep_time)
GPIO.cleanup()
def rev(sleep_time):
GPIO.output(m1_fwd,GPIO.LOW)
GPIO.output(m1_rev,GPIO.HIGH)
GPIO.output(m2_fwd,GPIO.LOW)
GPIO.output(m2_rev,GPIO.HIGH)
time.sleep(sleep_time)
GPIO.cleanup()
def right(sleep_time):
GPIO.output(m1_fwd,GPIO.HIGH)
GPIO.output(m1_rev,GPIO.LOW)
GPIO.output(m2_fwd,False)
GPIO.output(m2_rev,False)
time.sleep(sleep_time)
GPIO.cleanup()
def left(sleep_time):
GPIO.output(m1_fwd,False)
GPIO.output(m1_rev,False)
GPIO.output(m2_fwd,GPIO.HIGH)
GPIO.output(m2_rev,GPIO.LOW)
time.sleep(sleep_time)
GPIO.cleanup()
def get_distance():
GPIO.setup(trip,GPIO.OUT)
GPIO.setup(echo,GPIO.IN)
GPIO.output(trip,GPIO.HIGH)
time.sleep(0.000015)
GPIO.output(trip,GPIO.LOW)
while not GPIO.input(echo):
pass
t1 = time.time()
while GPIO.input(echo):
pass
t2 = time.time()
return (t2-t1)*34300/2
def turnaround():
GPIO.setup(red_left,GPIO.IN)
GPIO.setup(red_right,GPIO.IN)
while GPIO.input(red_left) and GPIO.input(red_right)==0:
rev()
if GPIO.input(red_left)==1:
left(1)
else:
right(1)
GPIO.cleanup()

while True:
distance = get_distance()
time.sleep(0.5)
if distance > 20:
fwd()
elif distance == 20:
stop()

else:
stop()
turnaround()

def fwd(sleep_time)

if distance > 20:
fwd()

调用 fwd 的时候要传参数啊,错误提示说的比较清楚了。

⑩ 树莓派能干什么

树莓派,Raspberry Pi,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派。

就像其他任何一台运行Linux 系统的台式计算机或者便携式计算机那样,利用Raspberry Pi 可以做很多事情。当然,也难免有一点点不同。普通的计算机主板都是依靠硬盘来存储数据,但是Raspberry Pi 来说使用SD 卡作为“硬盘”,也可以外接USB 硬盘。

利用Raspberry Pi 可以编辑Office 文档、浏览网页、玩游戏—即使玩需要强大的图形加速器支持的游戏也没有问题,如《雷神之锤》(Quake )。

Raspberry Pi 的低价意味着其用途更加广泛,将其打造成卓越的多媒体中心也是一个不错的选择。利用Raspberry Pi 可以播放视频,甚至可以通过电视机的USB 接口供电。

(10)python树莓派机器人扩展阅读

RaspberryPi配备了一颗ARM11系列,主频为700M的CPU,以SD卡为内存硬盘,卡片主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线。同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上

具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等着多功能。RaspberryPiB款只提供电脑板,无内存、电源、键盘、机箱或连线。

阅读全文

与python树莓派机器人相关的资料

热点内容
五菱宏光空调压缩机 浏览:64
为什么app占用几百兆 浏览:676
自动解压失败叫我联系客服 浏览:482
易语言新手源码 浏览:456
oa服务器必须有固定ip地址 浏览:42
传奇源码分析是什么 浏览:267
解放压缩机支架 浏览:255
程序员秃顶搞笑相遇 浏览:6
IBM手机app商店叫什么名字 浏览:834
jpeg压缩质量 浏览:774
云服务器评测对比 浏览:145
java日期转string 浏览:221
openfire源码编译 浏览:897
在线小工具箱引流网站源码 浏览:337
非科班程序员自学 浏览:801
压缩泡沫鞋底底材 浏览:220
程序员职场第一课2正确的沟通 浏览:680
遇到不合法app应该怎么办 浏览:92
汇编程序编译后的文件 浏览:81
大智慧均线源码 浏览:374