面向python的obniz sdk

obniz的Python项目详细描述


py:python的sdk

image

obnizpython的sdk。

从python控制obniz。

这个sdk与obniz api一起工作。

兼容python 3.6+

用法

importasynciofromobnizimportObnizasyncdefonconnect(obniz):obniz.io0.drive("5v")obniz.io0.output(True)obniz.io1.pull("3v")obniz.io1.drive("open-drain")obniz.io1.output(False)obniz.io2.drive("3v")obniz.io2.output(True)defcallback(voltage):print("change to {} v".format(voltage))obniz.ad3.start(callback)pwm=obniz.get_free_pwm()pwm.start({"io":4})pwm.freq(1000)pwm.duty(50)uart=obniz.getFreeUart()uart.start({"tx":5,"rx":6,"baud":9600})defonreceive(data,text):print(data)uart.onreceive=onreceiveuart.send("Hello")obniz=Obniz('0000-0000')obniz.onconnect=onconnectasyncio.get_event_loop().run_forever()

安装

通过PIP安装obniz

  pip install obniz

并将其导入到python文件中。

fromobnizimportObniz

连接

有关doc/connection

的详细信息

要使用obniz,请使用obniz id.实例化obniz,并设置onconnect回调函数。成功连接到obniz时将调用它。

importasyncioasyncdefonconnect(obniz):passobniz=Obniz('0000-0000')obniz.onconnect=onconnectasyncio.get_event_loop().run_forever()

连接后,您可以使用obniz上的所有内容。

asyncdefonconnect(obniz):obniz.io0.drive("5v")obniz.io0.output(True)obniz.io1.pull("3v")obniz.io1.drive("open-drain")obniz.io1.output(False)obniz.io2.drive("3v")obniz.io2.output(True)defcallback(voltage):print("change to {} v".format(voltage))obniz.ad3.start(callback)pwm=obniz.get_free_pwm()pwm.start({"io":4})pwm.freq(1000)pwm.duty(50)uart=obniz.getFreeUart()uart.start({"tx":5,"rx":6,"baud":9600})defonreceive(data,text):print(data)uart.onreceive=onreceiveuart.send("Hello")

示例

易于集成像tensorflow这样的python库。 (需要安装tensorflowopencv-python

importasynciofromobnizimportObnizimportcv2importnumpyasnpimporttensorflowastffromtensorflowimportkerasclass_names=['T-shirt/top','Trouser','Pullover','Dress','Coat','Sandal','Shirt','Sneaker','Bag','Ankle boot']fashion_mnist=keras.datasets.fashion_mnist(train_images,train_labels),(test_images,test_labels)=fashion_mnist.load_data()train_images=train_images/255.0test_images=test_images/255.0model=keras.Sequential([keras.layers.Flatten(input_shape=(28,28)),keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax)])model.compile(optimizer=tf.train.AdamOptimizer(),loss='sparse_categorical_crossentropy',metrics=['accuracy'])model.fit(train_images,train_labels,epochs=5)test_loss,test_acc=model.evaluate(test_images,test_labels)print('Test accuracy:',test_acc)defset_angle(pwm,angle):max=2.4min=0.5val=((max-min)*angle)/180.0+minpwm.pulse(val)asyncdefonconnect(obniz):obniz.io0.output(False)obniz.io1.output(True)pwm=obniz.get_free_pwm()pwm.start({"io":2})pwm.freq(50)cap=cv2.VideoCapture(0)prev=NonewhileTrue:ret,frame=cap.read()frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)ret,frame=cv2.threshold(frame,127,255,cv2.THRESH_BINARY_INV)height,width=frame.shapex=heightifheight<widthelsewidthy=heightifheight<widthelsewidthsquare=np.zeros((x,y),np.uint8)x1=int((width-x)/2)x2=int(width-(width-x)/2)y1=int((height-y)/2)y2=int(height-(height-y)/2)square=frame[y1:y2,x1:x2]cv2.imshow("frame",square)img=cv2.resize(square,(28,28),interpolation=cv2.INTER_AREA)img=(np.expand_dims(img/255.0,0))predictions_single=model.predict(img)answer=np.argmax(predictions_single[0])ifprev!=answer:print("answer: {}".format(class_names[answer]))set_angle(pwm,answer/9*180)prev=answerifcv2.waitKey(1)&0xFF==ord('q'):asyncio.get_event_loop().stop()breakawaitasyncio.sleep(0.1)cap.release()cv2.destroyAllWindows()obniz=Obniz('0000-0000')obniz.debugprint=Trueobniz.onconnect=onconnectasyncio.get_event_loop().run_forever()

文档

您可以在the website上找到文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为引用变量指定默认值   java在2D数组中旋转innersquare   java将hashmap键值与int进行比较   java程序中的并发监视器陷入死锁   安卓 java。lang.NoClassDefFoundError:java。awt。光标   java有没有更好的方法来引用包含对象的对象?   如何在Java编程中循环代码块   java如何在Junit5中使用Serenity?   java使用ANTLR识别JavaScript文件中的全局变量声明   EJB查询对象生成的java视图SQL?   java查找股票报价的范围   java错误:(453,69)不允许使用字符串类型(在值为“”的“活动\u水平\u边距”处)   java安装的环境变量   amazon web服务在使用awssdkjava上载到S3存储桶时发生直接错误   java在Android的ArrayList中添加相等的值   尝试打开MyEclipse Enterprise Workbench时出现ide“无法创建java虚拟机”错误   java如何使用单元格指定的行和列更改jTable的单元格颜色?   java如何等待文件从系统目录复制到具有根访问权限的外部存储