UXプロジェクト オープンデータソン2022のLT資料です
2023/01/20UXプロジェクト オープンデータソン2022バスあと何分ミニサイネージ
View Slide
⾃⼰紹介藤本賢志(ふじもとさとし)ニックネーム︓がちもとさんCo-founder KumaMCN株式会社ナレッジコミュニケーションR&D戦略チームマネージャー⾼専で制御を、⼤学でセンシングを学び、次は脳みそ。ARナビゲーションや電動⾞いすの⾃動運転に関する研究開発。専⾨は、コンピュータビジョン、画像処理、制御⼯学。Twitterフォローお願いします︕ 👉 @sotongshi
こんなことありませんか︖熊本市の渋滞箇所数・平均速度は全国ワースト1位💦⽬の前をバスが通り過ぎたしかも2台同時に次のバスは30分後https://www.city.kumamoto.jp/common/UploadFileDsp.aspx?c_id=5&id=24672&sub_id=1&flid=174687
⾃分専⽤のちっちゃなミニサイネージを作りました• ⾃宅やオフィスに⾃分だけのサイネージが欲しい• 時刻や〇停前ではなく「あと何分」だけが知りたい• 2021年11⽉ごろにGTFSリアルタイムの公開https://twitter.com/sotongshi/status/1471274080100040705
GTFS(General Transit Feed Specification)とは︖• 標準的なバス情報フォーマット• バスきたくまさんで使⽤しているデータをオープンデータ化• GTFS(静的)︓経路情報や便情報など(CSV形式)• GTFSリアルタイム︓⾞両の移動状況に関する情報や⾞両の位置情報など(JSON形式)https://km.bus-vision.jp/kumamoto/view/opendataKuma.html事業者情報 agency.txt事業者追加情報 agency_jp.txt運⾏区分情報 calendar.txt運⾏⽇情報 calendar_dates.txt運賃属性情報 fare_attributes.txt運賃定義情報 fare_rules.txt提供情報 feed_info.txt営業所情報 office_jp.txt経路情報 routes.txt経路追加情報 routes_jp.txt通過時刻情報 stop_times.txt停留所・標柱情報 stops.txt翻訳情報 translations.txt便情報 trips.txtGTFS(静的) GTFSリアルタイム
システムの流れ1. 運⾏前にGTFS(静的)からデータを更新2. M5StackのSDカードにWiFi設定、乗⾞停留所と降⾞停留所を書き込んでおく3. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得GTFSリアルタイムLambdaS3API GatewayEventBridgeM5StackGTFS(静的)Lambda停留所あと何分
M5Stack• ディスプレイ付きマイコン• WiFiに繋がる• 様々なセンサーやアクチュエータを取り付け可能https://docs.m5stack.com/en/core/basic_v2.6https://www.switch-science.com/products/7363
運⾏前にGTFS(静的)からデータを⾃動更新• EventBridgeを⽤いて毎朝4:15~5:30の間に15分おきにLambda関数(update)を実⾏• Lambda関数(update)1. GTFS(静的)データを取得2. 提供情報(feed_info.txt)のfeed_versionが更新されていたらS3に保存• 停留所情報(stops.csv)→ バス停⼀覧(stop_names.csv)を作成• 経路情報(routes.csv)• 便情報(trips.csv)• 通過時刻情報(stop_times.csv)• 運⾏区分情報(calendar.csv)• 運⾏⽇情報(calendar_dates.csv)3. 更新したか/最新かを返すS3EventBridgeGTFS(静的)Lambda
「あと何分」の情報を返すAPI• Lambda関数(minutes)1. 乗⾞停留所→降⾞停留所の時刻表を作成• 停留所情報(stops)から⼀致するバス停名のstop_idを取得• stop_idに対応する通過時刻情報(stop_times)を取得• trip_idに対応する便情報(trips)を取得2. service_idと⼀致する運⾏区分(calendar)と運⾏⽇情報(calendar_dates)から運⾏状況を確認3. GTFSリアルタイムのTrip_Updateからtrip_idとstop_idが⼀致する通過時刻を取得4. 通過時刻から現在時刻を引いて「あと何分」のリストを返す GTFSリアルタイムLambdaS3API Gateway
M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得• 必要な情報だけを取得できるAPIを作っておけば、簡単に連携できる• ノーコードでプログラミング• ユーザーはWiFi、乗⾞停留所、降⾞停留所の情報をSDカードに書き込んでおくだけ• ボタンが3つあるので、ページの切り替えが可能
https://togetter.com/li/1817346
AR(拡張現実)バージョン• 熊本駅周辺を3Dスキャン• バーチャル空間にナビゲーションを設計• リアルとバーチャルの位置合わせ、ナビ表⽰• バス停にはバーチャルサイネージを表⽰https://twitter.com/sotongshi/status/1492760083503398915
オープンデータを活⽤するために• データの標準化(使いやすいCSVやJSON)と公開• データを使って、必要な情報を提供するAPIを作成• APIを実⾏することで様々なアプリ間での連携• ノーコードでプログラミングをはじめよう
ご清聴ありがとうございました