1. 程式人生 > >再看“筧實智慧校園”——作品的復盤[1]

再看“筧實智慧校園”——作品的復盤[1]

python2 特性 ++ 計算機相關 後來 讀取 lua 人臉識別 muse

這幾個月因為學業繁重,加上準備省機器人競賽的原因,沒能經常寫博客。

在學軍的這幾個禮拜,覺得自己還是學到了不少的。

如今,再看當年的筧實智慧校園工程(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]