教材づくりや、オンラインイベントで活躍、ブラウザ上で動くIchigoJam web、EEPROMを使った128コの拡張領域を含むファイル保存に対応しました。CPUに保存する0-3の4ファイルに加え、1Mbit EEPROMを搭載した時に使える100-227までの128ファイルが、ブラウザ上に保存されます。 データは localStorage で、保存されるのでブラウザを閉じても再開できます。

IchigoJam web
長いプログラムのLISTコマンドでの停止が効かない問題にも対処完了、大作づくりにどうぞ!

大作を作るコツ
- シーン毎にプログラムを分けて、LRUNでつなぐ(ファイル番号と行番号を指定可能)
- いくつかのシーンから共通で使う場合、変数Rなどで戻るファイル番号や行番号を渡す
- 似たプログラムは別ファイルとして保存を使ってコピーすればOK!
- メッセージなど、文字列は配列へデータをセットするプログラムに分けると便利
- 変数や配列、メモリをどう使うか別にまとめておく
- 局所的にしか使わない場合、配列や別のメモリに退避させるとすっきり(Stackも便利
- どのファイルが何の機能かわからなくならないよう、1行目にコメントで名前をつけておく
- ファイル番号をつけずにSAVEで、前回使ったファイルに保存できる(?FILE())

詳細は「IchigoJam BASIC 1.4 コマンド一覧」を見ながら、どうぞ!


AmabieDakeペンダント | Programming Club Network
疫病退散でご利益があるといわれる妖怪「アマビエ」を象ったIchigoDakeDakeCap、ネックストラップのセット。アマビエさまの目がLED、電池をいれるとピカピカ光るプログラム書き込み済み!

もちろん、自分でプログラミングで自在にコントロール可能もOK!

links
- 全国から参加してくれました!こどもの日IchigoJamオンライン"プチ"ハッカソン | きらきら星のつぶやき☆
- 創造的休暇を過ごそう!IchigoJamプチハッカソン開催 -with PCN仙台【オンラインIchigoJam大喜利】: Hana道場

支え合い、時に競争しながら、みんなで創る未来。世の中にどのように貢献したいか?人によって夢はさまざま。貢献するために足りないスキルを習得すること、それが勉強、または、学習。

義務教育課程の教科は、学習する力を身につけるためのいわばチュートリアル。 個別最適化された学び「GIGAスクール構想」が実現すれば、こどもたちがより実践的な課題に目を向け、それぞれの個性と共により深いスキル習得につながるはず。

2006年、カーンアカデミーによって提唱された動画教材による反転授業とスキルツリー。わからないところは何度も見直せる動画教材がすべて揃えば理想的ですが、福井県による「ふくいわくわく授業」でも100ちょっと。小中全学年全教科に対してはまだまだ不足。

そこで活かしたい民間力。福井県教育総合研究所で紹介されていた「とある男が授業をしてみた」を見てみると小中高校生向けの動画が、なんと計2,000以上!


時間割ガチャ - とある男が授業をしてみたバージョン
チャンネル登録数は90万!教員免許も持っている教えるプロフェッショナル。(【とある男が授業をしてみた】葉一(はいち)って誰?本名/学歴/いじめ/どんなYouTuberなの? | LogTube|国内最大級のyoutuber(ユーチューバー)ニュースメディア


オンラインで学ぼう
教材リストオープンデータとして、2115件、登録したので、このように検索も可能!

2115件のコンテンツをどう登録したか?もちろん、プログラミングです!
こちら YouTube Data API を使って、プレイリストから全動画のURL、タイトル、再生時間を取得し、科目、学年で分類するJavaScriptのプログラムの一部。

let data = await fetchYouTubePlaylists(listid) const lists = [] for (;;) { for (const d of data.items) { const list = await fetchVideoDataFromPlaylist(d.id) list.forEach(i => { i.ptitle = d.snippet.title i.playlistId = d.id }) lists.push(list) } saveCSV(path, lists.flat()) if (!data.nextPageToken) { break } data = await fetchYouTubePlaylists(listid, data.nextPageToken) }

基本は簡単、やりたいことを、順に書くだけ! (全文、src on GitHub)

まだ足りない動画教材。誰もが無料でスマホひとつで始められます。動画タイトルに、例えば【】などを使って、対象の学年と科目が分かるように設定してもらえれば、簡単に自動的に整理されたオープンデータとして活用可能です!(登録はこちら
例)「【小学3年 算数】分数のたしざん」「【小学6年 理科】電気の性質とその利用」
松田さんの「マイクラでまなぶシリーズ」も登録!


IchigoJam 6周年イベントに続く第二弾、Hana道場 x PCN仙台 で開催された、オンラインイベント、プログラミング大喜利で、新中学1年生がお題「めがね(めがねのまちさばえ)」に対してプログラミングした「ニュートンのゆりかご」めがねバージョン。発想と実装力がステキ!

テーマに対して、自分の持てる力を活かして、どのようにアウトプットするか!?
実践力が楽しく問われる、それが、プログラミング大喜利!

プログラミングは、ものづくりの一種。でも、あらゆるものがネットにつながるIoT時代、ソフトウェアづくり(=プログラミング)に対する比重は大きくなるばかり。 いろんな科目での学び、その他の学び、いろんなものを使って、自分だけのアウトプットを創って、発表していきましょう!

IchigoJamのプログラムを他のPCとやりとりする際、半角カタカナはなんとかなるとして、絵文字が文字化けが悩ましいところでした。 プログラム内の絵文字を禁止としてもよかったのですが、作りやすさと、読みやすさに圧倒的な理があります。

そうだ、現代Unicodeにも絵文字があるじゃない!IchigoJamとUnicode絵文字の対応表を作って、解決しました!(日本ゲーム大賞U18部門への応募も安心)


IchigoJam web」New! IchigoJam絵文字のexport/import対応!
対応表はこちら!(自由に使えるオープンデータ、#80は全角空白に対応)

←→↑↓♠♥♣♦⚫⚪🔟🍙🐱👾♪🌀 🚀🛸⌇🚁💥💰🧰📶🚪🕴🕺💃🏌🏃🚶🍓   ▘▝▀▖▌▞▛▗▚▐▜▄▙▟█ ・━┃╋┫┣┻┳┏┓┗┛◤◥◣◢

扱いやすくなったIchigoJamのプログラム、おとなもこどなも、はじめてのプログラミングに Let's try!(時間割ガチャ IchigoJam教材フィルター


【高橋名人インタビュー:後編】「ゲームは1日1時間」の提唱者にあらためて聞く「テレビゲームは誰のもの?」 | eSports World(eスポーツワールド)」より
PCNこどもプロコンで特別審査員として来ていただいた、高橋名人、IchigoJamでのプログラミング姿を披露!(高橋名人のIchigoJam入門


PCNこどもプログラミングコンテスト2019-2020最終審査 - YouTube」も公開!

全角半角問題とサロゲートペアとJavaScriptの話

コンピューターが誕生間もなく、メモリが今の10億倍くらい高価だったころ、文字は7bitで表現していました。 今でも削除(delete)の文字コードが2進数で1111111という名残を遺しています。(削除文字 - Wikipedia

やがて、切りよく8bit(256種)になり、増えた128byteを各国それぞれが自由に使い、日本では半角カタカナが誕生。 ただ、漢字を入れようとすると当然、8bitでは足りず、JISが生まれ、8bitとの共存のためShift-JISが誕生、16bit化しました。 ここで大問題。漢字を使わない文化圏において、文字は8bitで十分、16bitの文字コード(いわゆる、全角文字)を想定していないプログラムがうまく動きません。

これを何とかしよう奮闘としたのが第一次全角半角問題。グローバル化に伴い、文字化け問題の解消のため誕生したUnicodeにより、一安心。 と、思いきや、JavaScriptでは内部の文字コードを16bitで扱っているので、16bitでは収まらない漢字(𩸽、ほっけ)や、絵文字(🐱、🍓など)がサロペートペアとして再び2文字化。 これを勝手に第二次全角半角問題と呼びます。

JavaScriptで絵文字を扱う時の注意、lengthで返すのは16bitコードの長さなので文字列の長さと異なります。また、charAtで返ってくるのは16bitで、サロゲートペアの片方だけの可能性があります。 そのくらい、charAtやlengthの内部でやってよと思いますが、現在の実装は残念ながら多分歴史的な経緯もあってこうなっているので、一文字毎に分離しましょう。

const decU = function(s) { if (s == null) return null return s.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S]/g) || [] } const encU = function(uni) { return uni.join("") } // test const s = 'IchigoJam🍓!' const s2 = encU(decU(s)) console.log(s, decU(s), s2, s == s2)

21bitのUnicodeはサロゲートペアをデコードするか、codePointAtを使うことで取得できます。 JavaScriptで文字列を扱うときにハマるポイントなので、頭の片隅に置いておくといいでしょう。

新型コロナウイルス対策ダッシュボードの更新について

COVID-19 Japan 新型コロナウイルス対策ダッシュボード」の最新状況
毎日更新してきたダッシュボードですが、残念ながら、昨日の厚生労働省の定例更新では、都道府県別のデータが公表されず、速報都県以外のデータを更新できていません。


新型コロナウイルス感染症について
政府・行政の透明性確保に、安定的な情報提供やオープンデータが有効です。情報提供、お待ちしています!

ウェブで動く IchigoJam web に、タッチで操作できるソフトキーボードを追加しました。

IchigoJam web
スマホや、タブレットでもポチポチと入力して、プログラミング体験が可能です。Bluetoothキーボードをつないで快適、フルスクリーンモードにも対応。


PCでも新設の[ key ] ボタンを押すと、お試しできます!

2020/4/30 20時が応募締切の「日本ゲーム大賞U18部門」、IchigoJamで作った作品も、IchigoJam web で動くなら応募可能になりました!

日本ゲーム大賞U18部門
18才以下、チームは5名まで、小学生でも中学生でもOK!
2020年応募要項 – 日本ゲーム大賞 U18部門」に、IchigoJam web でもOKと記載!

・Windows、Macもしくは、Webブラウザ上で動くもの
 例)*.exe, *.app, HTML5 (*.html, *.js), Flash, .jar, IchigoJam Webなど
ゲームは、アイデア!
プログラミングして過ごそう! PCN仙台オンラインIchigoJam講座とミニテクニック

時間割ガチャに「英語で学ぶ IchigoJam BASIC by PCN宮崎」を追加!
自分で学ぼう!

福井県による動画教材「ふくいわくわく授業」をきっかけに作った「時間割ガチャ」、集まったコンテンツを元にバージョンアップ!
時間割ガチャ」(大人フィルタ)
筑波大や、東京大学のオープンコースウェアのコンテンツを追加し、対象フィルタを追加したので、大人もしっかり学べるようになりました!


動画教材等の提供について|京都教育大学 動画教材等の提供について
なんと1,959動画!日英中韓、ポルトガル語、ベトナム語、シンハラ語でも学べる、京都教育大学の学生製作した小中学生用の動画コンテンツが公開!


時間割ガチャ」(ベトナム語フィルタ)
言語を変えて、気分転換!


筑波大学オープンコースウェア
国内外の大学が動画教材を公開しています。これを機会にいろいろ学んでみましょう!


見たいコンテンツのみにフィルタリングも可能です。引き続き募集中です!


いえでまなぼう!」 by @ApplePedlar
教材リストオープンデータを使ったアプリ、登場!いろいろとご活用ください!

福井県の教育委員会が始めた福井県独自の学習動画づくり&配信の取り組みがステキです!


Twitter/Facebookでも県内外から大きな反響!そこで、作ってみました、動画で学ぶ時間割!全国の高専の先生もいかがでしょう?エンジニアに憧れる、小中学生にワクワクを届けるチャンスです!


時間割ガチャ - 教材オープンデータから自動生成する時間割
PCNチャンネルと合わせて、オープンデータとしてまとめ、作ったランダムに教科をピックアップして自分だけの時間割を作ってくれるアプリです。

自分の好きなことを自分で学ぶ時間「自由研究」と、自分で学べば学ぶほど楽しい「プログラミング」を混ぜています。 「ゲームは1日1時間! IchigoJamは1日4時間!!」 by 高橋名人(出典、連射ゲーム - SHIROのIchigoJam日記

Schooさんで、収録した新動画「おとなプログラミング入門」も追加!

プログラミング教材「IchigoJam」の使い方とデモンストレーション 32min」
BASICからはじめよう、SchooにてIchigoJam動画教材収録! ガチャピン・ムック、engadget、高橋名人も参戦!?


「対象、科目、タイトル、URL、公開日」を項目名としたGoogleスプレッドシートや、CSVデータとしてオープンデータとしていただければ、どんどんつないでいきます!
教材オープンデータ 登録フォーム

集約したCSVJSONデータは、オープンデータ by Code for Fukui。こちらも自由にお使いください。ただし、動画自体はそれぞれ提供者の著作物なのでご注意ください。


このプログラムも、GitHubでオープンソースとして公開しているので、学生でも誰でも自由に作り変えて使ったり、公開したりできます! デザインをかわいくしたり、学年選択や、得意科目を多めにいれる、逆に苦手科目を克服するなど、自由に改造して自慢しましょう!

JavaScriptで作ったプログラムのメイン部分(index.html)を紹介。CSVデータを読み込み、タイムテーブル作成し、ウェブサイト内に組み込む。ボタンが押されたら、もう一度!

const main = async function() { const url = 'data/funs.csv' const data = await fetchCSVtoJSON(url) const show = function() { timetable.innerHTML = '' const tt = makeTimeTable(data) timetable.appendChild(tt) } show() btn.onclick = show } window.onload = main

学び方を学ぶ、良い機会!

PCNは止まらない。プログラミングや電子工作のワークショップは休止中のPCN仙台ですが、オンラインイベントを開催!様子を見せてもらいました。

PCN仙台 online」
zoomで集合、ブレイクアウト機能で初心者と中級者に分かれてそれぞれレッスン。中級者コースではRPGゲームづくりにチャレンジしてました。触発されて作ってみたものが右下の。元ネタはこどもの頃やっていたMSXでの投稿作品、モノクロームビーナス by TEIJIRO。 (レビュー発見!、ファンダムReborn-7 - モノクロームビーナス - | 石とMSX


RPGづくりのはじめのいっぽ、まずは主人公を登場させて、歩かせ、敵に遭遇したら、どうにかする。ひとつひとつはシンプルなロジック、好きなように積み重ねて、作ってみよう!


IchigoJam用RPG「Beat the Z」のオープンニング画面です。
IchigoJamの遠隔講座や、プログラミング大喜利で便利な、IchigoJam web の小技。フルスクリーンにできるIchigoJam web ですが、停止させるためにESCを押すとウィンドウ表示に戻ってしまいますが、Ctrlを押しながらCを押すとプログラムは止まってもウィンドウ表示はそのままです。

オープンニング画面のプログラムはこちら!

1 CLS:LC10,5:?"Z ヲ タオシテ。。。":WAIT120

シンプルですね!一言加えるだけで、ぐっと遊びやすくなります。


「Beat the Z for IchigoJam」RUN IchigoJam on IchigoJam
おにぎりを食べるとHP全回復。打倒Z目指して、がんばってみてください!意外と悪くないゲームバランスになってます。(たぶん、たまにZがいなくて積むバグありw)

プログラム全文

GSBを使って、機能毎にプログラムを分けてつくるのがコツ!戦闘シーンでアクションゲームにしたり、コマンド選択式にしたりしたい場合、プログラムを分けて、LRUN呼び出しがいいでしょう。

メッセージ表示で使っている技。?CHR$(24) は、IchigoJam用特殊キーコード、カーソルがある行を消せます。ファンクションキーF12と同じ機能。


第10回PCNこどもプロコンの反省会その1もオンライン開催。地球は一つ感ありますね!

PCN鯖江、Hana道場企画「#Hana道場師範チャレンジ
こどもも大人も、IchigoJamでつくったオリジナルゲーム、大募集!(副賞あり)
#プログラミングして過ごそう

links
- IchigoJam (1,500円〜買える、こどもパソコンIchigoJam)
- PCN チャンネル - YouTube (動画で学ぼう、プログラミング)
- 高橋名人のIchigoJam入門

鯖江駅近にステキな新拠点、コミュニティ シェアオフィス「Hana工房 / Hana Innovation Lab.」オープン!

鯖江駅から徒歩5分、Hana道場の真向かい!

梵で鏡開き!

吹き抜けが気持ち良いシェアオフィス、Hana工房内、密を避けたショートオープニングイベント「プログラミング大喜利」IchigoJamを使って初開催!
お題を出すので、すばやくプログラミングして手を上げて、発表する。Hana道場に通う、新中学生達は皆、何も見ずに即つくりだす! お題「小学1年生の算数」で練習、2つ目は「春」。

はい、早かった。早速SIN/COSを使った桜!

オンライン参加の大学生も負けじと発表、桜!かぶったら、早いほうが高得点。

中村師範による、今年度になる年齢をいれると、とーとつに入学お祝いしてくれるプログラム!短い、うまい!

次のお題は「Hana工房のお祝い」合わせて、動画でどうぞ!

どんどんつくろう!
大人でもオンラインでも楽しい、プログラミング大喜利、ぜひチャレンジしてみてください!

ちょっとプログラミングレクチャー、新中学1年生になったベテラン勢向け「SIN/COS、三角関数入門」。斜め移動や、まるっぽい表現、なめらかで周期的な増減に便利ですよ!
プログラミングで広げる表現力! 小学生でも使える三角関数と高専の役割

links
- Hana工房
- Hana道場

6才記念、こどもパソコン通信のホスト「ICHIGOJAM.CLUB」を開局しました!
* パソコン通信とは、パソコンでネットワークを使って情報をやりとりするインターネット以前からあるメディア(草の根BBS、お世話になりました)

ネットにつながらないのがウリのIchigoJamですが、オフラインでの自学でプログラミングの基礎を身に着けたら、ネットワークを使ったプログラミングに挑戦しよう!

お家などにWiFiがあれば、IchigoJam用ネットワークボード「MixJuice 税込2750円」を入手するだけでOK。

「Anti-Coronavirus Dashboard for IchigoJam」
新型コロナウイルス対策ダッシュボード」のIchigoJam版に接続している様子。(まずは現在患者数のみ提供)


各都道府県を3文字で表記し、カラム地図を32x24のテキストスクリーン、IchigoJam上でも再現!

?"MJ GET ICHIGOJAM.CLUB/

でアクセスしてみてください!

こどもパソコン通信のホスト局「ICHIGOJAM.CLUB」やホスト局プログラムも、オープンソース! いろいろなサービス、みんなで増やしていきましょう!
(src on GitHub)

世界がプログラミングの力を待っている!

links
- 「ひっ迫した状況が一目瞭然」新型コロナ病床数まとめサイト、大反響に「バグを疑った」と開発者仰天 “医療現場の声”励みにスピード公開 - ITmedia NEWS
- 都の新型コロナ対策サイト、オープンソースで“派生版”続々誕生 全国で30以上、高専生も開発に参加 - ITmedia NEWS
- IchigoJamボード用OS「Hebi IchigoLatte」、Pythonで作ろうゲーム、動かそうロボット! – about yrm
- 祝!IchigoJam6周年 - SHIROのIchigoJam日記
- 2014年 目指すはMSX! Raspberry Pi より安価な IchigoJam 発表!
- 2015年 創る人を創ろう! Pepper より安価な こどもロボットPaprika 発表!
- 2016年 MSXになりたい「こどもパソコンIchigoJam」あの起動ロゴを搭載!
- 2017年 IchigoJam Zero the World's Lightest PC 0g 150yen for IchigoJam Things!
- 2018年 盲聾のこどもたちにもプログラミングを! 体で感じる体表点字、IchigoBrailleでブラインドプログラミング、IchigoJam 4th Birthday!
- 2019年 IchigoJam for MSX!? はじめてパソコン CANON V-10 と IchigoJam 5th anniversary!
- 2020年 こどもパソコン通信のホストを開局! 新型コロナウイルスダッシュボード for IchigoJam 提供開始、6才になりました!

盛り上がったオープンデータデイハッカソンシンプル版VR版に続き、フィジカル版も作りたい!小中学生でも気軽に参加できるようにIchigoJam用のAPIを作りました。 単体ではネットにつながらないIchigoJam、ネットワークボード「MixJuice(¥2,750)」を使います。

IchigoJamの上にMixJuiceを挿し込み、電源をいれ、いろいろ表示が落ち着いたあと、一度、エンター。MJ APC コマンドで、無線LANのアクセスポイントに接続しましょう。

?"MJ APC SSIDXXXX PASSWORDXXXX 'WiFi connected: 192.168.xx.xx 'OK

WiFi connected と出れば接続OK!次の起動時からは自動的につながります。


APIによる取得は、MJ GET コマンドを使用します。(取得ファイル名は小文字の必要あり、新しいMixJucieなら MJ GETS でもOK)

?"MJ GET app.sabae.cc/api/covid19tokyo.txt 7 n_inspections 1068 n_patients 58 n_light 29 n_heavy 8 n_exit 20 n_death 1 s_lastUpdate 2020/03/07 8:00

いろいろエラーがでますが、こんな感じのデータが取得できればOK!(出展、東京都 新型コロナウイルス感染症対策サイト / Tokyo COVID-19 Task Force websitedata.json を加工。検査実施人数、陽性患者数、軽症・中等症数、重症数、退院数、死亡数の順。jsonでも取得可能)

最初の数値はデータの数、それ以降、データの名前とデータのセットが数分続きます。これを配列に保存するプログラムを作ったりして、活用しましょう!


10 ?"MJ GET app.sabae.cc/api/covid19tokyo.txt 20 INPUT N 30 FOR I=0 TO N-1 40 INPUT S 50 INPUT [I] 60 NEXT 70 'test 80 FOR I=0 TO N-1:?[I]:NEXT


画面に大きく表示したり、サーボを動かしてインジケーターを作ったり、WS2812Bで電光掲示板を作成するのもありですね!

Let's create something against COVID-19!

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