很荣幸的拿到了DFrobot的新产品PinPong Board这个东西。它是给想学习Python或者可以说是想用Python来控制Arduino的人设计的。不过可能我更喜欢的是可以用wifi或者局域网无线下载更新程序(这个更新并不是烧录进去更是想远程运行了一样如果编译器停止运行程序板子上的程序也会停止)。更多的内容可以看官方介绍贴所以我就不在这里说的太多。然后我们还是按照我之前各种快速入门教程的风格快速进行。先简单了解一下硬件组成然后进行第一个blink程序上传,最后我们实现无线上传程序。
步骤1 PinPong Board硬件介绍
简单来说你可以把它理解成一个普通的Arduino UNO加上了一些传感器和ESP8266的无线功能
步骤2 软件准备
其他教程可能让你安装Python3.7版本然后导入pinpong的库但是,这太麻烦了我建议你直接使用Mind+最新的版本是可以支持pinpong的库。对了目前M1的mac貌似驱动还有问题,推荐大家用win的电脑编写程序。
1、下载mind+;在这个地址https://mindplus.dfrobot.com.cn/PreviousVersions选择最新版本,注:MAC版本要在网盘里面下载哦~。下载完成后如何安装我就不说了吧。大家肯定会的,直接无脑点击下一步。
2、安装驱动;在实时模式下点击“连接设备”——“一键安装串口驱动“。
3、安装更新pinpong库;右上角选择Python模式,然后点击”库管理“——在”推荐库“列表中安装pinpong库——选择库列表更新pinpong库。
好了到此,软硬件准备完成现在让我们真正的第一个案例——bink!
步骤3 blink
我们玩软件基本上第一个程序都是“Hello,World”那么Arduino的第一个程序肯定就是blink了,不过PinPong Board没有并联的13号引脚LED所以我们变通一下。使用D5端口的蜂鸣器来进行blink,虽然是无源我们听不到哔哔哔的声音只能听到咔哒咔哒的响声不过还是可以用来区分的。并且我们也可以通过下面的终端看到返回的内容。
import time #时间模块
from pinpong.board import Board,Pin #从pinpong库导入Board和Pin函数
Board("uno").begin()#初始化,选择板型和端口号,不输入端口号则进行自动识别
buzzer = Pin(Pin.D5, Pin.OUT) #引脚初始化为电平输出
while True:
buzzer.value(1) #输出高电平
print("1") #终端打印信息
time.sleep(1) #等待1秒 保持状态
buzzer.value(0) #输出低电平
print("0") #终端打印信息
time.sleep(1) #等待1秒 保持状态
步骤4 无线更新程序
使用无线更新功能需要先使用有线上传一个设置程序。设定你的WiFi名称与密码后就可以直接上传。这时候你板子上WiFi旁边的小灯就会亮起。连接有问题红色;连接中蓝色;连接成功绿色。如果是显示是绿色说明的连接已经完成。这时候板子屏幕上和软件终端就会出现目前板子的ip地址,一定要记住。
import time
from pinpong.board import Board,Pin,WIFI
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
Board("PinPong Board").begin()#初始化,选择板型和端口号,不输入端口号则进行自动识别
oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数
obj = WIFI()
ssid = "你的WiFi名" #wifi名
password = "你的密码" #wifi密码
obj.set_ssid(ssid) #设置wifi名
obj.set_password(password) #设置wifi密码
obj.connect_wifi() #开始连接
print("Waiting for WIFI connection...")
time.sleep(5)
while True:
ip,port = obj.get_ip_port()
if ip != None:
print("ip: {} port: {}".format(ip, port))#打印ip地址和port
break
time.sleep(1)
ip = "ip:" + str(ip)
port = "port:"+str(port)
oled.text(ip,0,10) #指定位置显示文字
oled.text(port,0,30)
oled.show() #显示生效
连接WiFi成功以后就可以愉快的无线上传程序了。不过一定要有电源线哈哈。把一个普通的程序通过无线上传到板子上还是很简单的,只需要稍微修改一点点代码。只需要在所有开头加上这些内容即可。注意这里的ip和端口就是你上面显示出来的。
from pinpong.board import Board
ip = "192.168.31.128" #网络配置中OLEB屏上显示的ip
port = 8081 #网络配置中OLEB屏上显示的port
Board(ip, port)
比如我把之前的blink程序进行修改后是这样的。
# -*- coding: utf-8 -*-
#效果:通过无线局域网上传程序,控制D7引脚的外接LED灯一秒闪烁一次
#接线:使用windows电脑连接一块PinPong主板
import time
from pinpong.board import Board,Pin
ip = "192.168.31.128" #网络配置中OLEB屏上显示的ip
port = 8081 #网络配置中OLEB屏上显示的port
Board(ip, port)
led = Pin(Pin.D5, Pin.OUT) #引脚初始化为电平输出
while True:
led.value(1) #输出高电平
print("1") #终端打印信息
time.sleep(1) #等待1秒 保持状态
led.value(0) #输出低电平
print("0") #终端打印信息
time.sleep(1) #等待1秒 保持状态
如果正常连接你就会看到PinPong的logo和一些基本信息。然后程序就可以运行,当然也可以随时停止程序。到此为止最基本的操作应该已经学会了。之后开始我将带领大家开始真正的玩、学习板子上各个传感器和执行器。
CC BY-NS-SA
PS:第一次用这个编辑器。真的太难用了。能不能支持下markdown文件直接导入啊!还有保存敢不敢不跳出去啊!!!
chinaxueyuan2021.05.05
真的对编译器无语了。快疯了!希望能增加markdown文件导入功能
ASH腻2021.05.06
造物记暂时还不支持markdown,可以在DF创客社区用markdown写 https://mc.dfrobot.com.cn/