-
Install WiringPI library:
git clone git://git.drogon.net/wiringPi cd wiringPi ./build
-
checkout mruby
git clone https://github.com/mruby/mruby.git # original mruby
# or
git clone https://github.com/iij/mruby.git # iij extended mruby (File, IO, Socket, ... extend)
- edit
build_config.rb
MRuby::Build.new do |conf|
# ... (snip) ...
conf.gem :github => 'akiray03/mruby-WiringPi' # add this line
conf.gem :github => 'matsumoto-r/mruby-sleep' # add this line
end
- build
ruby ./minirake
- exec
sudo ./bin/mruby build/mrbgems/mruby-WiringPi/sample/sample.rb
wiringPi | GPIO (Pin#) | Name |
---|---|---|
0 | 17 | GPIO 0 |
1 | 18 | GPIO 1 |
2 | 27 | GPIO 2 |
3 | 22 | GPIO 3 |
4 | 23 | GPIO 4 |
5 | 24 | GPIO 5 |
6 | 25 | GPIO 6 |
7 | 4 | GPIO 7 |
8 | 2 | SDA |
9 | 3 | SCL |
10 | 8 | CE0 |
11 | 7 | CE1 |
12 | 10 | MOSI |
13 | 9 | MISO |
14 | 11 | SCLK |
15 | 14 | TxD |
16 | 15 | RxD |
17 | 28 | GPIO 8 |
18 | 29 | GPIO 9 |
19 | 30 | GPIO10 |
20 | 31 | GPIO11 |
io = WiringPi::GPIO.new
pin = 0
io.mode(pin, WiringPi::OUTPUT)
5.times do
puts "pin:#{pin} set high"
io.write(pin, WiringPi::HIGH)
sleep 1
puts "pin:#{pin} set low"
io.write(pin, WiringPi::LOW)
sleep 1
end
io.read(pin)
- WiringPi::Serial is not tested...
- LCD control sample code for SC1602 http://akizukidenshi.com/catalog/g/gP-00038/
wiringPi | GPIO (Pin#) | Name | LCD Port |
---|---|---|---|
0 | 17 | GPIO 0 | DB0 |
1 | 18 | GPIO 1 | DB1 |
2 | 27 | GPIO 2 | DB2 |
3 | 22 | GPIO 3 | DB3 |
4 | 23 | GPIO 4 | DB4 |
5 | 24 | GPIO 5 | DB5 |
6 | 25 | GPIO 6 | DB6 |
7 | 4 | GPIO 7 | DB7 |
12 | 10 | MOSI | Enable |
13 | 9 | MISO | Register Select |
- The Read/Write pin must be connected to 0V/Ground.
lcd = LCD.new rows: 18, cols: 2, bits: 8, rs: 13, strb: 12, dpin: [0,1,2,3,4,5,6,7]
lcd.lcd_pos 0, 0
lcd.lcd_puts "Hello, mruby"
lcd.lcd_pos 0, 1
lcd.lcd_puts "Hi, Raspberry Pi"
- cross build support
This software is licensed under the same license terms of WiringPI.