今日はオープンデータの日、世界中でオープンデータに関するイベントが開催されています。
You are invited — Open Data Day

コロナ禍の今年は富山、石川、福井、北陸三県合同でオンライン開催!情報提供タイムの後は、ブレイクアウトルームに分かれてオープンデータかるたを使ったアイデアソン!


オープンデータが書かれたカルタを並べて、データをちょい足し、アイデアをまとめて発表しました!


インターナショナルオープンデータデイ@北陸オンラインでの学び、オープンデータとSDGsを組み合わせたカードゲームがおもしろそう!


力強いメッセージ「誰だってオープンデータは作れる!」 by Code for Toyama City の寺田さん
早速、データづくりから始めます。


code4sabae/SDGs_ja: SDGS(持続可能な開発目標)、17の目標(ゴール)と169のターゲットのCSVデータ(English/Japanese)
GitHubで検索して発見した「datapopalliance/SDGs: Excel and CSV versions of the goals, targets, and indicators from the Sustainable Development Goals (SDGs).」をフォークして、日本語とタイトルと色と画像を足しました。

作成したCSVは、csvbeautyを通しているのでExcelからプログラムまで幅広く活用いただけます。webアプリやサーバーでのDenoで使う場合、下記のようなコードで簡単に使えます!

<script type="module"> import { CSV } from "https://code4sabae.github.io/js/CSV.js"; window.onload = async () => { const baseurl = "https://code4sabae.github.io/SDGs_ja/"; const goals = CSV.toJSON(await CSV.fetch(baseurl + "SDG-goals.csv")); console.log(goals); const targets = CSV.toJSON(await CSV.fetch(baseurl + "SDG-targets.csv")); console.log(targets); }; </script>

オープンデータかるたとSDGsを組み合わせる準備ができました!

データの準備だけではちょっとさみしいので、簡単なゲームを作ってみました。

SDGs GOALQUIZ
169のターゲットをランダムにシャッフルし、クイズゲーム風に表示されるターゲットから、対応するゴール(目標)を選び、正答率を競うゲームです。 日本語、英語、両対応。途中での切り替えもできます(アイコンを切り替えるにはリロードが必要)。なかなかに難しいです。

SDGsアイコンはオープンデータではありません。非営利で資金調達目的でなければ申請なしに使用できます。詳しくは、国連のサイトをご確認ください。
SDGsのポスター・ロゴ・アイコンおよびガイドライン | 国連広報センター

クイズゲームのメインプログラム、JavaScriptでなかなか分かりやすく書けたと思います。

window.onload = async () => { const baseurl = "https://code4sabae.github.io/SDGs_ja/"; const goals = CSV.toJSON(await CSV.fetch(baseurl + "SDG-goals.csv")); const targets = CSV.toJSON(await CSV.fetch(baseurl + "SDG-targets.csv")); const body = document.body; add(body, "h1", "SDGs " + lang("ゴールクイズ", "GOALQUIZ")); const result = add(body, "div"); result.className = "result"; const quiz = add(body, "div"); quiz.className = "quiz"; const logos = add(body, "div"); logos.className = "logos"; const sels = []; for (const goal of goals) { const img = new Image(); img.src = baseurl + goal[lang("logo_ja", "logo")]; logos.appendChild(img); sels.push(img); } const credit = add(body, "div"); credit.className = "credit"; add(credit, "span", "App: CC BY @taisukef", "https://fukuno.jig.jp/3146"); add(credit, "span", " "); add(credit, "span", "(src on GitHub)", "https://github.com/code4sabae/goalquiz"); add(credit, "br"); add(credit, "div", "Data: SDGs_ja on GitHub", "https://github.com/code4sabae/SDGs_ja"); add(credit, "span", "Japanese", "#ja"); add(credit, "span", " / "); add(credit, "span", "English", "#en"); add(body, "qr-code"); shuffle(targets); let point = 0; for (let i = 0; i < targets.length; i++) { quiz.innerHTML = "&nbsp;"; quiz.style.backgroundColor = "white"; quiz.style.color = "black"; const target = targets[i]; const goal = goals[target.goal - 1]; const desc = lang("description_ja", "description"); const title = lang("title_ja", "title"); const tid = startShowText(quiz, target[desc], lang(50, 25)); const ans = await waitClick(sels) + 1; clearInterval(tid); quiz.textContent = target[desc]; quiz.innerHTML += "<br>" + lang("あなたの回答", "Your Choice") + ":" + ans + " 「" + goals[ans - 1][title] + "」"; await sleep(300); quiz.style.backgroundColor = goal.color; quiz.style.color = "white"; if (ans == target.goal) { quiz.innerHTML += "<br>" + lang("正解!", "Correct!"); point++; } else { quiz.innerHTML += "<br>" + lang("まちがい! 正解は ", "Wrong.. Correct answer is ") + target.goal + " 「" + goal[title] + "」"; } result.textContent = lang( (i + 1) + "問中" + point + "問正解 正解率" + (point / (i + 1) * 100).toFixed(1) + "%", "Q cnt " + (i + 1) + ", Corrects " + point + ", Rate " + (point / (i + 1) * 100).toFixed(1) + "%" ); await sleep(1000); } alert(lang("おめでとうございます!全169ターゲットのクイズを終えました!", "Congratulations!! You've finished quiz of 169 targets.")) };

(src on GitHub)

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

越前がにロボコン」は、福井県情報システム工業会の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へどうぞ!

AI/IoT/VR/ロボット/オープンデータなどなど、子供でも無料や格安で遊べることは増加し続けるばかり。
理想は、すべてのこどもたちによる一日一創。
最新技術も、ハサミも、同じ、ただの楽しい創作ツール。

福井高専の高専卒の新校長、田村さんと第二回目の高専の未来を語る会。創ろう鯖江モデル!

富山県氷見市からオープンデータに関する鯖江視察と質疑応答。
1. まずは5つ星オープンデータ!(避難所データをodpに登録すればすぐに即アプリで体験可能)
2. 腰を据えて取り組む、地域活動&人材育成(地域の課題を地域で解決、グッドプラクティスを横展開)

Hana道場流、人材育成。
1. プログラミングを通じて、自分で学ぶ楽しさとコンピューターとネットワークの凄さ知るこどもを創る。
2. 最強の学習ツール、ノートPC&webの使用を許可する。(プロの現場の大人と同じ条件!)

氷見市役所の人とももりあがったベーマガ談義。
多くのAI人材を育てた伝説の雑誌、ベーマガ、「最新号」がまもなく発売!

ichigojam-1.3.2b19.zip
- DRAWの第3パラメータまたは第5パラメータ追加(0:PRESET、1:PSET、2:XOR)
- グラフィクスで描画されているか判定するPOINT(X,Y)追加
- ファイル0の先頭行が@ARUNで始まっていたら自動起動
- 自動起動を停止した際メッセージがでない不具合修正
IchigoJamボードのファームウェアの焼き方 – about yrm


10 DRAW 32,24,RND(64),RND(48),2 20 GOTO 10

ボタンを押しながら起動するIchigoJamのワザで伝えるコンピューター。
要望にお応えして、新機能、先頭行の先頭に @ARUN と記載することで、自動起動するようにしてみました!
組み込み用途に便利な予感!


IchigoJam x sakura.io で快調に開発進む、本格業務利用の次世代バスロケ!


長野では、こどもが開発、たんぼの水位を測るデバイス by IchigoJam!

AI人材不足を嘆くより、まずは自分でやってみよう!
福井高専、鯖江市とも連携したサポート企画、検討中。

世界から市町まで拡大縮小するカラム地図のプロトタイピング。
ひとまず、北陸三県をカラム地図化して、日本カラム地図から辿れるようにしてみました。

日本カラム地図
今日現在、緑色の北陸三県+広島県だけ辿れます。
一般的なずらっと1次元に並ぶものより、2次元の方が選ぶ方が楽!


富山カラム地図
日本で一番市町村数が少ない県!4x4で収まる、15市町村。船橋村は日本最小の市町村とのこと。


石川カラム地図
出身地石川県。実家は現在白山市となった松任市。内灘町にも祖母がいます。七尾市に年中まで住んでました。 津幡町には石川高専!
高専生が伝える小学生プログラミング at スゴイ津幡町まちなか科学館、高専生先生の意気込み&感想動画 / KidsVenture x 石川高専


福井カラム地図
再掲、福井カラム地図。Wikipediaへのリンクがついているので、意外と知らなかった地元近くを知るチャンスに。


世界カラム地図
世界カラム地図からネパールと日本だけ辿れます。追加希望の方、カラム地図 on GitHub までお寄せ下さい!

起業家甲子園出場権を手にしたアントレプレナー研究会のある、富山高専射水キャンパスにてメンタリング。
富山高専本郷キャンパスでjigインターンのOB、すがっちとなぽりたんもジョイン!
高専生ならではの感性と創造力で北陸から一石、投じよう!

北陸、福井、鯖江の銘菓、めがね堅パンのハートエディション!

昨日のLPC810 x WS2812Bにバグが見つかり、無事光るカセットテープのLPC810エディションが点灯!

12MHz版だとちょっと信号はいい加減ですが、ちゃんと光りました!
(原因:asm15の DATA B 0,0,0 が、2byteアラインされてしまうため)

マシン語で作る、簡易キラキラプログラムがこちら!
末尾、16byteを変更すると、アニメーションするLEDの色が変わり、その前4byteでウェイトを調整できます。

10 POKE#700,0,4,0,16,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,251,255,239,33,72,223,33,1,96,33,72 20 POKE#728,1,104,3,34,210,67,17,64,1,96,31,72,31,73,1,96,31,72,12,33,1,96,31,76,4,34,15,32,32,161,30,75,14,120,30,112,1,49,1,51 30 POKE#750,1,56,249,209,15,32,26,73,128,37,11,120,34,96,43,66,8,208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,96,7,224,0,0,34,96 40 POKE#778,0,0,0,0,0,0,0,0,0,0,0,0,109,8,233,209,1,49,1,56,228,209,13,79,1,63,253,209,10,73,14,120,14,32,79,120,15,112,1,49 50 POKE#7A0,1,56,250,209,14,112,213,231,128,128,4,64,16,0,4,64,192,193,0,64,191,255,255,255,0,32,0,160,0,35,0,160,0,0,0,16,128,26,6,0 60 POKE#7C8,20,0,0,20,20,0,20,0,20,20,20,0,0,20,0,0 70 A=#700:L=216:LRUN1 'FILE1 100 'LPC810 Writer 256byte from ADR:A 110 UART3,2:OUT2,0:OUT1,0:WAIT9:OUT1,1 120 CLS:?"?";:GSB@R 130 ?"Synchronized":GSB@R 140 ?12000:?:GSB@R:GSB@R 150 ?"A 0":GSB@R:GSB@R 160 ?"U 23130":GSB@R 170 ?"W 268436096 ";256:GSB@R:UART1,2:LC0,-1:FORI=0TO255:?CHR$(PEEK(A+I));:NEXT:UART3,2:LC0,6 180 ?"P 0 0":GSB@R 190 ?"E 0 0":GSB@R 200 ?"P 0 0":GSB@R 210 ?"C 0 268436096 256":GSB@R 215 '?"G 268436128 T":GSB@R:END 220 OUT2,1:OUT1,0:OUT1,1:END 500 @R:K=INKEY():IF K=13 K=INKEY():WAIT9:RTN ELSE CONT

マシン語のプログラムはこちら。
データを一旦RAM(#10000000)へ転送し、1ループごとにローテートさせています。

DATA L #10000400 ' stack DATA L #21 ' entry point DATA L 0, 0, 0, 0, 0 DATA L #EFFFFBDF ' VALID_CODE = 0x100000000-0x10000400-0x21 @ENTRY R0=[@SYSAHBCLKCTRL]L R1=#DF 'SWM, GPIO, I2C:off, FLASH, FLASHREG, RAM, ROM, SYS [R0]L=R1 R0=[@FLASHCFG]L R1=[R0]L R2=3 ' flash no wait: set 0b00 R2=~R2 R1&=R2 [R0]L=R1 R0=[@PINENABLE0]L R1=[@PINENABLE0_DATA]L [R0]L=R1 R0=[@GPIO_DIR0]L R1=`1100 ' PIO0_2 and PIO0_3 [R0]L=R1 R4=[@GPIO_NOT0]L R2=`100 ' PIO0_2 @COPYTORAM R0=15 R1=@DATA_LED R3=[@RAM]L @COPYTORAM_LOOP R6=[R1] [R3]=R6 R1+=1 R3+=1 R0-=1 IF !0 GOTO @COPYTORAM_LOOP ' WS2812B driver ' R0 - data count ' R1 - data address (G1,R1,B1,G2,R2,B2 ....) ' R2 - OUT value ' R3 - data value ' R4 - GPIO address ' R5 - bit count ' R7 - wait count @WS2812B R0=15 ' R1=@DATA_LED R1=[@RAM]L @LOOP_DATA R5=#80 R3=[R1] @LOOP_BIT [R4]L=R2 R3&R5 IF 0 GOTO @ZERO NOP NOP NOP NOP NOP NOP NOP [R4]L=R2 GOTO @JOIN @ZERO NOP [R4]L=R2 NOP NOP NOP NOP NOP NOP @JOIN R5=R5>>1 IF !0 GOTO @LOOP_BIT R1+=1 '+6clock R0-=1 IF !0 GOTO @LOOP_DATA @WAIT R7=[@WAIT_N]L R7-=1 'wait R7*3+1 clock IF !0 GOTO -1 R1=[@RAM]L R6=[R1] R0=14 @SLIDE R7=[R1+1] [R1]=R7 R1+=1 R0-=1 IF !0 GOTO @SLIDE [R1]=R6 GOTO @WS2812B ' init @SYSAHBCLKCTRL DATA L #40048080 @FLASHCFG DATA L #40040010 @PINENABLE0 DATA L #4000C1C0 @PINENABLE0_DATA DATA L #FFFFFFBF @GPIO_DIR0 DATA L #A0002000 @GPIO_NOT0 DATA L #A0002300 ' WS2812B @RAM DATA L #10000000 @WAIT_N DATA L 400000 @DATA_LED DATA B 20, 0, 0, 20, 20, 0, 20, 0, 20, 20, 20, 0, 0, 20, 0

asm15 assembler」でアセンブルできます!
WS2812Bの信号は、800kHz(秒間80万回、1.2マイクロ秒に1回)の波の形で、0と1とを区別するので、とても人の手では制御できませんが、マシン語ならたった30円のコンピューターにさせれば余裕です。

切っても切れない、社会とコンピューター。誰にでもオススメしたいプログラミング体験。
IchigoJam BASIC で、プログラミングの基本を、マシン語を使ってコンピューターの真の実力を、それぞれかんたんに体験できます!

富山高専からの2016年jigインターンOB、すがっちが学祭に呼んでくれました!

高専祭、パンフレットにも掲載!


講演スライド「時代は高専生を求めている! 高専生活を`100倍楽しむライフハック - 富山高専祭 本郷キャンパス 志峰祭にて // Speaker Deck

富山高専 賞雅校長先生とも対談、エンジニアリングに興味持つ子供が増える中、高専が果たす役割は大きいですね!商船学科、国際ビジネス学科を含めた多様な6学科、グローバルな連携もぜひ!(ルワンダ トゥンバ高専モンゴル高専

学科展示では、感電死しちゃう5万ボルトでも金ザル通せば大丈夫という体を張った展示!

きっと富山ローカル「どんどん焼き」

名産の昆布が入った薄いお好み焼き的なものでした

体育館ではフィナーレイベントのビンゴステージ
(音響、ステージ照明とかも自分達でやっちゃうのもきっと楽しいヨ!DMX512 x IchigoJam

打ち上げ、PCN富山への協力してくれる学生へ「光るカセットテープ一式」贈呈式

あげてしまうと作りたくなる「光るカセットテープ」4代目は、もっとシンプル、ピンソケット仕様

少しニッパーで切り落として横からジャンパーワイヤーで接続(上から、GND / DIN / 5V だけど3Vでもいける!)
テープ状のフルカラーLED(WS2812B、300コで3280円!)を切ってはるだけの簡単工作、IchigoJam / Arduino / Raspberry Pi などお好きなコンピューターにつないで光らせよう!

IchigoJamを使う時、大人はPS/2キーボードもテレビもこだわる必要ありません。
USBシリアルでつないで、シリアルターミナルからコピペでOK!開発環境がいるArduino以上にお手軽ですよっ

シェアが産む創るの連鎖!
私も「光るカセットテープ x IchigoJam」を作ってみました|JO3GBD - ブログ

創って2倍、シェアして4倍、楽しもう!
(`100 = IchigoJamの2進数表記で 4 を表します。確認 on IchigoJam web


すごいよ、ギャル電

ドローン、ロボット、バーチャルリアリティ、人工知能。最新技術で楽しむ第一歩「電子工作&プログラミング」の子供向け教室が富山県砺波市で開催! どきどきのはんだづけからプログラミングの第一歩までの様子を動画にまとめました。


こども電子工作&プログラミング教室 / 富山県砺波市 - YouTube


今回の道具一式!


くみたて手順をわかりやすく解説した資料、IchigoJamキット(一部訂正版PDF


2時間で全員はんだづけ完了!5分の休憩を挟んでプログラミング体験、ボタン押しながらスイッチオンの裏ワザを使って、お家でも遊べるネコジャンプゲームができました。 いろいろなサンプルを打ち込んで遊んだり、教科書を見てひとつひとつ理解してみたり、自分のペースでぜひ遊んでみてください!(公式サイト読み物集) ときどきみんなで集まっての発表会や、PCNこどもプロコンへの応募もおすすめです! わからないことがあれば、Facebookグループ「IchigoJam-FAN」やメールにてお気軽にお問い合わせください!


最後はみんなで記念写真!いい笑顔!(写真提供、永井さん)


ワークショップ前には、エフエムとなみさん&ケーブルテレビの生放送にも出演!


高岡駅近くの鋳造もできちゃうものづくりスペース「はんぶんこ」、東海さんを訪ねました。


古代から伝わる砂型鋳造製法の鋳造キット!写真左下の錫のおちょこを自分で作れちゃいます。
IchigoJamケースも鋳造体験できちゃう!?「プログラミング x 鋳造」も楽しそう!


打ち上げは砺波市の居酒屋さん、山菜もおいしい!


今週末、3/20(日),21(月)は、池袋、旧豊島区役所庁舎にてとしまミュージアム
プログラミングワークショップ「イチゴジャムファクトリー
定員:12名、10:30-12:00(はんだづけ)/13:30-15:00(プログラミング初級)/15:30-17:00(プログラミング上級)
受付は当日、先着順!

参考リンク
- 行事・イベント - IchigoJamでこども電子工作&プログラミング教室開催!(3月19日) | 砺波市役所
- IchigoJamでこども電子工作&プログラミング教室開催!(3月19日)|お知らせ|お知らせ|となみ衛星通信テレビ株式会社
- はんぶんこ - モノを知る・作る・使う -
- としまミュージアム

Code for Kanazawa, Code for Nanto, Code for Sabae が富山に集結
第37回インターネット技術第163委員会研究会 - シビックテックとオープンデータ」
データシティ鯖江こどもパソコンIchigoJamで仕掛ける次世代のまちづくりを話してきました。
行番号付きBASICで上がる歓声!?

インターネットの研究会ということで、ネットワークの基本、パソコンからパソコンへのデータ転送を、IchigoJam同士をつないでみました。GNDとGND、親機のTXDと子機のRXDをジャンパー線でつなぎます。長文の転送はデフォルトの通信速度11,520bpsでは間に合わなかったので、300bpsに落としています。


子機を2台に増やしてもこの通り!
作ったプログラム、友達みんなにまとめて配ることができますね!


IchigoJam間 プログラム転送例


IchigoJamで学ぶプログラミングの教科書「IchigoJamでプログラミング」が完成しました!
著者は元福井高専電子情報工学科教授、蘆田昇氏、プログラミングを福井高専で担当していて、私の元担任の先生でもあります!

昨日、5/28はjig.jp創立記念日。スタッフ全員にこの教科書をプレゼント!
ますます加速する新しいインターネット社会、次の12年、楽しみです!

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