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

ロボットの目を創る!越前がにロボコン事前講習会 at おもしろフェスタ2017

2017/07/29 23:55:00
#IchigoJam #KidsIT #fukui 

今年初開催の福井ご当地ロボコン、越前がにロボコン


初の小学生向け事前講習会の開催です。


越前がにロボコン実行委員長の木下さんからの激励!


わくわくするロボットキット!


ニッパー、ドライバー、ペンチ、電子工作、メカづくり、プログラミング!
いろいろ体験する中で、自分の大好きが見つかるはずっ


ロボットができあがったらプログラミングで動かしてみよう!

OUT18

ロボットが前進したらOK! OUT0 コマンドか、緊急時は電池ボックスの電源を切れば止まるよ!

ゆっくり動かす方法。

PWM 2,600:PWM 5,600

数値を大きくしていくと速く、小さくすると遅くなる(最大2000)。
停止するときは

PWM 2,0:PWM 5,0


ポイントはLEDと光センサー
床の明るさを測ってロボットが判断する材料にしよう!

10 ?ANA(0),ANA(2) 20 WAIT10:GOTO10 RUN

左目、右目が見ている明るさを表示して、いろいろ数値が変わるのを観察しよう。


数値を見て、ロボットの状態を当てるゲームをしていた親子も!ナイスアイデア!

10 PWM 2,600:PWM 5,600 20 ?ANA(2),ANA(2) 30 IF ANA(0)>600 PWM 2,0 40 IF ANA(2)>600 PWM 5,0 50 WAIT 10:GOTO 10

左目が白線を見たら左のモーターを停止、右目が白線を見たら右のモーターを停止するプログラム。
両方の目が白だったら!?


宇宙空間、はやぶさロードを疾走する子供が作ったカニロボット

うまく動いたら、次は更なる高得点を目指して、ロボットにたまごを産ませるプログラムを追加!

5 PWM 3,70 45 IF ANA(0)>600 AND ANA(2)>600 GOTO 100 100 PWM 3,180

サーボ位置をリセットして(5行)、両方の目が白を見たらGOTO100(45行)、サーボを動かして終了(100行)

リファレンスや、IchigoJamプリントを合わせて読んでみるのもオススメ!


頭の上にも載せて、うれしそう!


今日つくったロボット、外装は自分好みでカスタマイズしてねっ


4時間の長時間講習後もこの笑顔!
わからないことがあったら各地のクラブなどに行ってみよう!


講師、PCN代表、ナチュラルスタイル松田さん


おもしろフェスタ2017期間限定の夏パフェ(イチゴジャム入り!)


2017.7.29-30、おもしろフェスタ2017会場、サンドーム福井


サンドームの左に今年オープンした、ものづくりキャンパス内、30日はプログラミング体験会やってます!
オリジナルゲームづくりで、ロボットづくりの基本を体験してみよう!


触れるIchigoJamのおもしろロボット作品展示コーナー!
夏休みの工作のヒントにどうぞっ

links
- 越前がにロボコン
- 「おもしろフェスタinサンドーム福井2017」開催 | 一般財団法人 福井県産業会館

WebBluetoothで超小型センサーをJavaScriptで遊ぶ!(接続編)

2017/07/28 23:55:00
#js #web 

WebでBLE (Bluetooth Low Energy) が使えるようになってます! WebBluetooth!
アルプス電気製の超小型BLE「センサネットワークモジュール」とChromeをひとまず接続してみました。

自動接続はできないので、ユーザーからの何かのアクションからモジュールを選択して、ペアリング

電界強度(RSSI)、バッテリー状態などが取得できました!

SNM WebBluetooth Demo

プログラムも結構シンプルに書けます! src on GitHub
電子工作はじめのきっかけ、ユカイ工学のkonashiとも接続したり、konashi経由でIchigoJamを制御したり、いろいろ夢は広がります!

links
- ブラウザからBluetoothが使える! JSでWeb Bluetooth APIを使ってBLE機器を操作する方法[Lチカ・温湿度センサー編] - ICS MEDIA
- 【センサネットワークモジュール開発キット】 アルプス電気

2進数とプログラミングで解く点字

2017/07/27 23:55:00
#IchigoJam #KidsIT 

身の回りに潜む2進数。
エレベーターの階数の隣、駅、公演で見かける点字をプログラミングしてみましょう。
点字 - Wikipedia

6つの点が一塊になっている点字。「⠼」で始まるのは数。
4桁の数を画面に点字で表示するプログラムをつくってみます。


まずは点字で使うキャラクターをIchigoJam文字の中から探します。

FOR I=0 TO 31:?224+I;CHR$(224+I);" ";:NEXT


232が穴なし、232を穴ありとするとちょうど良さそうです。

6つの穴があるかないかは6桁の2進数で表せます。
* 2進数について「じぶんだけのキャラをつくる - はじめてのプログラミング」「指二進数

左上を32の桁、一つ右が16の桁、順にいって右下が1の桁としました。
変数Mに表示したい点字をいれて、座標X、Yに表示するプログラム。

200 FOR I=0 TO 5 210 LC X+I%2,Y+I/2 220 F=M&(32>>I)>0 230 ?CHR$(232+F); 240 NEXT

32の桁から順に穴がある(F=1)か、ない(F=0)かで上から順に表示します。

続く点字が数であることを示す数符「⠼」に続けて「⠚⠁⠃⠉⠙⠑⠋⠛⠓⠊」で0〜9を表します。
上位4bitに収まっているので、それぞれ10進数で、表すことにします。

LET[0],7,8,10,12,13,9,14,15,11,6

例えば、5を表示したいときは、次のプログラムで5の点字が表示されます!

M=[5]<<2:RUN

これらをまとめた、4桁の数を点字にするプログラムがこちら

10 CLS:LC 8,3:?"TENJI NUM" 20 N=1234:X=8:Y=6:GSB 100 30 N=5678:X=8:Y=12:GSB 100 40 N=9000:X=8:Y=18:GSB 100 50 CONT 100 LET[0],7,8,10,12,13,9,14,15,11,6 110 M=23:GSB200:L=1000 120 X=X+3:M=N/L%10:LC X,Y-1:?M 130 M=[M]<<2:GSB200 140 L=L/10:IF L=0 RTN 150 GOTO 120 200 FOR I=0 TO 5 210 LC X+I%2,Y+I/2 220 F=M&(32>>I)>0 230 ?CHR$(232+F) 240 NEXT 250 RTN

カナやアルファベットに対応してゲームにしたり、点字解読プログラムを作ってみたりしてみましょう!

一日一創アプリまとめ

2017/07/26 23:55:00
#web #ced 

2012年からの一日一創、必要な時にすばやく取り出したい。
Webアプリの過去作品をカテゴリー毎にふりかえりつつ、まとめていくところから、ひとまずスタート!

一日一創アプリ by 福野泰介
5つ星オープンデータ対応一覧表
横浜-鯖江で実験した5つ星オープンデータ、共通語彙基盤(IMI)と共に、日本中に!

データ名クリックで、そのデータを取得するSPARQLクエリーがコピーできるよう機能追加。
opendata.cc の、SPARQLエンドポイントからお試しくださいっ!


日本NPOセンターさんにて「市民でつくる世界のSABAE」を紹介!
5つ星オープンデータと、使える人材づくり、広めましょう!

スピード3倍!? 低速環境に対応したWindows/Macパソコンで動く IchigoJam ap

2017/07/25 23:55:00
#IchigoJam #KidsIT 

WindowsやMac、普通のパソコンで、アプリとして動く「IchigoJam ap
学校のパソコン環境で試したところ、低速環境用に用意した低フレームレート版でもなお重かったため、描画処理を見直し負荷を1/3まで下げることができました。 低速環境では、3倍速く動くかも!?


パソコンアプリ「IchigoJam ap」とブラウザ上で動く「IchigoJam web
* IchigoJam ap β版が IchigoJam-FAN からダウンロード可能
* IchigoJam web 現在対応ブラウザは、Chrome か FireFox (WebAssemblyが必要)

【IchigoJamプログラミング、ネット教材】
はじめのいっぽ&ミニゲームズ
IchigoJamプリント
IchigoJamプログラミング入門
ダンブンゲームズ by PCN

どこでも気軽に IchigoJam BASIC プログラミング!

10 CLS 20 LOCATE 8,10 30 PRINT " Let's PROGRAM! " 40 LOCATE RND(32),RND(22) 50 PRINT CHR$(224+RND(32)) 60 GOTO 20

(RUN on IchigoJam web)

総務省「若年層に対するプログラミング教育の普及推進」福井編!県内先生向け集中講座と「くじプログラム」

2017/07/24 23:55:00
#IchigoJam 

総務省の事業「若年層に対するプログラミング教育の普及推進」の取り組み。
福井県内のプログラミング教育に関心ある先生に集まってもらっての研修。


実際に小型パソコンIchigoJamを使って、子供に受けてもらう講習と同様のカリキュラムをちょっと詳しい解説付きやっていただきました。


鯖江市役所にて開催!


子供向けに設計した、4コマの特別授業のゴールは「メガネふきロボットをつくろう」。
メガネの産地、鯖江の小学生が対象なので、身近な話題で、自分も社会に役に立てるかも!?と思ってもらえるとうれしい。


工作時間20分と短いながらも、個性豊かな「メガネふきロボット」がハードウェア・ソフトウェア共に動いてました。 メガネを持っていない人も安心、テスト用のペーパークラフトメガネで、つくったロボットをテストできます!

学校でさりげなくいろんなシーンで活躍してほしいプログラミング。
何かを「くじで決める」こと、意外と多いですよね。

こちら、N人を無作為に順序付けするプログラム。

10 INPUT "N?",N 20 FOR I=1 TO N 30 [I]=I 40 NEXT 50 FOR I=1 TO N 60 A=RND(N)+1 70 T=[I]:[I]=[A]:[A]=T 80 NEXT 90 FOR I=1 TO N 100 ?[I] 110 NEXT

私も福井高専1年生時、ポケコンでその場でくじ引きプログラムを作ってました。


オープンソース(プログラムが公開されている)なので恨みっこなしの公平くじ引きができます!
(IchigoJam web で実行)


若年層に対するプログラミング教育の普及推進報告2017


若年層に対するプログラミング教育の普及推進報告2017
日本中で進むプログラミング教育推進!福井の事例もここに追加される予定です。

かめをプログラミングするイチゴがりゲーム on IchigoJam1画面プログラム - 逐次処理の体感学習ゲーム

2017/07/23 23:55:00
#IchigoJam #KidsIT 

朝のプログラム
1 起きる
2 朝ごはん食べる
3 歯を磨く
4 着替える
5 荷物を持つ
6 家を出る

コンピューターにやってほしいことをやってほしい順に書く(プログラムする)と、その通りに順番にやってくれます(逐次処理)。
順番を入れ替えて、着替える前に家を出てしまったり、起きる前に朝ごはんを食べるとかするとおもしろいことになりますね!
どういう順序でやるとうまくいくか、あれこれ試して、考えて、うまくいくまでとことん実験できるのがコンピューターのいいところ。


人気のロボットスクールも、30年前流行したタートルグラフィックスも基本は一緒。 手軽に遊べるIchigoJam上でこの基本が学べるタートルゲーム「KAMEGAME(かめがめ)」をつくってみました。 プログラミング初心者向けです。

100 S=1:LET[0],226,225,227,224,0,1,0,-1,-1,0,1,0 110 CLS:SRND S:FORI=1TOS 120 X=RND(16)+8:Y=RND(16)+4:IF SCR(X,Y) CONT 130 LC X,Y:?CHR$(255):NEXT 140 X=15:Y=11:D=0:T=S 150 LC X,Y:?CHR$([D]) 160 LC0,0:INPUT N:N=1 170 C=SCR(N,0):IF C=0 GOTO160 180 LC X,Y:?"*" 190 IF C=ASC("F") X=X+[D+4]:Y=Y+[D+8] 200 IF C=ASC("B") X=X-[D+4]:Y=Y-[D+8] 210 IF C=ASC("R") D=(D+1)%4 220 IF C=ASC("L") D=(D+3)%4 230 LC X,Y:IF SCR()=255 T=T-1 240 ?CHR$([D]):WAIT10 250 IF T N=N+1:GOTO170 260 LC5,22:?"CLEAR!":S=S+1:WAIT60:GOTO110 RUN

プログラムはテレビ1画面以内に収まりました。(RUN on IchigoJam web)

実行すると画面内にイチゴ(キャラクターコード255)が登場するので、次の4つのコマンドを駆使して食べ尽しましょう!
F: まえへすすむ (Forward)
B: うしろへもどる (Back)
R: みぎむけ (Right)
L: ひだりむけ (Left)
入力したら エンターキー (コマンドは何度も打ち直しできます)

キャラクターを亀に変えて、遊んでみよう! (RUN on IchigoJam web)

10 POKE224*8,34,28,254,255,254,28,34,0,0,68,56,127,255,127,56,68,28,28,93,62,62,62,93,8,16,186,124,124,124,186,56,56

オリジナルキャラへ改造する方法
キャラクターを好きな形に変えよう

C=224:?CHR$(C):FORI=1TO8:?C;I-1;" POKE";C;"*8+";I-1;",`";BIN$(PEEK(C*8+I-1),8):NEXT ■ 2240 POKE224*8+0,`00100010 2241 POKE224*8+1,`00011100 2242 POKE224*8+2,`11111110 2243 POKE224*8+3,`11111111 2244 POKE224*8+4,`11111110 2245 POKE224*8+5,`00011100 2246 POKE224*8+6,`00100010 2247 POKE224*8+7,`00000000 OK GOTO2240 OK

[Insert]キーで、入力モードを上書きモードに変えて、0と1を使って8x8の絵を左向きの絵を描こう。
2240〜2247のすべての行でエンターキーを押して記憶させて、GOTO2240 でキャラクターのパターンが書き換わるよ!

右向きキャラクターを回転させて、4方向のキャラクターをつくるプログラム

10000 FORI=0TO3:?CHR$(224+I);:NEXT:? 10010 LET[0],224,226,225,227 10020 FORK=0TO2:FORI=0TO7:M=0 10030 FORJ=0TO7:IF PEEK([K]*8+J)&(1<<(7-I)) M=M+1<<J 10040 NEXT:POKE[K+1]*8+I,M:NEXT GOTO2240

うまくできたかな?
回転させてみて直したくなったら、LIST 2240,2247 でキャラクター設定のプログラムを出して、書き換えればOK!

10 GOSUB 2240 10050 RETURN

プログラムの先頭でキャラクターパターン設定と、回転プログラムを呼び出すようにすれば、完成!

キャラクターパターンをPEEKコマンドで読み出して、短くしておくと容量が節約できるよ!

?"10 POKE224*8";:FORI=0TO8*4-1:?",";PEEK(224*8+I);:NEXT:?

やってみよう!
KAMEGAME(かめがめ)に点数システムを導入して、友達や大人と競争してみよう!

1画面プログラムとは?

MSX時代、画面にちょうど収まるサイズのプログラムが、1画面部門と呼ばれ、打ち込みやすく、アイデア満載で人気でした!
IchigoJamの場合は、LISTコマンドでスクロールしない32文字x22行以内のプログラムを1画面プログラムと呼ぶことにします。
楽しい1画面プログラムに、ぜひ挑戦ください!

links
- こどもパソコンIchigoJam
- プログラミング言語は何から学ぶべきか? ロボットプログラミングゲームをIchigoJamでプログラミング! C言語の教科書「Springs of C」より
- 4方向に動くキャラを生成するBASICプログラム - よこはまYYラボさん来鯖
- MSXユーザーのためのIchigoJam入門 - MSX Advent Calendar 2015

はじめてのはんだづけ&はじめてのプログラミングワークショップ導入動画 / キッズものづくりラボ at 福井県工業技術センター

2017/07/22 23:55:00
#IchigoJam #KidsIT #movie #docs 

福井県イベントで「はんだづけ&プログラミング」
配布資料(IchigoJam T)と、イントロ部分の動画をオープンデータ化しました。

IchigoJam はんだづけ&プログラミングワークショップ、イントロダクション」10分 CC BY
はんだづけ&ニッパー動画も合わせてどうぞ!


会場は日本有数の3Dプリンターなどの試作機が揃う、福井県工業技術センター!3年目


開会式では、皆さんの前でイチゴジャムIchigoJamを披露!


はじめてのはんだづけ、動画で見ると一目瞭然!?あとは実際にチャレンジあるのみっ(写真提供:福井県)


みんな、はんだづけ&プログラミングも楽しんでもらいました!


はぴりゅうフレンズから地場産業推しの「さとりゅうちゃん」が応援に来てくれました!(写真提供:福井県)


出来上がったら、ケーブルをつなげていよいよ電源を入れてみます。


動いた!(写真提供:福井県)

持ち帰って遊べるゲームということで、光ってる時にボタンを押して止めようゲーム。

1 LEDA:WAIT10 2 A=!A:IF BTN() END 3 GOTO1

午後は、かわくだりゲームを解説する時間が足りなくなってしまったので、急遽こちらに変更しました。
ボタンを押しながら起動して、すぐボタンから手を離すのがポイントです!もう一度やるときは電源を入れ直そう。


つくったIchigoJamと一緒に記念写真(午前・午後と参加親子は30組)(写真提供:福井県)

はんだづけ&ニッパーデモ動画、鯖江中央中学校パソコン部でIchigoJamプログラミング、スタート!

2017/07/21 23:55:00
#IchigoJam #KidsIT 

いよいよ、夏休みスタート!
鯖江市立中央中学校パソコン部の夏休みの活動初日、IchigoJamのはんだづけ&プログラミング。
気をつける点は2点、はんだごてでの火傷と、ニッパーでカットした切れ端による失明。


はんだづけデモ動画(あたためる、とかす、はなす、コテはなす)


ニッパーでカットするデモ動画(必ず指で上から添えてカット)


部品を各自、集めるところからスタート。カラバリで悩む中学生。


中央中でははんだごては3年生の2学期からということで、全員初はんだ!


指で押さえてニッパーでカット。この写真、よく見るとニッパーが上下逆ですね。カットする面を下にすると切りやすいです。


間違ってはんだづけしちゃった時、はんだシュッ太郎が便利。ハンダを溶かした状態で吸い取れます!


できあがったら、プログラミングはじめのいっぽのLED1


こちらはLEDを使った電子工作プリントに挑戦!

みんな初電子工作、初プログラミング楽しんでもらえました!
オリジナルゲーム、オリジナルアプリづくり、がんばってみてください!
PCNこどもプロコン2017夏、開催!(締切9/3)

算数を嫌いになる前に!Ichigo数学その1「項」

2017/07/20 23:55:00
#IchigoJam #KidsIT 

小学校でマイナスは習わない。
割り算、分数、比、割合といろいろ出てくるも、表現・使う用途が違うだけで全部実体はただの掛け算。
嫌いだった「算数」、中学1年生の最初に習った「項」ですべての疑問が溶解。
「早くこれを言ってよ」と思った鮮明な記憶。

学校は脱出ゲーム。
「教わるより、自分で学習する方が早い」と気がついたら勝ち。
社会は不完全で理不尽、だから、人の思いは強くなる。
学校は社会のチュートリアル、実は理不尽なトラップは多いほどいいかも。

残念(?)ながら、30年前にあった下記のトラップは現在の算数では削除されていた。
- 繁分数(分数の中に分数があるという再帰的表現)
- 多重の括弧(大きい括弧{}とか今の小学生には通じなかった!)
- 食塩水問題(あえて分かりづらい無色透明が選ばれた?)

2020年プログラミング必修化を前に各教科の「好き・嫌い」をデータ化しておきたい。


Ichigo数学その1「項」
入力された数をどんどん足して表示するプログラム(マイナス対応)
* IchigoJamの制約で小数・大きい数・小さい数には非対応(道具には限界あり)

10 A=0 20 INPUT B 30 LET A,A+B 40 PRINT A 50 GOTO 20 RUN

こちら、同じプログラムももう少し丁寧に書き直したもの。
A=0 は、更に LET A,0 とも書ける。(IchigoJam BASIC リファレンス
「=」は、現在主流のほとんどプログラミング言語、算数・数学のイコールとは違う意味で使われている。

A=A+B

これを数学の目で見ると単に B=0 を意味するだけのあんまり意味のない式。
多くのプログラミング言語の定義では変数Aの値を、A+Bに書き換えるコマンドとなる。
この違いを表現すべく、IchigoJam BASIC では、LETというコマンドが正規の書き方、=は省略記法と位置づけた。

LET A,A+B

これなら数式と誤認される心配がない。


鯖江、Hana道場に海老名、湘南、仙台からのお客様!

「ゲームしなさい」と毎日言われて育つ子供はゲームが好きになるか?
未来を生きる子供に対して、問題を山積させた大人ができることは限られる。

links
- 勉強とゲームは一緒論、しあわせ探しで体感する勉強に欠けているもの
- 分数が分かるアプリ
- 小学校で分数は教えるな!分数は数ではない 数の教育探求

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