2024-07-18
コンピューター活用が欠かせない現代。こどもたちにも楽しくコンピューターを活用してもらいたいですね!大人がかっこよくキーボードを使っている様子を見て、こどもは当然真似したくなる!

そこで、IchigoJam(Rではない、コンピューターがNXP社のLPC1114のもの)とキーボードをプレゼント。下記のプログラムを入力しておけば、電源ONで、楽しくキーボードで遊べるおもちゃのできあがり!


「MAXCHAR - run on IchigoJam web」

1 @ARUN:'MAXCHAR 10 POKE#700,112,181,9,35,27,2,201,24,4,49,192,0,18,24,0,36,3,38,19,93,128,37,24,70,40,64,0,208,1,32,8,112,1,49,8,112,1,49,8,112,1,49,109,8,243,209,8,49,1,62,1,209,1,52,3,38,8,44,234,209,112,189 20 POKE#73E,98,70,1,54,12,46,227,209,240,189 30 CLS:A=USR(#700,65) 40 K=INKEY():IF K=0 CONT 50 BEEP K:A=USR(#700,K) 60 GOTO 40


「BIGCHAR - run on IchigoJam web」

マシン語を打つの大変という方向け、BASICのみのちょっと小さめな文字バージョン

1 @ARUN:'BIGCHAR 30 VIDEO9:CLS:LC1,1:?"A"; 40 K=INKEY():IF K=0 CONT 50 BEEP K:LC1,1:?CHR$(K); 60 GOTO 40

VIDEO9で文字サイズを大きくするとプログラムのリストが見えなくなるので、VIDEO1コマンドで元のサイズに戻しましょう。(ショートカットキー、F8)

VIDEO1

マシン語を学ぶ高専生向けの解説。
8x8、64コのドットで表現しているIchigoJamの文字。1つのドットを3x3の文字サイズで表示すると、32x24の画面いっぱいに表示できます。24倍サイズ!

IchigoJam BASICのマシン語呼び出し関数 USR を使うと、レジスタR0にパラメータ、R1に仮想RAM0の物理アドレス、R2に仮想ROMの物理アドレスが渡されます。仮想RAMのVRAM#900番地のメモリに書き込めば画面に表示されるので、縦横3倍に書き込むことで、画面いっぱい描画ができあがり!

'MAX CHAR PROGRAM 'R0: param, char 'R1: virtual memory offset(RAM) -> CURSOR 'R2: virtual memory offset(ROM) -> CHAR ADR 'R3: VRAM 'R4: vertical counter 'R5: horizontal counter 'R6: 3 times counter PUSH {LR,R4,R5,R6} R3=9 R3=R3<<8 R1=R1+R3 R1+=(32-24)/2 'CENTER R0=R0<<3 R2=R2+R0 'CHAR ADDRESS R4=0 R6=3 @LOOP1 R3=[R2+R4] R5=#80 @LOOP2 R0=R3 R0&=R5 IF 0 GOTO @ELSE1 R0=1 @ELSE1 [R1]=R0 R1+=1 [R1]=R0 R1+=1 [R1]=R0 R1+=1 R5=R5>>1 IF !0 GOTO @LOOP2 R1+=32-8*3 R6-=1 IF !0 GOTO @ELSE2 R4+=1 R6=3 @ELSE2 R4-8 IF !0 GOTO @LOOP1 @END POP {PC,R4,R5,R6} 'A=USR(#700,ASC("A")):WAIT120

Arm版asm15アセンブリ言語表記した上記プログラムを、asm15アセンブラを使ってアセンブルすると、上記プログラムで使っているPOKE文ができあがり!

10 POKE#700,112,181,9,35,27,2,201,24,4,49,192,0,18,24,0,36,3,38,19,93,128,37,24,70,40,64,0,208,1,32,8,112,1,49,8,112,1,49,8,112,1,49,109,8,243,209,8,49,1,62,1,209,1,52,3,38,8,44,234,209,112,189 20 POKE#73E,98,70,1,54,12,46,227,209,240,189

あとは打ち込むか、IchigoJam webで試すか、USB UARTで流し込めばOK!

こどもたちと一緒に学ぼう、コンピューター!

links
- 4才にプログラミングを教える10ステップ
- 小1でマスターするキーボード、タイピングゲーム「ゴモジ」
- キーボードとアルファベットで遊ぶおもちゃづくり!未就学児と始めるIchigoJamシリーズ
- 初めて触るキーボードの気持ちが蘇る「かたかなろーまじゲーム」品川区こどもプログラミング発、小学1年生のアイデア
- プログラミングD分類、鯖江市では全小学校でIchigoJamを使ったプログラミングクラブとキーボードはじめのいっぽ

2024-07-17
星空保護区に選ばれた福井県大野市。元、天文同好会長として、環境省のデータで使って「星空観測結果ベストマップ」を作りました。


「日本の星空観測結果ベストマップ」

2018年〜2023年までの星の綺麗さを表す数で色分けした857箇所のマップです。

夜空の明るさは、mag/□”(平方秒角あたりのマグニチュード)という単位で表し、大きいほど夜空が暗く、星が綺麗に見えるものです(夜空の暗さと定義した方が良かったのでは?)。平方秒角を表す四角「□”」、文字化けかと思いましたがこれが正しいようです。英語表記では、mag/arcsec2

標準レンズでRAW撮影した写真を環境省が集めています(参考、環境省「星空を見よう」 夜空の明るさを測ってみよう)。


赤ピンが等級21以上の星空がきれいにみえる夜空が暗い星空スポット。大野市は21.40!

マップのつくりかた
1. download.js で、スクレイピングし、CSVデータをダウンロード、UTF-8にして保存(fetchSave)
2. makeResultAll.js で、全データの項目名の表記揺れと、日時データの年無しや表記揺れを修正して、1つのデータ result_all.csv にまとめる
3. makeResultMaxMag.js で、まとまった全データから参考値などを抜き、同一箇所の場合、夜空の明るさが最大なものを抽出し、ピンの色を指定したデータ result_maxmag.csv をつくる
4. 表示するウェブアプリ index.html をつくる


「hoshizora - src on GitHub」

データの揺れがあるのが地味に面倒ですが、一度やってしまえば、楽できます。今年分が更新されたらこちらも更新しようと思います。


「日本の星空観測結果ベストマップ」

近くの星空スポット、探してみましょう!

links
- 日本で4箇所、DarkSkyの星空保護区マップと観測最適日を探す月齢カレンダー mooncal
- 環境省「星空を見よう」 観察結果

2024-07-16
この夏、電子工作&プログラミング、はじめてみませんか?DigiKey日本公式チャンネルにて、こどもI/Oパソコン、IchigoJamを使った夏休み自由研究ロボットプログラミングが公開予定!

基本ネクタイはしない派でしたが、IchigoJamがきっかけでスーツの時は光るネクタイを装備しています。 ニュージーランドからの留学生にどうしてもというのでプレゼントして手持ちがなかったので、久しぶりに楽しく手作り!


まずはLPC810にゲーミングイルミネーションを実現するマシン語プログラムをIchigoJamから書き込みます。書き込み済みのコンピューターを使うと、はんだづけだけでゲーミングな何かが作れます!(参考、軽量版、光るXのつくりかた - 光るネクタイ&光るカチューシャ例


今回は、ICソケットは省略。LPC810を、電源ピン、GNDピン、信号出力ピンの3つを除いてカット。


テープ状のWS2812B、LPC810の電源ピンをはんだづけし、DINと信号出力ピンを抵抗の余った切れ端ではんだづけ。


今回は、3.3V昇圧モジュールをテープLEDの下の部分に合わせて配置。テープLEDの途中にはんだづけするよりも安定しそう。


できあがり!安全ピンでネクタイの裏に留めます。ただ、安全ピンの隙間から抜け落ちやすい問題発覚。ICソケットはやはり合ったほうが良さそう。


「鳴らす!回す!光らせる!子どもプログラミング #shorts - YouTube」
公開されたYouTubeショート。IchigoJamの基本から、センサーやサーボを使った応用プログラミングまで順に解説します!


基本的な電子パーツ、自分で集めて、調べながら組み立ててみるのも楽しいですよ!
*NXP社CPUを表面実装はんだづけする必要があるので、中級者向けです

links
- 軽量版、光るXのつくりかた - 光るネクタイ&光るカチューシャ例
- LPC810をあやつろう

2024-07-15
星が綺麗で有名な福井県大野市。日本で4番目に登録された、星空保護区(DarkSky)。都市に近い優れた夜空環境と認められる「アーバン・ナイトスカイプレイス」としてはアジア初とのこと!(参考、福井県大野市「南六呂師」が星空保護区認定 | 星空保護区®、「星空保護区®」は一般社団法人星空保護推進機構(DPA)の登録商標)


「Minami-Rokuroshi | DarkSky International」

星空観測には新月チェックを欠かさないように!と書いてあり、確かにそれは重要!


「moon-age」

月齢を計算する方法を調べ、紹介されていた「月齢と月の満ち欠けを表示 #JavaScript - Qiita」をHTML拡張タグ moon-age として実装。


「月齢カレンダー」

このmoon-ageタグを使って実装した、月齢カレンダー。


「日本の星空保護区マップ」
ファンCSVオープンデータ
DarkSkyでの場所検索で、Japanで表示される4件をまとめて、マップアプリとして表示。

大野市は、福井工業大学と大手照明メーカーのパナソニック株式会社と連携し、2021年〜2022年にエリア内にある360基の屋外照明の全てを改修しました。
福井県大野市「南六呂師」が星空保護区認定 | 星空保護区®より)
光害対策のために屋外照明の改修も!ぜひ一度見に行きたいですね!
(参考、福井県大野市は、福井工業大学、パナソニックと共同で「星空に優しい照明」を試験設置、「星空保護区認定」を目指します | 企業・法人向けソリューション | 製品・サービス | プレスリリース | Panasonic Newsroom Japan : パナソニック ニュースルーム ジャパン

星空案内カフェ ほしのいとを準備中 | 星結事務所」も今年8月末オープンに向けて準備中とのこと。

links
- 星空保護区 International Dark Sky Places
- DarkSky International | Protecting the night skies for present and future generations
- 福井県大野市「南六呂師」が星空保護区認定 | 星空保護区®

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS