面向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条件调用   类Dog中的java构造函数Dog不能应用于给定类型   java jsch和运行“sudo su”   java将队列和堆栈相互复制   java如何在netbeans项目的文件夹中添加库   java While循环在我的代码中不存在   如何在XML中使用java方法的返回值   java是否可以在不写入文件的情况下将字符串/字节数组作为文件发布?   java为什么这些字符串不相等?   sockets客户机-服务器java编程,用户可选择   java如何在SpringMVC和hibernate中保存模型返回视图的列表   java如何修复组织。openqa。硒。WebDriverException:未知错误   Java,Ant错误:编码Cp1252的不可映射字符   JAVAlang.ClassCastException:[Ljava.lang.String;与java.lang.String不兼容   java如何使用JDK8(可选)为空字段创建自定义IntelliJ getter模板   java Tomcat6响应。sendRedirect()404错误