β版 IchigoJam Rを予約注文しました
IchigoJam、チェックを怠ってましたが、新製品が出ていました。
Risc-V 搭載ということで、面白そうなデバイスです。
早速、を予約しました。
【β版】IchigoJam 組み立て済完成品 R
USB キーボード対応となったのとSPI対応はいいですよね。
IchigoJam、チェックを怠ってましたが、新製品が出ていました。
Risc-V 搭載ということで、面白そうなデバイスです。
早速、を予約しました。
【β版】IchigoJam 組み立て済完成品 R
USB キーボード対応となったのとSPI対応はいいですよね。
IchigoJamのファームウェア 1.4.1が正式に公開されました。
早速、ファームウェアをアップデートしました。
関連記事
・こどものプログラミング教育ツール『IchigoJam BASIC』ver 1.4リリース
・IchigoJam ダウンロード
・documents of IchigoJam
・IchigoJam BASIC リファレンス ver 1.4
・IchigoJam BASIC 1.4 コマンド一覧
・IchigoJam BASIC 1.4 コマンド一覧(印刷用)
追加された機能の中で、クリスマスが近いということで、
NeoPixel(WS2812B)の制御を行うコマンド WS.LED の動作を試して見ました。
このコマンドは、表示する色のパターンを配列([0]~)に定義し、そのパターンを繰り返して表示します。
下記に仕様をまとめました。
WS.LED
---------------------------------------------------------------------------------------------
【概要】
NeoPixel(WS2812B)の制御を行う
【書式】
WS.LED 色パターン定義数 {,繰り返し数}
【結線】
IchigoJam側 NeoPixel(WS2812B)
LEDピン DIN
GND GND
5V VCC(5V)
【引数】
色パターン定義数: 配列に定義(緑、赤、青の3つで1セット)のする色パターン数
繰り返し数 : 色パターン繰り返し回数
【解説】
配列の先頭([0]~)から緑、赤、青の順に設定された連続する3つの値(0~255)でLEDピンに接続された
NeoPixel(WS2812B)を1つ分、光らせます。
緑、赤、青の値は複数定義可能で、複数のNeoPixelを光らせることができます。
繰り返し回数を指定することで、緑、赤、青の値のパータンでの光らせます。
データ送信の際、割込みを中断するためNTSCビデオ出力の画面表示が一瞬止まります。
---------------------------------------------------------------------------------------------
実際に、NeoPixel(WS2812B)30個接続のリボンタイプのモジュールを制御してみました。
まずは、全30個のLEDを次のコマンドで赤(最大輝度 255)で表示してみます。
LET [0],0,255,0:WS.LED 1,30
あらかじめ配列に1つ分のLEDの色パターン 緑:0、赤:255、青:0を格納します。
次にWS.LEDコマンドにて、パターン数=1、繰り返し数=30回を指定して実行します。
これだけで、30個のLED全点が赤になりました。
次に緑、赤、青のパターンを10回繰り返す表示をやってみます。
LET [0],255,0,0,0,255,0,0,0,0,255:WS.LED 3,10
配列に3個分のパターン
緑:255、赤:0、 青:0
緑:0、 赤:255、青:0
緑:0、 赤:0、 青:255
を格納します。
次にWS.LEDコマンドにて、パターン数=3、繰り返し数=10回を指定して実行します。
今度は、プログラムを組んで動きのある表示をやってみます。
10 LET [0],255,0,0,0,255,0,0,0,255:WS.LED 3,10:WAIT 30
20 LET [0],0,255,0,0,0,255,255,0,0:WS.LED 3,10:WAIT 30
30 LET [0],0,0,255,255,0,0,0,255,0:WS.LED 3,10:WAIT 30
40 GOTO 10
0.5秒間隔でLEDの表示がシフトして表示されます。
なかなか遊べるコマンドですね。
IchigoJam用プログラムアップ&ダウンローダ Ichigoツール をGitHubにて公開しました。
だいぶ前に作成したものですが、ブログからのダウンロードをGitHubの方に集約したいと思います。
・公開ページのリンク
IchigoJam用プログラムアップ&ダウンローダ for Windows
https://github.com/Tamakichi/VBIchigoTool
ページには簡単な説明も記載しました。
ツールはVisual BASICで作成しています。
Visual Studio 2017/2019でプロジェクトを読み込んでビルド出来ることを確認しました。
MITライセンスにて公開しています。
ツール及びプログラムソースは自由お使い下さい。
他のツールも整理してアップしたいと思います。
2019/11/19 追記
ツールをV1.05に更新しました。
・変更点
- IchigoJamからのプログラムのダウンロード時、IchigoJamで実行中のプログラムを終了させてから
プログラムのダウンロードを行うように修正しました。
- 動作確認のためのIchigoJam用のサンプルプログラムを追加しました。
ツールをV1.04に更新しました。
・変更点
IchigoJamへのプログラムのアップロード時、IchigoJamで実行中のプログラムを終了させてから
プログラムのアップロードを行うように修正しました。
具体的には、アップロード前に[ESC]コードを送信しています。
手持ちのIchigojamのファームウェアを最新版 1.4b13にアップデートしました。
久しぶりにIchigojamを触りました。
・Ichigojam 1.4b13 のダウンロード先
https://ichigojam.github.io/ichigojam-1.4b13.zip
・リファレンスマニュアル documents of IchigoJam
https://github.com/ichigojam/doc/
アップデートの様子
シリアル接続には変換基板 [P-jam.isp.ifb]を使っています。接続が楽ちんでGoodです。
問題無く、アップデート出来ました。
当面は、自分が作成したツール類の動作確認と修正を行いたいと思います。
まずは、質問のあった「ichigoツール」の動作確認をしてみました。
とりあえずは、アップロード、ダウンロードとも問題無く動作しました。
このツール、4年半前に作ったんですよね、時間が経つのは早いです。
このツールはもう少し動作確認してからGithubの方にも、ソース込みで公開したいと思います。
前回の続きです。
専用ケーブルを作りました。
また、ファームウェアは若干問題があり、 2019/03/10に修正しています。
USBコネクタは、秋月電子で販売されている
ケーブル取付用USBコネクタ(Aタイプ オス)を利用しました。
熱収縮チューブで固定し、その上から結束バンドで固定しました。
これなら、抜き差しに耐えられると思います。
ケーブルは、スイッチサイエンスのM5Stack用GROVE互換ケーブル 50 cm(2個入り)
に変更しました。
とりあえず、これで完成とします。
今回の製作では、ボードにのっているNeoPixcelで若干ハマりました。
制御に使っているAdafruit NeoPixel ライブラリがNeoPixcel へのデータ送信で
割り込み禁止をかけていて、起動直後のPS/2イニシャル処理を邪魔します。
対策として、起動時のLEDの点滅処理を削除しました。
Arduino(AVR)で割り込みを併用するようなプログラムでは
Adafruit NeoPixel ライブラリは使わない方が良さそうです。
前回の続きです。
GithubにてPS/2インタフェース対応ファームウェアを公開しました。
・ CardKeyBoard PS/2 インタフェース版 ファームウェア
https://github.com/Tamakichi/CardKeyBoard_PS2
(2019/03/10 更新しました: (内容) PS/2イニシャル時0X00送信削除、応答無しでも次に進む、LED点滅廃止)
オリジナル版になかった [カナ] 、[Insert]、[F1] ~ [F10] キー等を追加しました。
IchigoJamでのローマ字カタカナ入力にも対応しています。
プログラム入力には困らないと思います。
ケーブルには次の信号を割り当てています。
IchigoJamで利用する場合、
ジャンパーワイヤー(オス - オス)を使って、端子に接続でも利用出来ます。
GND - GND
VCC - 5V or 3.3V
KBD1 - CLK
KBD2 - DATA
USBコネクタ(オス)を用意して、結線してUSB接続でも利用出来ます。
キーを押すのが固めですが、公開されているこのキーボード用ケースの
3Dプリンター用データを出力して装着すると、かなり改善されて入力しやすくなりました。
ファームウェアの書き込みが少々面倒ですが、下記のサイトにて詳しい方法が
分かりやすく解説されています。大変参考になりました。
・しかるのち - M5Stack:CardKB ファームウェア更新
2019/03/10 追記
IchigoJam(V1.3.1)での利用で、キーボードを認識しないとの報告があり、
手持ちの世代の違うIchigoJamを試したところ、認識出来ないボードが1つありました。
下段のビデオ端子が白いボードが認識出来ませんでした。
ファームウェアは1.2.1と古いですが、安定したバージョンです。
調べると、キーボード起動時のLED(NeoPixel)点滅が原因のようです。
制御を行うAdafruit NeoPixelライブラリが内部で割込停止を行っており、
PS/2イニシャル処理(ピン変化を割込みで検知)の邪魔をするようです。
点滅を無くすと認識出来るようになりました。
他のボードは問題なかったので、起動時の微妙なタイミングで発生するようです。
(電源周りの差異で立ち上がりが微妙に違う等)
先日入手したI2Cインタフェースの小型キーボードのM5Stack用CardKB、
ファームウェアを修正してPS/2 インタフェース対応にしてみました。
I2C接続用端子をそのまま、PS/2 インタフェース用に利用しています。
IchigoJamと豊四季タイニーBASIC Arduino STM32版にて動作確認しましたが、
とりあえず、使えています。
IchogoJamでの利用
豊四季タイニーBASIC Arduino STM32での利用
動いている様子(動画)
修正したスケッチはこちらです。
追加としてF1 ~ F10 キー対応、
HOME、Insert、PageUp、PageDown、Endキーが使えるようにしました。
詳細については、週末に整備し、GitHubにてドキュメントを付けて公開したいと思います。
AliexpressにてM5Stack用のI2Cインタフェースのキーボードを見つけ、入手しました。
M5Stack Official CardKB Mini Keyboard Unit MEGA328P GROVE I2C
CardKBに関する情報
・M5Stack - docs CardKB
・Github M5-ProductExampleCodes/Unit/CARDKB/
・frame and key-top for M5Stack CardKB
送料がちょっと高めで、1個だけ購入すると割高のため2個購入しました。
M5Stack公式製品なので、そのうちスイッチサイエンスでも販売されるかもしれません。
到着した製品
ボード
ATmega328Pが乗っています。ボードの左下にISP用の端子用のランドがあります。
公開されているファームウェアのソースを見ると、Arduinoでベースのようです。
水晶振動子が無いので、内部RC発信8MHzっぽいです。
とりあえず、豊四季Tiny BASIC for STM32環境でI2C接続で使ってみました。
コネクタがGROVE仕様のため、長足のシングルピンソケットを加工して、
ブレッドボードでつかえるようにしました。
2mmピッチなので、微妙にピンを曲げています。
とりあえず、動作しました。
ただし、豊四季Tiny BASICのI2CR()関数に不具合を見つけ、豊四季Tiny BASICを
少々、修正しました。
3.3Vで動作しました。
I2Cのバスクロックは100kHz、400kHzとも試してみましたが動作しました。
ボード上にNeoPixel(LED)が乗っているのですが、
シフトキーのロック、シンボルキーのロック等の状態を、色や点滅で状態を教えてくれます。
文字入力は意外とストレスを感じないですが、タクトスイッチのボタンが固いのが残念です。
ファームウェアがArduinoなので、改造してPS/2インタフェースに変更できるかもしれません。
追記
IchigoJamでもI2Cインタフェースで利用出来ました。
Ichigojamのバージョン 1.3がリリースされました。
久々に大き目な更新です。
関連情報
・ ichigojam お知らせ 2019/1/25 IchigoJam version 1.3 リリース
・ B Inc. こどもIoTを実現する、こどもパソコン『IchigoJam』ver 1.3 をB Inc.がリリース
~さくらインターネットの『sakura.io』を利用した通信用コマンドを標準搭載~
・ 福野泰介の一日一創 - 大人も手軽にIoT! IchigoJam ver 1.3 は何が違うのか?
・ IchigoJam BASIC リファレンス ver 1.3
---
感想としては、「ver 1.3でやっとまともになった」 です。
個人的にはRENUMの不具合対応が嬉しいです。
些細なことですが、RENUMを実行すると、動いていたプログラムが動かなくなるのは
納得がいきませんでした。
ラベルを使えば回避出来るのだから気にする必要がないとの意見もありますが、
行番号でプログラム実行単位を管理するBASIC言語を採用している以上、
行番号の管理は完璧であるべきです。
特に、教育現場での利用を想定しているのであれば、なおさらです。
言語の性質上、ラベルよりも行番号が使われるのは明らかです。
とりあえずver 1.3では改善が出来たようなので、
また積極的に利用していきたいと思います。
IchigoJam のファームウェアの1.3系のベータ版が公開されています。
早速、手持ちのIchigoJamのファームウェアを1.3beta4にアップデートしました。
参考サイト
福野泰介の一日一創
1)1/5はイチゴの日、使い勝手をちょっと向上、IchigoJam 1.3ベータ公開!
2)定数行番号のRENUMに一部対応! たった24KBのOS、IchigoJam 1.3 beta 3
3)ゲームで学ぶ、アルファベット! LOCATEの第三パラメーター、カーソルスイッチ実装、IchigoJam 1.3 beta 4
現時点の最新版は、上記サイト3)よりダウンロードできます。
1.3系ではざっと上記記事に目を通した感じでは、次の変更が行われているようです。
主な変更
1)RENUMコマンドの機能改善
GOTO文、GOSUB文の引数の行番号も振り直されるように改善されました
2)I2Cの動作の改善
・実装の問題で動作しなかった 温湿度計 AM2320にも対応
3)メモリマップ・メモリ領域変更
・I2C専用の32byte確保など
・物理アドレスの変更
4)カーソルスイッチを実装
・LOCATEコマンドの第3引数にてカーソルの表示形式の指定が出来る
個人的には、RENUMコマンドの機能改善はありがたいですね。
改善前はRENUMコマンドを実行すると、
正常に動いていたプログラムが動かなくなり、手作業で修正を行う必要がありました。
実際に試してみると、GOTO文の引数の行番号がちゃんと振り直されました。
RENUMコマンド実行後、問題なく正常実行できました。
改善前は GOTO文、GOSUB文を多用している長いプログラムで
RENUMコマンドで行番号を振り直し後に不毛な修正作業を強いられることに
非常に不満を抱いていたのですが、今回の修正でその作業から解放されました。
I2C周りも挙動が怪しかったのですが、改善されたようです。
後ほど、改めて調査したいと思います。
3Dプリンタ Android arduino ARM AsciiDoc ATtiny13A AVR DiskStation DS216j ESP32・ESP8226 IchigoJam LAN-W300N/G8 Lenovo Miix 2 8 LPC810 micro:bit MINIX NEO X5 MSX・レトロPC MZK-SA300D PIC Propeller Qi (ワイヤレス給電)化 Raspberry Pi ReadyNAS duo v2 STM32 TinyBASIC TL-WR703N VFDモジュール ねこ ツール・フリーソフト パソコン・インターネット メモ モバイル・携帯・デジカメ 家電 旅行・地域 日記・コラム・つぶやき 映画・テレビ 書籍・雑誌 表示器制御関連 通販
最近のコメント