再看“筧實智慧校園”——作品的復盤[1]
這幾個月因為學業繁重,加上準備省機器人競賽的原因,沒能經常寫博客。
在學軍的這幾個禮拜,覺得自己還是學到了不少的。
如今,再看當年的筧實智慧校園工程(http://www.cnblogs.com/pityhero233/p/7246862.html),只覺得多了不少可以改進的地方。
一個基於python和pcduino的智慧校園系統,本著開(zhuang)源(bi)的精神可以用來借鑒。233。 運行在pcduino上的,需要搭配一些元件。
現在,接觸到了各種板子。除了pcduino和現在已經被滿大街地濫用的樹莓派、arduino以外,像WiDo、DFRobot出的一些板子,64位arm的Pine64,6核高配置,價格兩千多的Firefly RK3399,還有無線電的SDR Hackrf、LimeSDR等等。回頭再看當年引以為豪的pcduino,覺得有些感慨。
p.s.上學鈴聲是個雙和弦的《小星星》,雖然歌很簡單,但是寫死我了-_-
muse_dict ={‘.1‘=261.9,‘.2‘=293.7,‘.3‘=329.6,‘.4‘=349.2,‘.5‘=392.0,‘.6‘=440,‘.7‘=493.9,‘1‘=523.3,‘2‘=587.3,‘3‘=659.3,‘4‘=698.5,‘5‘=784,‘6‘=880,‘7‘=987.5,‘1.‘=1047,‘2.‘=1175,‘3.‘=1319,‘4.‘=1397,‘5.‘=1568,‘6.‘=1760,‘7.‘=1970} blinkingI = [A] #blinkingI = [Q,X,Q,X,T,X,T,X,Y,X,Y,X,T,X,X,X,R,X,R,X,E,X,E,X,W,X,W,X,Q]blinkingII = [A,G,D,G,A,G,D,G,A,H,F,H,A,G,D,G,M,G,S,G,A,G,D,G,M,G,S,G,A,G,D,G,A] for i in range(0,len(blinkingI)): dualsound(blinkingI[i],blinkingII[i],5,6,0.4)
這裏的設計覺得雖然比較粗暴,但是效果還是可以的。雖然可以用外接音響直接放聲音文件,但是蜂鳴器有效地降低了體積和成本,還可以隱藏到草皮下面,雙和弦也算是一個驚喜吧。(笑
tempb = os.system(‘mkdir /var/log/apache2‘) tempb= os.system(‘cd /var/log/apache2‘) tempb = os.system(‘touch /var/log/apache2/access.log‘) tempb = os.system(‘/etc/init.d/apache2 restart‘) def ReadFile(filepath): file = open(filepath) try: tempa = file.read() finally: file.close() return tempa
這裏是互聯網的解決方案,非常的簡單粗暴,python直接調用shell(後來證明是非常不好的習慣),暴力讀取日誌,簡直無力吐槽。覺得自己能活到現在真是一個奇跡。
現在的話應該使用flask,代碼風格應該是這樣的:
from flask import Flask import thread app = Flask(‘test‘) @app.route(‘/‘) def hmain(): printf("it works!") def service(): app.run() thread.start_new_thread(service,())
digital_write(0,HIGH) digital_write(0,LOW) digital_write(7,LOW) digital_write(10,LOW) digital_write(0,HIGH) digital_write(1,HIGH)
emmm,這是關閉所有電器.....應該使用一個enum枚舉對象,這樣更優雅(雖然記數字也可以實現
def facecomp(): # face recognization #print ‘start!‘ cmd = ‘curl -X POST "https://api-cn.faceplusplus.com/facepp/v3/compare" -F "api_key=jb0zKEEB2jiG2GMNt29Gej-GxNTPbeCM" -F "api_secret=5AHULy15PjagzVvnHLUa2ouVJpWCPHMZ" -F "face_token1=f216f8b56678831f6dc5720ae10f341f" -F "[email protected]"‘ #print ‘here is the datas!‘ result = os.popen( cmd ).read() print result #print result #print ‘here is the splited data:‘ splresult = result.split(‘,‘) confidenceraw = splresult[-1] confidencestr = confidenceraw[-7:-1] if check(confidencestr): confidence = string.atof(confidencestr) else: confidence = 0 print confidenceraw,confidencestr,confidence,‘.‘ if confidence >= 70: return True else: return False
這是人臉識別的代碼,調用了曠視科技的Face++人工智能平臺,實際上就是個HTTP Post請求。又是老套路,一切丟給shell處理。
如今應該使用urllib和requests做。甚至可以自己嘗試使用tensorflow訓練rcnns,調用opencv3.4新增的cv2.dnns特性進行計算。
def ScreenCali(str=None): timecur = time.strftime(ISOTIME,time.localtime()) mediumprint(‘HHHHHHHHHHHHHHHH‘) mediumprint(timecur) #temp = readTemp() & ‘ C‘ #mediumprint(temp) mediumprint(str)
最讓人吐槽的是這段了.....強行用console做了一個ui。
(記得當年為了做ui,還在linux上用wine跑了一個vb6..........不堪回首)
如今應該使用Qt Widgets或者Qt Quick+Qml寫個UI才是。
最後,還有安卓程序。
沒有了截圖,只記得是用app inventor寫的(逃
現在省機器人比賽項目的安卓客戶端是用java寫的。
總結起來,感覺今年還是有很大進步的。
- 粗略學習了Qt Widgets和它的槽機制等
- 在信息競賽中學習了基於C++的數據結構與算法
- C++/Python/C/Lua/bash/Qml/Lisp等各種語言都有了深淺不同的涉足,從此再也不敢說“我會C++”了
- 對linux有了遠比一年前深的認識,包括GNU套件(vim cmake make等)、文件系統、硬件等,但是內核方面仍然是空白
- Qt Quick在安卓的開發進行了粗略學習,並及時地認識到Qt on Android是巨坑,及時跳坑
- Java入門和android studio的開發
- 高等數學和機器學習理論的學習,雖然只是皮毛,但是比起初中已有更深的認識
- 學習了tensorflow和YOLO(You Only Look Once Object Detection)等物體識別框架,掌握了tensorflow的基本原理和結構,學會了自己制作pascal voc數據集
- 無線電方面的知識,包括各種無線信號的常用頻段、GPS原理、基站定位原理和GSM原理,嘗試了用摩托羅拉手機制作偽基站(雖然沒有成功)
- 計算機網絡相關知識,以及大學各類計算機相關必修書,正在學習
嗯,非常滿意。
再看“筧實智慧校園”——作品的復盤[1]