1,a) 1,b) 1,c),d) 1,e) 1,f) Raspberry Pi GPIO IC Raspberry Pi Linux HTTP, Raspberry Pi, Hayashi Kohei 1,a) Nishikawa Hiroyuki 1,b) Kobayashi Fumiya 1,c) Manabe Hiroki,d) Omura Motomasa 1,e) Kanemune Susumu 1,f) 1. Raspberry Pi Internet of Things : IoT 1 Osaka Electro-Communication University, Shijonawate, Osaka 575 0063, Japan Hakuyo High School a) ht13a07@oecu.jp b) ht13a065@oecu.jp c) ht13a036@oecu.jp d) manaty005@mh.scn-net.ne.jp e) esetanuki@gmail.com f) kanemune@acm.org LED GPIO OS PC Raspberry Pi[5] [1] c 015 Information Processing Society of Japan 1
表 1 機能 図 1 Raspberry Pi 本体 ことを考えた ドリトルは 初等中等教育における実践か ら プログラミング経験のない生徒がプログラムを作成で Raspberry Pi のポート一覧 番号 機能 3.3V 1 5V GPIO(IC SDA) 3 4 5V GPIO3(IC SCL) 5 6 GPIO4(GPCLK0) 7 8 GPIO14(UART TXD) 9 10 GPIO15(UART RXD) GPIO17 11 1 GPIO18 GPIO7 13 14 GPIO 15 16 GPIO3 3.3V 17 18 GPIO4 GPIO10(SPI MOSI) 19 0 GPIO9(SPI MISO) 1 GPIO5 GPIO11(SPI SCLK) 3 4 GPIO8(SPI CE0) 5 6 GPIO7(SPI CE1) ID SD 7 8 ID SC GPIO5 9 30 GPIO6 31 3 GPIO1 GPIO13 33 34 きることが知られている [] 本稿では Raspberry Pi の GPIO19 35 36 GPIO16 IO に接続されたセンサ等の電子部品をドリトル上から制 GPIO6 37 38 GPIO0 御する方法を検討する 続いて 接続されたセンサ等から 39 40 GPIO1 得られた計測値を Web 上に設けたデータ蓄積サーバに転 送する方法を検討する. Raspberry Pi とプログラミング環境.1 ラスベリーパイ. GPIO の配置と制御 Raspberry Pi の GPIO はデジタル入出力としての機能 だけではなく I C 等のペリフェラル利用のための端子とし ても利用することができる GPIO の端子割り当てと配置 Raspberry Pi は 英国 Raspberry Pi 財団が開発し 若 を表 1 に示す なお 本研究で取り扱う LED やセンサなど 年層のコンピュータ技術への関心やスキルを高めるなどの の電子部品はすべてこの GPIO ピンに接続する Raspbian 教育目的から開発された安価なシングルボードコンピュー 等の OS では GPIO やセンサを扱う機能を提供しており タである 用途に合わせて利用できるように 性能 価格 制御にあたっては デバイスファイルへ読み書きを行うこ 等が異なるいくつかのエディションが存在する 本研究で とで ポートの初期化や値の取得 セットを行うことがで 利用した Raspberry Pi Model B では カードサイズの きる 基板上に CPU として ARM プロセッサと 1GB のメモリ HDMI や LAN USB を搭載している ARM Linux 等の OS を動作させることも可能となっており パーソナルコ ンピュータとして運用することも可能である また デジ 3. ドリトルによる Raspberry Pi 制御の目的 と課題 ドリトルは兼宗らが開発したオブジェクト指向の教育用 タル入出力や I C SPI といった各種ペリフェラルを持ち プログラミング言語である [1][] 日本語による構文を特徴 46 ピンの汎用入出力 GPIO に電子部品を接続すること としており プログラミング初学者への教育活動などに利用 で 電子回路の制御やセンサから環境情報を取得すること されている ドリトルは Java VM 上で動作し Raspberry も可能である Raspberry Pi 本体の画像を図 1 に示す Pi においても Raspbian を OS とすることで 基本機能を Raspberry Pi は様々な OS を動作させることが可能であ 利用可能である そこで ユーザによるドリトル単独での るが [6] 今回は Raspberry Pi の標準イメージ環境である GPIO に接続した電子回路やセンサの制御や計測を実現す Raspbian を採用した Raspbian は Debian をベースとし るとともに センサ等の計測結果などをインターネットを た Linux 系の OS であり [7] 014 年 9 月 9 日版より Java 利用してサーバ上に蓄積することで 自身あるいは友人が SE Development Kit 8 が標準搭載されている [8] そのた 作成した計測機からの計測結果を PC やスマートフォン等 め Java で作成されたドリトルのバイナリを追加のソフ で自由に確認したり 計測データを自由に収集し加工でき トウェアのインストールを行わずに動作させることが可能 るプログラミング環境の実現を目的とする である 旧モデルと比べ性能が上昇している [9]Raspberry このとき ドリトル上から GPIO などの Raspberry Pi Pi Model B においては ドリトルが実用的な速度で動作 固有の各種機能を制御を行うためにドリトルの言語命令の することを確認した 拡張が必要となる その際には 従来のドリトルで行われ 015 Information Processing Society of Japan
IC IC HDC1000 TSL561 LPS5H TA791 Java VM HTTP(GET) Raspberry Pi HTTP IC I C 3.1 Raspberry Pi Raspberry Pi GPIO Raspberry Pi Python Raspberry Pi LED Raspberry Pi C. (10); /sys/class/gpio/ OS(Linux) LED Raspberry Pi "raspberry" 3. GPIO 3 ( 1 ) ( ) ( 3 ) GPIO GPIO GPIO GPIO4 LED 4 LED GPIO4 c 015 Information Processing Society of Japan 3
"raspberry" LED 4 LED 1 LED 0 10 LED 3 LED 10 3 GPIO GPIO GPIO GPIO GPIO LED LED 1 GPIO GPIO GPIO LED 3 GPIO4 LED 10 4 GPIO4 LED LED GPIO4 GPIO4 ON OFF 10 LED GPIO / 3 GPIO GPIO 4 5 4 LED 4 5 1/0 3.3 ( 1 ) ( ) HDC1000 6 7 8 c 015 Information Processing Society of Japan 4
6 HDC1000 7 TSL561 #!/bin/sh if [ $# -ne 1 ]; then exit 1 fi echo $1 > /sys/class/gpio/export 5 GPIO 8 LPS5H 3.4 GPIO 3 TA791 TA791 GPIO 3 4 GPIO 4. Raspberry Pi 4.1 GPIO Raspberry Pi GPIO ARM OS Raspberry Pi GPIO /sys/class/gpio ( 1 ) export ( ) gpio/direction ( 3 ) gpio/value ( 4 ) unexport GPIO GPIO GPIO GPIO 5 4. I C Raspberry Pi I C Raspberry Pi icdetect I C I C grep HDC1000 0x40 icdetect grep 40 Python GPIO Python 5. Raspberry Pi Web CSV Excel c 015 Information Processing Society of Japan 5
9 user filename systemtime UNIX datan N 1,,... "raspberry" "RecordingStorage" // --------- --------- "usr1" "file1.csv" "http:// URL/api.php" 015-9-10,06:04:09,144111386,4.541,54.35 // --------- --------- LPS5H 6 5.1 PHP Web UNIX 5. Web API 9 URL URL GET http:// URL/api.php TestUser test.csv 144111386?user=TestUser&filename=test.csv &systemtime=144111386&data1=4.541&data=54.35 IP error URL CSV http:// URL/[]/[ ] http:// URL/TestUser/test.csv 6 // --------- --------- 60 60 7 5.3 ( 1 ) ( ) ( 3 ) URL ( 4 ) RecordingStorage "RecordingStorage" "usr1" "a.csv" URL WebAPI URL "http:// URL/api.php" 1 1 7 6. 10 Raspberry Pi LED c 015 Information Processing Society of Japan 6
L LED LED LED LED 1 LED Raspberry Pi OS apt-get OS SD Raspberry Pi Excel [1]. http://dolittle.eplang.jp [],,,, :. Vol.44, No.13, pp.58 71 (003). [3], :.. Vol.004, No.100, pp.41 48 (004). [4],, :.. Vol.005, No.15, pp.57 63 (005). [5] Raspberry Pi Teach, Learn, and Make with Raspberry Pi. https://www.raspberrypi.org/ [6] Raspberry Pi Downloads - Software for the Raspberry Pi. https://www.raspberrypi.org/downloads/ [7] FrontPage - Raspbian. http://www.raspbian.org/ [8] Raspbian Release Notes. https://downloads.raspberrypi.org/raspbian/release notes.txt [9] Raspberry Pi on sale now at $35. https://www.raspberrypi.org/blog/raspberry-pi--on-sale/ [10] : (008). [11] : (010). 7. Raspberry Pi GPIO LED CSV c 015 Information Processing Society of Japan 7