Upgrade to Pro — share decks privately, control downloads, hide ads and more …

インプット②ミニバスサイネージの紹介

 インプット②ミニバスサイネージの紹介

公共交通オープンデータ × ミニサイネージ × 地域課題解決プチハッカソン
熊本産MaaSミニサイネージ活用勉強会
インプット②ミニバスサイネージの紹介の資料です

Satoshi Gachi Fujimoto

March 07, 2023
Tweet

More Decks by Satoshi Gachi Fujimoto

Other Decks in Technology

Transcript

  1. 2023/03/07
    公共交通オープンデータ × ミニサイネージ × 地域課題解決プチハッカソン
    熊本産MaaSミニサイネージ活用勉強会
    インプット②
    ミニバスサイネージの紹介

    View Slide

  2. がちもとさん
    本名は、藤本賢志(ふじもとさとし)
    KumaMCNという技術コミュニティを運営
    株式会社ナレッジコミュニケーションでAI・XRアプリ開発
    崇城大学古賀都市計画研究室の技術顧問でまちづくりの研究
    高専で制御を、大学でセンシングを学び、次は脳みそ
    @sotongshi

    View Slide

  3. こんなことありませんか?
    目の前をバス
    が通り過ぎた
    しかも2台同時に
    次のバスは
    30分後

    View Slide

  4. 自分専用のちっちゃなミニサイネージを作りました
    • 自宅やオフィスに自分だけのサイネージが欲しい
    • 時刻や〇停前ではなく「あと何分」だけが知りたい
    • 2021年11月ごろにGTFSリアルタイムの公開

    View Slide

  5. M5Stackとは?
    • ディスプレイ付きマイコン
    • WiFiに繋げられる
    • 様々なセンサーやアクチュエータを取り付け可能
    https://docs.m5stack.com/en/core/basic_v2.6
    https://www.switch-science.com/products/7363

    View Slide

  6. こんなに
    ちっちゃい
    磁石でくっつく

    View Slide

  7. その他
    https://www.switch-science.com/products/8670 https://www.switch-science.com/products/6470 https://www.switch-science.com/products/7359

    View Slide

  8. その他
    https://www.switch-science.com/products/7483 https://www.switch-science.com/products/8191

    View Slide

  9. 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.txt
    GTFS(静的) GTFSリアルタイム

    View Slide

  10. システムの流れ
    1. 運行前にGTFS(静的)からデータを更新
    2. M5StackのSDカードにWiFi設定、乗車停留所と降車停留所を書き込んでおく
    3. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    GTFS
    リアルタイム
    Lambda
    S3
    API Gateway
    EventBridge
    M5Stack
    GTFS(静的)
    Lambda
    停留所
    あと何分

    View Slide

  11. M5Stack 初期設定(Windows)
    1. ドライバー(CH9102_VCP_SER_Windows)のインストール
    https://docs.m5stack.com/en/quick_start/m5core/arduino
    2. M5Burner Win10 x64 v3.0のインストール(ファームウェアの更新)
    https://docs.m5stack.com/en/download
    3. UIFlowでプログラミング
    https://flow.m5stack.com/
    4. USBで接続し、プログラムをアップロード

    View Slide

  12. UIFlowでプログラミング

    View Slide

  13. 運行前に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. 更新したか/最新かを返す
    S3
    EventBridge
    GTFS(静的)
    Lambda

    View Slide

  14. 「あと何分」の情報を返す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
    リアルタイム
    Lambda
    S3
    API Gateway

    View Slide

  15. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    • 必要な情報だけを取得できるAPIを作っておけば、簡単に連携できる
    • ノーコードでプログラミング
    • ユーザーはWiFi、乗車停留所、降車停留所の情報をSDカードに書き込んでおくだけ
    • ボタンが3つあるので、ページの切り替えが可能

    View Slide

  16. 私の親も60代になり高齢者と呼ばれ始める免許返納予備軍
    • 息子:事故る前に免許返納してほしい
    • 母:免許返納するなら毎日あんた運転してくれっとね?
    • 息子:それはちょっと

    View Slide