福野泰介の一日一創 - create every day

Hana道場から新しいIchigoJamの教科書「Hana道場式プログラミング」が登場!

表紙には、名刺サイズの小さなパソコン、原寸大のIchigoJamの絵!
著者は、世界で一番IchigoJamを教えている、中村正一氏。Hana道場でほぼ毎日教えている経験が詰まってます。
IchigoJam検定」の10級9級に対応。腕試しもどうぞ!
福野、監修してます。


「キーボード操作から学ぶ」という副題通り、バックスペースや、カーソル操作から丁寧な解説。初歩の初歩から自分で学べます。ふりがな付きでこども一人でも大丈夫!


10級9級では、PRINT/LOCATE/CLSによる表示と、GOTOを使った繰り返しを学びます。アニメが自分で作れるようになります。


シフトキーとALT(オルト)キーをマスターしたら、記号も絵文字も自由自在!
IchigoJam絵文字の表をみながら、いろんな絵を描いてみましょう!


プログラミングで車、描いてみました。


一歩先ゆく、変数を使ったちょっと高度なアニメづくり。
LET(レット)を使えば、数をアルファベットで名前をつけて記憶させておけます。

LET X,15 OK PRINT X 15

LET(レット) X コンマ 15 で、「Xは、15だと覚えてね」の意味。
PRINT(プリント) X で、「Xを表示」でちゃんと15と覚えてました。

LET X,X+1

LET(レット) X コンマ X+1 で、「Xは、X+1だと覚えてね」の意味。今のXは15だったので、15+1で「Xは、16だと覚えてね」となります。 もう一度 LET X,X+1 で、次は17に・・・、つまり覚えているXを1増やすという意味となります。

プログラミングの世界では、=(イコール)をこのLETの代わりに使うことが多く、次のように表現されます。

X=X+1

XとX+1は違うはずなのに!?移項したら0=1になっておかしい!・・・と混乱を招き勝ち。
ここでの「=」は、単にLETの置き換えです。
人間社会の言葉だって、国が違えば聞こえ方が同じでも意味が変わりますよね!


アニメに音や音楽を付けてみたい?
BEEP/PLAYコマンドの解説もあります!


巻末のお楽しみ、かわくだりゲーム他、いろいろゲームが載ってます。この本では解説していない命令もありますね! とりあえず、壊れてももう一度打てば大丈夫、ひとまずいろいろいじって遊んでみましょう。


Hana道場式
1. わからないことは調べる(自分のノート、本、webページ)
2. 遊びながら学ぶ(自分のアイデアを大切に)
3. とにかくつくる(作品はPCNこどもプロコンに)

作って遊んで見せてみる!

日本語や英語だって同じ、使っている内にどんどんなじんでいきますよ。
プログラミング言語の理解のコツを押されえば、他の言語へのステップアップも簡単!
AIもwebアプリもVRも、何でもつくれるようになっちゃいましょう!

外出中、就寝中、気になるネコの行動。
ちゃんと水を飲んでるのかな?の心配を安心に変えるホームIoT。
IchigoSoda(sakura.io x IchigoJam)を使えば、プロトタイピングかんたん!


水の増減はg単位。容器も水も含めた水飲み用のお皿の重さは1kgちょっと。20Nまで計測できる圧力センサーでちょうどいい。
圧力センサーは500円〜(圧力センサー@秋月電子通商


今回使用したのは家にあった「圧力センサーFSR400 SHORT」(大きめもある
端子にジャンパーワイヤーをはんだづけ。


押された力、圧力に応じて抵抗値が1MΩから力いっぱい押して2kΩまで変わるので、10kΩなどの抵抗と直列につないで、両端に電源(VCC/3.3V)とグランド(GND)をつなぎ、中間の抵抗と圧力センサーの接点からIN2へとつなぐ。


台座は適当なものがなかったので、ひとまず余った基板にピンソケットをカットして足を3本つくってはんだづけ。
足3本だと浮く心配がない。100均でゴム足みたいのを買うと良さそう。


まずは実験。圧力センサーの値をプログラムで表示。

10 A=ANA(2) 20 ?A 30 WAIT10 40 GOTO10 RUN

手で押さえたらいろいろ変わることを確認して、台座の足ひとつの下に圧力センサーをひいて、水をセット。スプーンで水をすくってみたり、揺らしてみたり、値が変化してそう?

5 B=ANA(2) 20 ?A,A-B 25 B=A

差分も見るプログラムに変更してみると、変化量がよくわかります。検出できそうです!

22 IF A-B>7 IOT.OUT 1

一定量減ったらIoTで通知するように、プログラムを追記。(for IchigoJam 1.3)
ネコの「みずのみナウ」をスマホで見えます!
あとは、sakura.ioのAPIを使えば、過去の水を飲んだ時間をチェックできるようになります。

ネコのちょっとした変化を見逃さない、ネコIoTプログラミング!


Hana道場でもネコとIoTに向けた実験!
ご家庭の、職場のちょっとした困りごと、IoTを使って自分で解決してみたくなったら、鯖江Hana道場へ!

最終調整に入ったIchigoJam 1.4β、音を鳴らすと画面右端にツブツブが出るという報告。

ミニモニターでは気が付かなかったが、大画面に映すと確かにでる。音を鳴らしているときだけ。
SPIの方式を16bit単位から要領削減のため8bit単位に変更してから発生していると判明。詳細な原因は謎。

IchigoJam 1.4β13
- 音を鳴らしている時に画面右端にツブツブがでる不具合を修正
- F12キーに行削除を割り当て、F11キーにカーソル以下削除を割り当て(以前から)

ファンクションキーがF11/F12があるキーボードの人向けに、ちょっと便利な機能追加。(IchigoJamの特殊キー一覧更新)


新兵器、Armのマイコン用開発ツール「Bumpy - SWDデバッガー
最近のArmのマイコンのデバッグ用窓口はSWDで統一され、どのメーカーのものでもこれで転送、デバッグができる。
IchigoJamで使っているNXP社のLPC1114も、ブレークポイントを指定しながら実機上でステップ実行!
ややこしいバグにも強くなれそうです。

なぜプログラミングに興味を持ったか?それは、間違いなく任天堂、ファミコンのおかげ。
友達が持っていたファミリーベーシックに衝撃を受け、なぜか届いたMSXがプログラミングはじめのいっぽでした。
懐かしいファミコン登場時のCMセルフオマージュしたファミコンミニCM on YouTube)

久々に起動しようとしたファミコンミニ、なぜか映らないのでIchigoJam化でもしようかと分解!

高級感あるモダンで余裕ある基板づくり。リセットボタンも豪華!


メインのCPUには青い熱伝導性のものがあって、全体をヒートシンクで覆う構造。
コントラーラー2つは基板へのコネクターでつながっています。このコネクター入手したい!(発見、1個50円即納10個パック
(参考、「ミニファミコン」で大きなコントローラーも使えるように改造してみました(ウェブ情報実験室) - Engadget 日本版


分解してつないだらなぜか普通に映るようになったので、元通りに戻すことに。


スーパーマリオブラザーズ4-2では壁もぐり。
昔のブラウン管のテレビ、モノによって端がどこまで映るか違ったんです。


大好きなゲーム、バルーンファイトのゲームC、バルーントリップ!
ふわふわする操作感でぎりぎりを避けていくのが気持ちいい。


「ふうせんたびゲーム」 操作はスペースキーのみ! RUN on IchigoJam web
せっかくなので記念にバルーントリップ風ゲームをIchigoJamで!
ゲームの構造は、かわくだりゲームと一緒です。いろいろ改造して遊んでみましょう!

10 CLS:CLT:Y=150:V=0 20 LC 31,Y/10:?CHR$(253); 30 LC 31,Y/10-1:?"O"; 40 R=5-TICK()/300%4 50 IF !RND(R) LC0,RND(22):?"*"; 60 WAIT 5 70 SCROLL 1 80 IF SCR(31,Y/10) GOTO150 90 IF SCR(31,Y/10-1) GOTO150 100 Y=Y+V:V=V+1 110 IF Y>220 GOTO150 120 IF Y<10 Y=10:V=10 130 IF INKEY()=32 V=V-10 140 GOTO 20 150 ?:?"GAMEOVER":?TICK()/60

何か壊れたらラッキー!
楽しく分解、もしかしたら修理できちゃうかも!?
だめでもOK、何かに再利用できて二度おいしい!

links
- 分解してグルーガンで再構築するジャンクアートは大人もOK - バラバラにして作って遊ぼう!ジャンクREメイクショップ - Hana道場 x ハードオフ

2020年入社予定の内定者合宿 in 鯖江!

Vue x Node のウェブサービース、IoT、チーム開発手法スクラムをギュッと凝縮した1時間半レクチャーからスタート!


早速アイデア会議でも活躍した、Vue x Node でつくるサンプルサービス「チャット」をWebSocketを使ってリアルタイム化!
step6.js で、さまざまな Content-Type に対応させて、もう少しまともなウェブサーバーに改良。
step7.js は、ポート番号 5001 に、WebSocketを使ったリアルタイム中継サービスを準備、chat2.html でリアルタイム版チャットを体験できます。

WebSocketを使う準備

npm i ws --save

WebSocketで受けて、全クライアントに転送するサーバー側のコードはわずかこれだけ!

const WSServer = require('ws').Server const wsserver = new WSServer({ port: 5001 }) wsserver.on('connection', function(ws) { console.log('open') ws.on('message', function(message) { console.log(message) wsserver.clients.forEach(function(client) { client.send(message) }) }) ws.on('close', function() { console.log('close') }) })

vuenodechat src on GitHub


サーボを接続して動かしてみよう!


スマホからもサーボ、動かしてみよう!


スマホからいろいろコントロールし放題!?


デバイスからネットへもコマンドひとつ!


合宿地、ラポーゼ河和田へ移動して、アイデア出しして、スクラム開発の要、チームで合意するゴールである「ビジョン」を決定!


温泉入ってリフレッシュ!ビジョンを掲げ、実現に必要なコトのリストであるプロダクトバックログから、それを実現するためのタスクに分割。 付箋紙に書いたタスクが人別に「TODO」「Doing」「Done」へと遷移していく様子をリアルタイムに共有しながら進める、スクラムのプラクティスのひとつ「タスクかんばん」を使って進める短期開発、できあがりが楽しみです!


Scrum Interaction 2019 ジェフ・サザーランド博士 メッセージ - YouTube
スクラム開発者によるイベント、あるそうです!

最強の学習ツール、ネットにつながったパソコン。

IchigoJam BASICで学び、ノートパソコンにステップアップする一歩手前、無線LAN接続ボード「MixJuice」を使って IchigoJam をブラウザ化する「Ichigobrowser」を作ってみました。webサイトへアクセスして日本語が読めます!

単にパソコンを手にしたこどもは、ゲームで遊んだりYouTubeにハマってしまうだけかもしれません。 プログラミングから触れてもらうことで、こどもたちは自分で創る楽しさ、自分で学ぶ楽しさ、コンピュターとネットの本当の力に気がついてくれます。

10/1から募集開始になった「第10回PCNこどもプロコン2019-2020」でノートPCをゲットできるよと話すと、鯖江の小学生の子たちみんな目をキラキラさせてチャレンジしたいという頼もしい声!(鯖江市全4年生総合2コマプログラミング教育授業動画公開


Ichigobrowser の仕組み:サーバーで中継プログラムを動かして、URLをMixJuice経由でおくると、IchigoJamで読めるようにカタカナ化されて、リンクと共に文章が送られてきます

11111 @A:?"MJ GET sabae.cc:5001/?u=";STR$(S):END OK2 S="https://ichigojam.net/":GSB@A

Ichigobrowserの使い方:コマンド「OK2」でエラー表示を止めて、変数SにURLをいれて、中継サーバー(仮に動作させている sabae.cc:5001)に渡すと、そのページが返ってきます。意外と読めるカタカナページ!


目指すはMSX! Raspberry Pi より安価な IchigoJam 発表!」をIchigobrowesrで表示!

Ichigobrowser」は、サーバーで動くPythonの中継プログラムで実現しています。
プログラムはオープンソース、こどもたちのために活用ください(src on GitHub)


ロゴデザインはドット絵ツール「dote


参考になった、PCN大阪、森さん著の「Python 2年生 スクレイピング入門
requetsを使って、BeautifulSoup4でタグ解析、Aタグのリンクを抽出して、カタカナ化して、返却!


こちらの本、jigブラウザがきっかけで取り組みを始めた鯖江市のオープンデータも掲載!
データをプログラムで使う楽しさ、広まりそうです。


2004.10.1の jigブラウザ 誕生からちょうど15年!
人類最強のコミュニケーションツール、web上の革命はまだまだ始まったばかり。

東京都教育委員会の方、福井県鯖江市のプログラミング教育へ視察にいらっしゃいました。
鯖江で2学期から始まった4年生全員へのプログラミング教育。クラブ活動、課外活動「Hana道場」で1セット。

本日は片上小学校、4年生13名向けの総合2コマ、プログラミング!


はじめてのプログラミング with IchigoJam
総合2コマのスライドはオープンデータとして公開、アレンジ・改変も自由です。


2人1組での体験、パソコンを自分達でつなぐところから体験です!鯖江市の環境にあわせて絵をコンセント風に。


バックスペースの場所が違う!という子供の指摘で修正。たしかに、キーボードによっては一番右端にないのです。


100円のCPUをもつ1500円のIchigoJamの計算回数は1秒に5000万回。驚く子供たちがかわいい!
最新スマホは、1秒間に1兆回!


交代で打っていこう。一人が読み上げ、一人が打つスタイルがスムーズ!


1時間目はエルチカロボットづくり。
とんでもない数をWAITさせようとする子供たち!
自由に改造する時間を数分とるだけで、より理解が深まります。


2時間目、かわくだりゲーム。あれこれ改造して、みんなそれぞれ違ったゲームができあがってました!
自分で作るゲームの楽しさは格別!


全部で100コマンドあるIchigoJam


でも、今日すでに21コマンドも使ってます!簡単な英語が使えると、コンピューターだって操れる!


おもしろかったら、クラブ活動に入ったり、Hana道場などに遊びにきてね!


立待小学校のプログラミングクラブ活動、おじゃましてきました。講師は牧田さん。


毎回何か1テーマで遊ぶ、プログラミングクラブ、今回はミニゲームズから「はんのうそくどゲーム」

10 LED0 20 WAIT RND(180)+60 30 LED1:CLT 40 IF BTN()=0 GOTO40 50 ?TICK()

RUNしてしばらくするとLEDが光る。光った瞬間、IchigoJamのボタンを押そう!
表示される数値が君の反応速度(1/60秒単位)!

対戦して盛り上がるこどもたち。でも、0秒記録を出す裏技が!?

25 IF BTN() E

ボタンを押しっぱなしにする裏技を回避するプログラムがこちら。
Eというコマンドはないから・・・


クラブ活動や、学校内に転がしておくIchigoJamの近くにオススメ「IchigoJamプリント
四捨五入、分数の掛け算など、高学年の算数のプログラミングから理解するアプローチもあり。


Hana道場、小学生と高校生がプログラミングの修行中。


ドローンだってIchigoJamでプログラミング!
教育用ドローンを言語で制御できる『FruitPunch』独占販売開始 | ドローンネクスト

遊びが学びになり、学びを遊びに活かす!


授業動画、鯖江市から公開されました!

links
- Hana道場

音楽とプログラミング、電子楽器とコンピューターをつなぐMIDIを使って、KORGの電子楽器で自動作曲!

volca sample - DIGITAL SAMPLE SEQUENCER | KORG (Japan)」 x IchigoJam
IchigoJam用MIDIインタフェース基板キット(秋月電子)のOUT側からMIDIケーブルで接続!

鳴らし方は簡単!まずは準備、シリアル出力の速度(BPS)を31250bpsというMIDI規格に設定

BPS31250

続いて、一番左に設定した音を鳴らしてみましょう

?CHR$(#90,50,80);

二番目の音はこちら

?CHR$(#91,50,80);

鳴りました!簡単です!

(2番目の値 50 はノート番号、3番目の値はベロシティといって、それぞれ音の高さと大きさを表しますが、volca sampleの場合は無視されるので、0-127までの値、実は何を指定してもOKです。)

テンキーで0から9を押したら、対応する音が鳴る、ドラムマシーンにするプログラムはこちら

10 BPS31250 20 K=INKEY() 30 IF K ?CHR$(#90+K-48,50,80); 40 GOTO 20

同時押しにも対応しますよ!

決まったリズムを一番左の音で刻むプログラムを追加(0.5秒 = 30毎に鳴らしているので、テンポ120)

35 IF TICK()>30 CLT:?CHR$(#90,50,80);

二番目の音で主旋律を奏でてみましょう!

マニュアルのMIDI Implementation Chartを見ると、MIDIのコントロールチェンジを使ってチャンネルごとの設定をいろいろといじれます。 コントロールチェンジは #B0+ch番号 の後、変更したいパラメータの番号、続けて、設定したい値を0-127で指定します。
音の高さは SPEED で変更するので、43です。

15 S=64 35 IF TICK()>30 CLT:?CHR$(#90,50,80);:IF RND(2) ?CHR$(#B1,43,S,#91,50,80);:S=S+RND(3)-1:S=S&127

まずはSPEEDを標準の64にして、ランダムで足したり引いたりします。主旋律はRND(2)で1/2の確率で鳴らしています。

プログラムからSAMPLE(音色)の変更はできないのはちょっと残念ですが、心地よい音楽になるように、SAMPLEやいろんな音の設定をいじってみましょう!
センサーを使って奏でてみるのも楽しそうですね!

links
- KORG デジタル・サンプル・シーケンサー volca sample ヴォルカ・サンプル on Amazon

今年初開催の宮城県仙台高専広瀬キャンパスで開催される小中学生向け「みやぎプロコン
締め切りに間に合う、はじめてのプログラミング&電子工作での作品作りワークショップ with PCN仙台でした。

ないものはつくろうスライドsrc on GitHub


毎回驚く顔が楽しみな、コンピューターの実力クイズ。秒間1兆回に達したiPhone11に更新した最新版!

はじめてキーボードを打つところから、エルチカゲーム、オリジナルに改造して、エルチカロボットづくりでざっとIchigoJamの基本体得したら、いよいよ電子工作パート。


まずは動きが楽しい「サーボ」の使いかた!(SG90 at 秋月電子
PWMはパルス・ウィズス・モジュレーションといって、電圧をかける時間の長さでサーボの角度をコントロール!
指定する値は、70から200までにしましょう。範囲外を指定すると動かなかったり、壊れてしまうことも。


反応がビビッドなセンサー、光センター!
PCN金沢製のキットの完成版を使って、IchigoJamにつないだら、プログラムを打ち込んで、実験!


どんな値が出るかな?(こちら参加してくれた小学3年生!僕がプログラミングと電子工作を始めた頃!)


光センサーとサーボを組み合わせたプログラム例。さて、何に使えそう!?


ないものづくりのヒントは、不満や不快にあり。
不満とは理想はあるけど人に期待している状態。
不快とは理想なき不満。
不感とは期待なき不快、あきらめ。
創造は理想と低い期待、自分で行動することからうまれます!

理想はひとそれぞれ、正解なし。もちろんやってみたら違うことも多々あり。
日常生活で、ちょっとイラっとしたこと、気がかりなことをヒントにまずは手を動かしてみよう!
作る過程、できた作品、すべてが成長の元。


残り50分、厚紙、ダンボール、ストロー、テープなどを使って、自由工作タイム!
すばやく手が動き、みるみる作品ができていく様は感動的!


日本語キーボードを塗り直して英字キーボード仕様にしてる!!


光センサーが電車を検出したら、遮断器が降りる。社会で活躍するコンピューターとセンサー・モーターが見えてきます。


近づくと涼しくなる、自動扇風機、人気とのこと!
熱くなったら回す。外の気候に合わせて回す。風で何かを飛ばしちゃう。
自分で作れれば発想がどんどん広げられます。


参加ありがとう!


みやぎプロコンで会いましょう!


地方大会「みやぎプロコン」後、更にブラッシュアップして次は全国大会「PCNこどもプロコン」!


2本立てのワークショップ。続々と開発中の作品を持ってやってくる経験者達。


スゴそうな作品たくさん!楽しい審査になりそう!


PCN仙台!


前日、このワークショップに向けてPCN仙台にて行った、はんだづけ競争
記録は、12分4秒。(袋開けから全部品実装まで、動かなかったら記録無効!)


Hana道場@鯖江


PCN武生、IchigoJam制御のドローンでお菓子釣りに成功!

いろいろつくろう!
はじめようPCN

モジュールで作ったIchigoSerial、回路も部品数も少なく安いので、IchigoJam専用のキットにしてみます。


CH340Cさえあれば、USBシリアルを作るための部品はこれだけでOK!(0.1uFコンデンサx2)


1.27mmピッチの表面実装は、フラックスをさっと塗って、先の細いはんだごてを使えば、意外と簡単!


CH340Cのピン配置をみながら、ブレッドボードで配線。


IchigoJamとの接続、ISP/RESETの制御もOKでした!

では、回路と動作の確認ができたので、PCB(プリント基板)を作ってみましょう!
ブラウザだけで作れてしまう、オンラインのPCBエディタ、Upverterを使いました。

部品を検索して、置いて、つないで、回路図を完成させるのが基本です。
部品がない?なければ部品をつくりましょう!
作ったパーツは登録できて、自分はもちろん、誰かに再利用してもらえます!
作成部品:CH340CIchigoJamのCN3 10ピンUSB-Aオス(aitendo)


続いて、PCBレイアウト。つなぐべき場所が緑の線でガイドされるので、全部つないで完了!


できたUpverterのプロジェクト「IchigoSerial」から、Gerber Formatでzipファイルをダウンロード。
* 注意、まだ動く保証はありません!!


Gerber Viewerで確認できます!


PCBGOGOは5枚、$5、ePacketを使うと送料$6の計$11から頼めちゃいます!
(安い送料の秘密は、日本郵便の国際eパケット、初めて見ました)

注文、支払いが完了したら、あとは送られてくるのを楽しみに待つだけです。
手軽になったオリジナル基板発注。ぜひ簡単なものからぜひどうぞ!

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