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

福井県立武生高校(たけふ、TKF)のSSHにて化学の実験をIchigoJamを使って定量的に行う公開授業!
SSHとは、次世代人材育成事業の一環で、スーパーサイエンスハイスクールのこと。
異分野融合、化学だけ、コンピューターサイエンスだけ、など、単独のスペシャリストではなく複合的に使いこなすことが大事!

化学 x プログラミング with IchigoJam!
Na2S2O3 + HCl → 2NaCl + H2O + SO2 + S


前日の50分授業いて、コンピューターとプログラミングの基礎をエルチカからかわくだりゲームによるアルゴリズムの基本までをざっと紹介。 (復習スライド、はじめてのパソコンづくりとプログラミング


WAITでタイミングを調整、GOTOで繰り返し、前日のLEDつけたり消したりのプログラムの応用です。


いよいよ、化学xプログラミング、今回は反応時間から反応速度を算出する実験。


今日使う機材はこちら(ミニモニターまたはPCとUSBキャプチャーをIchigoJamのディスプレイに)


メインディッシュ、チオ硫酸ナトリウム水溶液と濁度センサー(SEN0189)、IchigoJamのメモリーに記録することもできますが、まずはシンプルに手書き!
濁度センサーは、D/Aでデジタルとアナログを切り替えスイッチを、A(アナログ)にするのを忘れずに。


IchigoJam x 化学実験、動画でふりかえり。
Na2S2O3 + HCl → 2NaCl + H2O + SO2 + S

Na2S2O3 : チオ硫酸ナトリウム
HCl : 塩酸
NaCL : 塩化ナトリウム(塩)
H2O :
SO2 : 二酸化硫黄
S : 硫黄(硫黄コロイド粒子、白濁の元、臭いの元)

塩酸で反応して、白濁していく様子を濁度センサーとIchigoJamで観測。プログラミングをいじって、計測しやすくするのがポイント。


塩酸を加えると、どんどん濁っていく溶液。濃度や温度の関係をセンサーとコンピューターをプログラミングつなげて計測すれば、定量的に計算できますね!次の時間で、Excelを使ってグラフ化!


後片付け、協力してやりましょう!(絵がかわいい!)


中学校ぶりに、見た化学、改めて見るとおもしろい!楽しそう!
棚を見ると、まるでパズルな分子構造、自然界、スゴイ。


H2O - molecularVR」(src on GitHub)
気になった分子模型、はじめのいっぽ、水分子をVR化!

<!DOCTYPE html><html><head><meta charset="utf-8"/> <title>water - molecularvr</title> <script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script> </head><body> <a-scene id="scene"> <a-sky color="#000000"></a-sky> <!-- H2O - H-O-H angle:104.45, Math.cos(104.45/180*Math.PI/2-Math.PI/2)=0.7904223683023976 --> <a-sphere position="0 1.5 -2" radius=".8" color="#EF2D5E"> <a-sphere position="0.7904223683023976 -0.6125622251553133 0" radius=".7" color="white"></a-sphere> <a-sphere position="-0.7904223683023976 -0.6125622251553133 0" radius=".7" color="white"></a-sphere> </a-sphere> </a-scene> </body></html>

とってもシンプル、分子構造好きな人、ぜひチャレンジしてみてください!
追加分子のプルリク(GitHubへの追加編集依頼)お待ちしてます!
Oculus Questで、分子構造と戯れるのも楽しいかも?


化学の先生は、福井高専物質工学科出身、なまずの後輩、谷口渓先生!
プログラミングと化学の融合授業、大成功!

links
- SSH | 学校案内 | 福井県立武生高等学校
- 化学の実験とプログラミング、濁度センサーで反応速度をグラフ化してみよう

iPhone11の計算力は1兆回/秒。コンピューターを味方にして、ほしいもの創ろう!

VR新作「mirrors - drawlinevr
同時に5つ写像される仮想的な鏡がある3D空間内でするお絵かき。説明するとややこしいけど、実際試せば誰でも一瞬でアーティスト。HTML/JavaScriptによるプログラムは100行足らず。マンダラアート風?


加藤学園暁秀初等学校の5年生全員に紹介した、楽しく奥深い、プログラミングの世界。


「かわくだりゲーム」たった4行で上がる歓喜!

10 CLS:X=15 20 LC X,5:?"O" 30 LC RND(32),23:?"*" 40 GOTO20

3行加えて、できあがり!

35 WAIT3 36 X=X-BTN(28)+BTN(29) 39 IF SCR(X,5) END

詳細は、こちらスライドを参照ください(改変自由なオープンデータ、IchigoJam webで復習もどうぞ)

はじめてのパソコンづくりとプログラミング(keynote/pdf)」USキーボード版


すべてのアプリやゲームの基本ブロック、セットアップ(準備)とループ(くりかえし)を体感。


鯖江流プログラミング学習スタイル、2人一組
総合2コマから始める鯖江の小学校プログラミング! 総合的な学習の時間、IT遊具、クラブ活動、地域ICTクラブ、高度IT人材へのベストプラクティス


サインを求められた!


中も個性的!Radishが活躍しやすそうな広場!


学校内にはたくさんのロボ!


加藤学園、素敵な校舎でした!


1.4とWS.LEDを使った、キラキラを伝授!
R,G,B、好きな色に50コまとめて光らせる!(for 1.4)

LET[0],20,10,0:WS.LED 1,50


PCN沼津 at 沼津高専、中原さん x VR。VRと教育も熱い!


沼津高専生も楽しい!


たのしい電子管楽器のつくりかた - ないならつくる
沼津高専出身の先輩が創ったものとして紹介してくれた、電子楽器!
IchigoJam x MIDI も楽器づくりとプログラミングは相性良し!


Ichigojam内蔵テレビの製作 - ないならつくる」も熱い!


沼津高専NIT2.0メンバーに、プログラミングの楽しさと楽しさの伝え方を伝授!

50行マイクラ風をもっとシンプルに、たった30行でポコポコと白い箱を置くだけプログラムを紹介!
(boxcraft simplest - src on GitHub)

<!DOCTYPE html><html><head><meta charset="utf-8"/> <title>boxcraft simplest for Oculus Quest</title> <script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script> <script>'use strict' AFRAME.registerComponent('input-listen', { init: function() { this.el.addEventListener('triggerdown', function(evt) { const p = this.object3D.getWorldPosition() const size = 0.1 const p2 = { x: Math.floor(p.x / size) * size + size / 2, y: Math.floor(p.y / size) * size + size / 2, z: Math.floor(p.z / size) * size + size / 2 } const box = document.createElement('a-box') box.setAttribute('position', p2) box.setAttribute('width', size) box.setAttribute('height', size) box.setAttribute('depth', size) box.setAttribute('color', '#FFF') scene.appendChild(box) }) } }) </script></head><body> <a-scene id='scene'> <a-sky color="#222"></a-sky> <a-entity oculus-touch-controls='hand: right' input-listen></a-entity> </a-scene> </body></html>

グルメ編

念願の初さわやか!


さわやか名物げんこつハンバーグ


落ち着くまで紙で防御するスタイル


帰り間際に三島コロッケ!

PCN沼津加藤学園暁秀初等学校の5年生、13名、IchigoJamのはんだづけ&プログラミングワークショップ!


みんないい笑顔!


小学校の教室ではんだづけは初!?


はじめてのパソコンづくりとプログラミング(keynote/pdf)」USキーボード版


ドキドキ、初めてのはんだづけ!YouTubeのはんだづけデモ動画を見てイメトレすれば、意外と簡単!


はんだづけ開始!


カラフルカスタマイズ!


S1、圧電サウンダーの足はまずニッパーで切ってから付けるといいよ!


注意点、追記!


自分だけのパソコン、完成!


サーボを使って遊んでみました!
ぐるぐる回してみたい人は、こちらにチャレンジ!「お手軽サーボSG90を抵抗2つで無限回転するように改造する方法


日本で出回っている、2種類あるキーボード


学校ではUSキーボード、お家ではきっと日本語キーボードなので、LRUN3で切り替えに対応!


静岡といえば、パソコンのご先祖様!FACOM128B
IchigoJamと比較して、速度は500万分の1、値段は10万倍!


身の回りの困り事、解決してみよう!
PCNこどもプロコン」で待ってるよ!


PCN沼津と作戦会議 with おいしいもの!

日本語キーボードとUSキーボードの配置切り替えに対応する次期バージョン1.4。
使い勝手が向上、USキーボードとJPキーボードを交互に入れ替える1Kプログラムができました!


初期ファームウェアに入れておくことで、どちらのキーボードでも使い始めることができます。
EEPROMに退避しておくも良し、もう一度打ち込むも良し!(プログラムは末尾に)


こちら IchigoJam T、右下にある電源スイッチが、IchigoJam S と違います。


どうも途中で部品が変わってしまって耐久度が下がった様子の旧スイッチ
もし壊れてしまったり、動作に不安があったら、交換しましょう!
今回使うのは、こちら「★1回路2接点★スライドスイッチ(10個入) [SS12D07]
IchigoJam S 同梱スイッチとたぶん同等品です。
★1回路2接点★スライドスイッチ(10個入) [SS12D07-NL] ← これだとカットなしでOKかも)


ニッパーで表面から旧スイッチをカット。


裏面、はんだ吸い取り線ではんだをきれいに吸い取る。


温かい内に、残っている金属の芯をラジオペンチで引っこ抜く。


IchigoJam 初代、U、T には、スイッチの外装用の差込口はないので、ニッパーで切り取ります。
スイッチの足の幅は若干合いませんが、斜めから挿し込めば入ります。
一箇所はんだづけして、スイッチを表面から手で押さえながら、はんだごてで温め、向きをいい具合に調整。
残りの2ピンもはんだづけすれば完成!


強化スイッチは、カチッと切り替え、安心感あります。

自分で作ったものは、だいたい自分で直せる!
IchigoJamは、誕生当初からハードウェアの基本構成が変わっていないので、最新ファームウェアが適応可能です!
せっかくなら、強化したり、拡張したり、いろいろお楽しみください!

IchigoJam 1.4用、キーボード配置JP/US、切り替えプログラム全文。

1 'EXCHG KBD JP-US POKE#D00,174,35,240,181,197,176,3,145,219,1,27,120,14,51,27,2,2,147,114,182,6,34,232,35,17,0,27,136,53,32,152,71 POKE#D20,67,30,152,65,128,39,0,36,134,29,51,1,1,147,127,0,230,35,27,136,7,44,85,209,2,154,3,153,81,24,58,0 POKE#D40,4,168,152,71,232,35,50,0,27,136,49,0,50,32,152,71,1,155,4,169,226,24,234,35,27,136,18,2,29,0,51,32 POKE#D60,59,0,1,52,168,71,16,44,226,209,5,34,216,52,35,136,17,0,50,32,152,71,5,34,35,136,160,36,17,0,52,32 POKE#D80,152,71,1,155,228,1,27,2,1,147,1,155,23,74,4,168,153,24,230,35,128,34,9,25,27,136,82,0,152,71,232,37 POKE#DA0,5,34,43,136,17,0,50,32,152,71,234,35,27,136,34,0,31,0,128,35,4,169,91,0,51,32,184,71,192,35,1,52 POKE#DC0,255,52,219,1,156,66,224,209,43,136,50,0,49,0,50,32,152,71,43,136,50,0,49,0,52,32,152,71,98,182,2,152 POKE#DE0,69,176,240,189,33,0,80,49,9,2,168,231,0,176,255,255 'JP KBD MAP POKE#E00,1,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,113,49,32,32,32,122,115,97,119 POKE#E20,50,32,32,99,120,100,101,52,51,32,32,32,118,102,116,114,53,32,32,110,98,104,103,121,54,32,32,32,109,106,117,55 POKE#E40,56,32,32,44,107,105,111,48,57,32,32,46,47,108,59,112,45,32,32,92,58,32,64,94,32,32,32,32,10,91,32,93 POKE#E60,32,32,32,32,32,32,32,32,8,32,32,49,92,52,55,32,32,32,48,46,50,53,54,56,27,32,32,43,51,45,42,57 POKE#E80,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,81,33,32,32,32,90,83,65,87,34 POKE#EA0,32,32,67,88,68,69,36,35,32,32,32,86,70,84,82,37,32,32,78,66,72,71,89,38,32,32,32,77,74,85,39,40 POKE#EC0,32,32,60,75,73,79,48,41,32,32,62,63,76,43,80,61,32,32,95,42,32,96,126,32,32,32,32,10,123,32,125,32 POKE#EE0,32,32,32,32,32,32,32,8,32,32,49,124,52,55,32,32,32,48,46,50,53,54,56,27,32,32,43,51,45,42,57,0 'US KBD MAP POKE#F00,0,0,96,32,32,32,32,32,32,32,32,32,32,32,32,32,96,32,32,32,32,32,32,113,49,32,32,32,122,115,97,119 POKE#F20,50,32,32,99,120,100,101,52,51,32,32,32,118,102,116,114,53,32,32,110,98,104,103,121,54,32,32,32,109,106,117,55 POKE#F40,56,32,32,44,107,105,111,48,57,32,32,46,47,108,59,112,45,32,32,92,39,32,91,61,32,32,32,32,10,93,32,92 POKE#F60,32,32,32,32,32,32,32,32,8,32,32,49,32,52,55,32,32,32,48,46,50,53,54,56,32,32,32,43,51,45,42,57 POKE#F80,0,126,32,32,32,32,32,32,32,32,32,32,32,32,32,126,32,32,32,32,32,32,81,33,32,32,32,90,83,65,87,64 POKE#FA0,32,32,67,88,68,69,36,35,32,32,32,86,70,84,82,37,32,32,78,66,72,71,89,94,32,32,32,77,74,85,38,42 POKE#FC0,32,32,60,75,73,79,41,40,32,32,62,63,76,58,80,95,32,32,95,34,32,123,43,32,32,32,32,10,125,32,124,32 POKE#FE0,32,32,32,32,32,32,32,8,32,32,49,32,52,55,32,32,32,48,46,50,53,54,56,32,32,32,43,51,45,42,57,0 2 IF USR(#D00)=#F00 ?"US KEYBOARD" ELSE ?"JP KEYBOARD" 3 NEW

プログラム用のメモリ領域である、#C00-#FFFにキーマップデータと書き換え用のマシン語をPOKEで書き込んでいるので、そのまま本体やEEPROMにSAVEしておけば、いつでも呼び出して切り替えできます。
(C言語のソースはこちらc4ij src on GitHub

1.3など以前のバージョンでは、2行のUSR呼び出しでエラーになったり、マシン語部分でフリーズするだけで、壊れることは無いのでご安心ください。

ただ、キーマップやマシン語を打ち間違えて、1.4で動かした場合、OSが変なことになる可能性があるので注意です!
変なことになったら、ファームウェアを入れ直しましょう。

links
- PRODUCTS -IchigoJam- | PCN プログラミング クラブ ネットワーク
- IchigoJam の種類 - イチゴジャム レシピ

左右約90度、プログラミングで角度を指定するとその通りに動かしてくれるサーボモーター。
お手頃価格が人気のSG90、ちょっと改造すると正転逆転、連続して無限に回転するモーターにできちゃいます。
IchigoJamでテストしていますが、何にでも使えます!


IchigoJam-FANに投稿されたステキな幾何学模様を描くロボットづくりや、カニロボコンにも!?


プラス精密ドライバーで分解!(100均でも手に入ります)


上側の蓋が簡単に外れます。この状態で回してみると、出っ張りで引っかかる様子がわかります。(やりすぎと壊れるので注意)


引っ張ると取れる、出っ張りがあるギア。


ギアの出っ張りをニッパーでカットして戻します。(ニッパーも100均にあります)
(PWM命令で、可動域を越えて指定するとたまにロックして壊れてしまう問題を防ぐのにも使えます)
シールを剥がせば、下側が開きます。(サーボホーンを付けておくとバラけなくてよいです)


制御ICとセンサーらしき配線がでてきます。


サーボをだいたいセンターにして測ってみると2.4kΩ。全体で5kΩの可変抵抗なようです。


角度判定は必要ないので、根本からカット!


ポテンショメーターへの線もカット!


可変抵抗替わりに抵抗2つで分圧してやり、常にセンターだと錯覚させましょう。
2.4kΩ推奨ですが、分圧するだけなはずなので、同じ抵抗値なら他のでもok!(チップ抵抗を使うのもありですね!)
はんだづけして2つを合体して・・・


まずはセンターにはんだづけ。


両端もはんだづけしてできあがり!(上下逆の方が収まりよかったかも)


精密ドライバーで元通り組み立てて、無限回転化サーボのできあがり!
モータードライバーなしで、前後回転、速度調整もできちゃいます!

10 N=147 20 N=N-BTN(28)+BTN(29) 30 ?"PWM2,";N 40 PWM2,N 50 WAIT5 60 GOTO 20

こちらテストプログラム(左右で値を変更して、PWMコマンド!)
ファームウェア1.4なら、50行のWAITがなくてもOKです。

SG90は、秋月電子で400円。
まとめて買うなら、Amazonで互換品が10コで2,200円
時間がかかったりしますが、Aliexpressで100コで$103とかで買えます!

改造が面倒な方は「360°連続回転サーボ(ローテーションサーボ) SG90-HV」をどうぞ!

作った作品、お気軽に投稿ください
IchigoJam-FAN

Gamepad API対応した IchigoJam web、PS4のコントローラーでの操作対応しました。
せっかく、アナログスティック2つと、アナログトリガー2つあるので、AN0/2/5-8に割り当ててみました。

PS4のコントローラーを使ったツールや、ゲームが IchigoJam BASIC で作れます!
左アナログスティックを使ったお絵かきプログラムは、1.4の新コマンド DRAW を使って簡単!

10 IF BTN(32) CLS 20 DRAW ANA(2)/16,ANA(0)/22 30 GOTO 10

スペースキーは、メガドラミニのコントローラーと同様、Aボタン位置Xボタンに割り当てています。


DRAW by ANAs - IchigoJam web」要PS4/XBOX/メガドラミニコントローラー
PC上のChrome, Safari、iOSのSafariで動作確認済み。
ただし、iOS Safari は時々認識しなくなるので、その場合は、設定、Bluetoothで登録解除して、再度PSボタンとSHAREボタン同時長押しして、接続し直しましょう。
iOSでは、PSボタン、SHAREボタン、BACKボタン、タッチパッドの状態を取得できないので、L2/R2を使ってESC/RUNを割り当て。
有線で接続するXBOXコントローラーにも対応、ほぼ同様のキー割り当てとしています。

PCのSafariでも時々Gamepadのidの取得に失敗するなど、まだ少しバグがあったりしますが、本格コントローラーを使って遊ぶ IchigoJam も楽しいですよ!

IchigoJamにシリアル入力付き、PCダイレクト接続型の新タイプ「IchigoKamuy」登場!

ジュニア・プログラミング・ワールド2019PCN札幌ブースにて、早速約60名のこどもたちに届けられたとのこと!

札幌から送ってもらった時のレビューもどうぞ!
PCに挿すだけ簡単IchigoJam、USBシリアル内蔵「IchigoKamuy」先行レビューとβファームウェア1.4b10

iOS13が、HTML5のGamePad APIに対応した記念に、IchigoJam web を対応させてみました!


IchigoJam web
ブラウザで動くIchigoJam!教科書とあわせて、プログラミングの学習にもどうぞ!
ゲームパッド対応で、操作性良いゲームが作れます!対戦対応しても楽しいかも?


コントローラーは、メガドラミニのを使用。ちっちゃくてかわいい!質感良し!

難点はコントローラー毎、プラットフォーム毎、ブラウザ毎にボタンとスティックの対応がバラバラなこと・・・
idを見て、ひとつひとつ対応していくしかなさそうです。いろいろコントローラーまとめた共有ライブラリがどこかにあるかも?
なければ、作ればいいかも?

links
- メガドラミニ(コントローラーx1) 7,550円
- メガドラミニ(コントローラーx2) 9,800円(+2,250円)
- Gamepad APIの利用 - 開発者ガイド | MDN

第3回目の開催となる、福井の味覚「越前がに」をテーマにした小学生向けプログラミングによる自律走行するロボットコンテスト、越前がにロボコン! 今年は、お隣石川県、金沢市でも12/26(木)に開催予定「加能ガニロボットコンテスト2019

決勝戦と参加者インタビュー on YouTube!

熱い戦いを振り返ります!

8時半開場、作業用のピットを見てみましょう!


さばえカニロボットベース、光センサー2つに加え、超音波センサー搭載!


モップ状の足でレアメタルを根こそぎ狙いにいくスタイル!


残念ながらモーター破損により、本番では出番のなかったテオヤンセン型歩行LEGOベースのロボ。


レーザーカッターで切り出したテオヤンセン型ロボIchigoJamバージョン


9時半開会式に続いて、早速予選スタート!
スコアが同点の場合は、ゴールタイムが速い順、それも同着の場合はゼッケン順。


素敵な司会と、PCN代表によるキッズエンジニア視点の解説!


予選結果と決勝トーナメントの発表!


小学生低学年もこの眼差し!


こんなところにもかわいいカニ!


マシントラブルでもあきらめない!


横書き対応したリアルタイムトーナメントシステム!


今回は、得点システムを競技者とは反対側に置いたため、左右が逆になっていました。左右反転モードを付けておくと良いかも。


小学生のロボットもプログラミングも自分で作ったカニロボ同士の熱い戦い、まさにeスポーツ!


低学年の部、決勝戦後、お互いを称えてがっちり握手!


いよいよ高学年の部、決勝戦!


高学年部門、低学年部門のトーナメント戦結果と、決勝戦のスコアボードがこちら!


高学年部門、決勝動画!


低学年部門、決勝動画!


表彰式!


とってもカニなロボットを作ってきてくれた敦賀の小学生チーム!


IchigoJam賞、プレゼント!


第3回 越前がにロボコン
主催:一般社団法人 福井県情報システム工業会 越前がにロボコン実行委員会
共催:株式会社 福井新聞社 福井県機械工業協同組合
後援:福井県 福井県教育委員会 福井商工会議所 福井大学 福井工業大学 福井工業高等専門学校 NHK福井放送局 FBC 福井テレビ 福井県漁業協同組合連合会 ショッピングシティベル

links
- 越前がにロボコン
- 第2回 越前がにロボコン 2018.11.25(SUN) ショッピングシティ ベル あじさいホール - YouTube
- 第1回 越前がにロボコン 2017.11.26(SUN) ハピリン 2F広場 - YouTube
- 3年目の意地と3分間の勝負。3名の戦士が挑戦した【第3回越前がにロボコン】: Hana道場
- テオヤンセン蟹に魅せられたプログラミングするロボットスポーツ「かにロボコン2019」!次回は来月「金沢 加能ガニ ロボコン」にて! – about yrm
- 戦う姿まぶしい小学生、動画でふりかえる「越前がにロボコン」 (2017)
- 小学生エンジニアによる熱き戦い、越前がにロボコン2018 決戦動画! (2018)

結論、できる!
ただし、コンピューター自体の仕様であるマシン語へ都度翻訳する、インタプリタ型の IchigoJam BASIC では無理。

真の力を引き出す、マシン語と、プログラミング言語の世界をのぞいてみよう! for 福井高専電子情報工学科1年生。


IchigoJamのハーフキット、はんだづけからスタート!


つないで、LED1、光った!完成! (90分1コマちょっとでほぼ全員完成、はんだごての準備などをしておけば短縮可能、失敗した人用完成版もいくつかあるといい)


授業としてははじめてのプログラミング!


LEDが点滅するロボットの仕組み、かわくだりゲームによるアプリづくりの基本を小学生向けの3倍速で紹介!
IchigoJamは、本当に1秒に5000万回計算できるのか!? 〜IchigoJam マシン語入門〜(keynote/PDF)」
はんだづけから、はじめのいっぽ、ゲームづくりまでの資料はこちら!アレンジ自在のオープンデータ。
一度やったら大丈夫、きっと先生として小学生に教えられますよ!


IchigoJamは、本当に1秒に5000万回計算できるのか!? 〜IchigoJam マシン語入門〜(PDF)」
今回初公開、マシン語入門!かわくだりゲームまでやった人向け、小学生でもきっとOK!


100円のコンピューターがなんと1秒間に5000万回!・・・でも、本当に?


実際測ってみると、VIDEO0で表示を消してもせいぜい1秒に1000回・・・、遅い!
その理由は、IchigoJam BASICがインタプリタ型のプログラミング言語だから。


マシン語ではなそう!


IchigoJamのCPU、NXP LPC1114の説明書と、Armの説明書をまとめてできた、マシン語表


足し算は、Rd += u8 を使う!


2進数、10進数、16進数の変換は IchigoJam BASICのコマンドでも簡単!


マシン語をメモリに書き込んで、USRを使って呼び出し!(呼び出し元にかえる #4770 がないと、どうなっちゃう!?)


マシン語で足し算のループを作ろう!


1000回でも1万回でもCLTとTICK()では1/60秒未満で測定不能なので、ループ回数を100倍に!


ビデオ表示を消して、1ループ1000万回になった!プログラムとマシン語表のサイクルを見てみると、確かに1秒間に5000万回計算できてることが判明!


実は、CPUだけだと、最新のCPUでも、1つだけならたかだか40倍くらいしか変わらない。
3D計算やAIなど、特定の計算に特化したハードウェア(GPU)の活用が、圧倒的計算力を活かす鍵!


圧倒的パワーが魅力なコンピューター。いろいろたのしいものつくっちゃおう!


好評だったNT鯖江2019、来年のNT鯖江2020の開催は、2020/10/3-4が有力!
見に来るだけでももちろん歓迎、でも、せっかくなら、なにかつくって出展しよう!

links
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1
- 福井で初開催!なにかつくろう、NT鯖江2019! ダイジェスト動画と交互連打で目指せ世界記録ゲーム!

IoT人流センサーでも活躍、超音波で距離を測るセンサー「HC-SR04」は、デジタル入力を使ってアナログ量が測れます。
0か1かしかないデジタルでどうやって、量がわかるのでしょう?
1になるまでの時間を見るのです。

改めて、このセンサーの使うプログラムを見てみましょう。
(測距センサーHC-SR04:IchigoJam、Trig:OUT1、Echo:IN1、GND:GND、Vcc:5V)

10 OUT1,1:OUT1,0:A=0 20 A=A+1:IF IN(1) CONT ELSE ?A 30 WAIT 5:GOTO 10

OUT1としてしまうと、他のOUTポートもまとめてコントロールしてしまうので、OUT1,1:OUT1,0と変更しました。
これがセンサーのTrigとなり、超音波センサーの2つの丸めの1つから超音波のパルス(短い時間の1)が発射されます。
この超音波が返ってくるまでの時間を変数Aを使って、IN1が0になるのを待つ。Aが距離。
以上が使い方の基本です。

OUT1が埋まっている時は、TrigをOUT2から6まで空いているところに挿して、例えば10行をOUT3,1:OUT3,0とかすればOK!
IN1が埋まっている時は、EchoをIN2から4までの空いているところに挿して、例えば20行をIN(2)とかすればOK!

(測距センサーHC-SR04:IchigoJam、Trig:OUT3、Echo:IN2、GND:GND、Vcc:5V)

10 OUT3,1:OUT3,0:A=0 20 A=A+1:IF IN(2) CONT ELSE ?A 30 WAIT 5:GOTO 10

IchigoJamが速いほどに、近いものが認識でき、細かく測れます。高速化した1.4β、お試しください!

いろんなセンサーやモーターを組み合わせて、誰も作ったこと無いものつくっちゃいましょう!


HC-SR04 x IchigoJam S

更に、精度が必要な場合や、ファームウェアの書き換えが面倒な場合、マシン語を使って時間計測を高速化します。

R0=0 R1=[@IN3]L @LOOP R2=[R1]L R0=R0+1 R2-0 IF !0 GOTO @LOOP R0=R0>>9 RET @IN3 DATA L #50000080

IN1のアドレスは #50001000 でした。
IN2はアナログ入力設定になっているので切り替えが必要なため、少しややこしい。
IN3のアドレスは #50000080
IN4のアドレスは #50000100
となります。

これをasm15を使ってアセンブルするか、マシン語表を見ながらハンドアセンブルしてできるマシン語がこちら。

10 POKE#700,0,32,3,73,10,104,64,28,0,42,251,209,64,10,112,71,128,0,0,80 20 OUT1,1:OUT1,0:?USR(#700,0) 30 WAIT 5:GOTO 20

このアドレスの求め方、IchigoJamのCPU、LPC1114の取説によると、PIO0のベースアドレスは #50000000
IN3は、PIO0_5の場所なので ?"#5000";HEX$(1<<(5+2),4) → #50000080
IN4は、PIO0_6の場所なので ?"#5000";HEX$(1<<(6+2),4) → #50000100
(参考、マシン語でLEDを光らせよう! - IchigoJamではじめるArmマシン語その4


Hana道場、越前がにロボコンに向けて開発が進んでます!超音波センサーを違うポートで使いたい?


2つのモーター制御に、たまごを惑星においてくるためのサーボ制御、ライントレース用の2つセンサー、もりもりです!
これにレアメタル判定用に、超音波センサーを追加!


福井の小学生向けご当地ロボコン「越前がにロボコン」いよいよ今週末11/3開催
11/3日 9:00-17:00 ショッピングシティ ベル、あじさいホールにて!(Googleマップ

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