公立はこだて未来大学 2017年度 システム情報科学実習
グループ報告書
Future University Hakodate 2017 System Information Science PracticeGroup Report

プロジェクト名
ロケーションベースサービスの展開
Project Name
Development location-based services
グループ名
ICAS割引グループ ICAStampグループ
Group Name
ICAS-discount and ICAStamp Group
プロジェクト番号/Project No.
9
プロジェクトリーダー/Project Leader
1015136 小野優飛 Yuhi Ono
グループメンバー/Group Member
1015003 北野雅貴 Masaki Kitano
1015016 橋本智広 Tomohiro Hashimoto
1015043 森谷光 Hikaru Moriya
1015058 田中哉光 Kanaaki Tanaka
1015067 石戸雄太 Yuta Ishido
1015097 斉藤大 Dai Saitou
1015148 福澤圭一郎 Keiichiro Fukuzawa
1015153 東爵亜久 Kuraaku Azuma
1015166 西久保有沙 Arisa Nishikubo
1015247 高崎昌宏 Masahiro Takasaki
指導教員
三上貞芳 高橋信行 鈴木昭二
AdvisorSadayoshi Mikami Nobuyuki Takahashi Sho'ji Suzuki
提出日
2018年1月19日
Date of Submission
January 19, 2018

概要
本プロジェクトの目的は, 屋内外の位置情報を利用して生活を便利かつ豊かにする新しいサービスを考案し実現することである. 現在, 位置情報を使用した既存のサービスは, 数多く提供されており, 人々に利用されている. これらの多くは, 現在の位置情報を測定するGPSを活用したサービスであった. それに対し, 過去の位置情報を使用するサービスは限られたものであった. 過去の位置情報
は利用履歴のようなものである. 金銭的な証明が必要であるが, 過去の位置情報が建物にあれば店舗で買い物をした, 駅から駅にあれば電車を利用したと読み取ることができる. そこで, 本プロジェク
トでは位置情報と時間の関係について考え, 交通系ICカードに着目した. 交通系ICカードには識別番
号や日付, 乗車駅などが記録されており, それらの情報を組み合わせることで時間情報が含まれた1
つの位置情報になる. 交通系ICカードを利用し, 公共交通機関に乗って買い物に来た客に, 金銭的な補助を行うというサービスを提案し実現する. 交通系ICカードを用いることにより, 読み取られる位
置情報から, 公共交通機関を利用して買い物に来たかどうかを判別する. また, 前述したサービスに使用されている交通系ICカードとシステムを応用したスタンプラリーサービスを提案し実現する. 識
別番号を活用し, 交通系ICカードをスタンプラリーカードとして使用するサービスである.
キーワード: 過去の位置情報, 交通系ICカード, 金銭的な補助, スタンプラリーサービス(※文責 : 福澤圭一郎)

iDevelopment of location-based services

Abstract
The purpose in this project is to devise and implement the new service making people's lives
more prosperous with using location information. Nowadays, many existing services that using location information has been provided and used by people. Many of these are service using GPS
having current location information. However, in contrast there are scarcely the service withusing past location information. Past location information is like archival record. There areneed monetary proof, but we can read that they used electric train if their past location info
rmation was from the station to the station. We also can read that they bought something at store if their past location information was in the building. So we focused on prepaid IC card for public transportation. Prepaid IC card are recorded information that date, entraining point, and ID. We can get location information that contains time information by combining these informations. We will propose and implement the service that provide financial support to peopl
e using public transportation with prepaid IC card. By using prepaid IC card, we can get datacontained about location information. With using it, we distinguish whether customer came to s
hopping by public transportation or not. Also, we will propose and implement the service of st
amp rally that apply prepaid IC card and the system used by the previously mentioned service.
It's the service that using prepaid IC card instead of stamp rally card by using ID.
Keywords: past location information, prepaid IC card, financial support,
stamp rally service(※文責 : 福澤圭一郎)

iiDevelopment of location-based services

目次
第Ⅰ部ICAS割引活動報告書‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥- 1 第1章 背景 ········································································· - 2 第2章 サービスの提案······························································· - 3 2.1 提案するサービス······························································ - 3 2.2 サービスを受ける流れ·························································· - 3 2.3 類似サービス·································································· - 4 第3章 課題提起····································································· - 5 第4章 課題解決へのプロセス ························································ - 6 4.1 サービス具体化のためのアンケート調査 ········································· - 6 4.1.1 無印良品シエスタハコダテでのアンケート ·································· - 6 4.1.2 医師会病院でのアンケート ················································ - 13 4.2 宣伝用コンテンツの制作 ······················································ - 24 4.2.1 ロゴの作成 ······························································· - 24 4.2.2 プロモーションビデオの作成 ·············································· - 24 4.3 サービス利用時のシステムの動き ·············································· - 25 4.4 ICカードの利用履歴を読み取るプログラムの作成 ································ - 25 4.4.1 Raspberry Pi と IC カードリーダーとの接続 ································ - 25 4.4.2 IC カードのデータの読み取り·············································· - 25 4.4.3 読み取ったICカードのデータ内容の解析 ···································· - 25 4.5 利用者データを保存するデータベースサーバの作成 ······························ - 26 4.5.1 サービスに必要なデータの検討 ············································ - 26 4.5.2 データ管理用ページの作成 ················································ - 26 4.5.3 ウェブページのクラウド運用 ·············································· - 27 4.5.4 ログイン機構について····················································· - 27 4.5.5 管理用ページとしての調整 ················································ - 27 4.6 サービスで用いられるGUIの作成 ··············································· - 28 4.6.1 読み取ったICカードのデータを表示するGUIの作成 ··························· - 28 4.6.2 読み取ったICカードのデータをサーバへ送信するプログラムの作成 ············ - 28 4.6.3 ログイン認証について····················································· - 28 4.7 クーポン発券用小型プリンターの導入 ·········································· - 28 4.7.1 プリンターについて······················································· - 28 4.7.2 印刷に必要な実装························································· - 28 4.7.3 プリンターケースについて ················································ - 29 4.8 個人活動詳細································································· - 29 4.8.1 北野雅貴 ································································· - 29 4.8.2 東爵亜久 ································································· - 30 4.8.3 斉藤大 ··································································· - 30 4.8.4 石戸雄太 ································································· - 31 4.8.5 西久保有沙 ······························································· - 31 第5章 結果と評価·································································· - 33 5.1 グループ内の結果・評価 ······················································ - 33 5.1.1 サービス面の評価························································· - 33 5.1.2 システム面での評価······················································· - 33 iii

Development of location-based services

5.2 グループ外部からの評価 ······················································ - 33 5.2.1 新技術開発サロン························································· - 33 5.2.2 中間発表 ································································· - 34 5.2.3 アカデミックリンク······················································· - 35 5.2.4 コワーキングスペースでの運用実験 ········································ - 36 5.2.5 最終発表 ································································· - 36 第6章 今後の課題と展望 ··························································· - 39 付録 A 利用した技術······························································· - 40 A.1 新規習得技術································································· - 40 A.2 利用した既存技術····························································· - 40 付録 B ICAS割引操作マニュアル〜端末側の操作方法〜 ································ - 41 付録 C ICAS割引操作マニュアル〜Web側の操作方法〜 ································· - 45 付録 D 環境構築手順······························································· - 47 D.1 プログラムリスト····························································· - 47 D.2 Raspberry Pi 3に RC-S380を接続してFeliCaカードを読み込む方法 ················· - 47 D.3 Suicaの履歴を読み取る方法···················································· - 48 参考文献·········································································· - 48 第Ⅱ部 ICAStamp活動報告書‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ - 49 第1章 背景 ········································································ - 50 1.1 該当分野の現状・従来例 ······················································ - 50 1.2現状における問題点···························································· - 52 1.3課題の概要···································································· - 52 第2章 サービスの提案と実現に向けた取り組み ······································· - 53 2.1 本グループにおける目標 ······················································ - 53 2.2 目的を実現するための提案 ···················································· - 53 2.3 具体的な課題設定····························································· - 53 第3章 課題解決のプロセスの概要 ··················································· - 54 3.1 ルールの制定································································· - 54 3.2 ハードウェアの製作··························································· - 54 3.3 ソフトウェアの開発··························································· - 55 3.3.1 サーバの開発····························································· - 55 3.3.2 メインプログラムの実装 ·················································· - 56 第4章 課題解決のプロセス詳細 ····················································· - 57 4.1 ルールの制定································································· - 57 4.2 ハードウェアの製作··························································· - 58 4.2.1 ケースの製作····························································· - 58 4.2.2 機器の回路図と詳細······················································· - 58 4.3 ソフトウェアの製作··························································· - 60 4.3.1 データベースサーバの開発 ················································ - 60 4.3.2 メインプログラムの開発 ·················································· - 62 4.4 個人活動詳細································································· - 64 4.4.1高崎昌宏 ·································································· - 64 4.4.2 橋本智広 ································································· - 65 4.4.3 小野優飛 ································································· - 65 4.4.4 森谷光 ··································································· - 66 iv

Development of location-based services

4.4.5 福澤圭一郎 ······························································· - 67 4.4.6 田中哉光 ································································· - 67 第5章 結果と評価·································································· - 68 5.1 グループ全体の結果··························································· - 68 5.1.1 サービス面の評価························································· - 68 5.1.2システム面の評価·························································· - 69 5.2 グループ外からの評価························································· - 69 5.2.1 最終成果発表····························································· - 69 第６章 今後の課題と展望 ·························································· - 71 参考文献·········································································· - 72 付録A ICAStampの操作マニュアル ～端末側の操作方法～ ······························ - 72 付録B ICAStampの操作マニュアル ～サーバ側の操作方法～ ···························· - 74 B.1 必要な機材 ··································································· - 74 B.2 接続方法 ····································································· - 74 B.3 機能紹介 ····································································· - 74 付録C ICAStampのデータベース構築 ～テーブルの作成～ ····························· - 74 付録D ICAStampのファイル構成 ····················································· - 76 付録E ICAStampのプログラム ······················································· - 77 -v

Development of location-based services

Development of location-based services

第Ⅰ部

ICAS割引活動報告書

Group Report of 2017 SISP

- 1 -Group Number 9

Development of location-based services

第1章 背景ロケーションベースサービスとは, 位置情報を利用したサービスである. 例えば, 天気予報や地図案内システムなどの実生活に密着したものから, ゲーム, 娯楽のものまで多岐にわたっている.
これらは主にGPSを活用し, 現在の位置をリアルタイムに取得し,その位置に基づいてサービスを提供する.それに対し,過去の記録等のリアルタイム性のない位置情報を利用するサービスは限られている.例として店舗で買い物したことがわかるレシート,電車の切符などがある.リアルタイム性のないものを扱えるものとしてICカードに着目した.ICカードには識別番号や日付, 乗車駅をはじめとした過去を含めた利用地点などが記録されている.
そこで, 本プロジェクトでは過去に記録した位置情報を持っているICカードを用いたサービスを提案できるのではないかと考えた.
本プロジェクトの目的は,屋内外の位置情報を利用して生活を便利かつ豊かにする新しいサービスを考案し実現することであり,その中でも本グループでは交通系ICカード内部に記録された位置情報を活用して生活の利便性を向上するサービスを提案・実際に提供することで,プロジェクト全体の目標を達成できるよう活動を行う.
（※文責: 東爵亜久）Group Report of 2017 SISP

- 2 -Group Number 9

Development of location-based services

第2章 サービスの提案
2.1 提案するサービス
現状,車で買い物に来た人に対して,駐車料金補助を受けることのできるサービスがある.しかし公共交通機関を利用して,来店した人に対してはこれらのサービスが適用されず,補助を受け取ることができない.
そこで本グループは,公共交通機関を利用し,交通系ICカードで運賃を払った人に,店で買い物をする際に運賃相当の割引をするというサービス通称「ICAS割引」を提案した.このサービス名は,20
17年3月より函館市から導入された交通系ICカード,ICASnimocaに因んでいる.
このサービスは運賃の補助を提供するものなので,サービス利用回数は1日1回が望ましい.
（※文責:西久保有沙）

2.2 サービスを受ける流れ
サービスを受けるユーザ（以下「サービス利用者」という.）はまず,自宅最寄りの駅・停留所から公共交通機関を用いてサービスを提供している店舗（以下「サービス提供店舗」という.）へ赴
く.この際に,サービス利用者は運賃の支払いに非接触型ICカード方式を採用している電子マネー機
能付き乗車カード（通称交通系ICカード.以下「ICカード」という.）を用いる必要がある.サービ
ス提供店舗には専用端末が設置されており,サービス利用者はサービス提供店舗に来店する際に使用したICカードを専用端末にかざす事でクーポンを入手することができ,それを使用することでサービスを受けることができる.サービスに用いるデモ機全体の写真を図2-1に示す.

図2－1 デモ機全体の写真（※文責: 石戸雄太）

Group Report of 2017 SISP

- 3 -Group Number 9

Development of location-based services

2.3 類似サービス
既存の類似サービスとして,イオンなどで見られる買い物バスと呼ばれるシャトルバスが存在す
る.買い物バスは施設までの往復手段として,無料または低価格で利用客へ提供される.しかし,家からバス停までの距離によって利用者ごとで利便性の差があり,停車地・本数が限られている.それに対して,本プロジェクトで提案するICAS割引では,家の最寄りの停留所から,普段使っているバスや市電で店舗へ行って買い物をすることで,乗ってきた運賃に対する補助を受け取ることができる.IC
AS割引が実現できれば,利用客は停留所や利用時間の選択肢が広がるため,「公共交通機関を利用して買い物に行く」ということに対するハードルを下げることができる.また施設運営者の立場では,
公共交通機関の充実している地域では買い物客の増加が期待でき,バスを手配するよりも気軽に導入ができるといった効果が期待できる.
（※文責: 北野雅貴）

Group Report of 2017 SISP

- 4 -Group Number 9

Development of location-based services

第3章 課題提起
我々はこのプロジェクトで達成すべき課題として,以下のものを挙げている.
(【サービス面】)
1. サービス具体化のためのアンケート調査
課題：ICカード使ったサービスのため,認知度や,どのような還元方法や割合を調査するサービスがどのくらい使われるようになるのか調査する.
2. 宣伝用コンテンツの制作
課題：ICAS割引を実際に行うに当たって,利用者に興味を持ってもらえるようなプロモーションビデオを作成し,公開する.
(【システム面】)
3. サービス実現のためのシステム設計
4. ICカードの利用履歴を読み取るプログラムの作成
課題：ICカードに入っている情報がどのように格納されているか調査する.
Pythonを使ってどのようにデータを抜き出すか調査する.
5. 利用者データを保存するデータベースサーバの作成
課題：ICカードからどのようなデータがあるか調査する.
データに見合ったデータベースつくりを行う.
6. サービスで用いられるGUIの作成
課題：Pythonのライブラリを調査する.利用者が使いやすいGUIにする.
7. クーポン発券用小型プリンターの導入
課題：RaspberryPiに接続できるようにする.
どのような箱を作るか調査する.素材や設計を考え,調査する.
（※文責: 北野 雅貴）

Group Report of 2017 SISP

- 5 -Group Number 9

Development of location-based services

第4章 課題解決へのプロセス
4.1 サービス具体化のためのアンケート調査
ICAS割引を提案する上で, 適切な還元率や現在の公共交通機関の利用状況,ICAS nimocaの認知度などを知る必要があると考えた. そのため, 無印良品シエスタハコダテと医師会病院,アカデミッ
クリンク2017にてアンケート調査を実施した.
（※文責:西久保有沙）

4.1.1 無印良品シエスタハコダテでのアンケート
4.1冒頭に書いた内容の調査のため, 無印良品シエスタハコダテ（以下,シエスタとする.）にてアンケート調査を行うこととなった.シエスタは五稜郭にあり,バスや市電でのアクセスも充実しているため,アンケートを行う場所としてふさわしいと判断した.アンケートは平日と休日で客層や来客人数が変化するため二日間行い,土曜日と木曜日に行った.アンケートの内容はどちらの日程でも同じものを用いた.アンケートの内容を図4-1，4-2に示す.
（※文責:西久保有沙）Group Report of 2017 SISP

- 6 -Group Number 9

Development of location-based services

図4-1(シエスタアンケート用紙(1))

Group Report of 2017 SISP

- 7 -Group Number 9

Development of location-based services

図4-2 (シエスタアンケート用紙(2))

1-1問目：性別 （選択肢：男/女）Group Report of 2017 SISP

- 8 -Group Number 9

Development of location-based services

1-2問目：職種 （中高生/大学生/社会人/主婦/その他）
2問目：シエスタに誰と来店したか （一人/友達/社会人/その他）
3問目：シエスタへの来店手段 （徒歩・自転車/自家用車/バス/市電/その他）
4問目：普段の交通手段 （徒歩・自転車/自家用車/バス/市電/その他）
5問目：シエスタに来店した回数 （自由記述）
6-1問目：函館でnimocaを利用できることを知っているか （知っている/知らない）
6-2問目：nimocaを持っているか （持っている/持っていない）
6-3問目：今後所持する予定があるか （ある/ない/検討中）
7-1問目：「五稜郭までバスまたは電車で片道300円で行けるような場所」に住んでいるとし, もし, 五稜郭に「価格や品揃えが魅力的な店舗」があるとすると, その店にバスや電車を使ってどのくらいの頻度で行きたいと思うか （一週間に複数回/一週間に一度/一か月に一度/あまり行きたくない）
7-2-1問目：30円の補助 （一週間に複数回/一週間に一度/一か月に一度/あまり行きたくない）
7-2-2問目：50円の補助 （一週間に複数回/一週間に一度/一か月に一度/あまり行きたくない）
7-2-3問目：100円の補助 （一週間に複数回/一週間に一度/一か月に一度/あまり行きたくない）
7-2-4問目：150円の補助 （一週間に複数回/一週間に一度/一か月に一度/あまり行きたくない）
7-2-5問目：全額補助（無料バス） （一週間に複数回/一週間に一度/一か月に一度/あまり行きたくない）
8問目：どのような補助がよいか （割引クーポン/電子マネーとして補助/粗品/その他）
9問目：デモはわかりやすかったか （とてもそう思う/少しそう思う/あまり思わない/全く思わない）
アンケート結果を図4-3，4-4，4-5に示す.結果は,土曜日と木曜日の二日間の結果をまとめたものである.

Group Report of 2017 SISP

- 9 -Group Number 9

Development of location-based services

図4-3 (シエスタアンケート結果(1))

Group Report of 2017 SISP

- 10 -

Group Number 9

Development of location-based services

図4-4 (シエスタアンケート結果(2))

Group Report of 2017 SISP

- 11 -

Group Number 9

Development of location-based services

図4-5 (シエスタアンケート結果(3))
1-1問目について,性別は「男」と回答した人は14.3%,「女」と回答した人は85.7%であった.
1-2問目について,職種は「中高生」と回答した人は17.9%,「大学生」と回答した人は10.7%,「社会人」と回答した人は28.6%,「主婦」と回答した人は35.7%,「その他」と回答した人は7.1%であった.
2問目について,「一人」と回答した人は53.6%,「友達」と回答した人は32.1%,「社会人」と回答
した人は10.7%,「その他」と回答した人は3.6%であった.
3問目について,「徒歩・自転車」と回答した人は35.7%,「自家用車」と回答した人は21.4%,「バス」と回答した人は17.9%,「市電」と回答した人は25.0%,「その他」と回答した人は0%であった.
4問目について,「徒歩・自転車」と回答した人は28.6%,「自家用車」と回答した人は25.0%,「バス」と回答した人は35.7%,「市電」と回答した人は10.7%,「その他」と回答した人は0%であった.
5問目について,「1回」と回答した人は16.7%,「2回」と回答した人は16.7%,「3回」と回答した人は20.8%,「4回」と回答した人は4.2%,「5回」と回答した人は16.7%,「8回」と回答した人は4.
2%,「10回」と回答した人は16.7%,「20回」と回答した人は4.2%であった.
6-1問目について,「知っている」と回答した人は71.4%,「知らない」と回答した人は28.6%であった.
6-2問目について,「持っている」と回答した人は16.0%,「持っていない」と回答した人は84.0%
であった.
6-3問目について,「ある」と回答した人は4.8%,「ない」と回答した人は61.9%,「検討中」と回答した人は33.3%であった.
7-1問目について,「一週間に複数回」と回答した人は7.1%,「一週間に一度」と回答した人は42.9%,「一か月に一度」と回答した人は32.1%,「あまり行きたくない」と回答した人は17.9%であった.
7-2-1問目について,「一週間に複数回」と回答した人は7.4%,「一週間に一度」と回答した人は5
1.9%,「一か月に一度」と回答した人は25.9%,「あまり行きたくない」と回答した人は14.8%であった.

Group Report of 2017 SISP

- 12 -

Group Number 9

Development of location-based services

7-2-2問目について,「一週間に複数回」と回答した人は14.8%,「一週間に一度」と回答した人は48.1%,「一か月に一度」と回答した人は25.9%,「あまり行きたくない」と回答した人は11.1%であった.
7-2-3問目について,「一週間に複数回」と回答した人は40.7%,「一週間に一度」と回答した人は40.7%,「一か月に一度」と回答した人は14.8%,「あまり行きたくない」と回答した人は3.7%であった.
7-2-4問目について,「一週間に複数回」と回答した人は55.6%,「一週間に一度」と回答した人は33.3%,「一か月に一度」と回答した人は7.4%,「あまり行きたくない」と回答した人は3.7%であった.
7-2-5問目について,「一週間に複数回」と回答した人は85.2%,「一週間に一度」と回答した人は11.1%,「一か月に一度」と回答した人は3.7%,「あまり行きたくない」と回答した人は0%であった.
8問目について,「割引クーポン」と回答した人は39.3%,「電子マネーとして補助」と回答した
人は57.1%,「粗品」と回答した人は3.6%,「その他」と回答した人は0%であった.
9問目について,「とてもそう思う」と回答した人は60.7%,「少しそう思う」と回答した人は39.
3%,「あまり思わない」と回答した人は0%,「全く思わない」と回答した人は0%であった.
以上の結果から考察できることを述べる.ICカードの利用状況について,知っている人は多いが持っている人は少ないと言える.還元率について,「一週間に複数回」の増加率から,50~100円の割引が妥当であると判断できる.割引方法について,電子マネーとして補助が適切であると言える.
（※文責:西久保有沙）

4.1.2 医師会病院でのアンケート
新技術開発サロンにて本プロジェクト活動の内容を発表したところ,病院でもアンケート調査を行ってみてはどうか,という意見をいただいた.病院の利用者はバス・市電をよく利用しそうな年配の方が多いという理由だった.シエスタで用いたアンケートを病院用に改変し,医師会病院にてアンケートを行った.アンケートの内容を図4-6，4-7，4-8に示す.

Group Report of 2017 SISP

- 13 -

Group Number 9

Development of location-based services

図4-6 (医師会病院アンケート用紙(1))

Group Report of 2017 SISP

- 14 -

Group Number 9

Development of location-based services

図4-7 (医師会病院アンケート用紙(2))

Group Report of 2017 SISP

- 15 -

Group Number 9

Development of location-based services

図4-8(医師会病院アンケート用紙(3))

Group Report of 2017 SISP

- 16 -

Group Number 9

Development of location-based services

1問目：性別 （選択肢：男/女）
2問目：病院への交通手段 （徒歩・自転車/自家用車/バス/タクシー/その他）
3問目：nimocaについて知っているか （知っている/知らない）
4問目：nimocaを持っているか （持っている/持っていない）
5問目：今後nimocaを所持する予定はあるか （ある/ない/検討中）
6-1問目：補助があれば無料バスと公共バスのどちらを利用したいか （無料バス/どちらかというと無料バス/どちらともいえない/どちらかというと公共バス/公共バス）
6-2問目：10円の補助があれば無料バスと公共バスのどちらを利用したいか （無料バス/どちら
かというと無料バス/どちらともいえない/どちらかというと公共バス/公共バス）
6-3問目：30円の補助 （無料バス/どちらかというと無料バス/どちらともいえない/どちらかというと公共バス/公共バス）
6-4問目：50円の補助 （無料バス/どちらかというと無料バス/どちらともいえない/どちらかというと公共バス/公共バス）
6-5問目：100円の補助 （無料バス/どちらかというと無料バス/どちらともいえない/どちらかというと公共バス/公共バス）
6-6問目：150円の補助 （無料バス/どちらかというと無料バス/どちらともいえない/どちらかというと公共バス/公共バス）
アンケート結果を図4-9，4-10に示す.

Group Report of 2017 SISP

- 17 -

Group Number 9

Development of location-based services

図4－9 (医師会病院アンケート結果(1))

Group Report of 2017 SISP

- 18 -

Group Number 9

Development of location-based services

図4-10 (医師会病院アンケート結果(2))
1問目について,「男」と回答した人は12%,「女」と回答した人は88%であった.
2問目について,「徒歩・自転車」と回答した人は0%,「自家用車」と回答した人は76%,「バス」と回答した人は12%,「タクシー」と回答した人は12%,「その他」と回答した人は0%であった.
3問目について,「知っている」と回答した人は19%,「知らない」と回答した人は81%であった.
4問目について,「持っている」と回答した人は12%,「持っていない」と回答した人は88%であった.
5問目について,「ある」と回答した人は6%,「ない」と回答した人は76%,「検討中」と回答した
人は18%であった.

Group Report of 2017 SISP

- 19 -

Group Number 9

Development of location-based services

6-1問目について,「無料バス」と回答した人は12%,「どちらかというと無料バス」と回答した
人は6%,「どちらともいえない」と回答した人は29%,「どちらかというと公共バス」と回答した人は18%,「公共バス」と回答した人は35%であった.
6-2問目について,「無料バス」と回答した人は12%,「どちらかというと無料バス」と回答した人は12%,「どちらともいえない」と回答した人は35%,「どちらかというと公共バス」と回答した人は12%,「公共バス」と回答した人は29%であった.
6-3問目について,「無料バス」と回答した人は12%,「どちらかというと無料バス」と回答した人は12%,「どちらともいえない」と回答した人は41%,「どちらかというと公共バス」と回答した人は6%,「公共バス」と回答した人は29%であった.
6-4問目について,「無料バス」と回答した人は12%,「どちらかというと無料バス」と回答した人は12%,「どちらともいえない」と回答した人は53%,「どちらかというと公共バス」と回答した人は6%,「公共バス」と回答した人は17%であった.
6-5問目について,「無料バス」と回答した人は29%,「どちらかというと無料バス」と回答した人は12%,「どちらともいえない」と回答した人は41%,「どちらかというと公共バス」と回答した人は6%,「公共バス」と回答した人は12%であった.
6-6問目について,「無料バス」と回答した人は35%,「どちらかというと無料バス」と回答した人
は6%,「どちらともいえない」と回答した人は41%,「どちらかというと公共バス」と回答した人は6%,「公共バス」と回答した人は12%であった.
アンケートを実施した結果,病院に来る高齢の方々は敬老パスを所持しており,すでに公共交通機
関の割引が行われていることがわかった.また,公共交通機関を利用するのが困難な状態であること
や,自家用車を利用する人が多いため,病院でのサービスの展開は向いていないと判断した.
4.1.3 アカデミックリンク2017でのアンケート
サービスの改善や向上のため,引き続きアンケート調査を行うこととなった.函館市青年センターで開催されるアカデミックリンク2017（以下,「アカデミックリンク」とする.）にて本プロジェ
クト活動の内容を発表することとなったため,その場でアンケート調査を行った.アンケートの内容を図4-11に示す.

Group Report of 2017 SISP

- 20 -

Group Number 9

Development of location-based services

図4-11 (アカデミックリンクアンケート用紙)
1問目：職業 （選択肢：学生/社会人）

Group Report of 2017 SISP

- 21 -

Group Number 9

Development of location-based services

2問目：ICカードの認知度 （知っている/知らない）
3問目：ICカードを所持する予定 （ある・持っている/ない）
4問目：買い物における公共交通機関の利用頻度 （ほぼ毎日/週に１回/月に1回/ほぼ利用しない）
5問目：公共交通機関の支払い方法 （現金/バスカード/ICカード）
6問目：ICAS割引が提供された場合の買い物の頻度 （大きく増える/少し増える/変わらない/減る）
7問目：ICAS割引が提供された場合の公共交通機関の利用頻度（大きく増える/少し増える/変わらない/減る）
アンケートの結果を図4-12，4-13に示す.

図4-12 (アカデミックリンクアンケート結果(1))

Group Report of 2017 SISP

- 22 -

Group Number 9

Development of location-based services

図4-13 (アカデミックリンクアンケート結果(2))
1問目について,職業は学生が27人,社会人が10人であった.
2問目について,ICカードを「知っている」と回答した割合は学生が100%, 社会人が90%,「知らない」と回答した割合は学生が0%, 社会人が10%であった.
3問目について,ICカードを所持する予定が「ある・持っている」と回答した割合は学生が85.
2%, 社会人が70.0%,「ない」と回答した割合は学生が14.8%, 社会人が30.0%であった.
4問目について,「ほぼ毎日」と回答した割合は学生が7.4%, 社会人が0%, 合算すると5.4%であり,「週に1回」と回答した割合は学生が18.5%, 社会人が0%, 合算すると13.5%であり,「月に1回」と回答した割合は学生が25.9%, 社会人が10.0%, 合算すると21.6%であり,「ほぼ利用しない」と回答した割合は学生が48.1%, 社会人が90.0%,合算すると59.5%であった.
5問目について,「現金」と回答した割合は学生が25.9%, 社会人が40.0%, 合算すると29.7%であり,「バスカード」と回答した割合は学生が29.6%, 社会人が0%, 合算すると21.6%であり,「ICカード」と回答した割合は学生が44.4%, 社会人が60.0%, 合算すると48.6%であった.

Group Report of 2017 SISP

- 23 -

Group Number 9

Development of location-based services

6問目について,「大きく増える」と回答した割合は学生が7.4%, 社会人が0%, 合算すると5.4%であり,「少し増える」と回答した割合は学生が51.9%, 社会人が60.0%, 合算すると54.1%であり,「変わらない」と回答した割合は学生が40.7%, 社会人が40.0%, 合算すると40.5%であり,「減る」と回答した割合は学生が0%, 社会人が0%, 合算すると0%であった.
7問目について,「大きく増える」と回答した割合は学生が11.1%, 社会人が10.0%, 合算すると10.8%であり,「少し増える」と回答した割合は学生が40.7%, 社会人が50.0%, 合算すると43.2%であり,「変わらない」と回答した割合は学生が48.1%, 社会人が40.0%, 合算すると45.9%であり,「減る」と回答した割合は学生が0%,社会人が0%, 合算すると0%であった.
以上の結果から考察できることを述べる.2問目と3問目から,ICカードは認知度も高く所持率も半数を超えているが,4問目から,公共交通機関の利用率は低いと言える.特に,社会人はほとんど公共
交通機関を利用していない.また,6問目と7問目から,ICAS割引は概ね好評であると言えるが,「大きく増える/少し増える」と回答した割合と「変わらない」と回答した割合はほぼ半々であるため,さらなるサービスの向上が必要であると感じた.
（※文責:西久保有沙）

4.2 宣伝用コンテンツの制作
4.2.1 ロゴの作成
実際にサービス運用に当たって, サービスに親しみを持ってもらえるようICAS割引に因み, イカとレシートをモチーフにしたロゴを作成することにした. 手書きで書いたイラストをスキャナーで読み取った. その後Adobe Illustratorを使用してペンツール機能を用いて型をとり, 色つけ作業を行うことで作成した. 今後, サービスが本格運用されるときに同時に商品展開をすることでサービスの宣伝・普及につなげる.
（※文責: 斉藤大）4.2.2 プロモーションビデオの作成
実際にサービスを運用していくに当たって,このサービスを広く認知させる必要があったため,実際にICAS割引の流れを説明するプロモーションビデオを作成した.まず,絵コンテでシーンの流れをイラストで描き,その後本学からビデオカメラを借りて,プロジェクトメンバーの数名に実際にバスに乗ってから降りた先で買い物をし,割引クーポンを発行してもらう一連の流れを撮影した.編集ソ
フトはVideoStudio X3を使用し,テロップやフリーのBGMを挿入して,視聴者に親しんでもらいやすく,かつわかりやすくサービスの流れや導入メリットを説明することを目標として作成した.今後,サービスが運用できる形になったらYoutubeなどの動画サイトに公開して,サービスの宣伝,普及につなげる.
（※文責: 斉藤大）Group Report of 2017 SISP

- 24 -

Group Number 9

Development of location-based services

4.3 サービス利用時のシステムの動き
サービス利用者がサービス提供店舗に設置された専用端末にICカードをかざした際,先ず専用端末ではICカードに記録された一意のID（以下「IDm」という.）・利用履歴を取得する.次に利用履歴を解析し,最後に公共交通機関を利用した日付がICカードを読み取った日付か,また,その公共交通機関がサービス提供店舗最寄りのものであるかを確認する.その後IDmをサーバに送信し,そのIDmが読み取り日にすでに利用されていないかをチェックし,初回利用であることが確認されたらデー
タベースにIDmを記録し,専用端末にサービスが利用可能であることを伝える.専用端末は,サーバから返って来た情報をもとに,サービスが利用可能であればクーポンを発行し,利用不可であればその旨を画面に表示する.
（※文責: 石戸雄太）

4.4 ICカードの利用履歴を読み取るプログラムの作成
提案したプログラムを作成するためにはまずICカードの記録領域にアクセスし,データを取得しなければならない.その上で,取得したデータを活用するためのプログラムを作成する必要がある.
そのため,課題を以下の4つに分割した.

4.4.1 Raspberry Pi と IC カードリーダーとの接続
まずはプログラムを動作させる端末を用意する.今回は小型で持ち運びが便利かつコストが低いR
aspberry Pi 3 Model B（以下Raspberry Piという.）を使用した.次にICカードの記録領域にアクセスするために,専用のカードリーダーを用意する.今回はSONY製の非接触ICカードリーダー（以下IC
カードリーダーという.）である「RC-S380」を利用した.最後にRaspberry Pi・アプリケーションとICカードリーダーを接続し,情報のやり取りを行う準備が必要である.アプリケーションはPythonを用いて作成するため,Python上でUSBの通信が簡単に行える”python-usb”というライブラリを使用した.
（※文責: 石戸雄太）

4.4.2 IC カードのデータの読み取り
ICカードの記録領域において,利用履歴の領域は”0x090F”であることが判明した.ICカードリー
ダーを介して上記領域にアクセスするために,NFCデバイスと近距離無線通信が行える”nfcpy”というライブラリを使用した.
（※文責: 石戸雄太）

4.4.3 読み取ったICカードのデータ内容の解析
履歴領域を読み取ったと言っても数字の羅列が取得できるのみである.具体的には8bitのバイナ
リが16個連なったものが1履歴で,それが20個存在していることが判明した.それらのデータをどのように分解すれば利用日付・用途・使用金額・残高などとなるのか解析する必要があった.調査のGroup Report of 2017 SISP

- 25 -

Group Number 9

Development of location-based services

結果,以下の図4-12のような内容であることが判明した.残高部分についてはバイト順序がリトルエ
ンディアンであった.

図 4-12（※文責: 石戸雄太）

4.4.4 読み取ったICカードのデータを活用するための基盤プログラムの作成
ICカードから読み取れるデータは以上に述べた通りである.これらを活用するために,専用のクラ
ス・メソッドを作成した.関数や引数を指定することで,指定した履歴の指定したデータを返却するものである.これらは実際のアプリケーションでimportするだけで使用できるよう設計した.
（※文責: 石戸雄太）

4.5 利用者データを保存するデータベースサーバの作成
4.5.1 サービスに必要なデータの検討
4.3.3で述べたようにICカードの履歴領域の読み取りは行えるが, 書き込みに関しては行うことができない. また店舗で読み取りを行うことを想定した際に, 例えば一つの店舗で複数台の設置を考えると, 交通機関の利用は1回でありながら何度も特典が得られる状態は避けなければならない.
そのため各読み取り端末間でデータを共有するために, データベースで利用者のデータを保存しようと考えた.
ICAS割引を実現するにあたり必要となるデータとしては, サービスの利用者を判別するIDm, どの地点からサービスを利用したか記録するエリアコード, 同日に同じ地点でサービスを利用されていないか判別する日付などが挙げられた.
（※文責: 石戸雄太）

4.5.2 データ管理用ページの作成
ICAS割引のシステム全体で実装を考えた際に, IDmを主キーとするレコードの挿入や書き換えを多用することとなる. こういったデータベースに関する操作を直感的に行えるように, ウェブブラ
ウザで制御できるデバッグ用ウェブページを作成した. ユーザ側で処理を行う端末, すなわちRasp
berry Pi上で動作するGUIは, これらのウェブページを介してデータの保存や引き出しを行う.
このウェブページの基本的な機能はICAS割引を利用したユーザの登録, 削除や一覧表示をする機能である. これらを実現するにあたりメジャーな方法である Apache HTTP Server, PHP, MySQLを3つのソフトウェアを中心として開発を行った. 開発環境を整えるために, これらのアプリケーショ
ンがパッケージとしてまとめられたXAMPPというソフトウェアをインストールして, 仮運用のテストまでを行った.
（※文責: 北野 雅貴）
Group Report of 2017 SISP

- 26 -

Group Number 9

Development of location-based services

4.5.3 ウェブページのクラウド運用
これまでのデバッグ用のウェブページはローカル開発環境で作成されていたが,より現実的な運用を想定し,Microsoft Azureと呼ばれるマイクロソフトのクラウドプラットフォームで開発環境を整えた.そのためまずMicrosoftにアカウント登録を行う必要があり,また学生であるため本来Azureを使うには有料であるがMicrosoft Imaginに登録することでこの問題を解決した.Microsoft Azureでホストされるアプリケーションの開発と発行はVisual StudioといったIDEを使用して行う.またデータベースは4.3.1で述べているMySQLではなくSQL Databaseとなっているためテーブルとwebページに修正を行った.そのため本来使っていたSQL分が一部違うものとなっており,修正する必要が出てきた.そこで後期では,SQL分を見直し,Azure用に変更を行った.Azureではサーバ時間が日本の時間ではないためサーバ時間を調整するプログラムを追加した.
（※文責: 東爵亜久）

4.5.4 ログイン機構について
4.5.2と4.5.3で述べたようなウェブページをクラウドで運用を想定するにあたり, ローカル開発
環境で作成したままの状態で移行をすると, URLを入力すれば誰でもアクセスすることが可能なた
め, データが改ざんされる等の可能性が考えられた. そこで運用者と店舗に設置した端末のみがア
クセスが可能となるようにログイン機構を設けることで対策した.
（※文責: 北野 雅貴）

4.5.5 管理用ページとしての調整
4.5.2で述べたようなデバッグ用ウェブページを使いやすいように,それぞれの機能をより分かり
やすくより見やすいものとするためにデザインを変えてみようと考えた.調べてみるとCSSでwebページをデザインできると判明したためCSSをHTML上にコーディングした.結果としてよりどこにどの機能があるのかが見やすく,わかりやすいものとなった.一番の特徴はみんなで考えたロゴをアクセスした際に一番目に入る場所に配置し,ICAS割引を認知していただけるようにした.機能としては,カードを今手元にない人のためにIDｍを登録できるよう一番目立つロゴの隣に機能を配置し,管理者が素早く登録できるようにした.管理者が自由に指定したエリアを選ぶことができる.登録したエリアごとにリスト化されており,管理者側が管理しやすいものとなっている.ほかには登録したIDｍとエリアを消すことができ,誤って登録してしまったIDｍとエリアを消すことが可能となっている.
ログインしているユーザを把握するためにリスト化したものをページにしてわかりやすくした.
（※文責: 東爵亜久）Group Report of 2017 SISP

- 27 -

Group Number 9

Development of location-based services

4.6 サービスで用いられるGUIの作成
4.6.1 読み取ったICカードのデータを表示するGUIの作成
ここまでRaspberry Pi上で構築してきたシステムはCUIベースのソフトウェアであった.これを一般のサービス利用者に快適に利用・操作してもらうためにはGUIベースのソフトウェアに置き換える必要があった.そのため,ユーザビリティの高いGUIを作成することにした.この際,Python からGU
Iを構築・操作するための標準ライブラリである”Tkinter”を使用した.
（※文責: 石戸雄太）

4.6.2 読み取ったICカードのデータをサーバへ送信するプログラムの作成
ICAS割引では1ユーザは1日に一度のみ利用が可能であるという制約を設けている.そのためICカードから読み取ったIDmをサーバに送信し,サービス利用エリア内でその日初回の読み取りであるかをチェックしなければならない.そのため,Raspberry Piで作成したプログラム内にサーバと通信を行うプログラムを構築した.その際,PythonのHTTPライブラリである”Requests”を使用した.
（※文責: 石戸雄太）

4.6.3 ログイン認証について
4.5.4 のログイン機構を通ってウェブページへアクセスをするためには, ログイン前にauthenti
city_tokenを取得しておく必要があるので,pythonライブラリのBeautifulSoupをインポートして用いることで値を取得した.
（※文責: 北野 雅貴）

4.7 クーポン発券用小型プリンターの導入
4.7.1 プリンターについて
サービス利用者に対しクーポンを発行するためにはプリンターが必要であっため,Raspberry Piと接続可能な小型のプリンターを用意した.今回導入したプリンターはナダ電子株式会社の「AS-28
9R2」であった.プリンターはArduinoと接続することでシリアル通信が可能であったため,同時期にArduinoも導入した.
（※文責: 石戸雄太）

4.7.2 印刷に必要な実装
Raspberry PiとArduinoをUSBケーブルで接続し,Arduinoとプリンターをシリアルポートを用いて接続する.Raspberry PiにはArduinoに対しArduinoからプリンターに印刷命令を出すプログラムを動作させるプログラムを実装し,ArduinoにはRaspberry Piからの指示待機・印刷したい内容と印刷の指示を行うプログラムを実装した.Raspberry Piで実装した印刷命令プログラムはICカード読み取Group Report of 2017 SISP

- 28 -

Group Number 9

Development of location-based services

り・サービス提供プログラムと組み合わせ,サービス対象者であった場合に印刷を実行できるように実装した.
（※文責: 石戸雄太）

4.7.3 プリンターケースについてサービスを受けるための割引クーポンを発券するプリンターを製作したが,プリンターとロール
紙を固定する台が別々であったため,持ち運びや収納の際に不便であった.そのため,プリンターとロール紙を固定する台をひとまとめにするプリンターケースを製作することとなった.大きさは,縦170mm, 横100mm, 高さ60mmの直方体である.素材は,低価格で入手しやすく,木材の一種であるため
レーザー加工が容易である厚さ5.5mmのMedium Density Fiberboard（中密度繊維板のこと.以下,「MDF」とする.）を用いた.プリンターケースの設計はScalable Vector Graphicsを使用し,ネジを差し込む穴やクーポン発券口などの作成,細かな調整にはAdobe Illustratorを使用した.MDFの切断には,レーザーカッターを使用した.
（※文責: 西久保有沙）

4.8 個人活動詳細
4.8.1 北野雅貴
5月 サーバ班としてシステムの実現のために,どのようなサーバが必要でどのようにして動いているのかを班で調べて共有した.それに伴い使用する実行環境の背景などを調査し,どのソフトウェ
アを選択するのがベストなのかを検討した.検討して行く中で,主流な方法であるApache HTTP Server,PHP,MySQLを使って行く方針となり,これらを一括管理できるXAMPPを用いて進めて行くことになった.
6月 RaspberryPiから別マシンへ,LANへ接続によりHTMLページのアクセスに成功した.XAMPP環境にウェブページのプログラムを入れた.21日の技術サロンに向けたスライドの作成準備や,今後の発表の節目の目標に向けて,プレゼン資料やデモ装置がどのレベルまで作成するか話し合った.
7月 アンケートに関する集計,中間発表の原稿の推敲を行った. 主にカード読み取りのデモの計画を練った.また,学習フィードバックとポートフォリオの作成,中間報告書の作成を行った.後期についても計画し,外部のサーバの運用を検討していたためログイン機構の作成を計画した.
9月 スタンプラリーとICAS割引サービスに関するサーバ側についての検討と準備を行った.
10月 XAMPPでICAS割引用のページの作成とRaspberryPiとMicrosoftAzureの設定をした.
スタンプラリーのルールについての話し合いと,ICAS割引用のページの作成を行った.RaspberryPiのサーバの外部公開についての調査と,ICAS割引の作成ページをMicrosoftAzureへ導入する作業を補佐し,サーバ公開した.
11月 アカデミックリンクに向けてのデモ発表の準備と発表を行い,後日反省を行った.またRasp
berryPiで起動するGUIを,起動時に自動で立ち上がるようにした.ローカルで時刻を正確に記録しておくために,RTCモジュールの初期設定を行った.
12月 発表内容について検討とスライドの作成を行った.最終報告書と学習ポートフォリオの記入を行い,引き継ぎ用の資料のとしてネットワーク構成図を作成した.
1月 後期の活動を振り返り,通年での評価や最終報告書,学習フィードバック,ポートフォリオの作成を行った.

Group Report of 2017 SISP

- 29 -

Group Number 9

Development of location-based services（※文責: 北野雅貴）

4.8.2 東爵亜久
5月 サーバ班として,ICカードを利用した生活を便利なものにするためにまたシステム設計のために意見を出し合った.サービスの内容を深めるために個々でICカードについてリサーチを行なった.また,システム設計のためにどのようなソフトウェアにするか,どのようなサーバがあるか理解を深めた.
6月 今後の流れ・予定立てを行なった.それを踏まえた上で今後何を重点的にやるかを考えた.
またXAMPPのなかにプログラムを作成した.またアンケートを行った.アンケート場所として,シエス
タハコダテにてアンケートを実施した.それを踏まえた上で,中間発表の準備としてスライド作成を行った.
7月 中間発表の準備と発表を行った.実際にデモ機を作成して実際に中間発表で発表した.中間
発表終了後,見に来てくれた人からの評価シートを元に考察し,報告書作成を行った.また,学習フィードバックとポートフォリオの作成も行なった.今後の展開について,グループを分けて長期休暇にて新たなサービスについて話し合いをするように課題とした.
9月 新しいサービスについて夏休みで考えた内容について話し合った.また外部公開用にAzureに移行する準備を行った.
10月 Azureで外部公開できるようにプログラムの見直しやデザインの作成,データベース設計を行った.
11月 アカデミックリンクにてICAS割引についての発表会を行なった.また,そこでサービスについて意見をもらうためにアンケートを行なった.また外部公開用にCSSをつかいホームページをデザインしていた.
12月 ICAS割引発表用のスライドの内容決めも行なった.成果発表にてデモを行なった.そこで,成果発表は体育館にて行い,私は後半の発表にてICAS割引についての質疑応答を行なった.また,デモについての評価や意見ももらった.
1月 見に来てもらった人からの評価シートを元に報告書の作成を行なった.学習フィードバック
やポートフォリオの作成も行なった.
(※文責: 東爵亜久)

4.8.3 斉藤大
5月 Raspberry Pi班として活動.ICカードの読み取りを進める.
6月 ICカードから読み取れる情報をもとに，Raspberry Pi上で割引対象かどうかを判断するプロ
グラムを作成.新開発技術者サロンにてプレゼンした.また，シエスタハコダテにて今後のニーズ調査のためのアンケートを行った.
7月 中間発表の準備と発表をした. 中間発表の後, 見に来てくれた人からの評価シートを元に考察を行い報告書を作成した．また, 学習フィードバックとポートフォリオの作成も行なった.今後の展開について, グループを分けて夏休み中に新たなサービスについて話し合うこととした.
9月 新しいサービスについて話し合った結果，スタンプラリーを作成することに決定した.
10月 ICAS割引についてプロモーションビデオを作成する計画を立てた.また，その計画に基づいてプロモーションビデオを作成した.

Group Report of 2017 SISP

- 30 -

Group Number 9

Development of location-based services

11月 10月に作成したプロモーションビデオを，アカデミックリンクにて実際に放映した.同時にICAS割引のシステムについてデモを行い，様々な意見をいただいた.
12月 ICAStampについてのプロモーションビデオの作成計画を立て，撮影を行った.そこで完成したビデオを，最終発表で放映した.そこでまた評価シートを記入していただき，考察を行って報告書の作成計画を立て，学習フィードバックとポートフォリオの作成と共に冬休み中に進めてくることとした.
1月 引き続き報告書や学習フィードバック，ポートフォリオの作成を進めていった.
(※文責: 斉藤大)4.8.4 石戸雄太
5月 Raspberry Pi班として活動を開始.Raspberry Pi上でPythonを用いてICカードの履歴読み取りを行えるプログラムを作成する.その際，読み取ったデータをどのように活用するかについてサーバ班と相談し，データの調整を行なった.
6月 引き続きデータの読み取りプログラムを作成.サーバ間のデータ通信機能についても実装を開始.新技術開発サロンに参加するため，発表資料も作成し，プログラム作成はほぼ自分が担当したため，質疑応答にも対応した.また，無印良品シエスタハコダテ店にてアンケート調査を実施した.
7月 中間発表に向けての準備および発表を行なった.その後，評価シートを集計し，全員と共有・指摘された点について全員で相談した.その後，中間報告書の作成を行なった.
9月 8月に個人で行なった活動について報告しあった.
10月 Raspberry Piとプリンターを接続し，クーポンの発行を行うためのプログラムを作成した.
プリンターがむき出しであったため，プリンターを覆うための箱の設計図を作成した.また，アカデミックリンクに向けて資料作成を行なった.
11月 引き続きプリンターの箱の作成を行なった.設計後は主にレーザーカッターの使用部分について担当した.アカデミックリンクにて発表を行なった.その後，コワーキングスペースに端末を設置するための連絡や，実際の設置について全て担当した.また，サーバ担当者の詰まっていた部分についてヘルプを行なった.11月後半は最終発表に向けての準備を進めた.
12月 最終発表に向けての準備および発表を行なった.その後，評価シートを集計し，全員と共有・指摘された点について全員でまとめた.その後，最終報告書の作成を行なった.その際，ソースリストの作成を担当教員に指示されたため，GitHubにてソースコードを公開するための作業のほぼ全てを担当した.
1月 最終報告書・学習フィードバックの作成を行なった.
(※文責: 石戸雄太)

4.8.5 西久保有沙

5月 サービス班として，ICAS割引の他に位置情報を用いたサービスを作れないか検討していた.
6月 ICAS割引を実装するため，現在のICカード所持率や公共交通機関の利用状況など，必要なデータを収集するためにアンケートを実施することになり，アンケート用紙を作成した.
7月 中間発表に向けて，ICAS割引の内容とアンケート結果を説明するためのポスターを作成した.

Group Report of 2017 SISP

- 31 -

Group Number 9

Development of location-based services

9月 8月中に考えてくることになったICAS割引以外の新たなサービスを全員で発表した.発表の結果，スタンプラリーを作ることになった.
10月 ICAS割引で用いる，クーポンを発券するためのプリンターを収納するケースを作ることになった.適切なサイズや用いる材料について検討した.
11月 中密度繊維板を用いてプリンターケースを作成した.また，アカデミックリンクで用いる
アンケートを作成した.
12月 最終発表に向けて，アカデミックリンクでの反省を生かしプリンターケースを，取り外しがしやすいように作り直した.
1月 最終発表会での反省，各提出物の作成を行った.
(※文責: 西久保有沙)Group Report of 2017 SISP

- 32 -

Group Number 9

Development of location-based services

第5章 結果と評価
5.1 グループ内の結果・評価
5.1.1 サービス面の評価
サービスの内容に関しては,ICカードの所持率やサービスのニーズに関して詳しく調査することができた.しかし,サービスの運用テストに協力してくれる店舗が見つからなかったため,店舗で実際にサービスをテストすることができず,店舗側のメリットや実際にサービスを導入するコストを調査することができなかった.
プロモーションビデオに関して,計画的に撮影を進めることができ,内容も簡潔かつ明瞭に伝えられたと感じている.
（※文責: 斉藤大）5.1.2 システム面での評価
ICカードの利用履歴を読み取るプログラムの作成は,停留所の情報を読み取ることができなかったが,ユーザが使いやすいものとなった.
サービス利用者データを保存するデータベースサーバの作成は,ICカードが履歴やIDｍ等が読み取ることができ,そこからデータベースの設計を行い,実際に作成することができた.また管理者が操作しやすいようにレイアウト等を行ったため,誰でも操作しやすいものとなった.
GUIに関しては,ライブラリが限定されているために,理想的なGUIが作成できず,最低限のもので作成した.
プリンターに関しては,実際にRaspberryPiに接続し,稼働している.外側もデザイン性に凝り,皆から愛されるプリンターとなった.
（※文責:東爵亜久）

5.2 グループ外部からの評価
本プロジェクトの取り組みについて, グループ外部の方から意見をいただく機会が度々あったので, それぞれのイベントで得た意見などに関して記載する.
（※文責: 北野 雅貴）

5.2.1 新技術開発サロン
2017年6月21日に函館の複数の企業の方々と事業や取り組みに関して交流を行う「新技術開発サロン」に参加した.新技術開発サロンで企業の方々から,本プロジェクトの取り組みについて話を聞いてもらい意見をいただいた.得た意見としては,● ICカードの規格に関してFelica方式で読み取っているのか,他は不可能か● Raspberry Pi は OS のバージョンの違いによってフリーズするので気を付けた方が良い.

Group Report of 2017 SISP

- 33 -

Group Number 9

Development of location-based services

●
●
●
●
●
●

無
゙印良品をアンケート調査の場所に選んだ理由
公共交通機関を利用する人が来るのか
サービスの対象者を考えた方がいい
IC カードをつかう年齢層やIC カードが浸透しているのかを考えると,学生向けのサービス
か,お年寄りむけに浸透させるためのサービスなのかを考えるべきお年寄りが行きそうな場所を考えると病院が多いと思うので関連したサービスが何か必要だと思う
ポイントとしてつかうよりものとして何か渡した方がお年寄りはわかりやすいなどの意見をいただいた.これらの意見は前期の中間発表の前にいただけたことで, サービスの概要を深めたり, 取り組むべき課題を見いだすことができた.
（※文責: 北野 雅貴）

5.2.2 中間発表
プロジェクトの前期の活動の評価として,中間成果発表会に出展した.365教室の前のスペースを使って,スライドショーと実機による実演を織り交ぜて行った.
また,発表の場で同時にアンケートを実施した.アンケートの内容は,発表技術と発表内容についてそれぞれ10段階で評価していただくというものだ.また,なぜその評価になったのかという理由や感想も同時に記入していただいた.最終的に,43人の方々にアンケートを解答していただくことができた.
まず,発表技術についての評価を,図5-1のグラフに示した.平均評価は6.7という結果であった.また,なぜその評価になったのかという記述で多かった意見を抜粋したところ,● 実機での実演は良いと思った.
● スライドショーがシンプルかつ要点は抑えられていて見やすい.
● というものが上げられた.その一方で,● 話すのに必死で伝えようとしていない.
● デモが失敗したときのために映像を用意するべき.
● 声が小さい人がいた.
などという意見もいただいた.

図5-1 中間発表の技術の評価を示したグラフ

Group Report of 2017 SISP

- 34 -

Group Number 9

Development of location-based services

発表技術の総評としては,声が小さく,カンペを用意したことで話すことに必死になってしまい,
伝えようとする意思が疎かになってしまったという点,デモが上手くいかなかったときのために動画を用意しておらず,タイムロスをしてしまった点が大きな反省点として挙げられた.
次に,発表内容についての評価を図5-2のグラフに示した.平均7.2という評価を受け,その理由や意見,感想で多かったものを抜粋すると,● アンケートでニーズ調査を行ったのは良い.
● 今後の発展が楽しみ.
という結果になった.その一方で,● 小売店側のメリットが少ない.
● アンケートの母数がない.
● システム混雑時の対処法が示されていない.
● 導入コストはどうするのか.
● 割引の形式がわからない.
といった意見もいただいた.

図5-2 中間発表の内容の評価を示したグラフ
発表内容の総評として,実際にアンケートを取ってニーズを調査した点と,システムを形にして発表で示せたという点は評価できたといえる.しかし,小売店側へのメリットや導入のためのコストといった問題の解決を活動の中で解決し,示すことができなかったといえる.これは,とても重要な問題であるため,解決策を引き続き後期で模索した.
（※文責:斉藤大）5.2.3 アカデミックリンク
後期までに作成した一連のサービスを11月11日に行われたアカデミックリンクで実演,発表を行った.ほかの学生や一般の方々と意見をいただくことができた.
アカデミックリンクで得た意見としてGroup Report of 2017 SISP

- 35 -

Group Number 9

Development of location-based services

ご年配の人は車を持っていない人が多く,バスの利用頻度が高いため少しでも補助されるとうれしい.
● 本サービスの導入で車の利用者が減れば排気ガスを削減できるため,環境がよくなる.企業が環境保全活動の一環として取り組める.
● 企業側の導入メリットが欲しい.
● 実際にデモ機を置きたい.
といった意見をいただいた.
この結果をこれからのICAS割引サービスに活用していけるように話し合いを行ってサービスの基盤を固めていくことができた.
（※文責: 東爵亜久）

5.2.4 コワーキングスペースでの運用実験
前述のアカデミックリンクにて,コワーキングスペースの運営者よりICAS割引サービスについて
実験協力の申し出があった.運営者との相談の上,12月に実際に設置・運用することとなった.実際に運用することでいくつかのフィードバックをいただいた.それらはGUIに対してや,モバイルICカード（携帯端末で動作する近距離無線通信機能を用いてICカードと同じ動作を実現するもの）への対応といったシステム面でのものが全てで,サービス自体への指摘はなかった.
（※文責: 石戸雄太）

5.2.5 最終発表
プロジェクトの年間の活動の評価として,最終成果発表会に出展した.体育館の入り口と,体育館の約4分の1のスペースを用いて,本プロジェクトの全サービスであるICAS割引とICAStampを実際にシステムを体験していただくことに重点を置いた発表形式をとった.体育館の入り口でプロジェク
ト全体の目的やこれから行われる概要の説明を全体に行い,その後ICAS割引の説明を体育館内でス
ライドと実演を織り交ぜて行った.また,入り口にプロジェクターとスクリーンを設置し,前述のPVを実際に放送した.最終発表の様子を図5-3に示す．

図5-3 最終発表の様子

Group Report of 2017 SISP

- 36 -

Group Number 9

Development of location-based services

また,最終発表の場でも同時に,中間発表と同様のアンケートを実施した.最終的に,43人の方々にアンケートを解答していただくことができた.
まず,発表技術についての評価を,図5-4のグラフに示した.平均7.8という評価を受けた.また,なぜその評価になったのかという記述で多かった意見を抜粋したところ,● デモンストレーションがあったためわかりやすかった.
● はっきりと話していて聞き取りやすかった.
● 順路に沿って説明されていくのは面白い.
というものが上げられた.その一方で,● ブースを分ける必要があったのか.
● 段取りがもっと良ければよかった.
● 実機のディスプレイが小さく,見にくかった.
などという意見もいただいた.

図5-4 最終発表の技術の評価を示したグラフ
発表技術の総評としては,デモを用いた発表をするといったことは正解だったといえる.前期に多く寄せられた,声が伝わらないという問題も上手く解決できたといえる.反省点は,段取りが悪く聴衆全体が快適かつ明瞭にサービスを理解してもらえるデモだったとは言えないということが挙げられ,そういった点を今後の活動で活かしていきたい.
次に,発表内容についての評価を図5-5のグラフに示した.こちらも,平均8.3と概ね良い評価を受けた.評価の理由や意見,感想で多かったものを抜粋すると,● 是非普及して欲しい.
● 既存のシステムを上手く地域貢献に結び付けている.
● 今後の発展が楽しみ.
という結果になった.その一方で,● 小売店側のメリットが少ない.
● コストを小売店ではなく自治体が負担できないだろうか？
といった意見もいただいた.

Group Report of 2017 SISP

- 37 -

Group Number 9

Development of location-based services

図5-5 最終発表の内容の評価を示したグラフ
発表内容の総評として,実際に運用,普及されれば地域貢献につながるという意見が多く寄せられた.PVやプリンターも,サービスの内容に関しての疑問点が中間発表と比べても挙がってこなかったので効果的だったといえる.しかし,前期から掲げていた,小売店側へのメリットといった問題を後期の活動の中で解決し,示すことができなかったといえる.今後,このシステムが運用されるに当たってとても重要な問題であるため,解決策を引き続き模索していきたい.
（※文責:斉藤大）Group Report of 2017 SISP

- 38 -

Group Number 9

Development of location-based services

第6章 今後の課題と展望
本提案では,将来的に制作物を小売店や商店街に設置し,実際にサービスが行われることで交通系
ICカード，特にICASnimocaが普及することを展望としている.そのために今後の課題としてあげられることは,導入やサービス運用のコストの捻出元をはっきりさせることである.これは,中間発表
や最終発表で数多く寄せられた疑問であり,我々が年間通して解決できなかった点である.ここでは,なぜ解決できなかったのかを考察する.解決法が見つからなかった原因として,サービスの利用者となる人にしかアンケート調査をできなかった点が大きいと思われる.前期の活動の中で,実際にシステムを体験していただき,利用者を対象とした調査を実施することはできたものの,実際に導入するにあたって必要となるコストに関して小売店や自治体に対して調査をすることができなかった.また,システムのテストに協力してくださる店舗が見つからず,利用者と小売店の両者のメリットが最大となる価格や小売店の利用者のニーズに合わせた割引額の調査,利用者が殺到した場合端末に何かしらのトラブルが生じるのかどうかの調査も不十分で終わってしまった.
全体として,システムや筐体,宣伝用コンテンツの完成という一生徒の中だけでたどり着ける終着点にたどり着くことができたという点では,今期のプロジェクトの成果として充分評価できると我々は考える.今後の予定として,実際に店舗と協力してシステムやサービスの内容の問題点を見つけ,解決していき最終的にサービスの開始までたどり着くということが挙げられる.
実際にサービスが運用されたときの地域貢献の面に関しては多くの期待が寄せられているということも最終発表のアンケート調査の中でわかったので,来年度以降のプロジェクトでは,現状のサービスの提案やシステムをたたき台として,実際に店舗と協力してテストを進め,改良を繰り返してよ
り良いサービスの提案,開始までたどり着いて欲しい.
（※文責:斉藤大）Group Report of 2017 SISP

- 39 -

Group Number 9

Development of location-based services

付録 A 利用した技術
A.1 新規習得技術
A.1.1 Python 今回作成したアプリケーションを作成するにあたり,Pythonを習得した.

A.2 利用した既存技術
A.2.1 python-usb Python上でUSBに簡単にアクセスできるよう”python-usb”[1]というライブラ
リを使用した.
A.2.2 nfcpy NFCデバイスと近距離無線通信が行えるライブラリ(nfcpy)を利用した[2].
A.2.3 Tkinter Python からGUIを構築・操作するための標準ライブラリである”Tkinter”を利用した.
A.2.4 requests Pythonでデータ通信を行えるHTTPライブラリである”requests”を利用した[3].
A.2.5 BeautifulSoup Python でログイン機能付きサイトのスクレイピングを行う”BeautifulSoup”を利用した.
[1] https://github.com/walac/pyusb[2] https://github.com/nfcpy/nfcpy[3] https://github.com/requests/requests（※文責: 石戸雄太）

Group Report of 2017 SISP

- 40 -

Group Number 9

Development of location-based services

付録 B ICAS割引操作マニュアル〜端末側の操作方法〜
用意するもの● RaspberryPi内蔵モニタ端末(a)● プリンター(b)● PaSoRi(c)● ケーブル5種(d~h)

手順1 (e)と(h)のケーブルを接続する.

Group Report of 2017 SISP

- 41 -

Group Number 9

Development of location-based services

手順2 (e)のケーブルをプリンターに接続する.

手順3 端末とプリンターを(g)のケーブルで接続する.

Group Report of 2017 SISP

- 42 -

Group Number 9

Development of location-based services

手順4 PaSoRiと端末を(d)のケーブルで接続する.

手順5 手順1で接続したケーブルと(f)のケーブルで端末を電源に接続し,起動する.

手順6 アプリケーションが自動で起動するので,読み取りたいICカードをPaSoRiに置いて,読み取
り開始をタッチする.

Group Report of 2017 SISP

- 43 -

Group Number 9

Development of location-based services

故障かな?と思ったときは・・・● 端末が起動しない
配線が図のようになっているか確認する.

●

プリンターが起動しない
時間を置けば解決する場合がある.

●

アプリが強制終了してしまった.
読み取りボタンを連打すると落ちやすい.また, free-wifiや有線などでサーバと接続されているか確認する.アプリを再起動する場合は,/home/pi/Desktop/readICCard_RaspbherryPi/ICCardReadSystem.shを起動する.
● その他トラブルはGoogleで調べること.
（※文責:斉藤大）Group Report of 2017 SISP

- 44 -

Group Number 9

Development of location-based services

付録 C ICAS割引操作マニュアル〜Web側の操作方法〜
用意するもの● webページがみれるPC● ネット環境● データベース
サイトURL：http://funlbs.azurewebsites.net/login_lbs/public_html/login.php
準備として● ログインアカウントを作成
機能の説明● 登録～IDｍを手動で入力が可能● area登録～登録する地域を指定もとい登録可能● 利用者一覧～登録してあるIDmを確認可能～area消去～登録した地域を削除～IDｍ消去～登録したIDmを削除～areaリスト～登録した地域を表示～IDｍリスト～登録したIDmを表示～user一覧～ログインしている人を参照

データベースの説明
今回はSQL Serverを使用してデータベースの構築を行った.テーブルはICAS割引のArea情報と利用ユーザ情報とログインユーザ情報を記録したテーブルを3つと作成した.テーブルの作成手順を以下に示す.
まず,Areaテーブルの作成を行う.
CREATE TABLE icas_area(
Area int UNIQUE,
Place varchar(11) UNIQUE);

地域を区別するarea,とそれを番号で区別するPlaceを作成.次に利用ユーザ情報のテーブルを作成した.以下に示す.
CREATE TABLE icas_users(
IDm varchar(155) not null PRIMARY KEY ,Area int not null PRIMARY KEY,
Date datetime);

Group Report of 2017 SISP

- 45 -

Group Number 9

Development of location-based services

ユーザを識別するための固有のIDであるIDmと先ほど記述した地域の区別するareaである.あと日
付を管理するDateである.

次にログインに用いるデータ管理のためのテーブルである.以下に示す.
CREATE TABLE LOGIN_USERS(ID INT(11) NOT NULL PRIMARY KEY NUL AUTO_INCREMENT,EMAIL VARCHAR(255) UNIQUE,PASSWORD VARCHAR(255),
CREATED DATETIME,
MODIFIED DATETIME);（※文責:東爵亜久）Group Report of 2017 SISP

- 46 -

Group Number 9

Development of location-based services

付録 D 環境構築手順
D.1 プログラムリスト
ICAS割引のサービスを提供するにあたり,アプリケーションを作成し,サーバを利用した.
それぞれのソースコードはGitHubリポジトリ[1]にプッシュした.
以降プロジェクトにて私たちが作成したソースコードを利用する場合は担当教員との相談の上利用してほしい.Forkを行ったり,新たに書き直していただいても構わないが,プッシュ先のリポジト
リは2017年のプロジェクトリポジトリであるため,管理権限の委譲などは行わない.
次のページで「Raspberry Pi 3に RC-S380を接続してFeliCaカードを読み込む方法」と「Suicaの履歴を読み取る方法」を記載しているので,必要であれば参考にしてほしい.
[1] GitHubリポジトリ https://github.com/FUN-2017-Project09（※文責:石戸雄太）

D.2 Raspberry Pi 3に RC-S380を接続してFeliCaカードを読み込む方法
前提：raspbian・Python2が入っている.apt-getが最新バージョン.
1. lsusbでカードリーダーが認識されているかチェックする(表2)2. Desktopとかにmkdirでディレクトリを作り,そのディレクトリに移動する.
3. Pythonモジュールをインストール.
4. bzrをインストール.
5. nfcpyをインストール.
6. 動作チェック(tagtool.py showだと1度,showを-lに変えると連続で読み取る)

表1 インストールに必要な入力
mkdir hoge
cd hogesudo apt-get -y install python-pip python-usb
sudo pip install libusb1 pyserial
sudo apt-get install bzr
bzr branch lp:bfcpy trunk
sudo python trunk/examples/tagtool.py

表2 lsusb$ lsusb
Bus 001 Device 005: ID 054c:06c3 Sony Corp.
Sony Corp.があればOKGroup Report of 2017 SISP

- 47 -

Group Number 9

Development of location-based services

D.3 Suicaの履歴を読み取る方法
前提：GitHubのアカウントを持っている(持っていない場合はzipを解凍できるソフトを入れること)
1. hogeディレクトリに移動する.
2. GitHubからリポジトリをクローンしてくる(必要ならばGitHubのアカウント名とパスワードを入力)
3. nfcpy-suica-sampleディレクトリ内のStationCode.csvをhoge/trunk/examplesの下に移動させる.（mvでなくcpでも良い）
4. history.pyというファイルを作成し,以下Referenceサイト内の「ブロックをパースする」
項目下のコードを写す.
5. 実行する
cd hogehoge
git clone https://github.com/m2wasabi/nfcpy-suica-sample.git
mv nfcpy-suica-sample/ StationCode.csv /Desktop/hoge/trunk/examples
sudo python trunk/examples/history.py（※文責: 石戸雄太）

参考文献
http://raspberry.mcoapps.com/archives/128
http://coro.hatenadiary.jp/entry/2015/12/23/233434
http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_felica_nfc_rc_s380/（※文責:石戸雄太）

Group Report of 2017 SISP

- 48 -

Group Number 9

Development of location-based services

第Ⅱ部

ICAStamp活動報告書

Group Report of 2017 SISP

- 49 -

Group Number 9

Development of location-based services

第1章 背景私たちのプロジェクトは,位置情報を利用して人々の生活が便利と感じてもらうようにするサービスを考え実装することが目的である.そこで考えたのが従来のスタンプラリーを電子化する方法である.スタンプラリーとは,一定のテーマの中で各地点に置かれたスタンプを台紙に押していき集
める企画である.集めたスタンプの個数に応じてプレゼントなどの特典がもらえるようにもしている.
スタンプラリーは地域の発展や知名度上げるための一環としてイベント行事として行われている.主催者は主にJRや地下鉄・バスなどの事業者であり,長期休暇の時期などにスタンプラリーを行うことで子供などが参加しやすい時期に開催している.主催者は,ゲーム性や利便性を考えることで参加率の向上を行なっている.例えば,参加率を向上させるためにアニメのキャラクター・特撮やマスコットキャラクターを使用したスランプラリーを行なっている.スタンプにはその地域特有の背景や建物, 全国的に有名なキャラクター（ポケットモンスターなど）を使用したスタンプが存在す
る.また,台紙もその地域のキャラクターを載せたり,地域の情報を添付された地図にしたりしてその地域の特徴などを生かしたデザインをしている.駅・コンビニエンスストアなど身近なスポットを設置することで参加率の向上を目指している.その観光地地域特有の建物・飲食店の近くに設置することで観光ついてのスタンプラリーへの参加率の向上を行なっている.
参加きっかけとして,大半がお子様の「スタンプラリーをやりたい」という声から始まる[1]. ス
タンプラリーは子供からの評価も高く, 親子で参加しているところも多い[2].また,動物園や水族館などに来た人たちがついでにスタンプラリーへ参加したりしている.旅行やイベントなどでスタンプラリーに参加した人たちにはいい思い出として残っているという声も上がっている[1].スラン
プラリーを行うことで人とのコミュニケーションをいつも以上に取れたり,絆が深まったりしたな
どの声も上がっている[1].また,自分たちが知らなかった場所を知るきっかけになり,そして新たな知識を得る機会などが存在する.
以上の例はスタンプラリー参加実態について調査したものであるが,スタンプラリーが全年代に楽しませる方法,便利と感じスタンプラリーを行いやすい方法,また時間内で全てを回りきれる方法,そして新たなスタンプラリーの方法などまだまだ隠されている可能性が存在する.
従来のスタンプラリーのクイズのマンネリ化や台紙の印刷や紙媒体形式によるクイズ出題のマンネリ化が課題とされている.そこで本プロジェクトは,電子的なスタンプラリーを行うことで台紙の持ち歩きが不要,また電子的にすることで新たにゲーム性の追加や動画でのクイズ形式など様々な発展が可能になるのではないかと考えた.
(※文責：高崎昌宏)

1.1 該当分野の現状・従来例
現在,位置情報を利用する方法としてスマートフォンに搭載されているGPSを使用したサービスが身近となっている.例えば,Pokemon GoやIngressなど位置情報を利用したゲームである.
Pokemon Goとは,スマートフォンのカメラを通して見た現実の世界の風景の中にポケモンが登場
し,捕まえられるゲームである.Pokemon Goは,位置情報と拡張現実を活用したゲームである.端末の画面へ目の前にある道路や風景が表示され,さらにその中にゲームのキャラクターが現れる.Pokemo
n Goの機能として位置情報を利用した「ポケストップ」というものがある.ポケストップとは,プレイヤーがより多くのポケモンを捕まえるために使うアイテムを手に入れられる場所のことである.
これにより画面上にロゴが表示され, またその場所の名前なども表示される.Ingressとは, エキゾGroup Report of 2017 SISP

- 50 -

Group Number 9

Development of location-based services

チックマターを巡り,世界中のプレイヤーがレジスタンス（青）とエンライテンド（緑）の2陣営に別れて,地図上の「ポータル」と呼ばれる拠点を取り合い,コントロールフィールドと呼ばれる陣地を広げていくというものである.位置情報を利用し,実際の地図に情報を重ねたAR（拡張現実）要素, 各地に設定されたポータルを巡るスタンプラリー要素や 陣取りのパズル的要素などが存在す
る.
これらはGPSを利用した位置情報ゲームだが,そのほかに位置情報を取得する方法として非接触IC
カードが存在する.非接触ICカードの関連として,FeliCa・NFCというものがある.FeliCaとは,sonyの非接触ICカード技術方式のことである.非接触であるため,高速でデータを送受信する.データは何度でも書き換えることができ,また厳重なセキュリィティーである.そのため,電子マネーやマンションなどの鍵としても利用されている.NFCとは13.56MHzの周波数を利用する通信距離10cm程度の近距離無線通信技術である.非接触ICカードの通信および機器間相互通信が可能である.非接触ICカー
ドの国際標準規格ISO/IEO14443に規定されるType-A,Bの通信技術を,それぞれNFC-A,B,JIS X 6319-4に基づくFeliCaの通信技術をNFC-Fと称し,NFCフォーラムでは,NFC-A・B・Fの3つの通信技術を等価に扱うグローバルな互換性実現させる使用開発が行われている.非接触ICカードにも様々ある.例えば,公共交通機関を利用するために使用する交通系ICカードがある.非接触ICカードはカード内にICチップが内蔵されてあり,記録されているデータのセキュリティ性が高く,偽造・変造などがしにくい.非接触ICカードの種類として公共交通機関を利用するときの決済として使用される交通系ICカードが存在する.交通系ICカードにも様々な種類がある.例えば,PASMO・Suicaなどその地域対応のカードが存在している.図1－1に示す.
現在函館では,ICASnimocaカードが普及している.公共交通機関利用以外にも様々な用途として使用されている.例えば,商品購入の決済時いわゆるプリペイドカードや社員証などに使用されている.
カード1枚で,カードの固有番号や残高なども読み取ることができる.また,どの駅で乗車/降車したのかなど判別ができる.
そのため,誰のICカードであるかなどの識別が可能となっている.現在,商品の購入にはICカードが使われている,いわゆる電子マネーである.かざすだけで簡単に決済が完了する.溜まったポイン
トを電子マネーに変換することも可能となっている.また盗難・紛失の保証がクレジットカードと同じ対応になっている.

図1-1 ICカード一覧(※文責：高崎昌宏)

Group Report of 2017 SISP

- 51 -

Group Number 9

Development of location-based services

1.2 現状における問題点
本グループでは,従来のスタンプラリーにはコストパフォーマンスが高い問題点とクイズ形式のマンネリ化を改善するために,公共交通機関と関連を持つICカードの位置情報, Raspberry Piを利用しようと考えた.
従来のスタンプラリーは,台紙・スタンプと景品を用意し,一定の箇所に設置しその地点を回りきると景品交換可能というのが一般的なスタンプラリーである.しかし従来のスタンプラリーは,行うにあたって台紙の用意やスタンプの準備などで費用がかかっている.その理由として,その時期に対応したデザインに台紙を変えなくてはいけない.また,印刷すると何枚もの台紙が必要となり資源が大量に必要となってしまう.さらに, 従来のスタンプラリーを行なった後の台紙の管理として,大多数の人が捨ててしまい思い出として残りづらいものとなってしまっている[1].新たなキャラクタ
ーを作ってそれをスタンプにするにもまた費用がかかってしまい手間もかかる.さらに,スタンプを新たに作るとなるとまた新たなスタンプが必要となるため費用がかかる[3].
その他の問題点として,クイズ形式のマンネリ化があげられる.例えば,「函館の情報科大学はどこでしょうか？」という問題が台紙に書かれていたとする.答えは,函館未来大学なので答えがわかった人はスタンプの位置を知ることが可能となる.しかし,現代はSNSが流行っているため簡単に情報が広まってしまう.そのため,紙に掲載しているとその問題1つだけしかないので,誰かが情報を流してしまったら簡単にスタンプを獲得できてしまう.そのほかの問題点の例として,クイズを解かなくてもたまたまその場所に行ってスタンプを見つけてしまう可能性があり,台紙にクイズを掲載しても意味がなくなってしまう.
そこでICカードの位置情報とRaspberry Piを使用することでマンネリ化したクイズに変化を付けられる.ICカードの固有番号を利用することで,そのカードの判別を行うことができる.また,Raspbe
rry Piを使用すればその固有番号や情報の読み取りを行うことができる.また作成にあたり,台紙の情報をディスプレイに表示させることによって従来のスタンプラリーのように紙への印刷が必要な
くなり,画面上で変化させることができる.また,手軽に修正も行えるので,刷り直しなどの手間や費用の面でも気にすることがなくなる.
このようにICカードとRaspberry Piを使用することで,個別登録が可能となり景品を何回も交換するという不正を取り締まれる.また,資源の大量消費面（台紙の印刷やスタンプの作成など）や参加者が所持している台紙の処理などを考える必要性がなくなる.このように手軽かつ便利である新たなスタンプラリーを提供できるのではないかと考えた.
(※文責：高崎昌宏)

1.3 課題の概要
本グループは,位置情報とスタンプラリーを組み合わせたサービスを提案したいと考えた.そこ
で,このサービスを実現する上でいくつか課題があった.
近年では,スマートフォンを使用したスタンプラリーが存在する.そのため,スマートフォンとIC
カードをどのように差別化できるのか個人識別がしにくいなどが上がった.そのほかにも,位置情報
としてGPSが存在するためGPSとICカードとの差別化も上がった.
また機械を使う上で提供者にとってどのようなメリットが存在するか,また新たなスタンプラリーを行うに当たってどのような機能を追加できるかが問題点として上がった.
これらの点より,新たなサービスを展開することを課題とした.
(※文責：高崎昌宏)

Group Report of 2017 SISP

- 52 -

Group Number 9

Development of location-based services

第2章 サービスの提案と実現に向けた取り組み
2.1 本グループにおける目標
本グループの目標は, 本プロジェクトの目標である「屋内外の位置情報を利用して生活を便利か
つ豊かにする新しいサービスを考案し実現すること」に付随しない. 本プロジェクトの取り組みであるICAS割引の電子機器やシステムを応用し, 新たなサービスを提案し実現することである. ICAS
割引のために開発したものを応用, 改造し, 他に有益なサービスを展開できないかと考え, このグ
ループが発足した.
そこで, ICカードを用いたデジタルなスタンプラリーを提案し実装することを目標とした. スタ
ンプラリーカードの役割をICカードに持たせて, 前述したICAS割引の電子機器やシステムと組み合わせることで, 新しく動的なスタンプラリーを展開する. 電子機器を使用する利点である動的な特性を活かして, 地域の活性化や観光地の発展, 集客ができるスタンプラリーを目指す.
(※文責 : 福澤圭一郎)

2.2 目的を実現するための提案
スタンプラリーのスタンプの獲得状況やIDmに応じた反応, 画面遷移をするGUIやプログラムの製作, それに伴ってデータを管理するサーバの開発を提案する. また, スタンプラリーのルールを決め, そのルールに適したスタンプラリーのハードウェア部分を設計することを提案する.
(※文責 : 福澤圭一郎)

2.3 具体的な課題設定
本グループでICAStampという名称で制作しているデジタルなスタンプラリーでは, 実現するにあたって大きく分けて3つの課題を取り決めた. 1つ目として, スタンプラリーについてのルール制定である. 本来は, スタンプラリーを設置することで設置者と利用者の双方が利益を得られるように, スタンプラリーを置く団体や企業, 場所によってルールを変えられる体制が本プロジェクトの目指す形である. しかし, 今回はシステムと実際の運用のテストとしてルールを決める. 2つ目, 3
つ目は, それぞれスタンプラリーのハードウェア, ソフトウェアの製作である. 1つ目のルールに沿って設計, 実装しなければならない.
(※文責 : 福澤圭一郎)

Group Report of 2017 SISP

- 53 -

Group Number 9

Development of location-based services

第3章 課題解決のプロセスの概要
我々はICAStampのサービス実現に向けて達成すべき課題として,以下のものを挙げている.第4章
では, このスタンプラリーにおけるシステム開発の具体的な開発手法について述べる.

3.1 ルールの制定
本グループではICAS割引のプラットフォームを活用しICカードを用いたゲーム, ICAStampを考案した. 集客や観光地の発展,地域の活性化,クイズ形式の問題の提供をすることで思考力の向上などを目的とした, 紙を使用せずにICカードをスタンプラリーカードとして扱うことで様々な展開ができるようなデジタルなスタンプラリーの実現を目指した. 例えば, 台紙を使う際のデザインを考える手間を省いたり, スタンプ, 紙の経費削減ができる. また, ICカードからユーザ情報や使用時刻
が管理用データベースサーバに表示されるので, 「何時, どこで, 誰が」システムを利用しているかで知ることができ, 地域や観光地がシステムの履歴から利用頻度の多い時間帯にイベントを設定するなど, 地域発展に貢献できるのではないかと考えた.数か所の地点にスタンプ獲得ができる装置とスタンプ獲得数等が表示されるモニタの設置をし. また, クイズに回答するための3つのボタンを設置する. 3択のクイズにボタンで回答することで, モニタに正解か不正解を表示させる.正解
だった場合，スタンプを獲得する．全ての地点のスタンプを獲得することで景品の贈呈をする.ルールの制定とともに本グループでは, ハードウェアの製作, サーバ開発, ボタンの製作, モニタ画面の開発に分かれた上でそれぞれの作業を進めた.
(※文責 : 森谷光)

3.2 ハードウェアの製作
ハードウェア製作班は, ICAStampのサービスを屋内で実施することを想定した. 屋内でサービスを実施するにあたり, 盗難の対策と実機をしっかりと固定できるようなハードウェアの製作を目標とした.選択問題クイズを行うデジタルスタンプラリーの場合, モニタ画面上にクイズの問題と回答ボタンの両方を表示させると問題文が小さくなって見づらくなってしまったり, 回答ボタンが押しづらくなってしまったりすることが挙げられた. そこで問題文と回答を分け, 回答は3つのボタンで行うこととした. 挙げられた問題点よりモニタを見やすくするため傾斜をつけること, モニタの手前に回答をするためのボタンを突出させることでユーザインターフェースの改善を出来ると考え, 製作を始めた. 製作をするにあたり, 室内で実機を頑丈に固定でき, 且つ私たちが実機の整備ができる仕様にするためMDFを使用することとした.また, 実機をコンパクトに収めるようにした.
ハードウェアの基本構成図を以下に示す.

Group Report of 2017 SISP

- 54 -

Group Number 9

Development of location-based services

図3-1ハードウェアの基本構成図(※文責 : 森谷光)

3.3 ソフトウェアの開発
3.3.1 サーバの開発
デジタルなスタンプラリーである ICAStamp は紙などを使用せずに行うスタンプラリーである,
そのため 参加者の情報やスタンプの獲得情報を紙以外で管理しなければならない. しかし, IC カードは情報の読み取りは行うことができるが 書き込みに関しては行うことができない. そこで, I
CAS 割と同様に情報を管理するためにデータベースの構築が必要 であると考え, 基本的な構成はICAS 割引のサーバと同様に Apache HTTP Server, PHP, MySQL が内包された XAMPP を用いてデー
タベースサーバの開発を行った. 開発の方針として, 本部に設置するマスター機と各地点に設置する読み取り端末の機能にそれぞれ必要な情報を検討し, 機能を実装する. 今回は大沼国際セミナー
センターで の運用を想定し, 設置する環境や運用等の問題から MicroSoft Azure を用いず, ロー
カルサーバを Raspberry Pi 上 に構築することとした. ネットワークの構成図を図3-2 に示す.

Group Report of 2017 SISP

- 55 -

Group Number 9

Development of location-based services

図3-2 ネットワークの構成図(※文責 ：田中哉光)

3.3.2 メインプログラムの実装
デジタルなスタンプラリーであるICAStampを実現するにあたってメインプログラム及びGUIは,
利用者の目を引く大部分でありとても重要なものである. 今回は前述のルールに沿ったGUIを製作
し実装しなければならない. ICAStampでは, プログラムに信号を送る手段として, カードリーダーにICカードをかざすか, ボタンを押すかしかない. そのため, キーボードやマウスに関連するイベ
ントでアクションを行うライブラリでは上手に画面を遷移することができない. そこで, ICAS割引のICカード読み取りシステムのみを応用し, ICAStampに適したGUIの役割を担うことができるライ
ブラリを新たに探し, 運用していくことにした. それに加え, Raspberry PIに物理ボタンを回路でつなげるため, 汎用入出力(以下「GPIO」という)の操作をするプログラムが必要であった.
またプログラムとして, 本グループのサーバにあるデータベースの操作についても必要になって
くる. ICカードから読み取られた情報の紹介や登録を, 人の手ではなくプログラム上で自動に行う必要がある. この点に関して, サーバ班と連携しながらプログラム製作を進めた.
(※文責 ： 福澤圭一郎)

Group Report of 2017 SISP

- 56 -

Group Number 9

Development of location-based services

第4章 課題解決のプロセス詳細
4.1 ルールの制定
ICAStamp は IC カードを利用したデジタルなスタンプラリーであり, その時の目的に応じて観光地の情報を表示したり問題を表示したりと多種多様な展開を行うことができ, スタンプラリーの自由度はとても高いといえる. そこで, 基本的な ルールを定め, その目的に応じたルールをさらに定めることとした. 以下では基本的なルールと展開の一例としてクイズを出題するルールについて述べ, 全体の流れについての図4-1を示す.
(a)基本的なルール(ⅰ)本部にあるマスター機の IC カードリーダーに IC カードをタッチしてスタンプラリーの参加登録を行う.
(ⅱ)各地点に設置された読み取り端末の IC カードリーダーに IC カードをタッチしてスタンプを獲得する.
(ⅲ)指定された条件を満たしたら会場の本部に戻る.
(ⅳ)マスター機に再度タッチし, 条件を満たしていれば景品交換を行う.
(b)クイズを出題する場合のルール(ⅰ)マスター機の IC カードリーダーに IC カードをタッチしてスタンプラリーの参加登録を行う.
(ⅱ)各地点に設置された読み取り端末の IC カードリーダーに IC カードをタッチして問題に回答する. 問題は 3 択で あり, 設置された 3 つのボタンで回答し正解することでポイントを獲得できる. 問題に不正解しても正解するまで何度 でも問題に回答することができる.
(ⅲ)設置された全ての読み取り端末の問題に解答し, ポイントを獲得したら会場の本部に戻る.
(ⅳ)マスター機に再度タッチし, 条件を満たしていれば景品交換を行う.

図4-1 ルールの一例

Group Report of 2017 SISP

- 57 -

Group Number 9

Development of location-based services

4.2 ハードウェアの製作
4.2.1 ケースの製作
Raspberry Piとモニタ,スイッチを一体化させたケースの製作を行った.外側の板の素材には,軽量かつコストが低価格,加工が容易という点からMDF(木質繊維を原料とする成型板である中密度繊維板) の厚さ5.5mmを使用した.スイッチは, 低価格であるタクトスイッチを使用した. ケースの設計は, WebベースのアプリケーションであるMakerCaseとAdobe Illustratorを用いて行い, 設計したデータをもとにレーザーカッター(レーザー光の照射による「非接触加工」の工作機械)でパーツの作成を行った. パーツは接合部に両端部が凹凸状に噛み合うような切断をしており, ケースの上部を除きボンドで接合した. 上部は内部の点検, 部品取り外しの為に取り外し可能なふたとなっている. また, ディスプレイを設置する場所にもなっており, 立った状態で画面を見やすくするため, 木材(MDF)をディスプレイの形に合わせたものを接着し, 画面の角度を少しあげた. ケース下部には, ケースの高さを少し上げるための足をMDFで作成した. ケースの中は空洞で配線やユニバ
ーサル基板を収納するスペースとなっている. 次に, タクトスイッチとディスプレイを接続するためにユニバーサル基板にボタンと配線をはんだ付けした. (回路図は図4-3参照.)
ボタンは押下したときにずれないよう基板とケースをネジ,ナットで固定した.固定する際はケースの上面からボタンが出るようにネジにスペーサーを入れ,高さ調節を行った.
ケースの全体図を図4-2に示す.

図4-2 ケースの全体図(※文責：橋本智広)

4.2.2 機器の回路図と詳細
ICAStampで用いる機器の回路図を図4-3に,実際の回路図を図4-4に示す.今回制作したICAStampのデモ機の回路図だが，内容として，かなり構造は簡潔なものになっている. 機能としてはタクトスイ
ッチを押した状態で信号をピンへ送り，タクトスイッチを話した状態で信号を止める機能である.
回路図の詳細を示す. まず，すべてのタクトスイッチに対してグランドピンを接続する.今回は例Group Report of 2017 SISP

- 58 -

Group Number 9

Development of location-based services

として9番ピンのグランドピンを利用したが，どの番号のグランドピンを使用しても構わない.また，グランドピンへの接続を１つへ統合しているが分けても構わない.しかし，Raspberry Piへの接続はなるべく少ないほうが接続不良などの不安材料が減少することやその他機能を増やした際に，より多くのピンが必要になることが考えられるため可能な限り減らす.もう一つは信号ピンへ接続する.今回は例のため適当なピンへ接続しているが，ICAStampのプログラムで信号を受け取る
信号ピンの設定を行う必要がある.抵抗についてだが，テスターを用いて条件を満たすものを用いる.タクトスイッチに関しては方向があるので注意する.最後に作成に当たっての注意点だが，今回グローバル基盤を使用しているため，はんだごてを使用したが，必ずブレットボードを用いて試作を作ってからグローバル基盤の作成へ取り掛かること.

図4-3 機器の回路図

図4-4 実際の写真(※文責：小野優飛)Group Report of 2017 SISP

- 59 -

Group Number 9

Development of location-based services

4.3 ソフトウェアの製作
4.3.1 データベースサーバの開発

4.3.1.1 データを保存するテーブルの作成
3章の3.2で述べたようにICAStampは紙などを使用しないデジタルなスタンプラリーである. そのため, 誰がどこのスタンプを獲得したかなどの情報をデータベースに保存する必要がある. そこで, 制定されたルールからICAStampを実施するために必要な情報を整理し, それらを管理するデー
タベースのテーブルの作成を行った. 今回は景品交換を行った判断を行うゴール時間とスタンプラ
リーの達成状況を同一のテーブルで管理することは難しいと判断し, マスター機においてユーザの情報を管理するテーブルと各地点の読み取り端末でスタンプの獲得状況を管理するためのテーブルの2種類を作成した. それぞれの必要な情報の詳細を以下に示す.
(a) ユーザ情報を管理するテーブル
IDm : 一意のユーザを識別するための情報.
開始時間 : マスター機にICカードをタッチして参加登録を行った時間.
終了時間 : マスター機にICカードをタッチして景品交換を行った時間.
参加当日の景品交換の重複を避けるために利用する.
(b)スタンプの獲得状況を管理するテーブル
IDm : 一意のユーザを識別するための情報.
ポイント : スタンプラリーの問題を正解した時に獲得したポイント
景品交換を行う条件の判断に利用する.
端末番号 : 各地点に設置した読み取り端末に割り振られた番号.
スタンプを獲得した場所を区別するために利用する.
日時 : スタンプを獲得した日時.
試行回数 : 問題に解答した回数.
(※文責 ：田中哉光）

4.3.1.2 データベースサーバの機能について
ICAStamp におけるデータベースサーバの機能はマスター機とスタンプを獲得する各端末の及びデータ管理用の3つの機能がある.ここでは, それぞれの機能の詳細について以下に述べる.なお,
以下の詳細は大沼国際セミナーセンターでの運用を想定したものである.
(a)マスター機
スタンプラリー開始時に参加登録としてマスター機のICカードリーダーにICカードをタッチし,ユーザ情報を管理 するテーブルにICカードのIDmとスタート時間を保存する. 各地点の読み取り端末を一か所も回らず再度タッチした場合はスタート時間を再度タッチした時間に更新して再度参加登録を行う.各地点を巡ってからタッチした場合,それまでに巡った地点や獲得ポイントなどのスタンプラリーの結果を確認し,景品交換が可能かどうかを巡った地点や獲得したポイン
ト,またその日に景品交換を行っていないかなどの情報から判断を行う.そして景品交換を行ったGroup Report of 2017 SISP

- 60 -

Group Number 9

Development of location-based services

場合,ユーザ情報を管理するテーブルにゴール時間を保存し,その参加者の各地点のデータを削除する.
(b)各地点の読み取り端末
スタンプラリー会場の各地点に設置された端末のICカードリーダーにICカードをタッチし,データベースに問い合わせて参加登録を行っているかを検索し,していなければ参加登録を行うよう表示する.参加登録を行っており,その地点の問題に正解していなければ問題を表示する.問題に回答した場合スタンプラリーの達成状況を管理するテーブルに4.3.1.1の(b)で紹介したデータを保存する. 問題を正解する,すなわちポイントを獲得するまで何度も問題を表示し,正解した場
合ポイントを更新する.タッチした際にすでにその地点のポイントを獲得していた場合,問題を表示しない.(c）データ管理用 データ管理用ページでは上記の機能に加えて,データベースに保存されたデータをテーブル別にそれぞれ観覧することができる.
(※文責: 田中哉光)

4.3.1.3 データ管理用ページの作成
ICAS割引で作成したデータ管理用ページをもとに, データの保存や確認, 削除をウェブブラウザ
上で直観的に行うことが出来,Raspberry Pi上で動作するGUIがこれらの機能をウェブページを介して利用することを目的としてICAStampのデータ管理用ページを作成した.サーバは本来,ICカードリ
ーダーにICカードをタッチして情報を登録することを想定しているが,データ管理用ページではテ
キストボックスやラジオボタンなどを用いてデータベースのデータを保存,削除などを行うことができ以下ではデータ管理用ページの詳細な機能について述べる.
(a)マスター機
テキストボックスにIDmを登録し,初回登録時及び各地点を一か所も回っていなかった場合に参加登録のデータ ベースに IDm,スタート時間を記録する.各地点を巡っていた場合はそれまでに行ったスタンプラリーの結果を表示する.その後,景品交換ボタンを押すことで条件の達成度に応じて景品交換が可能であるかどうかを表示する.スタンプ ラリーを終了するボタンを押すことでゴール時間を保存し,その参加者の各地点を巡ったデータを削除する.
(b)各地点の読み取り端末(ⅰ)検索機能ラジオボタンで端末番号,テキストボックスにIDmを入力し,その地点のポイントを獲得していなければ問題と表示し,ポイントを獲得している,または参加登録を行っていない場合
は問題を表示しないようにする.この機能は Raspberry Pi 側が問題の表示を行う際に利用する.
(ⅱ)解答送信機能
ラジオボタンで端末番号と獲得ポイント,テキストボックスにIDmを入力し, データベース
で4.3.1.1(b)で紹介した データを保存する.すでに正解していた場合,または参加登録を行っていない場合，解答は保存されない.
(c) スタンプラリーの参加者, スタンプ獲得情報一覧
スタンプラリーの参加者の情報及びスタンプの獲得情報を観覧することができる.
(※文責 ：田中哉光）

Group Report of 2017 SISP

- 61 -

Group Number 9

Development of location-based services

4.3.1.4 時刻同期について
3.3 章で述べたように,スタンプラリーの運用を行う上でユーザの情報とスタンプの獲得時間を関連付けることが必要とされる.そのため正確な時間を扱うことが必須となる.ここで Linux シス
テムでの時刻の扱いについて整理すると,ハードウェアクロックとシステムクロックの2つから行われる.システムクロックは Linux カーネル内部に存在する時計で,全ての基準となる時計である.対してハードウェアクロックはCPU から独立していて,電源を落とした場合にもバッテリーバックア
ップによって動作をし続ける RTC(RealTimeClock)と呼ばれる時計である.しかし,RaspberryPiではこのハード ウェアクロックが物理的に搭載されていないため, 起動時に毎回 NTPサーバへのアクセスをすることで時刻の同期を行なっている.今回スタンプラリーで実装するシステムはローカル
ネットワークであるため, NTP サーバとの同期が不可能となってしまう.この状態で運用を行うと,
RaspberryPi 本体にシャットダウン時間が記録され, 起動時にその時刻から再開となるため,電源を落としていた時間分どんどん時間がずれていくといった現象が起こった.そこで RaspberryPi に
RTCモジュールを用いることで電源を落としても時刻が正確に復元されるようにした.今回はRaspbe
rry Pi用RTCモジュール v1.1 を用いた.
(※文責 ： 田中哉光)

4.3.2 メインプログラムの開発

4.3.2.1 使用した技術
位置情報を読み取り扱えるものとして,Raspberry Piというものがある.
Raspberry Piとは,英ラズベリーパイ財団が開発した超小型のシングルボードコンピューターである.
Raspberry Piには特徴が主に5つ存在する.小型で低コスト,モバイル向けのVideoCore IVというGPUが搭載,HDMI出力・USBポート・LANポートを持つため,様々なセンサ（光センサ,温度センサなど）も取り付けることが可能となっているため家にある電子機器と簡単に繋いだり関連させることが可能,Raspberry Pi自体にOSは搭載されていないがmicro-SDを通じてインストールして使用することができる.組み込みよりサーバ向けという5つの特徴がある.
Raspberry Piには様々な物を作成できる.例えば,スターウォーズに出てくるR2D2を作ったり[4],Raspberry Piでマインクラフトゲームができたりする.
その他に,データの取得や通知を行うこともできる.例えば,定期的にオフィスの状況を,センサを用いてオフィス内の状況を判断し,センサに反応すれば自分の端末に通知がくるような仕組みを作れたりもする.
Raspberry PiにICカード読み取り機をつけることで,ICカードの情報も読み取ることができる.
PaSoRi(RC-S380)で読み取れるNFCカードは,主にFeliCa規格のものとMIFARE規格のものがあります.
Raspberry Piはパソコンに性能では負けるが,簡単な物作りなどには適している.例として,防犯
カメラ・気象観測などが存在する.
（※文責: 高崎昌宏）

4.3.2.2 GUIを担うライブラリの選定
ICAS割引と違い, ICAStampでは端末に触れることはない. つまりクリックやタイピングなどのイベントを介すことなく, 画面を更新していかなければならない. これを満たすPythonのGUI関係

Group Report of 2017 SISP

- 62 -

Group Number 9

Development of location-based servicesのライブラリを探した. その結果, 主にゲーム関係に使用されているPygameというライブラリが適当であると判断した. 理由は大きく2つある.
1つ目は, PygameはWhile文の中で画面を更新し続けているという点である. 他のGUI関係のライ
ブラリではWhile文を絡めてウィンドウを表示, 更新しようとするとエラーが発生してしまう. かといってWhile文の外でウィンドウを更新した場合は, ループ処理が行われていないため, ICカードの読み取りや物理ボタンの入力による数値の変更が感知されないまま, ウィンドウが表示され続けてしまう. しかしPygameであれば, 特別な操作なしにWhile文を使用し, ICカードの読み取りや物理ボタンの入力に関する値の変化を読み取るだけで, 分岐が可能であり画面も更新できる. 他のライブラリでは, それらの値の変化をウィンドウ内のボタンクリックやキーボード入力に当てはめるなど, 複雑な手順を取る必要が出てきてしまう. また, 現在は大沼国際セミナーセンターでの運用を考え問題数は3つとしているが, この特性のおかげで, 問題数や画面数が増えても, 後々から拡張がしやすい.
2つ目は, スタンプラリーがゲームや娯楽に近いという点である.Pygameは主にゲーム関係に使用されているライブラリである. 本グループでは, 従来の紙とペンを使用した静的なスタンプラリーに対して, 動的なスタンプラリーというサービスを提案し実現することが目的である. その導入として, ゲームに近いライブラリを使用することで, 今後の展開に役に立つ場面があると考えた.
(※文責 ： 福澤圭一郎)

4.3.2.3 GPIOを制御するプログラム
今回ICAStampは大沼国際セミナーセンターで運用を想定している. その内容として, ICAStamp
はクイズ形式でスタンプラリーを行う. その際, 回答となる選択肢を用意し物理ボタンによってそれを選ぶといった形になっている. Raspberry PIの基盤とタクトスイッチをジャンパーワイヤーでつなぎ, プログラムで制御する. これにはRPi.GPIOという制御パッケージをインポートして使用する. RPi.GPIOを使い, 物理ボタンと繋がっているピンの番号の入出力設定を行い, ピンの電圧状態を読み取る. これで物理ボタンが押されたかどうかを検知することができた. これにより画面を遷移するときに物理ボタンの値を条件分岐に使用することができる.
(※文責 ： 福澤圭一郎)

4.3.2.4 サーバのページにログインし機能を使用するプログラム
ICAStampでは, スタンプラリーのサービスを楽しむにあたって, ICカードの読み取り結果をデータベースに参照することが必要不可欠になる. そのため, データベースに関する操作を行わなければならない. サーバ班がその操作を行うホームページを制作した. そのホームページはデータに関する操作を行うことができるため, 関係者以外は入れないよう, ログインシステムが設けられている. サービスではICカードを読み取りデータベースに参照するまで, すべて自動でやらなければならないため, プログラム上でログインし, それらの機能を使用する.
まずICAS割引同様, PythonのHTTPライブラリである”Requests”を使用した. このRequestsライ
ブラリを使用し, サイトとの通信を行う. ホームページにログインする際に, 入力しなければいけないのは, メールアドレスとパスワードである. プログラム上からログインする場合はこれに加え, その都度その都度値の変わるトークンというものも与えなければならない. そのため, Beauti
fulSoupというライブラリを使いトークンを取得する. 以上の3つをパラメータとして用意し, Requestsライブラリのpostメソッドを使い対象のURLに与えることでログインできた.

Group Report of 2017 SISP

- 63 -

Group Number 9

Development of location-based services

ログイン後は, データの操作をRequestsライブラリのgetメソッドを使って利用することができる. 指定のURLの最後にICカードから読み取られた情報をプラスしてgetメソッドを使用することにより, データベースのデータ操作である登録, 削除, 照会などができた.
(※文責 ： 福澤圭一郎)

4.4 個人活動詳細
4.4.1高崎昌宏
5月 サービス班として, ICカードを利用した生活を便利なものにするために意見を出し合った.
サービスを深めるために個々でICカードについてリサーチを行なった.また, サービス班にてでたサービスをまとめそのサービスについて内容を深く掘り下げていった.
6月 今後の流れ・予定立てを行なった. それを踏まえた上で今後何を重点的にやるかを考えた.
その上で,新技術開発サロンにてプレゼンにて発表会を行なった.また, グループで考えたサービス
についてどのような意見をもらえるかリサーチするためにアンケートの作成を行なった. またアンケート場所として, シエスタハコダテ・医師会病院にてアンケートを実施した. それを踏まえた上で, 中間発表の準備としてスライド・ポスター作成を行った.
7月 中間発表の準備と発表を行った. 中間発表終了後, 見に来てくれた人からの評価シートを元に報告書作成を作成した. また, 学習フィードバックとポートフォリオの作成も行なった.今後の展開について, グループを分けて長期休暇にて新たなサービスについて話し合いをするように課題とした.
9月 新しいサービスについて夏休みで考えた内容について話し合った. また, ICAS割引用のイ
ラスト作成を手書きで行った.
10月 ICAS割引の手書きイラストをスキャンして, Illustratorを用いてデジタル形式で作成した. プロジェクトメンバーからのフィードバックよりイラストの訂正も行なった.また並行して,スタンプラリーのケースの設計も行った.
11月 アカデミックリンクにてのポスター作成を行なった. アカデミックリンクにてICAS割引についての発表会を行なった. また, そこでサービスについて意見をもらうためにアンケートを行なった. 同時並行で成果物発表用のポスターのデザイン考案し作成にてIllustoratorを使用, 使う
写真の加工や切り取りでPhotoshopを使用, メインポスターの概要思案を行なった.ICAStampについての内容を家で考えそれをグループ内でさらに意見を出し合いまとめた.
12月 成果発表のポスター3枚作成し, プロジェクトメンバーからのフィードバックを受け訂正を行い完成へ持っていった. また, ICAS割引発表用のスライドのデザイン・内容決めも行なった.
成果発表にてデモを行なった. そこで, 成果発表は体育館にて行い, 私は後半の発表にてICAStampについての 質疑応答を行なった. また, デモについての評価や意見ももらった.
1月 見に来てもらった人からの評価シートを元に報告書の作成を行なった. 学習フィードバッ
クやポートフォリオの作成も行なった.
（※文責 高崎昌宏）

Group Report of 2017 SISP

- 64 -

Group Number 9

Development of location-based services

4.4.2 橋本智広
5月 ICカードを利用して人々の生活を便利で豊かなものにするサービスを実現するため, まずI
Cカードに関する情報を各々で調べた. また, サービス班にてでたサービスをまとめそのサービスについて内容を深く掘り下げていった.
6月 サービス内容がある程度決まり, 予定や詳細なルールを話し合った. 考えたサービスについて, 技術開発サロンにてプレゼンにて発表会を行った. また, 無印良品で行うアンケートの作成を行い, アンケート調査を実施した. 下旬には, 中間発表で発表するスライドの作成を行った. また, シエスタと医師会病院で行うアンケートの見直しを行った.
7月 6月に続き, 中間発表で使うスライドの作成・修正をし, 発表を行った. 中間発表後, 見に来てくれた人からの評価シートからサービスの分析を行い, 報告書の作成を行った. また, 学習フィードバックとポートフォリオの作成も行った. 今後の展開について, 長期休暇にて新たなサービスの提案を課題とした.
9月 7月の課題であった新しいサービスについて長期休暇で考えた内容について話し合った. IC
AStampについてわかりやすくわかってもらうために, 動画の作成を行った. 動画作成では絵コンテを書き,インターフェースの改善も少し行った.
10月 スタンプラリーで使うケースの設計と製作を行った. ケースの設計にはMakerCaseとIllus
toratorを使用した. 設計したデータを用いて, 工房でレーザーカッターにてMDFの切断作業を行った. また, ケースと基板の固定作業, ケースに文字の彫刻なども行った.
11月 10月に続きケースの製作を行った. また, アカデミックリンクにてICAS割引についての発表を行った.発表では, 良い評価から悪い評価まであり, 悪い評価から改善方法を考察した. 良い評価の中には, 実験的にこのシステムを導入してもらえるということがあった. 最終発表に向け,
ICAStampの発表内容についてグループメンバーと確認作業を行った.
12月 最終発表の準備として, ICAStampのデモの通し, 発表内容の確認を行った. 最終発表が終わった後, 評価シートの意見や出された質問をまとめて, 報告書やポートフォリオ, 学習フィード
バックを作成に取り掛かった.
1月 後期の活動を振り返りや成果発表の評価から報告書の作成を行った. また, 学習フィード
バックやポートフォリオの作成も行った.
(※文責 ： 橋本智広)

4.4.3 小野優飛
5月 カードリーダーを用いて取り出せる情報を模索した. カードの規格であるサイバネ規格について調べる. カードの規格であるサイバネ規格について調べる. ICカードの似た情報を用いる例などを調査する. PCにつないでリーダーを使う. 7月の冒頭にシエスタで行われる予定のアンケー
トのUIについて勉強した.
6月 7月に行われるアンケートの計画の見直しを行った. また，pythonにおいてウェブサイトとの連携を行うためのパッケージであるrequestsをインストールし試行錯誤した. Raspberry Piのディスプレイに問題があったので取り換えた. 中間発表のためのスライド作りを開始した.
7月 シエスタハコダテにてアンケートを実施し，アンケート結果を集計した. これらを中間発表のスライドへ導入した. 中間発表の最終準備を行い，中間発表を行った. 中間報告書を書き始めた. 報告書を教員へ仮提出し，添削を行ってもらい，訂正をした. 夏休み中の課題として新たなシ
ステムの考案を設けた.

Group Report of 2017 SISP

- 65 -

Group Number 9

Development of location-based services

9月 夏休みの課題を各グループ発表し新たに開発するシステムについて模索した. また，11月に行われるアカデミックリンクの参加に向けプロモーションビデオの作成の準備を行った.
10月 先月に引き続きアカデミックリンクの参加に向け準備を行った. また，新たなシステムとしてICAStampの開発を開始した. そのためにpythonを用いてGUIの開発を行った. その際にTkinterを用いて開発を試みた. ICAStampのデモ機の制作を始めた. はんだごてが必要だと判明したので練習を始めた.
11月 先月に引き続きはんだごての練習を行った. デモ機の材料を検討し購入を行った. スイッ
チや基板についてしっかりと理解できていなかったので，勉強した. また，用いるジャンパーワイ
ヤーにメス型が必要なことが判明し購入を行った. 最終成果発表の準備を行った.
12月 最終成果発表の準備を行い，実施した. その後は報告書の作成を行った.
1月 後期提出の準備，また，秋葉原での外部発表に向けて準備を行った.
(※文責 ： 小野優飛)4.4.4 森谷光
5月 ICカードリーダーでどんなことができるか自ら触って確かめた. また, サイバネ規格カー
ドとは何か調べ, ICカードについての知識を深めた. その後どのようなゲーム内容, サービスが利用者に楽しんでもらえるかを議論し合った.
6月 サービス内容が決まったのでルールや詳細決めをし, 先生からの指示をもとにサービスの改善を行った. サービスを決めるにしても, アンケートを作るにしても目的をしっかりとしていな
いと議論にならないと指摘を受け, プロジェクト全体で目的をしっかりと把握させた. 無印良品にてアンケート調査を実施させてもらった.
7月 無印良品で実施したアンケートを集計し結果から, 店の来客頻度, 年齢層, 時刻を推定できた. アンケート結果や前期のプロジェクト内容を踏まえ, 中間発表をした. 中間発表のフィードバックを経て学習フィードバック, ポートフォリオを完成させた.
9月 ICAStampのシステム概要やルールをわかりやすく伝えるために動画作成をすることにした.
動画の作成をするにあたって, 絵コンテの製作, またUI, UXを改善するためシステムのプラットフ
ォームを改善した.
10月 プラットフォーム考案後, スタンプラリーで使うケースの設計, 製作を行った. ケースの製作にはIllustoratorを使用し, そのデータから工房でレーザーカッターを使用した. レーザーカッターを使用する際に素材としてMDFを用いて作業を行った.
11月 10月に引き続きケースの製作を行った. また, アカデミックリンク交流会にてICAS割引についての発表会をした. 発表会でもらった質問, 意見から反省点を出して改善に向けて引き続き作業を行った. また, 最終発表を控えていたのでICAStampの発表内容についてグループメンバーと提案しあった.
12月 発表の最終準備をし, 自分たちの役を決めて, 最終発表に臨んだ. 発表を終えた後はメンバー間で出された質問をまとめて, ポートフォリオ, 学習フィードバックを作成した.
1月 12月に引き続き, 最終発表でもらった意見や質問をもとに, 反省点を出し, その結果からポートフォリオ, 学習フィードバックを完成させた.
(※文責 ： 森谷光)

Group Report of 2017 SISP

- 66 -

Group Number 9

Development of location-based services

4.4.5 福澤圭一郎
5月 Raspberry PI班に配属された. ICカードにまつわる知識を収集し, 周りのメンバーと理解を深めた. また, 授業内外で初めてPythonを扱うため, PC内にPythonの環境を用意し, 初歩的な内容を学んだ.
6月 プロジェクト内で各グループ, 各個人のやることが見えてき, 目標が定まった. 6月に入り
まずプロジェクトで新技術開発サロンで発表をした. 他のプロジェクトからも刺激を受けさらにサービスについての理解が深まった. またこの時期に提案し実現するサービスの具体的内容をメンバー間で統一することを重点的に行った. 個人としてはGUIの担当を行い, 初めて触れる言語のなか試行錯誤を繰り返してプログラムを書いていった. また石戸雄太氏が作り上げたICカード関連ライ
ブラリについても理解を深め, プログラムを作り上げていった.
7月 中間発表で発表を行い, 教員や学生, 一般の方々など幅広い人たちから良い意見をもらうことができた. その中には鋭い指摘もあり, 改めてメンバー間での意識を統一する必要があり, それが後期までの課題になった.
9月 8月中にあった夏休みに設定した新しいサービスについてプロジェクトで発表しあった. しかしICAS割引とその時すでに決まっていたスタンプラリーの2つのサービスのほかに1つ展開する余裕があるのかどうか議論になり, 前述の2つのサービスに集中することが決まった. またこのときI
CAStamp担当になり, スタンプラリーについて考えをメンバー間で共有した.
10月 ICAStampのプログラムの担当に決まったため, ICAS割引のプログラムから応用できるところを応用し, 都合の悪いところを考え, 新たにまたライブラリやパッケージを探した. サーバ班,
サービス班との連携はひとまず置いておき, GUIに関わるものをとりあえず，形として作った.
11月 それぞれの班が連携できる段階まで来たため, 協力して作業を進めていった. サーバ班とはサーバ班が作ったホームページの機能を使えるかどうかや, ICカードを読み取ってデータベースに登録するプログラムが動いているかどうかを確認していった. サービス班とは電子回路部分において物理スイッチの場所などハードの部分においての話し合いを行った. また発表の機会としてアカデミックリンクに参加した. 他校との交流や一般の方々との話し合いで貴重な経験ができ, 良い機会となった.
12月 最終発表前に, プロジェクト内でICAStampのデモを何回か行い, バグや不良を見つけ, プ
ログラムの修正を行った. ぎりぎりになってしまったが, 不審な挙動をすることはなくなり, 完成
形までもっていくことができた.
最終発表では, 実機を用いたデモが上手に動き, 見に来た方々にどういったサービスなのか理解を深めることができたと思う. 発表後は最終報告に向け, 互いにやってきたことを共有した.
1月 最終報告書にやったことを詳細に書いた. 引き継げる体制を整えた.
(※文責 ： 福澤圭一郎)

4.4.6 田中哉光
5月 サーバ班に配属され, サーバに関する技術や仕組みについて調査を行った. 調査の結果, Apache HTTP Server, PHP, MySQLが適していると考え, これらを内包しているXAMPPを導入して開発することとした.
6月 支給されたMACにXAMPPを導入するための作業を行い, デバックページの開発を行った. また, プロジェクト全体で具体的にどういったサービスを展開するのかについて見直し, 発表に向けたプレゼンの作成を行った.

Group Report of 2017 SISP

- 67 -

Group Number 9

Development of location-based services

7月 技術者サロンに出席してサービスの発表を行い様々な意見をいただいた後, アンケートの結果をまとめてグラフ化した. また, 中間発表に向けてスライドや原稿の改良を行った. そして,中間発表を行い, 様々意見をいただいた. 中間発表の反省や得た意見をまとめ，中間報告書を書き後期の予定について話し合った.
9月 新たなサービスについて考案したが, 内容や時間的な問題からICAS割引とスタンプラリーに集中することにした.
10月 スタンプラリーを実施するために必要な情報について整理し, テーブルを作成した. また, ICAS割引のデバッグページの改良を行った.
11月 アカデミックリンクでの発表に向けたデモ機の調整や準備を行った. アカデミックリンク
でICAS割引の発表を行い, アンケートも行った. また, スタンプラリーのデバックページの作成を行った.
12月 最終発表に向けた原稿やデモ機の調整などの準備を行った 最終発表を行い, フィードバックの結果を集計した. また, 数学の道の関係者の方と話し合い, 実際にICAStampのデモ運用を行うことになった.
1月 最終報告書を作成した.
(※文責 ： 田中哉光)

第5章 結果と評価
5.1 グループ全体の結果
本グループでの目的を達成させるために，まずサービスのデモ機の作成を目指した.サービスを行うにあたってルールの作成を担当するサービス班，問題を回答するためのスイッチ，またそれらを保護するケースの制作を担当するハードウェアの制作班，Raspberry Piに問題を表示，回答できるソフトウェアの制作班と利用者の管理するためのサーバの構築，管理班に分かれて作業を行った.
結果，ICカードの位置情報を利用したスタンプラリーのデモの制作することができた.実用にはまだ多くの問題があると思われるが，サービスの概要を説明するためには十分な出来だと言える．
また，評価についてだが，ICAStampが後期から企画されたサービスであり，外部向けに発表した機会が最終成果発表のみであるため，得ることのできたフィードバックは多くはないが貴重な意見がもらえたので改良が必要である．
(※文責 ： 小野優飛)5.1.1 サービス面の評価
サービスの内容については, アンケートなどの実施は行うことができなかったため利用者のニーズなどは正確には把握することはできなかったが, 最終成果発表会での成果から大沼国際セミナー
センターの方々や学内外の方々から好評をもらうことができた. しかし, まだ改善の余地は多々あるのでよりよいサービスを追求していきたい. また, 今回私たちの考案したサービスはデモとしてGroup Report of 2017 SISP

- 68 -

Group Number 9

Development of location-based services

作成したため, 大まかなものとなっており, ルールや詳細については運営者側との協議が必要である.
(※文責 ： 橋本智広)

5.1.2システム面の評価システムについては，ICカードの利用履歴を読み取るプログラム，利用者データを保存するデー
タベースサーバにおいては前期から取り組んでいるICAS割引の知識を活用し，制作した．GUIに関しては，現在の段階では最低限の機能を実装したのみであるため，よりユーザにとって利用しやす
いインターフェースにはまだ改良が必要である．問題を回答するためのスイッチにおいても，最低限の機能を実装したのみであるため，その他機能としてLEDライトの追加や様々な環境に対応するために防水機能の追加などを実装することが望まれる．
(※文責 ： 小野優飛)

5.2 グループ外からの評価
本グループは後期から開発を行ったため，最終成果発表のみにて発表を行った.
(※文責 ： 小野優飛）5.2.1 最終成果発表
12月8日に本学で各プロジェクトが成果報告を行う最終成果発表が行われた．その様子を図5-1に示す．
本グループでは，位置情報を用いた人々の生活を便利にするサービスとしICAStampの提案から複数のノードを用いたデモの実演，実際に聴講者にデモの体験まで行った.発表後，聴講者にアンケートを実施した．以下にまとめる(図5-2).評価人数は43名であり,平均は約6.8点であった.また,アンケートの自由回答欄の解答から3つほど抜粋し以下に示す.
● サービスについての説明はわかりやすかったが，実際のシステムがどうなっていくのか，技術的，システム的な展望が伝わらなかった.
● いろいろと面白い要素が含まれていて興味深い.しかし，情報連携の問題や，人を介入させずに自動化することができるか，ユーザに理解しやすいメンタルモデルを作ることができるか.
● ゲームの部分についての説明が少なくしっかりと伝わらなかった.
など貴重な意見を頂いた.その中でもサービスのゲームの説明がうまく伝わっていないという意見が多くみられた.従って，サービスのゲーム性についてさらに内容を煮詰める必要があると感じた.

Group Report of 2017 SISP

- 69 -

Group Number 9

Development of location-based services

図5-1 最終成果発表の様子

図5-2 最終成果発表のアンケート結果(※文責 ： 小野優飛)Group Report of 2017 SISP

- 70 -

Group Number 9

Development of location-based services

第６章 今後の課題と展望
前期では, ICAS割引サービスのプラットフォームを用いた新しいサービスであるスタンプラリー
や陣取りゲームを提案し, 簡単なルールやシステムを考えた. しかし, スタンプラリーや陣取りゲームに関して, 既存のサービスと異なる特色を出せていないという点が挙げられた. 後期の活動では, 前期の課題を踏まえて活動していく予定であったが, 陣取りゲームの実装はなくなり, ICカー
ドを用いたスタンプラリー(ICAStamp)の実装, また既存のスタンプラリーとの差別化を測ることとなった.
本グループでは上記の課題を解決やICAStampのルールの決定, デモの実施を行い, 3つの展望と課題が見出された.
1つ目は, ゲーム性の追加である. 本提案では, クイズを答え, 正解することでスタンプを獲得する仕様であるが, Raspberry Piとディスプレイを用いることで音楽や動画などを組み合わせて利用者に情報を発信することが可能であると考える.
2つ目は, サービス規模の拡大である. 最終発表後, 大沼国際セミナーセンターの数学の道でのI
CAStampの実施が決まり, 実際に行う際の景品の決定, スタンプラリーコースの決定, ICカードを所持していない人への対応方法の決定が必要である.
3つ目は, 地域情報を利用した実施である. 上記で述べたように音楽や動画などを利用して観光地情報を付加することで地域の活性化, その地域ならではの情報発信が可能となる. また, イベン
ト開催地に設置することでイベントの一環として楽しんでもらうことが可能となる.
全体として, 本グループはICカードの位置情報を利用して行うデジタルなスタンプラリーを提案
し, 最終発表でのICAStamp, 大沼国際セミナーセンターでのサービス実施予定から, 十分な成果が得られたと考える. さらに, 上記で示した3つの課題の解決や, サービスの改善・追加を行うことによって今後のより良いサービスの展開を行っていきたい.
(※文責:橋本智広)

Group Report of 2017 SISP

- 71 -

Group Number 9

Development of location-based services

参考文献[1] Shachihata Stamprally, 第2回スタンプラリー実態調査結果
https://www.shachihata.co.jp/stamprally_service/lab/3.html[last accessed 2018/1/19][2] Shachihata Stamprally, 第1回スタンプラリー実態調査結果
https://www.shachihata.co.jp/stamprally_service/lab/3_1.html[last accessed 2018/1/19][3] 株式会社平安堂, 記念スタンプの作成，駅スタンプ，観光スタンプ，スタンプラリー
https://www.i-heiando.com/kinen.html[last accessed 2018/1/19][4]YouTube, R2D2 Robot Powered by Raspberry Pi
https://www.youtube.com/watch?v=znuUm5vbSpI[last accessed 2018/01/19]

付録A ICAStampの操作マニュアル ～端末側の操作方法～
付属品
・ジャンパーワイヤー
・Raspberry Pi Switching Adapter(電源線）
・ICカードリーダー
・microUSB（ICカードリーダーとRaspberry Piをつなぐ）
・Premium Case for Raspberry Pi 7 Touch Screen(モニタ)図6-1 付属品

Group Report of 2017 SISP

- 72 -

Group Number 9

Development of location-based services

図6-2 ボタンとRaspberry Piの配線写真
操作方法(a)ICカードリーダーとRaspberry Piをmicro USBで繋ぐ(b)ボタンを動作させるための基盤とRaspberry Piをジャンパーワイヤーで繋ぐ.
(c)電源線とRaspberry Piを繋ぎ電源を付ける. 電源線とRaspberry Piを接続すると自動的にモニタの電源が入る(d)電源が付いたら自動的にシステムが立ち上がる(e)マスターとなる端末のICカードリーダーにICカードをタッチするとゲームへの登録が完了される. なお, マスターは(f)各地点に設置した読み取り端末にICカードをタッチし, 問題に正答することでスタンプを獲得できる. 獲得したスタンプはICカード内に蓄積されていく. また, スタンプ獲得数は各地点に置かれた端末に表示される(g)各地点でスタンプを獲得する(h)スタンプを全て獲得したら, マスターの端末にて条件を判定する. 但し, 条件とは各地点のスタンプをすべて獲得していること(i)条件が満たされていたら景品贈呈画面へ進む.
(j)景品贈呈画面に進んだ後, 自動的にスタンプ数はリセットされる.
(k)電源を落とす場合は, モニタの右上付近に表示されている電源ボタンをタッチし, shut dow
nを選択する(※文責 : 森谷光)
備考
データベースサーバ
マスターとなる端末にICカードをタッチすることで, データ管理用のサーバにICカードの識別番号であるユーザ情報, 開始時刻が登録される. また, 各地点の読み取り端末にそれぞれICカードをタッチすると, スタンプを獲得した時刻と現在のスタンプ獲得状況がサーバに保存される. スタン
プ獲得数はモニタに表示される. A.1.1の(j)のようにスタンプ数はリセットされ, サーバ内のデー
タがリセットされる.

Group Report of 2017 SISP

- 73 -

Group Number 9

Development of location-based services

プログラムが強制終了した場合
プログラムが強制終了した場合は, ターミナルから直接シェルスクリプト起動する方法をとる.
(※文責 : 森谷光)

付録B ICAStampの操作マニュアル ～サーバ側の操作方法～
B.1 必要な機材
・サーバ―が導入された Raspberry Pi・ディスプレイ・ルーター
・HDMI及びLANケーブル
・キーボード, マウス

B.2 接続方法
1. Raspberry Piとディスプレイ, ルーターをケーブルで接続する.
2. Raspberry Piの電源を入れる.
3. ブラウザを開き, サイトURLに接続する.
4. ログインアカウントを作成していない場合は作成する.
5. ログインページからログインを行う.

B.3 機能紹介
データ管理用ページではテキストボックスやラジオボタンなどを用いてデータベースのデータを保存, 削除などを行うことができる. 詳細な機能については4章で述べたため割愛する.

付録C ICAStampのデータベース構築 ～テーブルの作成～
今回はリレーショナルデータベースであるMySQLを使用してデータベースの構築を行った. デー
タベースの テーブルはICAStampの参加者情報を記録した参加者テーブル(sr_users)とスタンプの獲得情報を記録したスタンプ獲得テーブル(ic_stamp)の2つのテーブルを作成した. テーブルの作
成方法を以下に示す.
まず, 参加者テーブルの作成を行う.

Group Report of 2017 SISP

- 74 -

Group Number 9

Development of location-based services

CREATE TABLE sr_users(
IDm VARCHAR(155),
StDate DATETIME,
ChDate DATETIME,PRIMARY KEY(IDm));

上記のコードを入力して, ユーザを識別するための固有のIDである「IDm」, スタート時間を表す「StDate」, 交換時間(ゴール時間)を表す「ChDate」を作成する. 主キーは「IDm」である.
次に, スタンプ獲得テーブルの作成を行う.
CREATE TABLE ic_stamp(
IDm VARCHAR(155),
point INT(11) DEFAULT 0,
node INT(11),Date DATETIME,
Try INT(11),PRIMARY KEY(IDm,node));
上記のコードを入力して, 「IDm」, ICASTampの獲得ポイント数を表す「point」, ICAStampとして設置された端末の番号である「node」, スタンプの獲得日時を表す「Date」, 問題に挑戦した回数を表す「Try」を作成する. 主キーは「IDm」と「node」である. また, ポイントの初期値は0に設定されている.
以上を行うことでそれぞれ図B-1, 図B-2のようなテーブルが作成される.

図B-1 参加者テーブル

図B-2 ポイント獲得テーブル(※文責：橋本智広)

Group Report of 2017 SISP

- 75 -

Group Number 9

Development of location-based services

付録D ICAStampのファイル構成
ファイルの構成を以下に示す.
public_html-index.php
ICAStampのデバッグページのHome画面.
デバッグのために利用する.
-icas_discount-master.php
スタンプラリーの本部に置く親機の機能.
初回カードリーダーにタッチした時は利用者登録を行い, 2回目以降はスタンプラリーの結果を返す.
(まだ1箇所も回っていなければ再度登録が可能)-excahnge.php
景品交換条件を満たしているかを返す.
-delete1.php
ユーザ情報の全消去を行う機能.
また, バグ防止のためゲーム情報も全消去する.
-delete2.php
ゲーム情報の全消去を行う.
-userdelete.php
スタンプラリーを終了したときにそのユーザのスタンプラリーのゲーム情報を削除する.
2回目以降連続でゲームを行うために必要である.
-userdelete2.php
指定したユーザ情報を削除する.
また, バグが発生しないようそのユーザのゲーム情報も削除する.
-nodedelete2.php
指定したゲーム情報を削除する.
-search.php
その地点のポイントを獲得しているかを検索して返す.
Raspberry Piとの処理に利用.
-register.php
端末の問題に回答した場合の処理.
データベースにゲーム情報を記録する.

Group Report of 2017 SISP

- 76 -

Group Number 9

Development of location-based services-shownode.php
データベースに保存されたゲーム情報を確認できる.
-showusers.php
データベースに保存されたユーザ情報を確認できる.
-Area_show.php
shownodeからnode別に表示.
(※文責：橋本智広)

付録E ICAStampのプログラム
ICAS割引と同じくICAStampのPythonとサーバのソースコードをGithubに公開した. 詳細に関してはICAS割引と同様なので省略する.
[1] GitHubリポジトリ https://github. com/FUN-2017-Project09（※文責:福澤圭一郎）

Group Report of 2017 SISP

- 77 -

Group Number 9