Pioneer600 教程

产品介绍

Pionner600是一款Raspberry Pi A+ / B+ / 2 / 3代B的外围扩展板,带有丰富的板载资源,是你学习Raspberry Pi控制编程的好拍档。

产品特点

  • 【简易I/O设备】双LED、五向摇杆、蜂鸣器,Raspberry Pi入门常用(标准姿势)
  • 【USB TO UART】CP2102,支持串口终端控制Raspberry Pi(实用主义)
  • 【显示设备】0.96寸OLED,小屏亦显大精彩(开始玩花的)
  • 【RTC】DS3231,高精度,并带备用电池座(贴心)
  • 【AD/DA】PCF8591,8位精度,并带接线端子输入输出接口(友尽)
  • 【GPIO扩展】PCF8574,确保GPIO够用(妈妈不再担心)
  • 【红外接收】LFN0038K,支持遥控Raspberry Pi(单手控制)
  • 【压力传感器】BMP280,可检测气压与温度(压力山大)
  • 【WIRE接口】可接入1-WIRE器件,配有DS18B20(爽一下)
  • 【传感器接口】方便接入各类传感器(爽歪歪)

资源介绍

900px

树莓派使用

开启SPI接口

  • 打开树莓派终端,输入以下指令进入配置界面
  1. sudo raspi-config
  2. 选择Interfacing Options -> SPI -> Yes 开启SPI接口


然后重启树莓派:

  1. sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

打开I2C接口

在终端执行:

  1. sudo raspi-config
  2. 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动


然后重启树莓派:

  1. sudo reboot

开启Uart接口

打开树莓派终端,输入以下指令进入配置界面

  1. sudo raspi-config
  2. 选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口


然后重启树莓派:

  1. sudo reboot

安装库

  • python
  1. sudo apt-get updata
  2. sudo apt-get install ttf-wqy-zenhei
  3. sudo apt-get install python-pip
  4. sudo pip install RPi.GPIO
  5. sudo pip install spidev
  6. sudo apt-get install python-smbus
  7. sudo apt-get install python-serial
  8. sudo pip install rpi_ws281x

下载例程

在树莓派终端运行:

  1. sudo apt-get install p7zip
  2. wget http://www.waveshare.net/w/upload/a/ad/Pioneer600_code.7z
  3. 7zr x Pioneer600_code.7z -r -o./Pioneer600_code
  4. sudo chmod 777 -R Pioneer600_code
  5. cd Pioneer600_code/Raspberry\ Pi/

LED

  1. cd LED
  • bcm2835程序

进入Linux终端,在终端执行以下命令:

  1. cd bcm2835
  2. make
  3. sudo ./led

预期结果:可以看到LED1闪烁。按下Ctrl+C结束程序。

  • wiringPi程序

进入Linux终端,在终端执行以下命令:

  1. cd wiringPi
  2. make
  3. sudo ./led

预期结果:可以看到LED1闪烁。按下Ctrl+C结束程序。
呼吸灯:

  1. sudo ./pwm

预期结果:可以看到LED1亮度逐渐改变。
按下Ctrl+C结束程序。

  • sysfs程序

进入Linux终端,在终端执行以下命令:

  1. cd wiringPi
  2. make
  3. sudo ./led

预期结果:LED1闪烁10次后自动退出程序。按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python led.py

预期结果:可以看到LED1闪烁。按下Ctrl+C结束程序。
呼吸灯:

  1. sudo python pwm.py

预期结果:可以看到LED1亮度逐渐改变。按下Ctrl+C结束程序。

按键

对于树莓派4B而言,需要在/boot/config.txt中加入如下命令:gpio=20=pu,然后重启树莓派

  1. 在树莓派中断执行如下命令:
  1. cd KEY
  • bcm2835程序

进入Linux终端,在终端执行以下命令。

  1. cd bcm2835
  2. make
  3. sudo ./key

预期结果:
按下摇杆中间键,终端会输出以下信息。

  1. Key Test Program!!!!
  2. KEY PRESS
  3. KEY PRESS
  4. KEY PRESS

按下Ctrl+C结束程序。

  • wiringPi程序

进入Linux终端,在终端执行以下命令。

  1. cd wiringPi
  2. make
  3. sudo ./key

预期结果:
按下摇杆中间键,终端会输出以下信息。

  1. Key Test Program!!!
  2. KEY PRESS
  3. KEY PRESS
  4. KEY PRESS

按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python key.py

预期结果:
按下摇杆中间键,终端会输出以下信息。

  1. Key Test Program
  2. KEY PRESS
  3. KEY PRESS
  4. KEY PRESS

按下Ctrl+C结束程序。

PCF8574

  1. cd PCF8574
  • bcm2835程序

进入Linux终端,在终端执行以下命令。

  1. cd bcm2835
  2. make
  3. sudo ./led

预期结果:可以看到LED2闪烁。
按下Ctrl+C结束程序。
进入Linux终端,在终端执行以下命令。

  1. make
  2. sudo ./pcf8574

预期结果:按下方向按键时,LED2会点亮,蜂鸣器响,终端会输出以下信息。

  1. PCF8574 Test Program !!!
  2. up
  3. left
  4. down
  5. right

按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python led.py

预期结果:可以看到LED2闪烁。
按下Ctrl+C结束程序。
在终端输入以下命令执行程序:

  1. sudo python pcf8574.py

预期结果:按下方向按键时,LED2会点亮,蜂鸣器响,终端会输出以下信息。

  1. PCF8574 Test Program !!!
  2. up
  3. left
  4. down
  5. right

按下Ctrl+C结束程序。

  • fs程序

进入Linux终端,在终端执行以下命令。

  1. cd fs
  2. make
  3. sudo ./led

预期结果:可以看到LED2闪烁。
按下Ctrl+C结束程序。

  • wiringPi程序

进入Linux终端,在终端执行以下命令。

  1. cd wirngPi
  2. make
  3. udo ./led

预期结果:可以看到LED2闪烁。
按下Ctrl+C结束程序。
进入Linux终端,在终端执行以下命令。

  1. make
  2. sudo ./LED

预期结果:可以看到LED2闪烁。
按下Ctrl+C结束程序。

BMP280

  1. cd BMP280
  • bcm2835程序

进入Linux终端,在终端执行以下命令。B

  1. cd bcm2835
  2. make
  3. sudo ./BMP280

预期结果:终端会输出以下信息。

  1. BMP280 Test Program ...
  2. Temperature: 34.20 C
  3. Pressure: 1005.12 Pa
  4. Altitude: 67.66 m

按下Ctrl+C结束程序。

  • wiringPi程序

进入Linux终端,在终端执行以下命令。

  1. cd wingPi
  2. make
  3. sudo ./BMP280

预期结果:终端会输出以下信息。

  1. BMP280 Test Program ...
  2. Temperature: 34.20 C
  3. Pressure: 1005.12 Pa
  4. Altitude: 67.66 m

按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python BMP280_example.py

预期结果:终端会输出以下信息。

  1. Temperature: 34.20 C
  2. Pressure: 1005.12 Pa
  3. Altitude: 67.66 m

按下Ctrl+C结束程序。

DS3231

cd DS3231

  • bcm2835程序

进入Linux终端,在终端执行以下命令。

  1. cd bcm2835
  2. make
  3. sudo ./ds3231

预期结果:终端会输出以下信息。

  1. start..........
  2. 2015/08/12 18:00:00 Wed
  3. 2015/08/12 18:00:01 Wed
  4. 2015/08/12 18:00:02 Wed
  5. 2015/08/12 18:00:03 Wed

按下Ctrl+C结束程序。

  • wiringPi程序
  1. cd wiringPi
  2. make
  3. sudo ./ds3231

预期结果:终端会输出以下信息。

  1. start..........
  2. 2015/08/12 18:00:00 Wed
  3. 2015/08/12 18:00:01 Wed
  4. 2015/08/12 18:00:02 Wed
  5. 2015/08/12 18:00:03 Wed

按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python ds3231.py

预期结果:终端会输出以下信息。

  1. 2015/08/12 18:00:00 Wed
  2. 2015/08/12 18:00:01 Wed
  3. 2015/08/12 18:00:02 Wed
  4. 2015/08/12 18:00:03 Wed
  5. 2015/08/12 18:00:04 Wed

按下Ctrl+C结束程序。

DS18B20示例程序 - 温度传感器演示

DS18B20程序需在树莓派/boot/config.txt文件最后面添加dtoverlay=w1-gpio-pullup这一句,重启生效后才可使用,详细内容请看树莓派系列教程。

  1. cd DS18B20
  • sysfs程序

在终端输入以下命令执行程序:

  1. cd fs
  2. sudo ./ds18b20

预期结果:终端会输出以下信息。

  1. rom: 28-00000674869d
  2. temp : 30.437 °C
  3. temp : 30.375 °C

按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python ds18b20.py

预期结果:终端会输出以下信息。

  1. rom: 28-00000674869d
  2.  
  3. C=29.687 F=85.437
  4. C=29.687 F=85.437
  5. C=29.687 F=85.437

按下Ctrl+C结束程序。

IRM示例程序-红外感应程序

  • bcm2835程序

进入Linux终端,在终端执行以下命令。

  1. cd bcm2835
  2. make
  3. sudo ./irm

预期结果:按下红外遥控器按键,终端会输出信息接收到按键的键值。

  1. irm test start:
  2. Get the key: 0x0c
  3. Get the key: 0x18
  4. Get the key: 0x5e

按下Ctrl+C结束程序。

  • wiringPi程序

进入Linux终端,在终端执行以下命令。

  1. cd wiringPi
  2. make
  3. sudo ./irm

预期结果:按下红外遥控器按键,终端会输出信息接收到按键的键值。

  1. irm test start:
  2. Get the key: 0x0c
  3. Get the key: 0x18
  4. Get the key: 0x5e

按下Ctrl+C结束程序。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python irm.py

预期结果:按下红外遥控器按键,终端会输出信息接收到按键的键值。

  1. IRM Test Start ...
  2. Get the key: 0x0c
  3. Get the key: 0x18
  4. Get the key: 0x5e

按下Ctrl+C结束程序。

UART示例程序 - 发送串口接收到的数据

注意:树莓派的串口默认为终端调试,如要启用这个示例程序,那么您将无法通过串口调试树莓派。如果您之前是使用串口调试树莓派的话,使用这个示例程序之前应该使用其他方式调试树莓派,例如直接插入HDMI显示器或者使用SSH方式。

  1. cd UART
  • wiringPi程序

进入Linux终端,在终端执行以下命令。

  1. cd wiringPi
  2. make
  3. sudo ./UART

预期结果:把扩展板的USB TO UART连接到电脑,设置电脑的串口软件(可使用PuTTY等软件监视串口),选择正确的串口号,波特率设置为115200。电脑通过串口向树莓派发送数据,树莓派在接收到这些数据之后,会把数据通过串口传送回电脑。因此,从电脑端向树莓派发送的数据会回显在电脑端的串口监视软件中。

  • python程序

在终端输入以下命令执行程序:

  1. cd python
  2. sudo python uart.py

预期结果:同上。

OLED示例程序

运行bcm的OLED程序后再运行wiringpi或者python的OLED程序,此时OLED会不能显示。只要重启系统之后再次执行示例程序,OLED就可以显示了。该问题可能和函数库有关,树莓派的bcm库比wiringpi库和python库“更加底层”。我们暂时没有一个好的解决办法。如果您有一个合适的解决方案,欢迎联系我们。联系方式见www.waveshare.net或者www.waveshare.com

  • bcm2835程序

进入Linux终端,在终端执行以下命令。

  1. cd bcm2835
  2. make
  3. sudo ./main

预期结果:OLED会显示微雪电子的LOGO两秒。然后显示当前系统时间。
按下Ctrl+C结束程序。

  • wiringPi程序

进入Linux终端,在终端执行以下命令。

  1. cd wiringPi
  2. make
  3. sudo ./main

预期结果:OLED会显示微雪电子的LOGO两秒。然后显示当前系统时间。
按下Ctrl+C结束程序。

  • python程序

使用python程序控制OLED需另外安装python-imaging库。把树莓派连接到网络,执行下面语句安装python-imaging库:

  1. sudo apt-get install python-pil

预期结果:在终端输入以下不同命令执行程序会显示不同的内容。

  1. cd python
  2. sudo python oled.py
  3. sudo python dispchar.py
  4. sudo python image.py
  5. sudo python animate.py
  6. sudo python waveshare.py

更加详细教程请看树莓派系列教程。

Pioneer600连接传感器套件(需另外选购)

Pioneer600提供了4个外部传感器接口,因此您除了使用板载的传感器之外,还可以为它附加其他的传感器功能。
在使用外部传感器之前,您需要:
1) 把传感器套件连接到扩展板,同时扩展板需要插入到树莓派才能使用。
2) 提供AD/DA功能的PCF8591芯片使用了I2C接口,因此请确保安装好函数库并且启动了I2C内核驱动。
3) 您还需要下载产品的示例程序。这些示例程序都需要解压并放在/home/pi目录下(您可以通过U盘把它们复制到树莓派中)。

Color Sensor示例程序 - 颜色传感器演示

按照下表连接传感器和Pioneer600的管脚:

Color Sensor接口Pioneer600管脚
LED3.3V
OUTP0
S3D3( P26)
S2D2(P23)
D1(P22)
S0D0(P21)
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Color_Sensor
  2. sudo ./Color_Sensor

预期结果:程序会对芯片的白平衡进行调整,时间大概为2s,调整结束以后即可把三原色的频率经过终端输出,对照RGB颜色对照表,即可知道所测得颜色。
按下Ctrl+C结束程序。

Flame Sensor示例程序 - 火焰传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/General_Sensor
  2. sudo ./General_Sensor

预期结果:传感器靠近火焰时,模块上的信号指示灯点亮。传感器远离火焰时,模块上的信号指示灯熄灭。随着传感器与火焰距离的改变,终端输出的数据也会发生改变。
按下Ctrl+C结束程序。
注意:该传感器主要用于感知火焰,但其自身并不防火。因此使用时请与火焰保持一定距离,以免烧坏传感器。

Hall Sensor示例程序 - 霍尔传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Hall_Sensor
  2. sudo ./Hall_Sensor

预期结果:传感器靠近磁铁时,模块上的信号指示灯点亮。传感器远离磁铁时,模块上的信号指示灯熄灭。随着传感器与磁铁接触与分离,终端输出的数据会发生相应改变。
按下Ctrl+C结束程序。

Infrared Reflective Sensor示例程序 - 一体式红外发送接收管演示

Sensor接口Pioneer600管脚
DOUTD3
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Infrared_Reflective_Sensor
  2. sudo ./General_Sensor

预期结果:传感器靠近障碍物时,模块上的信号指示灯点亮。传感器远离障碍物时,模块上的信号指示灯熄灭。随着传感器与障碍物距离的变化,终端输出的数据也会发生改变。
按下Ctrl+C结束程序。

Laser Sensor示例程序 - 激光传感器演示

Sensor接口Pioneer600管脚
DOUTD3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Laser_Sensor
  2. sudo ./General_Sensor

预期结果:把障碍物置于激光传感器上方,此时模块上的信号指示灯会被点亮,把障碍物远离激光传感器上方,此时模块上的信号指示灯熄灭。由此可知激光传感器是否探测到障碍物。
按下Ctrl+C结束程序。

Moisture Sensor示例程序 - 土壤湿度传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Moisture_Sensor
  2. sudo ./General_Sensor

预期结果:把传感器插入土壤中,然后逐渐往土壤中加水,终端输出数据变化。
按下Ctrl+C结束程序。

Rotation Sensor示例程序 - 旋转编码器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
SIAD0
SIBD1
SWD2
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Rotation_Sensor
  2. sudo ./Rotation_Sensor

预期结果:分别顺时针旋转,逆时针旋转和按下编码器,端口分别输出数据。

  1. Turn right!
  2. Turn left!
  3. Turn down!

按下Ctrl+C结束程序。

Sound Sensor示例程序 - 声音探测器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Sound_Sensor
  2. sudo ./Sound_Sensor

预期结果:当模块的咪头靠近发声源时,模块上的信号指示灯点亮。当模块的咪头远离发声源时,模块上的信号指示灯熄灭。随着传感器与发声源距离的变化,终端输出数据有相应的变化。
按下Ctrl+C结束程序。

Temperature-Humidity Sensor示例程序 - 温湿度传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Temperature-Humidity_Sensorr
  2. sudo ./DHT11

预期结果:终端输出温度和湿度。

  1. Humidity=33
  2. Temperature=28

按下Ctrl+C结束程序。

MQ-5 Gas Sensor示例程序 - MQ-5气体传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Temperature-Humidity_Sensorr
  2. sudo ./DHT11

预期结果:首先让传感器先预热一分钟。把传感器放入含有敏感气体(该气体传感器对液化气,天然气和煤气敏感)的装置中,模块上的信号指示灯点亮。把传感器从敏感气体装置中取出,模块上的信号指示灯熄灭。由此可判断敏感气体的浓度是否超标。
按下Ctrl+C结束程序。

Tilt Sensor示例程序 - 倾斜传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
DOUTD3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/Tilt_Sensorr
  2. sudo ./General_Sensor

预期结果:晃动模块或使模块倾斜时,模块上的信号指示灯点亮。模块平行放置时,模块上的信号指示灯熄灭。由此可判断模块的状态是否发生晃动或倾斜。
按下Ctrl+C结束程序。

UV Sensor示例程序 - 紫外线传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/UV_Sensorr
  2. sudo ./General_Sensor

预期结果:让传感器靠近阳光,终端输出的数据会发生改变。
按下Ctrl+C结束程序。

Liquid Level Sensor示例程序 - 液位传感器演示

按照下表连接传感器和Pioneer600的管脚:

Sensor接口Pioneer600管脚
AOUTA3
GNDGND
VCC3.3V

终端执行:

  1. cd Sensor/ Liquid_Level_Sensorr
  2. sudo ./General_Sensor

预期结果:把传感器插入一定深度的水中,终端输出的数据会发生改变。
按下Ctrl+C结束程序。