SlideShare a Scribd company logo
Raspberry Piに
何かつないで遊ぼう
2013年7月13日オープンハードセミナー(仮称)2013 3Q
Yasuhiro ISHII
イチから始めるRaspberry Pi
13年7月13日土曜日
自己紹介
•石井 康寛
•組み込み業界でソフト開発してます
•出身 : 三重県度会郡度会町
•趣味 : 電子工作、旅行、などなど
•Twitter : yishii
•Facebook :
•http://facebook.com/ishiiyasu
•ブログ : 日曜エレクトロニクス(日エレ)
•http://projectc3.seesaa.net/
13年7月13日土曜日
Raspberry Pi(RPi)とは?
ARM11 700MHz(Max1GHz)
メモリ 512Mバイト
HDMI、オーディオ、
ビデオ出力(コンポジット)、
LAN、USB(2ports)、
SDカードスロットを搭載したマイコンボード
2012年2月29日発売
US$35(日本のショップで4∼5000円?)と安価
英国生まれの安価な組み込みLinuxマイコンボード
13年7月13日土曜日
Raspberry PiのOS
・OSが用意されています。主に、Linuxベースや
BSD等。
・Linuxは複数ディストリビューション用意されてい
る。(Debianベース、ArchLinux、Fedoraベース等)
・オススメ(かつ一般的)は、Raspbian "wheezy"
http://www.raspberrypi.org/downloads
13年7月13日土曜日
Raspbian "wheezy"
• 公式オススメ
• Debianのカスタマイズ版
• デスクトップ環境はLXDE(マイコンボードというより、殆どパソコン
感覚)
• 開発ツールも搭載(クロス環境はもちろん、RPi自身でも
ビルド可能(=セルフビルド))
• (当然)パッケージマネージャapt-get等入っているので、簡単にモジ
ュール追加出来る。ex) $ sudo apt-get install ruby
• POSIX環境用のオープンソースのコードを利用したプロジェクトの作
13年7月13日土曜日
RPi用ソフト開発環境の例
コード作成
ビルド
ダウンロード
実行
HDMIでテレビと接続
USBでキーボードと接続
コード作成
ビルド
実行
クロス開発 セルフ開発
13年7月13日土曜日
RPiことはじめ
13年7月13日土曜日
準備
•テレビやPCモニター
•コンポジットビデオ入力または
HDMI、DVI-D(I)を搭載したもの
•USBキーボード・マウス
•2GB以上のSDカード
•USB電源
13年7月13日土曜日
起動用SDカードの作成
Raspbian "wheezy"を使って起動する
1. 公式サイトよりイメージファイルをダウンロード
http://www.raspberrypi.org/downloads
zipを展開すると、イメージファイルが出てくる
13年7月13日土曜日
2. イメージファイルをSDカード(>2GB)に書き込む
Linux・MacOSX
Windows
$ sudo dd if=XXXX.img of=デバイス名 bs=1m
起動用SDカードの作成
Win32 Disk Imagerを使う
13年7月13日土曜日
簡単な方法-NOOBS
1.SDカードをFATでフォーマット
2.NOOBSのzipファイルを展開して4GB以上の
SDカードにコピー
3.RPiに挿入し電源ON
13年7月13日土曜日
簡単な方法-NOOBS
使いたいOSをクリック
13年7月13日土曜日
簡単な方法-NOOBS
13年7月13日土曜日
簡単な方法-NOOBS
13年7月13日土曜日
ボードの立ち上げ方
2. 起動後、初期設定する
HDMIまたはCVBSで
テレビと接続
Raspberry Piの電源が入っていないことを
確認し、SDカードを挿入する。
次にMicroUSB端子(電源給電用端子)
に電源を接続する
13年7月13日土曜日
ログイン
Debian GNU/Linux 7.0 raspberrypi tty1
raspberrypi login :
と出たら、
ユーザー名 : pi
パスワード : raspberry
でログイン出来ます
13年7月13日土曜日
RPiと外部機器を繋ぐ
•USBポートがついていて、手軽に接続
可能
•ピンヘッダに各種組み込み機器で使わ
れる一般的なインターフェース搭載
お手軽な方法は、以下の2つがあります
13年7月13日土曜日
USBでの機器接続
・USB-WiFiアダプタでネット接続
・USB-BTアダプタでBT機器接続
・USB WebCamでライブ配信
・USB 3Gドングルで3G通信
・USB センサー機器でセンシング
等、既製or自作USB機器との接続
はサクッと出来ちゃいます。
13年7月13日土曜日
ピンヘッダでの接続
ピンヘッダとは?
13年7月13日土曜日
RPiのピンヘッダ
R2.0のみ
13年7月13日土曜日
ピンヘッダ詳細(R2.0)
I2C-1
I2C-0
SPI
UART
GPIO_GENxはGPIO。
赤枠部もGPIOとして使
用可。
PWM
I2S
13年7月13日土曜日
GPIO
•GPIO = General Purpose Input/
Output(汎用入出力)
•LEDの点灯をしたり、スイッチの入力
を読み取ったり出来る
13年7月13日土曜日
UART• Universal Asynchronous Receiver Transmitter
• 通常1対1で使用
• RS-232C通信出来る。以下は使用例
• USBシリアル変換チップ経由でPCからコンソール操作
• Arduinoと接続して連携
• UART接続タイプのGPSモジュールを接続
• シリアルサーボを接続
13年7月13日土曜日
SPI
• Serial Peripheral Interface
• MISO、MOSI、SCLK、SS(その他の名称の場合もあり)の4本で接続
• 1対多で通信可能(通信相手数分、SS信号が必要)
RPi
有機EL
EEPROM
NFCデバイス
接続例
13年7月13日土曜日
I2C
• Inter-Integrated Circuit
• 2本の信号線で複数の機器と接続可能
• 1対多接続可能(I2Cバス上で、個々のデバイス毎がユニークな番号(ス
レーブアドレス)を持つ。
RPiモータードライバ
モジュール
電流・電圧測定
モジュール
LCD
RTC EEPROM
13年7月13日土曜日
RPiでラジコンを作ってみる
I2Cモータードライバ 2
13年7月13日土曜日
モータードライバ
DRV8830(TI)
I2C制御
電源 2.75∼6.8V
連続1A出力
秋月 170円ストロベリーリナックス
567円
13年7月13日土曜日
接続する
RPi
モータ
ドライバ
モータ
ドライバ
I2C1-SCL
I2C1-SDA
13年7月13日土曜日
ソフト
Linux input
subsystem
(/dev/input/event0等)
ラジコン
メインプログラム
キーイベント
I2Cデバドラ
(/dev/i2c-1等)
モータードライバ
制御コマンド
13年7月13日土曜日
I2Cデバドラオープン
	
  	
  int	
  fd;
	
  	
  printf("radicon	
  startn");
	
  	
  fd	
  =	
  open("/dev/i2c-­‐1",O_RDWR);	
  //	
  RPi	
  rev1.0は/dev/i2c-­‐0
	
  	
  if(fd	
  <	
  0){
	
  	
  	
  	
  printf("i2c	
  open	
  errorn");
	
  	
  	
  	
  return(-­‐1);
	
  	
  }
13年7月13日土曜日
キーイベント取得
#include	
  <linux/input.h>
while(1){
	
  	
  	
  	
  read(0,&event,sizeof(event));
	
  	
  	
  	
  if(event.type	
  ==	
  EV_KEY	
  &&	
  event.value	
  !=	
  0){
	
  	
  	
  	
  	
  	
  switch(event.code){
	
  	
  	
  	
  	
  	
  case	
  KEY_UP:
	
   	
  	
  	
  	
  	
  	
  printf("UP	
  is	
  pressedn");
	
   	
  	
  	
  	
  	
  	
  motor_l.control(MOTOR_POWER,DRV8830::MOTOR_FORWARD);
	
   	
  	
  	
  	
  	
  	
  motor_r.control(MOTOR_POWER,DRV8830::MOTOR_FORWARD);
	
  	
   	
  	
  	
  	
  	
  	
  break;
	
  	
  	
  	
  	
  	
  case	
  KEY_DOWN:
	
  	
  	
  	
  	
  	
  	
  	
  	
  printf("DOWN	
  is	
  pressedn");
	
  	
  	
  	
  	
  	
  	
  	
  	
  motor_l.control(MOTOR_POWER,DRV8830::MOTOR_REVERSE);
	
  	
  	
  	
  	
  	
  	
  	
  	
  motor_r.control(MOTOR_POWER,DRV8830::MOTOR_REVERSE);
	
  	
  	
  	
  	
  	
  	
  	
  	
  break;
13年7月13日土曜日
モータードライバ制御
int	
  DRV8830::control(int	
  power,int	
  type)
{
	
  	
  unsigned	
  char	
  buff[2];
	
  	
  int	
  result;
	
  	
  if(type	
  !=	
  MOTOR_STANDBY	
  &&
	
  	
  	
  	
  	
  type	
  !=	
  MOTOR_REVERSE	
  &&
	
  	
  	
  	
  	
  type	
  !=	
  MOTOR_FORWARD	
  &&
	
  	
  	
  	
  	
  type	
  !=	
  MOTOR_BRAKE)	
  {
	
  	
  	
  	
  printf("Errn");
	
  	
  	
  	
  return	
  0;
	
  	
  }
	
  	
  //	
  set	
  slave	
  address	
  to	
  i2c	
  driver
	
  	
  ioctl(i2c_fd,I2C_SLAVE,i2c_slaveaddr);
	
  	
  //	
  create	
  data	
  to	
  send	
  to	
  DRV8830
	
  	
  buff[0]	
  =	
  0x00;
	
  	
  buff[1]	
  =	
  (unsigned	
  char)(power	
  <<	
  2)	
  |
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (unsigned	
  char)(type	
  &	
  0x03);
13年7月13日土曜日
実演
https://github.com/yishii/RaspberryPi_Radicon/
ソースコード(github)
RPiでのビルド方法
$ g++ drv8840.cpp radicon.cpp -o radicon
13年7月13日土曜日
太陽電池の充電状態をネットにアップする装置
I2C
USB3Gドングル
その他製作例1
13年7月13日土曜日
その他製作例2
現在地の
GoogleMapsや
StreetViewを表示す
る装置
UART
地
図
デ
ー
タ
13年7月13日土曜日
ソフトウェア作成
便利なライブラリの使用
•bcm2835ライブラリを使用する
•http://www.airspayce.com/mikem/
bcm2835/
•Cや各種スクリプト言語(Ruby等)から
呼び出しが容易
13年7月13日土曜日
•Arduino APIスタイルで制御する場
合、WiringPiを使用する
• https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
pinMode (0, OUTPUT) ; // aka BCM_GPIO pin 17
for (;;)
{
digitalWrite (0, 1) ; // On
delay (500) ; // mS
digitalWrite (0, 0) ; // Off
delay (500) ;
}
ソフトウェア作成
便利なライブラリの使用
13年7月13日土曜日
•詳細は以下のページに説明あります。
• http://elinux.org/RPi_Low-level_peripherals
ソフトウェア作成
便利なライブラリの使用
13年7月13日土曜日
さらにI/Oを使いたい
RPiのI/O数・種類は多いとは言えません。
足りない場合、ポートエキスパンダを使う方法が
あります。ADしたければI2CのADCなど。
お手軽にやるなら、RPiにArdiunoを繋いで
外部機器接続はArduino側にやらせる手が
簡単です。
13年7月13日土曜日
I/OにArduinoを使うFirmataはArduino IDEに標準で組み込まれているプログラム。
Arduinoに書き込み、RPiとUSBやシリアル接続するだけで、
Arduinoの端子がRPiの言いなりなって動いてくれる。
C/C++での操作
https://github.com/anthonygclark/libarduino/
Rubyでの操作
(日曜エレクトロニクス(日エレ))
http://projectc3.seesaa.net/article/357559302.html
http://www.youtube.com/watch?
feature=player_embedded&v=kCBxGZ9DPo4
Firmataを
書き込んでおく
Arduino
シールド
13年7月13日土曜日
ありがとうございました
13年7月13日土曜日

More Related Content

PDF
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
PDF
I2CでRaspberry Piから 複数の周辺機器を制御する
PDF
Arduinoで出来ること
PDF
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
PDF
PerlのOOPにおいて、コンストラクタ 内でメンバ関数を呼ぶ方法は?(Perl Beginners #15)
PDF
ハードウェアを用いてPythonを学ぶ
ODP
Start physical computing with Ruby + Arduino
PDF
micropythonで遊んでみる
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
I2CでRaspberry Piから 複数の周辺機器を制御する
Arduinoで出来ること
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
PerlのOOPにおいて、コンストラクタ 内でメンバ関数を呼ぶ方法は?(Perl Beginners #15)
ハードウェアを用いてPythonを学ぶ
Start physical computing with Ruby + Arduino
micropythonで遊んでみる

What's hot (12)

PPTX
Raspberry pi 2用のi2cアダプターの
PPTX
ラジコンをROSで制御してみた
PDF
Listen&notifyとbwpの間違った使い方
PDF
[Htmlday]present
PDF
Arduinoを使ったgameboyカードリッジのdump
PDF
Androidでロボットを動かそう・すまべん関西201003
PDF
SAKURAボードでお手軽マルチタスク環境
PDF
プロ生2017名古屋(LT) ArduboyをLT用ガジェットに
PDF
micropythonってたーのしー!
PDF
coma Study Room vol.2 Arduino Workshop
PPTX
Hacking Ctrl-C
PPTX
魔改造PCで移動できるパスワード解析ハードを作りました
Raspberry pi 2用のi2cアダプターの
ラジコンをROSで制御してみた
Listen&notifyとbwpの間違った使い方
[Htmlday]present
Arduinoを使ったgameboyカードリッジのdump
Androidでロボットを動かそう・すまべん関西201003
SAKURAボードでお手軽マルチタスク環境
プロ生2017名古屋(LT) ArduboyをLT用ガジェットに
micropythonってたーのしー!
coma Study Room vol.2 Arduino Workshop
Hacking Ctrl-C
魔改造PCで移動できるパスワード解析ハードを作りました
Ad

Similar to 20130713 オープンハードセミナー raspberry_piに何かつないで遊ぼう (20)

PDF
OSC Tokyo 2013 Spring JRPUG
PDF
SIerによるSIerのためのRaspberry Pi 入門
PPT
Raspberry Jam #1 20121229
PDF
Getting started raspberry pi osc hamamatsu
PPTX
レベルを上げて物理で殴る 16x9
PDF
Big Raspberry JAM TOKYO 2013 Hardware
PDF
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
PDF
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
PDF
Raspberry piでlチカしてみた
PDF
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
PPTX
Raspberry pi+mono を使ってlegoを制御
PDF
2013 summercamp 03
PDF
NetBSD/evbarm on Raspberry Pi
PDF
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
PPT
Raspberry pi 2
PDF
Osc2013 tokyospring
PDF
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
PDF
機械学習 (AI/ML) 勉強会 #2 IoT編
PDF
Raspberry piでシリアルサーボ
PDF
RaspberryPi Users Group Japan 20130525 by hohno
OSC Tokyo 2013 Spring JRPUG
SIerによるSIerのためのRaspberry Pi 入門
Raspberry Jam #1 20121229
Getting started raspberry pi osc hamamatsu
レベルを上げて物理で殴る 16x9
Big Raspberry JAM TOKYO 2013 Hardware
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
Raspberry piでlチカしてみた
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Raspberry pi+mono を使ってlegoを制御
2013 summercamp 03
NetBSD/evbarm on Raspberry Pi
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Raspberry pi 2
Osc2013 tokyospring
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
機械学習 (AI/ML) 勉強会 #2 IoT編
Raspberry piでシリアルサーボ
RaspberryPi Users Group Japan 20130525 by hohno
Ad

More from Yasuhiro Ishii (7)

PPTX
CoderDojo師岡20221212発表資料.pptx
KEY
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
KEY
Arduino MemoryMapLib w/Android Accessory
KEY
Arduino MemoryMapLib
PDF
Android端末と組み込み機器が連携する Android Make Days
PDF
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
PDF
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
CoderDojo師岡20221212発表資料.pptx
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
Arduino MemoryMapLib w/Android Accessory
Arduino MemoryMapLib
Android端末と組み込み機器が連携する Android Make Days
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...

20130713 オープンハードセミナー raspberry_piに何かつないで遊ぼう