Pi Piper 开源项目教程
1. 项目的目录结构及介绍
Pi Piper 项目的目录结构如下:
pi_piper/
├── examples/
├── lib/
│ └── pi_piper/
├── spec/
├── .gitignore
├── .rspec
├── .travis.yml
├── Gemfile
├── Gemfile.lock
├── LICENCE.md
├── README.md
├── Rakefile
├── pi_piper.gemspec
└── roadmap.rb.md
目录介绍
examples/
: 包含一些示例项目,展示了如何使用 Pi Piper 进行 GPIO 编程。lib/
: 包含 Pi Piper 的核心库文件。spec/
: 包含项目的测试文件。.gitignore
: Git 忽略文件配置。.rspec
: RSpec 配置文件。.travis.yml
: Travis CI 配置文件。Gemfile
: 项目依赖的 Gem 文件。Gemfile.lock
: Gem 文件的锁定版本。LICENCE.md
: 项目的许可证文件。README.md
: 项目的主文档,包含项目介绍、安装和使用说明。Rakefile
: Rake 任务配置文件。pi_piper.gemspec
: Gem 的规范文件。roadmap.rb.md
: 项目的发展路线图。
2. 项目的启动文件介绍
Pi Piper 的启动文件主要是 lib/pi_piper.rb
,这个文件是项目的入口点,负责加载和初始化 Pi Piper 的核心功能。
# lib/pi_piper.rb
require 'pi_piper/version'
require 'pi_piper/pin'
require 'pi_piper/spi'
require 'pi_piper/i2c'
require 'pi_piper/bcm2835'
require 'pi_piper/platform'
require 'pi_piper/event_manager'
require 'pi_piper/watchable'
require 'pi_piper/value_object'
require 'pi_piper/server'
启动文件介绍
pi_piper/version
: 包含 Pi Piper 的版本信息。pi_piper/pin
: 定义了 GPIO 引脚的操作类。pi_piper/spi
: 定义了 SPI 接口的操作类。pi_piper/i2c
: 定义了 I2C 接口的操作类。pi_piper/bcm2835
: 使用 BCM2835 库进行底层硬件操作。pi_piper/platform
: 平台相关的配置和初始化。pi_piper/event_manager
: 事件管理器,用于处理 GPIO 事件。pi_piper/watchable
: 可观察对象的定义。pi_piper/value_object
: 值对象的定义。pi_piper/server
: 服务器相关的功能(如果有的话)。
3. 项目的配置文件介绍
Pi Piper 的配置文件主要是 Gemfile
和 pi_piper.gemspec
。
Gemfile
Gemfile
定义了项目依赖的 Gem 包:
source 'https://rubygems.org'
gem 'eventmachine', '= 1.0.9'
gem 'ffi', '>= 0'
group :development do
gem 'mocha', '>= 0'
gem 'rspec', '~> 3.0'
gem 'simplecov', '>= 0'
end
pi_piper.gemspec
pi_piper.gemspec
定义了 Gem 的详细信息和依赖关系:
Gem::Specification.new do |s|
s.name = 'pi_piper'
s.version = '2.0.0'
s.summary = 'Event driven Raspberry Pi GPIO library'
s.description = 'Pi Piper brings event driven programming to the Raspberry Pi\'s GPIO pins'
s.authors = ['Jason Whitehorn']
s.email = 'jason.whitehorn@gmail.com'
s.homepage = 'https://github.com/jwhitehorn/pi_piper'