福野泰介の一日一創

オープンデータ活用アプリ、地図アプリ入門でも紹介しているGPSを使った現在位置利用。シンプルに現在位置の近くの文化財5つ星オープンデータを検索して、表示するアプリ「near」を手直し公開。
near - 近くの文化財
キャンセルすると鯖江駅の近くが表示されます。新宿区内でお試しください!文化財オープンデータに画像URLデータを追加いただけば、写真も表示されるように作ってあります。


新宿区役所にてオープンデータ研修。議場にもなる会場にて。切り株を使ったマイク台がユニーク。


オープンデータの活かし方 創ろう、世界最先端国家(PDF)
スライドもオープンデータです。オープンデータにするのは簡単、クリエイティブコモンズ表示(CC BY)と明示するだけ。次の一歩の5つ星オープンデータ化は、odpを使えばExcelから自動的に変換、世界中の開発者がSPARQLというAPIを使ってアクセスできるようになります。

個人情報は、本人の許可なくオープンデータにはできません。広く伝えたいことは積極的にオープンデータ化検討しましょう。 オープンデータが悪用されるリスクが気になる方、データを提供する側に責任は無いので、心配する必要ありません。 間違って伝わらないよう、いつ時点のデータなのかを明記しましょう。


情報システム課長による講演「データの時代」
21世紀の最重要インフラはオープンデータ。多国籍でIT企業多い新宿区、新しい取り組みに期待です!

プログラミングの経験が一切なくても5分で地図を使ったオリジナルアプリが無料で作れて、公開できます!

今年も開催、地理情報を楽しく活用するイベント「Geospatial Hackers Program
アプリづくりに興味がある方、G空間ハッカー、はじめのいっぽは簡単ですよっ!
総務省|令和元年度「Geospatial Hackers Program」の開催≪地理空間情報を活用可能な人材の裾野拡大に向けたハッカソン等の開催≫


こちらサンプルアプリ「京都いらすとマップ
準オープンデータとして紹介に使わせてもらっている「いらすとや」さんのイラストから京都で検索したG空間っぽいいらすとをアイコンとして緯度経度と合わせて設置しました。
全国、全世界のランドマークがかわいくマップにでて、詳細が辿れたりするのもおもしろそうですね!

どのように作ったか?
画像を icon フォルダにアップロード(Upload files)して、該当緯度経度や名前と共に addIcon 命令を並べるだけ!

map.setZoom(11) map.panTo([ 34.985234, 135.758595 ]) // 京都駅 map.addIcon(34.987522, 135.759335, "京都タワー", "icon/landmark_tower_kyoto.png", 64) map.addIcon(34.980837, 135.767639, "鴨川", "icon/thumbnail_bg_kamogawa.jpg", 64) map.addIcon(35.023115, 135.803829, "五山の送り火", "icon/landmark_gozan_okuribi.png", 64) map.addIcon(35.010324, 135.768301, "本能寺", "icon/landmark_honnouji.png", 64) map.addIcon(34.967021, 135.774746, "伏見稲荷の鳥居", "icon/landmark_fushimi_inari.png", 64) map.addIcon(34.988047, 135.771754, "三十三間堂", "icon/kankou_sanjusangendou.png", 64) map.addIcon(34.994875, 135.784959, "清水寺", "icon/kankou_kiyomizudera.png", 64) map.addIcon(35.039527, 135.728476, "金閣寺", "icon/kankou_kinkakuji.png", 64) map.addIcon(35.026885, 135.798276, "銀閣寺", "icon/kankou_ginkakuji.png", 64) map.addIcon(34.889282, 135.80766, "平等院鳳凰堂", "icon/kankou_byodoin.png", 64)

いろんな地図アプリづくりに慣れてきたら、5つ星オープンデータを操る、SPARQL(スパークル)にもぜひ挑戦してみてください。 まだまだデータが不足していますが、みなさんのアプリひとつひとつがデータ拡充への原動力です!

東海(2/1-2)、北陸(2/8-9)、関東(2/15-16)、沖縄(2/22-23)、各地イベントにもぜひ足を運んでみてください! 位置情報を使ってどんなアプリがあるとおもしろい!?みんなで考えて作ってみましょう!


ハンズオン資料はこちら「はじめてのマップアプリとSPARQL(スパークル)(PDF)
プログラミングの予備知識一切なしでOK、メールアドレスひとつあればどなたでも地図アプリ、作れます!
GitHubのアカウント取得から、サンプルアプリのコピー(GitHubではforkと呼ぶ)、ブラウザ上での編集、公開まで手取り足取り(ハンズオン)で解説しています。(詰まったら箇所、サポートしますので @taisukef までDMやメンションでお知らせください)


動画で学ぶ派の方向けに、都内スタジオにて解説動画、収録してきました!


カメラ目線でスライドが見える、プロンプターが便利でした!
近日、公開される予定です。
おたのしみに!

学生生活、何をして過ごせばいいのだろう?
オススメは何でもいいので、何か創って見せてみること。反応がなくても悪くても気にしなくてOK。 熱い先生、変なことをやってる友達や先輩たち(含む、私)がオススメです!

木更津高専にお呼ばれして、講演&起業アイデア講評会。
千葉県、災害によって露呈した、独居高齢者とのコミュニケーション断絶問題。
スマホでは解決できない問題に、電子ペーパーで切り込むアイデア

Code for Kosen として活動スタートしているのはなんと2年生!
市役所や高齢者とのヒアリングを重ね、プロトタイピングを進めていると聞いて感動!
高専OBとして、オープンデータ伝道師として協力しない手はない。

館山市安全・安心メールバックナンバーをスクレイピングして表示するアプリ例
舞台となる館山市、お知らせ情報はオープンデータ化されていないので、ひとまずイメージとして実現するためのAPIを作りかけてみました。 「館山市安全・安心メールバックナンバー」のHTMLから本文を抜き出し、JSONデータにする node.js用、JavaScriptのプログラムです。

const main = async function() { const data = await getNotices() const json = JSON.stringify(data) console.log(json) fs.writeFileSync('notices.json', json) }

(port of makenotices.js / src on GitHub)
お知らせを全件取得し、JSON化して、表示して、ファイルに保存。HTMLのパースには、cheerio を使用。Node.js を入れた後、次のコマンドでインストールできる。(なければ、web取得のrequestも)

npm install cheerio npm install request

ひとまず、fukuno.js を使って、そのまんま表示しているだけのフロントのプログラム。好みのフレームワークを使ったり、使わなかったりして、使い勝手良いアプリに仕上げてみよう!

<body> <script src=https://fukuno.jig.jp/fukuno.js></script> <script> window.onload = async function() { const notices = await (await fetch('notices.json')).json() console.log(notices) dump(notices) // fukuno.js } </script> </body>

webアプリはじめのいっぽ」で、いろいろ作り込んでみよう。
サーバーサイドでプログラムを動かし、公開したくなったら「はじめてのウェブサイト with Heroku」をどうぞ!


欲しいアプリ、自分で作って、かわいい自分だけの名前を付けましょう!


熱い、木更津港先生!創造は最大の学習なり!


起業アイデアコンテストにも飛び入り発表した、電子部品タワーバトル!
電子部品好きが増える=高専生が増える=全国の高専=世界中の工学系の学校が喜ぶ!


どんなアプリか、デモしてくれたときの様子をコンパクトに編集してみました。
自分の動きが画面内のかわいい電子パーツに反映され、連動するスマホのボタンを押して落下、2人交代でタワーを作っていき、落としてしまったら負け。 楽しく電子パーツと仲良くなれそう!


木更津高専発、一般社団法人prane.jpn(プラネジャパン)
学内で必要なサービスを開発して、提供するしくみ、おもしろい!


with jigインターンOB!(興味ある高専生、事前登録をどうぞ!)


Be Creative.


熱い高専に熱い先生あり、木更津高専、谷井さん&米村さん!
統計とオープンデータとVR、おもしろいですよ!(世界人口VR首都圏電車VR

1800年代、フランスで撮られたステレオ写真、4枚加工してVR美術館風に表示させるアプリで鑑賞してみました。

VR-streophoto
Oculus Questだと、歩いて近づいたり、しゃがんだり、ジャンプしたり、回り込んだりと自由に鑑賞できて楽しい。 スマホVRでも立体写真としての鑑賞OKです!

A-FRAME上のステレオ写真の表示には、@binzumeさんのこちら記事のプログラムを使わせていただきました!
A-Frameでステレオ画像をテクスチャとして使う - Qiita

データは、CC0のオープンデータとして公開されている、パリの美術館画像コレクションにステレオ写真が1400点!? (tweet by @wakufactory)
おもしろそうな写真をダウンロードして、中のjpgデータから左右写真を切り出し、比を計算するratiocalcで、アスペクト比を合わせて、A-FRAMEのa-planeタグで置くだけ!


フランス美術館の立体写真

立体スキャンしたデータを並べて、VR美術館づくりも楽しそうです!

文部科学省から発表、小学校プログラミング教育の準備状況。
93%が準備OKたった7県しかできていない黄色信号
データの見方は人それぞれ、原典にあたるのが一番です。機械判読に適しているとは言えませんが、PDF内に表形式でデータがあったので、オープンデータとみなして、CSVに加工、アプリ化したものがこちら。


小学校プログラミング教育準備状況ダッシュボード
行政区の数え方、回答のあるなしなど、興味深い点はいろいろありますが、ひとまず、オープンデータ都市率と同様、カラム地図化。 CSV化したオープンデータで誰でも自由に解析いただけます!

さすが、福井県、100%!

ただ、全然安心してはいけません。何が100%かというと「各校1人以上の教員が、実践的な研修、または、授業・模擬授業を実施済と把握している」と回答した教育委員会の数に過ぎません。実際こどもたちにどう伝わるのかは未知数です。 アンケートに、すでに実施している(一部、全校)、学年、時間数、授業課目など、より踏み込んだところを聞いてほしいところでした。

ちなみに、鯖江市は、12校、全校実施済み、4年生、総合的な学習の時間2コマ!
(参考、総合2コマから始める鯖江の小学校プログラミング! 総合的な学習の時間、IT遊具、クラブ活動、地域ICTクラブ、高度IT人材へのベストプラクティス

今日は、将来の幼稚園保育園小学校の先生を育てる、仁愛大学 子ども教育学科のみなさんに小学校プログラミング教育の模擬授業。

LED制御、テレビゲームづくり、ロボットプログラミング、ドローン制御まで、1時間半、楽しく学んでくれました!


1行ずつ打ち込む、ゲームづくりは、大人も子どもも学生も楽しい!


読み書き、プログラミング! YouTubeなど動画で学習、発信する時代の読み書きも変革が必要そう。


世界各国で進むこどもプログラミング、うかうかしていると日本のこどもたちだけ置いていかれてしまいます。
それより恐ろしいのは、日本だけで進むこどもパソコン離れ。
世界で唯一、日本の子どものパソコン使用率が低下している | ワールド | 最新記事 | ニューズウィーク日本版 オフィシャルサイト
デジタル化が遅れている日本、今使わない人が多い中、いかにこどもたちにパソコンの楽しさを伝え、持ってもらうか。
PCNの答は、ネット不要のこどもパソコンIchigoJamと、ノートパソコンが当たる、PCNこどもプロコン


IchigoJamならLED制御、センサーで計測、ロボットプログラミングも簡単!
コンピューターの速さ、知ってますか?頼りになる相棒を使いこなせるようになると楽しいですよ!


一番の盛り上がり、ドローンプログラミングデモ!

こちら本日のスライド(福野分)、編集改変も自由なオープンデータなので、復習に、ワークショップに、どうぞ活用ください!


最後はTHETAで記念撮影、仁愛大学のみなさん、ありがとうございました!
プログラミングしたくなったら鯖江にあるHana道場までふらっと遊びに来てください!

今月は、金沢、岡山でも模擬授業あります!
総務省主催「地域ICTクラブ プログラミング教育フォーラム」が令和2年、金沢と岡山にて開催されます!
令和2年1月23日(木)14時~17時 TKP岡山会議室(〒700-0826 岡山県岡山市北区磨屋町1-6
基調講演 金沢市のD、松田孝さん、広島、福井、横浜の事例と模擬授業 (PDF)

令和2年1月27日(月)14時~17時 金沢市文化ホール3階大会議室(〒920-0864 金沢市高岡町15番1号
基調講演 Hana道場運営もしている竹部美樹さん、福井、埼玉、広島の事例と模擬授業 (PDF)

日本全国市区町村すべてに、オープンデータをリーダーを!
オープンデータリーダ研修事業、千葉県にて講演&サポートに行ってきました。

研修のインプットタイム、アイデアソンでも登場した、ごみに関するオープンデータ。 odpでは、横展開可能な5つ星オープンデータにて、鯖江市、三島市、品川区のデータが標準API、SPARQLで使えます。

ふと気になった、分別の違い。早速作ってみたのがこちら。

ごみ分別オープンデータ(鯖江市&三島市)
絞り込みフィルタを使って、かんたん検索!鯖江市では「CD」は資源ごみ!?
まだ使えるものは「オタマート」への出品もどうぞ!

ごみ名が一致するものを上位に表示しています。完全一致するものが13件。「食用油」、三島市では「燃えるごみ」、鯖江市では「資源物」と違います。 みなさんの自治体ではいかがでしょう? 「燃えるごみ」と「燃やすごみ」、「粗大ごみ」と「大型ごみ」、「危険不燃物」と「有害物」などの用語や定義の違いもありますね。

インプットタイム、地域事例紹介「オープンデータの活かし方、創ろう、世界最先端国家


オープンデータとは何か?難しく考えなくて大丈夫です。自由に無料で使えちゃうweb上のデータ、それがオープンデータ。 「機械判読に適したもの」と説明されることがありますが、気にしなくてOK!


根拠はこちら、政府CIOポータル / オープンデータからリンクされている「二次利用の促進のための府省のデータ公開に関する基本的考え方(ガイドライン) 平成25年6月25日」内に記載があります。

なお、上記情報のデータ形式が機械判読に適したデータ形式でなく、データ形式の変換に多くのコストを要する場合には、当面、従来のデータ形式で公開すればよいこととする。
つまり、機械判読に適していなくてもOK!画像でもPDFでもWordでもExcelでも安心して、RAW DATA NOW! しちゃいましょう。
Tim Berners-Lee: The next web | TED Talk

ただし、イノベーションにつなげるには、LINK DATA NOW! 5つ星オープンデータ化が必須です。ひとまず、完全無料の避難所データ(odp)でお試しください。 下記はごみ分別アプリの肝となる、SPARQL APIへの問い合わせです。

select * { graph ?g { ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/jrrk#Rubbish>. ?s <http://www.w3.org/2000/01/rdf-schema#label> ?name. ?s <http://odp.jig.jp/odp/1.0#classified> ?cls. optional { ?s <http://www.w3.org/2000/01/rdf-schema#comment> ?comment. } filter(lang(?name) = "ja") } } limit 1000

5つ星オープデータのまとまりから、typeがRubbish(ごみ)から、日本語表記の名前、分別、もしあればコメントを、最大1000件取得しています。 どの自治体がどういうデータを提供しているかは、5つ星オープンデータ対応一覧表で一目瞭然。


2012年、早期オープンデータ開始、3都市のひとつ、流山市のオープンデータ担当の方!(他、会津若松市、鯖江市)


アイデアソンのテーマ「ここまでできる!?究極のオープンデータ活用法」


3-4人のチーム、ブレインライティングにより質より量!いろいろなアイデアがでていました。
アイデアに名前をつけるとテンション上がるのでおすすめです。


千葉県庁から千葉駅まではモノレール!宙を走る感じがおもしろい。


県庁前が終着でした。

福岡県北九州市、北九州高専プログラミング研究部!

jigインターンOB、トミーのおかげで、念願叶いました。
北九州高専 コンピュータ研究部の紹介 - あかいろ情報系高専生の日記
jig.jp インターン2018始まります! - jigintern2018’s diary」← インターン時


さくらインターネット製のIchigoJam、IchigoSoda


このIchigoSodaを使った世界一カンタン(当社調べ)なIoTプログラミング体験!


ゲームづくりを通じてアルゴリズムを学ぶ、かわくだりゲーム大会で最長記録!さすが高専生、見切ってました!
高専生向けには、35 WAIT2 をデフォルトにしないといけないかも?
たった1コマンド加えるだけで、TがIoTに変わりました!
応用範囲は無限大。
(IchigoJam/IchigoSodaのスライドは、オープンデータ、自由に活用ください! slide on GitHub

地域の課題をみんなでみつけ、小中学生の柔軟な発想に刺激を受けて、高専生の実装力を合わせて、どこにもなかったサービスやプロダクトを創り出しましょう!
隣の人、隣のまち、隣の国へと広がった結果、それがイノベーション!

IchigoJam BASICで、楽しく遊んで、改造して、教えられるようになったらオススメしたい、次の一歩はスマホでもPCでも動く、JavaScriptでつくるwebアプリ。
はじめてのJS - JavaScriptはじめのいっぽ」「まずは作って公開オリジナルサイコロアプリ! HTML/JavaScript/GitHubはじめのいっぽ

HTMLとCSSをいじるだけでもオリジナルアプリ、できますよ!
北九州市オープンデータ、ふっけーが発見したAPIを使ってサンプルアプリ作ってみました。


イベントサーチ北九州
HTML/CSS/JavaScriptが入った、シンプルな1ファイル、ぜひソース(プログラム)を手元に保存して改造してみましょう!

div.innerHTML = ` <h2>${e.event_name}</h2> <div class=cat>${e.ctg1}</div> <div class=area>${e.Area}</div> <div class=description>${e.description}</div> <div class=place>${e.place}</div> <div class=date>${date}</div> <a href='${e.url}''>${e.url}</a> `

こんな感じでHTMLに読み取ったデータを埋め込んでいくイメージです。


オープンソースな鯖江メガネアプリで撮影、秒間1兆回の計算力をカジュアルに遊べるのが、プログラミングの魅力!
慣れたら、横展開は速い、言語習得!iOSかAndroid、自分の持ってる機種のネイティブアプリづくりにもチャレンジ!
OculusQuestなどのVRも良し。


PCN北九州製のクリスマスツリー!シンプル8pinのCPU付きの基板、USBポートに差し込むだけでキラキラ光る!
ずっと安く、簡単になっったハードウェアづくりも良し。


PCN北九州メンバー、増えました!
jigインターン2019OB、ふっけーも!
[ふっけー] jigインターン2019 - 終わりわよ!! - jigintern2019のブログ


jigインターンをインターン参加者のトミーとふっけーが紹介してくれました!
全国から高専生が集まり、3週間でサービスを作るモーストエキサイティング(当社調べ)なインターンです。


3週間のインターン中に、ハッカソン、VRスイカ割り、滝行するインターンはjigインターンだけ!


プログラミング好きで、ちょっと外に飛び出てみたい人、事前登録どうぞ


お料理版、AtCoder、オタクック、プログラミング好き高専生にはウケますね!


北九州高専出身で、北九州高専の先生で、プログラミング研究部の顧問、2年上の先輩、松久保さん、ベーマガとの再開に歓喜!


初訪問だった、南国感ある北九州高専!37キャンパス目、訪問率58%


北九州市役所、三浦さんとも会えました!


小倉城!3Dモデルオープンデータとかあると楽しそう!


福岡名物、ごぼ天うどん!ごぼうの迫力!
地域のチェーン店オープンデータ、あると楽しそう。

岩手県、一関のお隣、平泉にはなんと世界遺産!

世界に1121日本に23ある世界遺産。


こちらが中尊寺金色堂、外観!金箔で覆われた金色堂は、この覆堂の中。
世界遺産オープンデータを使って、スタンプラリー的なアプリづくりもいいかも?

一関駅でも、食べられる名物もち料理!

すっかり一関のもちファンです。さすがもちの聖地!
いざ、餅の聖地・一関へ。おいしい餅をたらふく頂く!│観光・旅行ガイド - ぐるたび

もちオープンデータもほしいですねっ
一関もち料理データベースが出来ました | お知らせ | 【いち旅】いちのせき観光NAVI

一関市のオープンデータのURLを入力ボックスにいれて「showCSVs」ボタンを押せば、ページ内のCSVオープンデータを順次読み取りテーブル表示。

ひとつの大きなテーブルを作るために、読み込むほどに項目名が増えていく様子にも注目です。


showCSVs
CSVファイルが並ぶサイトは、だいたい有効。
こちらプログラムのコア、async/awaitを使うと流れがすっきり、読みやすい!

const showCSVs = async function(url) { const html = await fetchViaProxy(url) title.textContent = parseTitle(html) const links = parseLinks(html) const csvurls = links.filter(url => url.endsWith(".csv")) const csvs = [] for (const csvurl of csvurls) { const data = await fetchViaProxy(csvurl) const csv = convertCSVtoArray2(data) csvs.push(csv) const tbl = makeTableFromCSVs(csvs) clear(main) main.appendChild(tbl) } }

リアルをプログラミングして遊べるのがオープンデータの醍醐味!
いろんなオープンデータ、リクエストしたり、作ったりしてみよう!


今回初となった一関高専!
高専いったことあるよマップを更新! 36キャンパス目


一関高専の学食!


情報系の授業を受ける新教室、広い!


16x9のスクリーン横2つ分。32x9の画面。超ワイド画面ならではの、迫力ある何かおもしろいもの作ってみるのも楽しそう。


一関高専電算部を見学、なんと部長は2年生!


研究に、展示に、遊びに、いろいろ便利なOculus Quest、最近のアップデート、ハンドトラッキング体験。


一関高専電算部のみなさん、ありがとう!
いろいろ作っていきましょう!

links
- 地域で学ぼうIT技術、一関高専にて特別講義、はじめてのIoTプログラミング&ハンドトラックVR体験会

各地域で進む「xIT」の取り組み。今日は信州ITバレー構想を発表し、2050ゼロカーボンを日本初宣言した熱い長野県にて起業家甲子園に向けた信越地区大会!

信州で未来づくり、信州未来アプリコンテスト0(ZERO)
3年ぶり3度目の第5回目となったコンテスト、応募総数74!決勝進出した、小学生から29才の社会人まで、全21プランのプレゼン、楽しい時間をありがとう!


長野県知事、阿部さんも観戦!SDGsバッジを見かけたので、鯖江発のグローカルアプリで記念撮影!


NICT賞として選出したのは、長岡高専パトライトIoTチーム!
地元の企業との連携と「お手軽IoT」の実現とその横展開に可能性あり!


新たに加わったデータ活用部門、そのお手本を示してくれた、自転車盗難推測Bot開発した社会人参加の川野邉さん!
2019 信州アプリコンテスト0の振り返り。 - NAGANO ENGINEER LIFE


盗みの傾向 - 長野県警オープンデータ
長野県警による犯罪記録のオープンデータ、私も使ってみました。
自転車、自動車、バイク、自販機、部品と、CSVで公開されているものを さんのプレゼンと同様に曜日別、時間帯別に分類します。 データは「長野県オープンデータサイト」から直接使っているため、更新されれば自動反映。


縦長の画面で見ると、自動的に転置した縦長の表として表示する機能だけつけてみました。
発表でも言及されていましたが、住所よりもう一歩踏み込んで、緯度経度を付けてくれるとより細かな分類ができてうれしいですね。 オープンデータなので、地元の人ならわかる「あぁ、あそこの駐輪場ね」を追加加工したデータを二次流通させるのも手!


長野高専で楽しくプログラミングを教えている、伊藤先生!
プログラミング言語は何から学ぶべきか? ロボットプログラミングゲームをIchigoJamでプログラミング! C言語の教科書「Springs of C」より


長野県宮田村から参加の小学生チーム!ぜひ、PCNこどもプロコンにもチャレンジください!


横浜から参加!


名古屋から参加のトライデントコンピュータ専門学校チーム!


今回の会場は長野市、信州大学工学部。発表全プランを振り返ります。


どこでもドラム by ためちゃんず(新島学園中学校)
欲しい → 創ろう! とっても大事!
使う → 改良 → 使ってもらう → 改良 → 何か他に思いつく → 創る → ・・・どんどんアイデアと創れるものが広がって楽しい!
IchigoJamを使ってサーボで何か叩いたり、本格ドラムMIDI音源を制御するのも楽しいよ!遅れの問題、解消するかも。


読書のすすめ by 小森航平(未来工作ゼミ)
Scratchを使ってジャンルを楽しく決める!どういう人にどんな本をオススメするか、深堀りするとおもしろくなりそう。


AIスクッチブラザーズ by 水谷俊介(信州大学教育学部付属松本小学校)
小学生だってAIしたい! → できる!
AIの画像から姿勢推定の応用 Posenet2Scratch を使ったゲーム、2台並べて通信対戦とかできると熱いかも!?


keep our lives safe system by 国土交通省交通安全課(新島学園中学校)
実際に事故に遭った経験から交通安全問題に切り込んだ作品。
アクセルとブレーキ、踏んだらそれぞれ固有の音をならすことで踏み間違いをなくす、シンプルだけど意外といいかも!
居眠りを検出するのに、ハンドルの動きをモニタリングするのはきっと有効。


がるびっち☆せぱれーしょん by ノーストップイーグル(宮田村立宮田小学校)
5つ中で燃やすゴミはどれでしょう?正解は全部!

大人でも間違える、ややこしいごみの分別問題に独自設計したバーコードと読み取りロボットとソフトウェアでチャレンジした小学生チーム!


ことわざカルタ by 頭文字AI(新島学園中学校)
外国人と楽しくカルタをしたい!キータッチを使った、電子化したカルタで自動正誤判定!
多言語がかかれたカルタを複数音声を同時に鳴らす、聖徳太子カルタとか楽しいかも?


甲州弁翻訳アプリShingen by 都留高校アプリ開発チーム(山梨県立都留高等学校)
地域の歴史と文化を音で感じる方言、甲州弁の魅力をアプリで伝える意欲作。
かざすと全部甲州弁になって見えるメガネとか、字幕付き甲州弁YouTuberとか、甲州弁ゲームとか、地元ならではのチャレンジおもしろい!


ぶんべつくん by ほぐろ(長野県松本工業高等学校)
ごみの路上不法投棄に対するITを使った解決案。分別していれてくれる人に正解データを作ってもらい、面倒な人にはお金を払って自動分別機能を提供するとか?
路上のゴミを自動的に拾って捨てくれるゴミ拾いロボットの開発も夢がある。


編模様(あもーよ) イラスト手編み支援アプリ by 武田和樹(豊島区立西池袋中学校)
お母さんがオリジナルな絵柄を手編みするときのイライラを、アプリ化して解消!
Scratchの作品をUnity化して、iPhone/Androidアプリとしてもリリース!
写真取り込みから手編みスタートまでがシンプル。全くの初心者向けに編み方の基本を教える動画をつけて、道具入手からサポートするとアフィリエイト収益上がるかも。


信州ナビβ by ちくわ(信州大学教育ダク部付属長野中学校等)
既存のサービス「信州ナビ」はターゲットが絞り込めていないとバッサリ!
欲しい機能を加えたり、いらない機能を減らせたりできるオープンソース化という手もありますね!
Scratchでは作りにくいところ、HTML+JavaScriptで作って GitHub などでの公開がいいですよっ。
JavaScriptはじめのいっぽ「はじめてのJS」つくるひとをつくる@木更津高専 - first step of JS


パトライト監視IoT by あなたの心のパトライト監視し隊(長岡高専)
工場内、機械の異常を知らせるパトライト、現状は、人が1-2時間に一度で見回っているそうなので、お手軽IoT化!


画像解析やAI判別から、光センサーを使った安価なものまで、手軽に始められるけど、実際の現場ではいろんなトラブル満載。
だからこそ、実際の現場でできる高専の強みが活きますね!


ななせぐッ by ちょっと終バス逃しました(長岡高専)
こちらも現場の声、ノギスからのデータ取りを効率化したい!
7セグの数値読み取りは、太陽光パネルの発電量や、各種センサーの値表示をリアルタイムオープンデータ化するのに便利そう!
良い名前なので、ぜひオープンソース化検討をっ


三世代サポート運転アプリ by サボテン(トライデントコンピュータ専門学校)
高齢になった親の運転を孫の声を使って子が見守るソリューション。
使いたくなる工夫として、孫が運転を褒めてくれるとよいかも!IchigoSodaやsakura.ioで月額66円、車に常備しちゃうのもいいかも!


カジタツ〜目指せ家事の達人〜 by MOST(トライデントコンピュータ専門学校)
ローカルルールが大変な家事を、動画で助ける家庭円満支援アプリ。
あえてシェアしないサービスもいろいろ登場しそう!


心に残る研究紹介エージェント by kbylab(信州大学)
大きいはそのままインパクトになる!説明の要所要所でズームするとぐっと印象が強くなるという仮設、実際やってしまうのがすごい!
音声合成に違和感あるので、ボイスチェンジャーなど使って、なめらかな音声を録音したもの使うとかするとぐっと実用に近くなりますね。


プリント点呼 by ZONE(トライデントコンピュータ専門学校)
30人を受け持つ先生がプリントで宿題を出したら、その点呼だけでも一苦労。
QRコードシールを事前配布して、読み取り専用アプリでその手間を削減!QRコードシールの脇にマークシート状の評価ボックスを加えて読み取れるようにすると成績管理も同時にできて更に楽かも?


マイミー MyMe by 阿部正寛(未来工作ゼミ、(株)アソビズム)
判断支援アプリ。小さな判断履歴を積み重ねていくと、自分の特性が分かって、間違いにくくなるのかも。
先人の失敗判断も見られるとおもしろそう。


eat marker by eat marker(トライデントコンピュータ専門学校)
10分の滞在を自動的に訪問と見なしてすばやく検索できる飲食店管理アプリ。
SNSを使わない多数派に広がれれればおもしろい展開もありえそう!


朝からドキドキアラーム by 形山竜一(長野高専)
リマインダーとアラームを融合したサービス。いっそ予定を叫びながら起こしてくれるといいのかも?
今日やらねばならないことを連打して、倒すゲームが済むまで止まらないアラームとか、学生の朝起きられない問題は世界共通、学生ならではの発想にヒントあり?


聖地コネクト by ARTSAR(情報文化学園アーツカレッジヨコハマ)
日本のアニメ好きが世界から集まる聖地をARで言語の壁を越えて楽しむサービス。ファンアートが各地で楽しめるのもおもしろそう。


自転車盗難推測Bot by 川野邉賢二((株)日本システム技研)
長野県の自転車盗難オープンデータを使った、ココに自転車停めても大丈夫?をLINEボットで聞けるサービス!
信州ITバレー構想の実現にはデータが大事!まさにそう!


審査委員長の信州大学不破さんからの来年に向けて力強いメッセージ!
待ってもこないSociety5.0、みんなで創ろう!


長岡高専パトライトIoTチーム、全国大会「起業家甲子園」に向けて、やるき十分!

links
- まわそう「ものづくりループ」、起業家甲子園の挑戦権を手にした中学生、信州未来アプリコンテスト0 2016年
- オープンデータ・学生・地方創生、信州未来アプリコンテスト0 2015年

CPUの世界にもオープンデータ。オープンソースでオープンライセンス(BSDライセンス)なCPUアーキテクチャ「RISC-V(リスク・ファイブ)」の実機が続々登場! 1981年にバークレー大学から発表されたRISC-Iからスタートして5世代目のRISC-V、Google / NVIDIA / NXP / Qualcomm など、数多くの企業をメンバー企業に支えられて躍進前夜。

Amazonが発表した自社開発CPU、Graviton2はArmベースでしたが、次世代がRISC-Vになっても不思議はありません。(現時点でAmazonはまだメンバーではないが、オープンに誰でも使えるため、使用するのにメンバーである必要もない)

そんな RISC-V というオープンなコンピューターの気持ちになってみましょう!
IchigoJamで試した、はじめてマシン語Arm編のように、はじめのいっぽはハンドアセンブル!
Specifications - RISC-V Foundation(RISC-V仕様書 P130より)

Instructionsとは、RISC-Vというコンピューターができること一覧、基本は32bit(4byte)、メモリに書かれた命令にしたがって、どんどん計算していきます。 レジスタは基本32コ、そのうち0番レジスタX0は0固定。実行位置を表すプログラムカウンタ(PC)は別となっています。

ひとまず、1+1をさせてみましょう。
レジスタ同士の足し算は ADD (上の図の一番下)

ADD rd,rs1,rs2

rd = rs1 + rs2 という足し算をします。
RISC-Vは、32コあるレジスタ(X0-X31)の内、x10,x11...を引数や、返り値に使うことになっています(x10,x11は別名a0,a1)

ADD x10,x10,x11

こちらをマシン語表を見て、二進法32桁の数値に変換します。(RISC-Vのマシン語の基本は32bit、16bitの圧縮版もあります)

0000000 01011 01010 000 01010 0110011         rs2 rs1 rd

これを16進数に表すと

-> #00b50533

この4byteをメモリに書き込めばOKです!(RISC-Vは、little endian なので、#33,#05,#b5,#00 の順)

ただ、これだけではプログラムの終わりがわからずどんどんよくわからない計算が進んでしまうので、戻す(RETURN)命令を加えます。 RISC-Vでは、戻り先がレジスタ1番に入っているので、そちらへのジャンプ(GOTO)すればOK。 命令表の中から Brunch の JALR x1 を上記同様に16進数に変換します。(x1は別名ra)

JALR x1 (JALR rd,rs1) 0b00000000000 000001 000 00000 1100111         rs1 rd -> #00008067

できました!

実機で動かしてみたいところですが、今回は誰でも使えるエミュレーターを使います。

WebAssemblyにも対応し、ブラウザ上でRISC-V版Linux(JSLinux)まで動かしてしまうTinyEMUをベースにしたコンパクトなエミュレーターrv32emuを使います。

いろいろ組み込みに便利なようにコア部分を分離するように改造した rv32emu を作りました。
emu-rv32i.h をインクルードし、下記のように使います。

#include "emu-rv32i.h" #include <stdio.h> int main(int argc, char** argv) { uint32_t start = 0; ram_start = 0; uint32_t end = 0xfffffffe; *(uint*)(ram + start + 0) = 0x00b50533; // ADD x10,x10,x11 *(uint*)(ram + start + 4) = 0x00008067; // JALR x1 pc = start; reg[2] = ram_start + RAM_SIZE; // sp - stack pointer reg[1] = end; // ra - return adderss reg[10] = 1; // a0 reg[11] = 1; // a1 while (machine_running) { next_pc = pc + 4; insn = get_insn32(pc); printf("[%08x]=%08x\n", pc, insn); execute_instruction(); pc = next_pc; if (pc == end) break; } printf("x10 a0: %08x\n", reg[10]); return 0; }

結果はこちら

x10 a0: 00000002

見事、x10に 1+1 の結果、2が入っていますね!
reg[10]やreg[11]の初期値を変えたり、他の命令をハンドアセンブルしてみたりと、いろいろ試してみましょう。

MacでRISC-Vの開発環境を入れるなら、Homebrewを使うと楽ですよ!

$ brew tap riscv/riscv $ brew install riscv-tools

links
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像 / RSS