こどもも大人も一緒に楽しい「こどもロボコン」

越前がにロボコン」は、福井県情報システム工業会の30周年記念イベントとして2017年スタートし、総務省地域ICTクラブ事業で加速、世界大会を目指して、こどもプログラミング実業団による拡大と、横展開を画策中。

システムはオープンソース、ルールや素材もオープンデータなので、ライセンスフリーでどなたでもどの地域でも手軽に始められます。


Kanirobo Course VR」(src on GitHub)
オープンデータとして公開されているコースの画像。適度な大きさに縮小して、画像をテクスチャーとして a-plane に設定。コースできました!高さは長机と合わせて0.7m。


Kanirobo Course VR」(src on GitHub)
激レアメタル、レアメタルも仮配置。越前がにロボコンのコースの作り方を見て寸法を入れればすぐにVRで再現できてお手軽!配置するだけなら、JavaScriptも使いません、HTMLだけでできて楽しいですよ!


魚津市長へ提案、カニロボコン in 富山、即「やりましょう!」いただきました!


魚津市「紅ズワイガニ」参戦!福井・石川・富山、日本の西海岸で繰り広げられるプログラミングeSports「かにロボコン」、いよいよ世界大会開催へ! – about yrm
市長もプログラミング!日本の西海岸、Cyber Valley


地域で生まれるプロダクト、オトナとコドモの秘密基地「IchigoBase」福井にオープン! – about yrm
福井駅前、祝、IchigoBaseオープン!福井銀行本店含め、福井市にも楽しいものづくりスポット広がっています。


PCN福井 新製品発表会
2020.12.27、今年最後のイベント。松田さんによる講演「全部IchigoJam BASIC! プログラミングでSTEAMな学びBOOK」、「ミニ こどもプログラミングサミット 2020」も開催。鯖江商工会議所1Fのステキ会場、SCCへどうぞ!

高専が地域を変える!」をキャッチコピーに、2018年度からスタートした高専生向けの新しいコンテスト、高専ワイヤレスIoTコンテスト、通商WiCON。今年から委員を担当しています。

コロナによって延期されていた懇親会を、オンライン開催として学生と委員と事務局メンバーが、Zoomで集まって懇親会。ブレイクアウトルームを使って、いろいろと意見交換。WiCON OB会を創ろうというアイデア、ナイスです!やりましょう!みんなが気軽に参加するプラットフォームがないのがつらいところですが、ひとまず「Facebookグループ - 高専WiCON OB会」を作りました。OBのみなさんへの協力は惜しみません!


中締め後のオンラインビンゴ大会。1位の商品は「Oculus Quest 2」おめでとう!


boxcraft」(src on GitHub)
サイバー空間に入り込んでボックスをつなげて作るマイクラ風が、HTMLとJavaScriptでつくるwebアプリ、たった30行でできます!もう20行足した、アンドゥー、削除機能対応版も最新ライブラリに更新しました。


動画も撮ってみましたが、実際やってみないとこの感動は伝わらない!


Segway Drift + Oculus Quest 2 も楽しい!くれぐれも怪我には気をつけて!

高専生が世界を変える!

鎌倉幕府成立前、平安時代の終わりを決めた「壇ノ浦の戦い」の地、下関。

ここが835年前の歴史的戦いの場、壇ノ浦!現地に来ると興味が出てくるのが不思議です。


れきし乱マップ
そこで、クママップ緯度経度データ付きCSV表示のマップ表示コンポーネント map-gsi-csv.jsをアップグレードして使用。


れきし乱マップ
源平の戦いこと、「治承・寿永の乱」の戦いの地は福井にもありました。戦いの地「乱CSVオープンデータ」には2件しか入れていませんが、歴史好きの方ぜひ、追記ください。


設営完了!いいロケーション!


Oculus Quest 2を実験するのにもいい広さ!VRや、MRでその場での壇ノ浦再現も楽しそう。


さすが、PFUのHHKB、MacBookのキーボード上に敷くアクリルボードが便利とのこと!


高専生、工学系大学生の楽しい集い、1泊2日のハッカソン、スタート!


技術の無駄遣い、よいテーマ!


会場、uzuhouse


1F、2Fはステキカフェ


おいしいサルサなパンとコーヒー


赤間神宮、ハッカソン会場のすぐ向かいでした


壇ノ浦を望む、赤間神宮の水天門


別角度から


下関市役所、発見!


新幹線、新下関駅


新下関駅、構内


佐々木小次郎 vs 宮本武蔵、巌流島もここ!

二度目の参加、一般社団法人九州ニュービジネス協議会主催「第20回九州・大学発ベンチャー・ビジネスプランコンテスト(最終審査会)」。前回のNICT賞はIoT x 放牧養豚の「Pioneer Pork by 宮崎大学の有方さん」。起業家甲子園で審査員特別賞を受賞、起業し、おいしい豚肉の販売が始まってます!(Pioneer Pork)


九州のチカラここに集結!昨年度より、全国へのもうひとつの道NICT賞、新設!


観客はなし、オンライン参加も含め、配信も合わせたハイブリッド開催。


九州のチカラここに集結!


NICT賞として選んだのは「有明高専チーム」


「Wall Art Online - 新時代の「巣籠り生活」を促進する住宅コンサルティングビジネス


ディスプレイデバイスメーカーと住宅メーカーをつなぐ「Wall Art Online」
テレワークが広がる中、家に最高の就業環境を作ってしまうニーズ、増えそうですね。


ターゲットは新築計画中の世帯年収600万円程度の30-40代子育て世代とのこと。


福岡県、有明高専の寮がある熊本県荒尾市の浅田市長は、なんと有明高専出身!
本プランの実現に向けた、地元の企業との連携を含め、コンテストの結果に関わらずやる意思!

まず荒尾市で展開を考えた場合のマーケティングデータをオーンデータから探してみます。


熊本県荒尾市GDP
荒尾市の「市内総生産」オープンデータ(2011年度)を使って、分野別のGDPを円グラフ表示するアプリを作成。単位は億円に合わせました。サービス業の内訳や分野別の就業人数がわかると、分野ごとの生産性を計算でき、具体的な提案に繋げられそうです。福井県や、鯖江市でもデータ探してみます。


まずは、Excel形式のオープンデータを、CSVへと加工します。


arao_fukuoka.csv
CSV UTF-8で保存、すっきりシンプルになりました!汎用的な形式にしたので、人口データも加えておきます。UTF-8のCSVならスマホでも読めますよ!


コロナだけじゃないリスク、インフルエンザは減っているか?福岡市オープンデータ編
福岡市のインフルエンザオープンデータ、相変わらずほぼ0更新続いていました。全国でも57件、昨年同期間77,425件の1300分の1!
全国インフルエンザ報告数(厚労省)
インフルエンザをほぼ0に抑え込んでも広がってしまう、COVID-19、恐るべし。ニューノーマル、創りましょう!


北九州高専、なんと校長先生が応援にいらっしゃってました!しかも、本江校長、富山高専のOB!


工場内の悩みをIoTとロボットとARで解決するプランを発表する北九州高専生!自分たちで実際作って試すのが一番ですね。


応援にかけつけた有明港先生達、最年少は2年生!全国に向けて気合充分!


歴代受賞者によるトークセッション。有明高専の指導教員、野口さんもなんと本コンテストのOB!起業経験を持った、母校高専の教員とはステキすぎる環境!Pioneer Porkの有方さん、熱いメッセージが最高でした。


会場外にはLEDのクリスマスツリー(めがね会館でもやりました


博多駅B1Fで食べたかった水炊きを、19:30の終電まで残り30分で食べ、余った10分でお土産購入。(256人を超えるいいね!


また来ます!

人を訪ねて熊本巡り。

人吉を望む景色がステキなお店で偶然会った、松山さんと!
2020年7月、過去最大級の水害に襲われた人吉市。鯖江市も2004年7月の水害からの復興が快進撃の始まりでした。河和田アートキャンプ学生活動拠点施設「らてんぽ」から世界へ鯖江市地域活性化プランコンテスト | 市長をやりませんか?TSUGIRENEWSABAE CREATIVE COMMUNITYなどなど。活動樹形図が作れるオープンデータが必要ですね。
2020 年 7 ⽉豪⾬に伴う熊本県南部における災害調査速報 - 熊本⼤学くまもと⽔循環・減災研究教育センター
熊本・人吉の水害「過去最大級」 55年前の浸水高超え:朝日新聞デジタル

復興の鍵は、若いパワーと支える市民力!
地域に暮らす、児童生徒学生と創りましょう!


PCN熊本の赤山さん!拠点予定のヒトヨシラボ前にて


ワクワクを予感させる場所、ヒトヨシラボ


熊本県人吉市、九州技術教育専門学校の1F!


青井阿蘇神社。


向かいの橋にも、水害の爪痕。


復興中!


「人吉城」への案内に誘われ立ち寄った「The Fahrenheit GRILL.WINE.MUSIC」。アニメ、夏目友人帳の聖地と聞き、名城100のひとつでもある人吉城見学。


人吉城の入り口


復活間近の熊本城!


熊本城の石垣をイメージした熊本駅、こちらも完成間近。


電車もフルくまもん!


合志市にある、熊本高専熊本キャンパス。
* 熊本市にあるとしていた誤記を修正。香川高専、仙台高専、八代キャンパス同様と思いましたが違いました。元熊本電波高専の「熊本」をとったとのこと。幻となった実在しない高専キャンバス、熊本高専合志キャンパス。


熊本高専もうひとつのキャンパス、熊本高専八代キャンパス


2014年の高専ロボコン優勝ロボットが展示されてました!


マイコンはロボコン界で人気のArmアーキテクチャ、STM32!


勢いが出る空気圧による制御!


「城スタンプ」
スタンプラリー的に城巡りに楽しむことをイメージしました。どのくらい知っていますか?最寄りの名城はどこでしょう?

名城100のオープンデータがあったので、いらすとやさんのイラストとアイコン、自分で撮った写真オープンデータを加えて、webサイトとしました。固有ページがあるので、いろいろと育てていくのもありですね。城好きな方、オープンデータに興味ある高専生、ぜひ、オープンソースにご参加ください!→ src on GitHub

鯖江市のステキなところのひとつ、提案型市民主役事業。市民が継続に向けて動いた結果、令和3年度版の募集が開始されました!
令和3年度実施予定提案型市民主役事業提案募集開始 – めがねのまちさばえ 鯖江市

早速、CSVオープンデータ化して、検索アプリ作成!目的と予算上限が設定されています。みなさんならどんな事業を提案しますか?

鯖江市 提案型市民主役事業 令和3年度


ITのまち鯖江推進事業 - 鯖江市 提案型市民主役事業
地域情報化アドバイザー検索アプリ」を元に、事業毎に固有URLを設定する形にしました。過去からのデータ、蓄積していきたいですね!

すみません、デザインはいい加減です。求むCSS修正!(オープンソース on GitHub)
GitHubの使い方は「33ステップで解説、GitHubオープンソース貢献入門、IchigoJamプリントをつくってみよう!「もじのしょうたい CHR$/ASC」とはじめてのプルリク」を参考にどうぞ!

オンライン開催された「オープンデータシンポジウム2020 オープンデータ伝道師大集合」の新型コロナとオープンデータセッションに参加。より使いやすいデータがあれば、こどもからシニアの方までみんなで使えて楽しくなりますね!

オープンデータ伝道師は、自動的に地域情報化アドバイザーにもなる仕組み。地域情報化アドバイザーとは、総務省による日本全国隅々まで情報活用できるように、専門家を国の予算で派遣する制度。予算に限りがあるので、早いもの勝ちです!今年度は、原則オンラインでの支援となって、お互いより手軽になっています。(総務省|ICT利活用の促進|地域情報化アドバイザー派遣制度(ICT人材派遣制度)

207人登録されている地域情報化アドバイザー、その一覧がオープンデータになっているので、早速活用して、地域情報化に貢献したいと思います。「■地域情報化アドバイザー一覧 2020年度 | APPLIC(一般財団法人 全国地域情報化推進協会)」に情報は掲載されていますが、一人ずつPDFになっているので、検索しづらい状況でしたが、オープンデータによってこの通り!

総務省 地域情報化アドバイザー一覧 2020」(src on GitHub)
ただこの実現が一筋縄ではいかなかったので、使いやすいオープンデータづくりの参考にしていただけるよう、ここにまとめます。

オープンデータ改善点15

1. 「地域情報化アドバイザー一覧 - DATA GO JP」へのリンクを増やしましょう。地域情報化アドバイザー一覧へのリンクはありますが、逆がありません。総務省からのリンクもぜひ。

2. オープンなフォーマット、CSVオープンデータにしましょう。UTF-8 CSVデータなら、Excelで普通に開くこともできます。作り方はかんたん、名前をつけて保存「UTF-8 CSV」を選択するだけです。

3. 先頭行は項目名としましょう。タイトルや空行は不要です。データに関する情報(メタデータ)は、リンク元に記述しておきましょう。

4. 項目は1行で収めましょう。1行はみだしていた項目を中にいれました。

5. 項目名内での改行は避けましょう。

6. 項目名は何かつけましょう。仮に「ID」と振りました。ただ、五十音順に並んでいるので、今後、増減があったときにIDが変わってしまいそうです。登録日欄を設けて、登録順に下に足していきIDを増加させていくか、各地域情報科アドバイザーのマイナンバーを記載しておくのもいいでしょう。(あれ?

7. IDの重複は避けましょう。アプリで何か挙動が変だと思ったら、「064」が2つありました。明らかなミスだったので「063」と修正しています。

8. 姓名の区切りは統一しましょう。名字と名前、区切りなし、半角スペース区切り、タブ区切り、全角スペース区切り、中黒区切りなどが、混在していました。すべて半角スペース区切りへと正規化しました。

9. データの前後の空白は避けましょう。名寄する際など、トラブルの元です。

10. データ後ろの空データ行は削除しておきましょう。CSVデータにしたとき、行数が無駄に多くなってしまいます。macOSであれば、ファインダーにてCSVデータを選択し、スペースを押してみえるプレビューで確認できます。

11. 殻の項目名と空データは削除しておきましょう。ただ、あってもそんなに問題はないです。項目の追加はプログラムによる自動化に障害となるとは少ないので、有用なデータ項目はどんどん追加しましょう。

12. データ内でスペースによる調整は避けましょう。

13. ファイル名はわかりやすくつけましょう。「01_ad_opendata.csv」という名前ではデータ内容が想像できません。正規化後の「ictadvisors_2020.csv」としました。

14. 顔写真URLの項目がほしいです。元データと同様のデータ量で公開しましょう。せっかくオープンデータがあっても、元サイト以上に使い勝手をよくできないと活用範囲が限定されてしまいます。(民間オープンデータであれば、戦略としてありです)

15. 対応可能分野の項目がほしいです。サイトにはありますが、プロフィールやオープンデータに掲載されていません。207名の地域情報化アドバイザーを効率よく探す重要な情報なので、ぜひ追記いただきたいです。

14、15以外は、対応して、CSVオープンデータとしてGitHubで公開し、簡単な検索アプリを作って公開しました。今回は静的ページも生成し、検索エンジンからの流入も狙っています。結果はまたしばらく運用してレポートしたいと思います。
総務省 地域情報化アドバイザー一覧 2020」(src on GitHub)


オープンデータ伝道師、大集合!
自治体の方、地域情報化アドバイザー制度のご利用、ご検討ください!

「オープンデータシンポジウム2020 オープンデータ伝道師大集合」
YouTubeでの録画、どなたでもご覧いただけます!

日々進化を続けるコンピューター、プログラミングで楽しくフル活用しよう!

高専プロコン選出、起業家甲子園出場候補チームをメンタリング&電子情報工学科3年生のプログラミングの授業にてゲスト講師に母校、福井高専へ。

世の中には用途に合わせたいろんな言語。IchigoJam BASICは1年の時に体験してくれた電子情報工学科の3年生、JavaScript、C言語と学んでいるとのことで、Zen言語にチャレンジ!ダウンロード、展開し、環境変数「Path」を設定。基本的なPCスキル、大事ですね。

コマンドプロンプトで zen が起動したら準備完了!

$ mkdir zen-test1 $ cd zen-test1 $ zen init-exe $ zen build run

コンパイルされて、動きました!VSCodeをセットアップ済みなら・・・(Mac のシェルに code コマンドを登録する

$ code src/main.zen

で、表示する文字を編集して、再度 zen build run してみましょう!

例えば、フィボナッチ数を再帰で計算するプログラムはこんな感じ

const std = @import("std"); pub fn fib(n: i32) i32 { if (n <= 1) { return n; } else { return fib(n - 2) + fib(n - 1); } } pub fn main() anyerror!void { const n = 10; std.debug.warn("fib({})={}\n", .{ n, fib(n) }); }

シンプルで読みやすい?自明な時には型、省略可能です。


Zen Fib
build.zen を、WebAssembly向けの build.zen に変更して、ブラウザ上で動かすこともできます。(src on GitHub)
自分のPCで動かすためには live-server など、webサーバーが必要なのでちょっとひと手間入ります。

webアプリとして組み込んだZen言語版フィボナッチ!
HTML/CSS/JavaScript + GitHub入門」と合わせてどうぞ!

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Zen Fib</title> <style> body { text-align: center; font-family: sans-serif; } input { background-color: #ddddff; margin: 1em; padding: .5em; font-size: 150%; text-align: right; } button { background-color: #ffffdd; color: #880000; padding: 1em; font-size: 110%; } textarea { width: 21em; height: 12em; } a { color: gray !important; } </style> </head> <body> <h1>Zen Fib</h1> <input type="text" id="fibn" value="10"><br> <button id=btn>Zen言語でフィボナッチ計算!</button><br> <input type="text" id="ans"><br> <script type="module"> window.onload = async () => { const wasm = await WebAssembly.instantiate(await (await fetch("main.wasm")).arrayBuffer()); const ex = wasm.instance.exports; const fib = ex.fib; btn.onclick = () => { ans.value = fib(fibn.value); }; }; </script> </body> </html>


起業家甲子園に向けて、やるぞ!の図 at 福井高専、電子情報工学科!


Hana道場では中学生が、JavaScriptで新コンセプト付き七並べゲームを開発してました。
プログラミングのウデを上げたい福井高専生も遊びに来るといいよ!

型がないJavaScriptでは組みにくいロジックは、Zen言語で作ってきっちりつくって、かつ、高速化を狙うのもいい手。
いろいろ試して、自分に馴染むツール、見つけよう!

Facebookグループ「IchigoJam-FAN」で開催中の「IchigoJamで欲しい機能アンケート」、USBキーボード対応、HDMI出力に次いで3位が小数対応。

一般的に小数の計算は遅くなります。特にIchigoJamで使っているような小さなCPUでは小数計算用の回路もないので、遅くなってしまいます。MSX BASICでは基本変数は小数として扱われ、DEFINTA-Zで整数として宣言することで高速化するテクニックがありました。また小数計算を導入する場合、どのような文法にするかは悩ましい問題。

小数を使った計算をしたくなることは確かにあります。16bitのIchigoJam変数の範囲に収まるようにどう計算式を組み立てるか考えたいときなどに便利です。そこで頼るは、ネットの力。IchigoJamの無線LAN拡張ボード、MixJuiceに対応した小数計算サービスを作りました。(src on GitHub)

?"MJ GETS app.sabae.cc/svrcalc/?2.1+2.2 4.300000000000001

このように結果が返ってきます!四則演算のみに対応しています。

IchigoJam web の I/O → MixJuice オプションでも動きます。

作り方と、微妙な誤差についての解説。

借りているサーバー app.sabae.cc に、式が届いたら結果をテキストで返すプログラムをDeno/JavaScriptで書いて動かしっぱなしにしています。

import { createApp } from "https://servestjs.org/@v1.1.7/mod.ts"; import { calc } from "./calc1.js"; const main = (q) => { return calc(q) + "\r\n"; }; const app = createApp(); app.get(/\/*/, async (req) => { const q = req.url.lastIndexOf("?"); if (q < 0) { return; } const s = req.url.substring(q + 1); const body = main(s); const headers = new Headers({ "Content-Type" : "text/plain", "Access-Control-Allow-Origin": "*", }); await req.respond({ status: 200, headers, body }); }); app.listen({ port: 3001 });

コアになる計算する部分 calc1.js はこういう感じ

const calc = (s) => { const n = s.match(/(\d+(\.\d+)?)([\*|\+|\-|\/])(\d+(\.\d+)?)/); if (!n) { return "err"; } const a = parseFloat(n[1]); const b = parseFloat(n[4]); const op = n[3]; switch (op) { case "*": return a * b; case "+": return a + b; case "-": return a - b; case "/": return a/ b; } return "err"; }; // console.log(calc("0.1+0.2")); export { calc };

正規表現を使って受け取った文字列から数2つと演算子を取り出し、計算結果を返しています。 JavaScriptでの数は、IEEE 754 の倍精度 64ビットバイナリ形式、2進法による浮動小数なので0.1を正確に記録できません。使いたい精度に合わせて適宜丸めましょう。

なぜ、denocalcのように、evalを使わないのでしょう?
ヒントはサイバーセキュリティ。アクセス制限をしていないサービス、悪意を持った人に好き勝手されないよう気をつけましょう。
→ 中高生向けサイバーセキュリティ教育プログラム「CyberSakura

SSL化や、いろんなサービスへと接続するフロントとして、nginxというwebサーバーを使っています。

$ vi /etc/nginx/nginx.conf server { ... location /svrcalc/ { proxy_pass http://localhost:3001/; } $ nginx -s reload $ git clone https://github.com/taisukef/servercalc.git $ cd servecalc $ nohup deno run -A server.js &

試しに「https://app.sabae.cc/svrcalc/?2+2」などとアクセスし、4が返ってきたら成功!

サーバーが自在に使えると楽しいですよ!
時給1円のサーバーくんをプログラミングで自在に操ろう! クラウド入門 ConoHa API編

PCN北九州から、ステキな新型IchigoJam!

クリスマスツリー型IchigoDakeキット、かんたんなプログラムで自由自在にキラキラさせよう!


部品セット!


部品が揃っているか確認したら、低い部品からはんだづけ!


いつもの抵抗330Ωがいませんね?今回のLED、抵抗内蔵型なので大丈夫!


ニッパーで切るときは指で押さえて飛散防止!


裏面、完成!


LEDはむきがあるので気をつけて!


ひとつだけ、改造しちゃいます。aitendoで買った七色に光るLEDをてっぺんに使用。


できました!(オフシーズンに、縦型信号、歩行者信号としても使うことを想定した配置)


IchigoDyhookで実験!全部光りました!

OUT1,1 OUT2,1 .. OUT7,1

2から5はPWMを使って、弱く光らせることもできます

PWM2,1000 PWM3,500 PWM4,250 PWM5,100


7つのLEDをランダムに光らせるプログラム

10 OUT RND(7)+1,RND(2) 20 WAIT 10 30 GOTO 10

OUT1からOUT7の7種類なので、RND(7)に1を加える。ONかOFFかの2種類なのでRND(2)
あとは、好きなタイミングで繰り返すだけ
* LED1/LED0の代わりに、OUT7,1/OUT7,0が使えます!


スイッチを入れるとボタン電池で自動起動!かわいい。


ペンダントにしたいので、抵抗の切れ端を輪っかにしてはんだづけ。


クリスマスを創ろう!
IchigoJam Advent Calendar 2020 - Qiita

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