導航:首頁 > 編程語言 > 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樹莓派機器人相關的資料

熱點內容
app根據什麼看是否注冊 瀏覽:928
冰箱壓縮機燙手老跳閘 瀏覽:254
php日誌系統架構 瀏覽:453
udp獲取伺服器ip地址 瀏覽:985
能把心裡的恐懼解壓出來的視頻 瀏覽:368
三豐雲上傳伺服器流程 瀏覽:812
php類常亮 瀏覽:819
如何用紙尿褲做解壓玩具 瀏覽:608
程序員年齡和工資 瀏覽:766
壓縮空氣的特性簡介 瀏覽:564
廣樂美app是做什麼的 瀏覽:323
android的spinner屬性 瀏覽:929
店家幫平台源碼 瀏覽:973
源碼編輯器繪制圖形 瀏覽:951
長沙雲伺服器提供商 瀏覽:107
51單片機測脈沖寬度 瀏覽:286
文件夾弄成二維碼 瀏覽:283
python字典循環添加 瀏覽:692
閑置伺服器怎麼收費 瀏覽:162
閱讀app是用什麼開發的 瀏覽:37