再看“笕实智慧校园”——作品的复盘[1]

Posted pityhero的小站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再看“笕实智慧校园”——作品的复盘[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 "image_file2=@photo.jpg"\'
    #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]的主要内容,如果未能解决你的问题,请参考以下文章

《爬虫100例专栏》复盘更新,再捋一遍这100篇文章,更新1,2,3,4 篇(收藏再看)

数学建模 复盘 --- 人力资源安排的最优化模型

回头再看一遍Tomcat架构,我能装逼了

我心中的前三佳作品

2019年6月份计划复盘

AI视觉智能送药小车——1.复盘及核心代码