LeScratch用户手册

From BananaPro/Pi
Jump to: navigation, search
This page is a translated version of the page LeScratch User Guide and the translation is 95% complete.

Other languages:
English • ‎中文(简体)‎

介绍

Scratch@MIT教育软件:Scratch 1.4设计的初衷是教育和学习。它可以与LeScratch一起运行,LeScratch是一个运行在Banana Pro上让Scratch与硬件通信的Scratch消息处理器。达到教育的目的,使任何年龄阶段的人可以用LeScratch学习微处理器和传感器知识。它实现了使用Python扩展外设中发送和接收命令的功能。 下载链接: https://github.com/LeMaker/LeScratch/


准备

这个手册中,我们使用Raspbian For BananaPro v1412”系统镜像和“Ubuntu Mate For Guitar”系统镜像作为操作系统。下载Banana Pro系统镜像 [1]和LeMaker系统镜像 Guitar[2]。在home目录下创建项目目录。

$ cd ~
$ mkdir my_LeScratch

LeScratch需要预安装一些软件包:python-dev、python-setuptools、i2c-tools和python-smbus:

$ sudo apt-get install python-dev
$ sudo apt-get install python-setuptools python-smbus i2c-tools

因为默认安装了I2C驱动,因此仅仅需要安装SPI驱动,打开命令终端,安装SPI驱动。

$ cd ~/my_LeScratch
$ git clone https://github.com/doceme/py-spidev
$ cd py-spidev
$ sudo python setup.py install

请安装最新的LMK.GPIO版本,在安装最新版本前,清卸载以前安装的版本。

$ cd /usr/local/lib/python2.7/dist-packages
$ ls
$ sudo rm –r f LMK
$ sudo rm LMK.*

然后,输入下面命令安装LMK.GPIO库:

$ cd ~/my_LeScratch
$ git clone https://github.com/LeMaker/LMK.GPIO
$ cd LMK.GPIO
$ python setup.py install
$ sudo python setup.py install

LeScratch使用wiringLMK库与传感器通信。如果你没有wiringLMK安装包,使用下面命令安装wiringLMK:

$ cd ~/my_LeScratch
$ git clone https://github.com/LeMaker/WiringLMK.git
$ cd WiringLMK
$ chmod +x ./build
$ sudo ./build

系统设置

扩展板可以用同多种接口与SBC通信,LeMaker Guitar默认开启SPI和I2C接口。 最新的Banana Pro系统发行版中默认开启了I2C接口,但是SPI接口需要手动开启。

$ sudo modprobe spi-sun7i

上面的命令可以暂时开启SPI模块。如果你想要开机启动这些驱动程序。请在/etc/modprobe.d/bpi-blacklist.conf中删除blacklist spi-sun7i

$ sudo nano /etc/modprobe.d/bpi-blacklist.conf

然后,添加 spi-sun7ispidev/etc/modules

$ sudo nano /etc/modules

Scratch Mesh setup

To modify Scratch Mesh and save it permanently, you need to run scratch with sudo permission. Please refer to http://wiki.scratch.mit.edu/wiki/Mesh (1.3 Mesh by Modification of Scratch) for detailed steps. (Note, you may find that step7: you need to middle-click on the System Browser and select accept)

$ sudo scratch

Reboot after setting up the above instructions.

运行LeScratch

运行LeScratch程序前,建议先启动 Scratch 1.4 (以Mesh模式保存)

$ cd ~/my_LeScratch
$ git clone https://github.com/LeMaker/LeScratch
$ cd LeScratch
$ sudo python LeScratch.py

Scratch命令例子

例子1:LED扩展板

说明

通用输入输出IO(GPIO)是集成电路的通用管脚,用户可以在系统运行的情况下控制它们的状态,例如它是输入还是输出管脚。GPIO管脚没有特用途的定义。RPi.BCM的编号[4, 5, 6, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]通常是可用的。LED板有40个LED和5个开关,它们可以用于指示Banana Pro和LeMaker Guitar Base Board Rev.B上40pin引脚的状态。 首先,需要声明哪一个GPIO将要被使用:
broadcast g[num]in and g[num]out, “in”表示输入;“out”表示输出
broadcast g[num]on, g[num]off, “on”表示设置输出为1/high;“off”表示设置为 0/low。

命令 g[num]in g[num]out g[num]on g[num]off
功能 定义引脚输入 定义引脚输出 设置引脚1/high 设置引脚0/low

GPIO命令

Scratch GPIO 1.png Scratch GPIO 2.png Scratch GPIO 3.png

例子2:LN USB Hub扩展板

说明

The USB Hub扩展板有4个USB Hub和2个23017 32GPIO来与SBC通信,以便Scratch能够控制扩展的功能模块。使用下面的格式,指定I2C的地址:

A端口:"i2"+ "address 0x(20-27)" + "a" +"bit (0 to 7)"
B端口:"i2"+ "address 0x(20-27)" + "b" +"bit (0 to 7)"
A端口:"bit"+ "address 0x(20-27)" + "a" +"bit (7 to 0)"
B端口:"bit"+ "address 0x(20-27)" + "b" +"bit (7 to 0)"

详细内容,你可以参考下面的例子:
i221a1 => i2c address 0x21 Port A bit 1 ON
i222b4 => i2c address 0x22 Port B bit 4 ON
bit22b01010101 => address 0x22 port B from bit 7 to 0, output => 0b01010101
bit21a01010101 => address 0x21 port A from bit 7 to 0, output => 0b01010101
bit21aon => address 0x21 Port A all ON, 0b11111111
bit21boff => address 0x21 Port B all OFF/clear, 0b00000000
bit22aoff => address 0x22 Port A all OFF/clear

I2C命令

Scratch I2C 2.png Scratch I2C 1.png Scratch I2C 3.png Scratch I2C 4.png

例子3: LN Digital扩展板

说明

LN Digital有一个16位mcp23s17,它可以通用SPI与SBC通信。Mcp23s17有8 不同的地址,允许一次性扩展8个板子。LN Digital已经配置A口或B口为8位或16位。的,没有个口可以配置为输入或输出。默认配置A口输出 (1 to 8),B口输入(1 to 8)。 使用下面命令指定SPI:
端口A "sp"+ "address (0-7)" + "a" +"bit (0 to 7)"
端口B "sp"+ "address (0-7)" + "b" +"bit (0 to 7)"
端口A "bits"+ "address (0-7)" + "a" +"bit (7 to 0)"
端口B "bits"+ "address (0-7)" + "b" +"bit (7 to 0)"

例如:(address 0-7 = 0x40-4E):
sp0a1 => spi address 0x40 Port A bit 1 ON
sp1b4 => spi address 0x42 Port B bit 4 ON
bits2b01010101 => address 0x44 port B from bit 7 to 0, output => 01010101
bits3a01010101 => address 0x46 port A from bit 7 to 0, output => 01010101
bits4aon => address 0x48 Port A all ON, 0b11111111
bits5boff => address 0x4A Port B all OFF/clear, 0b00000000
bits6aoff => address 0x4B Port A all OFF/clear

SPI命令

Scratch SPI 1.png Scratch SPI 2.png Scratch SPI 4.png Scratch SPI 3.png Scratch SPI A.png Scratch SPI B.png

例子4:LN IO扩展板

说明

IN IO 扩展板有一个GPIO_CON (GPIO0~7),8个LEDs,分贝对应GPIO0~7,4个开关,一个LCD插座( LCD1602和LCD12864),两组SPI和UART接口,一组I2C接口。这里使用PCF8591和LCD1602作为LN IO扩展板的示例。PCF8591是一款单芯片,单电源低功耗8位CMOS数据采集设备,它有四个模拟输入和一个模拟输出接口。

AD/DA命令

Scratch AD DA 1.png Scratch AD DA 2.png

LCD命令

Scratch LCD.png


另请参阅

操控SBC上的IO接口


附录:LeScratch用户手册

请查看LeScratc用户手册,了解更多的LeScratch知识,./doc/./examples/文档对于新手学习LeScratch非常有用。 https://github.com/LeMaker/LeScratch