フォト
2021年8月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

IchigoJam

2021年2月 5日 (金)

Ichigojam Rが届きました

注文していたIchigojam Rが届きました。
早速、簡単な動作確認を行ってみました。

まずは、届いた製品です。
01_20210203163701

見た目はIchigojamとほとんど同じようです。
02_20210203163701

早速、起動してみました。手持ちのIchigojam 用のキーボードとモニターを接続。

「あれ、起動しない。不良品?」

      ・・・・・・

Ichigojam の過去の挙動を思い出し、
手持ちのディスプレイ、キーボードを色々と交換してみたとろ、安定動作しました。
起動できないのはキーボードとの相性のようです(普通はありえない問題ですが..)。

03_20210203164701

どうやらIchigojam Rでは、Ichigojamで問題なく使用出来たディスプレイ、キーボードでも
利用出来ないものがあるようです。
この前クリーニングしたキーボードも使えませんでした。(゚∀゚)アヒャ

他のいくつかの手持ちキーボードもダメでした。
起動は出来ても、文字入力中にフリーズしたり、放置していたらフリーズしたりと..

唯一、DELL製キーボードが非常に安定動作しました。
05_20210203170001

ディスプレイも要注意です。
Ichigojamで問題なく利用出来たディスプレイが、表示出来ませんでした。


垂直方向が同期出来ていないようです。別のでOKでした。

気を取り直して、触ってみます。
最初の感想: 「使い勝手はIchigojamと全く同じだね~(つまらん..)」


性能評価

「売り」の実行速度の改善を調べてみました。

以前試した性能評価プログラム「3万回ループ」を試してみました。

10 ?TICK()
20 FOR A=1 TO 30000
30 V=V+1
40 NEXT
50 ?V
60 ?TICK()


実行結果
20210203161336

TICK()関数で起動からの経過時間を調べて、処理時間を計測しています。
  (1022 - 584)/60 = 438 = 7.3 秒

若干古いバージョンですが、以前試した測定値と比較してみます。

測定結果 
豊四季 Tiny BASIC for Arduino(8ビット AVR) 機能拡張版
    2.262秒
・イチゴジャム ラズベリーパイ版 (BASIC RPi1.2.5 ラズパイ 2 900MHz)
    2.517秒
・イチゴジャム 1.2b56 最新版 (32ビット ARM)
    81.333秒 (ビデオ出力停止時 44.31秒)
イチゴジャム R 1.5β (RISC-V GD32VF103CBT6)
    7.3秒

確かに、ARM版に比べると10倍以上速くなったようです。
しかしそれでも、非力な8ビット AVRベースのArduino版のTiny BASICの3分の1以下の性能です。
非効率な処理コードをCPUのパワーで無理やりぶん回して速くなったっていう感じですね。
この当たりは、改善してCPUの本当のパワーを引き出して欲しいところです。


採用しているCPUについて

Ichigojam Rに採用されているRISC-VのGD32VF103CBT6
BluePillに使われているSTM32F103C8T6とそっくりな名前ですね。

恐らく、中国GD社が以前販売していたST32マイコンのぱちもん(無認可クローン品)系列の
STM32F103C8T6モドキを流用して(マイクロコードをRISC-Vに対応に書き換えた)
製造したものと思われます。

データシートからピン配列を引用して比較してみました。

まずは、Ichigojam RのRISC-V
06_20210205105701
次にST社のSTM32F103C8T6
07_20210205105701
恐ろしいほどに、同じですね~
まあ、とりあえずIchigojam Rに搭載して日本国内で販売出来ているので、
ライセンス面はクリアできているのでしょう.. STM32クローン品はNGっぽかったけど

ということで、入力関連のピン割り付けもSTM32F103C8T6と同じ可能性があります。
Ichigojam RのマイコンをSTM32F103C8T6に置き換えて、
わずかな修正で豊四季タイニーBASIC for STM32を動かせるかもしれません。

いずれにしても、RISC-Vを名乗りつつ、採用してるマイコンは
アーキテクチャ的には古いSTM32シリーズの初期モデルがベースになっていると思われます。
個人的にはこの怪しい中華マイコンを趣味なら良いですが、教育現場で使うのは.... と思います。
(アグレッシブな中国GD社には好感をいだきます)

総論

個人的な感想としては、ちょっとがっかり製品です。
Ichigojam Rについては「わくわく感」もなく、従来と変わりなく
むしろ、品質と安定動作を犠牲にして、性能とわずかな機能拡張を得た感じです。

Ichigojamの何年もかけて品質の作り込みの経験が全く生かされず、
品質はリセットされました。
またあのIchigojam商法(十分なテストを行わず販売して、利用者にデバッグさせる)で
何年もかけて品質の作り込みを行うのでしょうか?
流石にもう付き合ってられないですね。

Ichigojam、潮時かな.. 

2021年1月23日 (土)

β版 IchigoJam Rを予約注文しました

IchigoJam、チェックを怠ってましたが、新製品が出ていました。
Risc-V 搭載ということで、面白そうなデバイスです。

早速、を予約しました。

【β版】IchigoJam 組み立て済完成品 R
Ichigor

Logo

USB キーボード対応となったのとSPI対応はいいですよね。

2019年12月10日 (火)

IchigoJamのファームウェア 1.4.1が正式に公開されました

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個接続のリボンタイプのモジュールを制御してみました。

    02_20191210094401

まずは、全30個のLEDを次のコマンドで赤(最大輝度 255)で表示してみます。 
   LET [0],0,255,0:WS.LED 1,30

    Dscn2305

あらかじめ配列に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

    Dscn2306

  配列に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

    Dscn2307

  0.5秒間隔でLEDの表示がシフトして表示されます。

  なかなか遊べるコマンドですね。
  

 

2019年11月 9日 (土)

「ichigoツール」をGithubにて公開しました

IchigoJam用プログラムアップ&ダウンローダ Ichigoツール をGitHubにて公開しました。
だいぶ前に作成したものですが、ブログからのダウンロードをGitHubの方に集約したいと思います。

 ・公開ページのリンク
    IchigoJam用プログラムアップ&ダウンローダ for Windows
    https://github.com/Tamakichi/VBIchigoTool

  ページには簡単な説明も記載しました。
  
  01_20191109125501

  02_20191109125501

ツールはVisual BASICで作成しています。
Visual Studio 2017/2019でプロジェクトを読み込んでビルド出来ることを確認しました。

MITライセンスにて公開しています。
ツール及びプログラムソースは自由お使い下さい。

他のツールも整理してアップしたいと思います。


2019/11/19 追記


ツールをV1.05に更新しました。
 ・変更点
   - IchigoJamからのプログラムのダウンロード時、IchigoJamで実行中のプログラムを終了させてから
     プログラムのダウンロードを行うように修正しました。
   - 動作確認のためのIchigoJam用のサンプルプログラムを追加しました。

ツールをV1.04に更新しました。
 ・変更点
   IchigoJamへのプログラムのアップロード時、IchigoJamで実行中のプログラムを終了させてから
   プログラムのアップロードを行うように修正しました。
   具体的には、アップロード前に[ESC]コードを送信しています。

2019年11月 6日 (水)

ichigojamのファームウェアを1.4b13にアップデートしました

手持ちのIchigojamのファームウェアを最新版 1.4b13にアップデートしました。
久しぶりにIchigojamを触りました。

・Ichigojam 1.4b13 のダウンロード先
   https://ichigojam.github.io/ichigojam-1.4b13.zip
・リファレンスマニュアル documents of IchigoJam
   https://github.com/ichigojam/doc/
   
アップデートの様子
Dscn2247
シリアル接続には変換基板 [P-jam.isp.ifb]を使っています。接続が楽ちんでGoodです。

01_20191106095301

問題無く、アップデート出来ました。

Dscn2249

当面は、自分が作成したツール類の動作確認と修正を行いたいと思います。
まずは、質問のあった「ichigoツール」の動作確認をしてみました。

02_20191106095301

Dscn2256

とりあえずは、アップロード、ダウンロードとも問題無く動作しました。
このツール、4年半前に作ったんですよね、時間が経つのは早いです。
このツールはもう少し動作確認してからGithubの方にも、ソース込みで公開したいと思います。

2019年3月13日 (水)

M5Stack用CardKBをPS/2インタフェース対応にしてみる(3)

前回の続きです。
専用ケーブルを作りました。
また、ファームウェアは若干問題があり、 2019/03/10に修正しています。

Dscn9806

USBコネクタは、秋月電子で販売されている
ケーブル取付用USBコネクタ(Aタイプ オス)を利用しました。

03

熱収縮チューブで固定し、その上から結束バンドで固定しました。

Dscn9808

これなら、抜き差しに耐えられると思います。

ケーブルは、スイッチサイエンスのM5Stack用GROVE互換ケーブル 50 cm(2個入り)
に変更しました。

04

とりあえず、これで完成とします。

今回の製作では、ボードにのっているNeoPixcelで若干ハマりました。

制御に使っているAdafruit NeoPixel ライブラリがNeoPixcel へのデータ送信で
割り込み禁止をかけていて、起動直後のPS/2イニシャル処理を邪魔します。
対策として、起動時のLEDの点滅処理を削除しました。

Arduino(AVR)で割り込みを併用するようなプログラムでは
Adafruit NeoPixel ライブラリは使わない方が良さそうです。

2019年3月 8日 (金)

M5Stack用CardKBをPS/2インタフェース対応にしてみる(2)

前回の続きです。

GithubにてPS/2インタフェース対応ファームウェアを公開しました。

・ CardKeyBoard PS/2 インタフェース版 ファームウェア
   https://github.com/Tamakichi/CardKeyBoard_PS2
  (2019/03/10 更新しました:  (内容) PS/2イニシャル時0X00送信削除、応答無しでも次に進む、LED点滅廃止

オリジナル版になかった [カナ] [Insert][F1] [F10] キー等を追加しました。
IchigoJamでのローマ字カタカナ入力にも対応しています。

プログラム入力には困らないと思います。

Dscn9772

Dscn9774

ケーブルには次の信号を割り当てています。

02

03

IchigoJamで利用する場合、
ジャンパーワイヤー(オス - オス)を使って、端子に接続でも利用出来ます。
   GND    - GND
   VCC    - 5V or 3.3V
   KBD1  - CLK
   KBD2  - DATA

Dscn9783

USBコネクタ(オス)を用意して、結線してUSB接続でも利用出来ます。

04

キーを押すのが固めですが、公開されているこのキーボード用ケースの
3Dプリンター用データを出力して装着すると、かなり改善されて入力しやすくなりました。

Dscn9780


ファームウェアの書き込みが少々面倒ですが、下記のサイトにて詳しい方法が
分かりやすく解説されています。大変参考になりました。
しかるのち - M5Stack:CardKB ファームウェア更新


2019/03/10 追記

IchigoJam(V1.3.1)での利用で、キーボードを認識しないとの報告があり、
手持ちの世代の違うIchigoJamを試したところ、認識出来ないボードが1つありました。

Dscn9799

下段のビデオ端子が白いボードが認識出来ませんでした。
ファームウェアは1.2.1と古いですが、安定したバージョンです。

調べると、キーボード起動時のLED(NeoPixel)点滅が原因のようです。

制御を行うAdafruit NeoPixelライブラリが内部で割込停止を行っており、
PS/2イニシャル処理(ピン変化を割込みで検知)の邪魔をするようです。

点滅を無くすと認識出来るようになりました。
他のボードは問題なかったので、起動時の微妙なタイミングで発生するようです。
(電源周りの差異で立ち上がりが微妙に違う等)


2019年3月 7日 (木)

M5Stack用CardKBをPS/2インタフェース対応にしてみる(1)

先日入手したI2Cインタフェースの小型キーボードM5Stack用CardKB、
ファームウェアを修正してPS/2 インタフェース対応にしてみました。

I2C接続用端子をそのまま、PS/2 インタフェース用に利用しています。

IchigoJam
豊四季タイニーBASIC Arduino STM32版にて動作確認しましたが、
とりあえず、使えています。

IchogoJamでの利用

Dscn9738

豊四季タイニーBASIC Arduino STM32での利用

Dscn9746

動いている様子(動画)


修正したスケッチはこちらです。

追加としてF1 F10 キー対応、
HOMEInsertPageUpPageDownEndキーが使えるようにしました。

詳細については、週末に整備し、GitHubにてドキュメントを付けて公開したいと思います。

2019年3月 6日 (水)

I2Cインタフェースの小型キーボードを試してみる

AliexpressにてM5Stack用のI2Cインタフェースのキーボードを見つけ、入手しました。

  M5Stack Official CardKB Mini Keyboard Unit MEGA328P GROVE I2C

  02

CardKBに関する情報
  ・M5Stack - docs CardKB
  ・Github M5-ProductExampleCodes/Unit/CARDKB/
  ・frame and key-top for M5Stack CardKB


送料がちょっと高めで、1個だけ購入すると割高のため2個購入しました。
M5Stack公式製品なので、そのうちスイッチサイエンスでも販売されるかもしれません。


到着した製品

Dscn9721

ボード

Dscn9722

ATmega328Pが乗っています。ボードの左下にISP用の端子用のランドがあります。

公開されているファームウェアのソースを見ると、Arduinoでベースのようです。
水晶振動子が無いので、内部RC発信8MHzっぽいです。

とりあえず、豊四季Tiny BASIC for STM32環境でI2C接続で使ってみました。

Dscn9729

コネクタがGROVE仕様のため、長足のシングルピンソケットを加工して、
ブレッドボードでつかえるようにしました。
2mmピッチなので、微妙にピンを曲げています。

Dscn9726 Dscn9727

とりあえず、動作しました。
ただし、豊四季Tiny BASICのI2CR()関数に不具合を見つけ、豊四季Tiny BASICを
少々、修正しました。

01

3.3Vで動作しました。
I2Cのバスクロックは100kHz、400kHzとも試してみましたが動作しました。

ボード上にNeoPixel(LED)が乗っているのですが、
シフトキーのロック、シンボルキーのロック等の状態を、色や点滅で状態を教えてくれます。
文字入力は意外とストレスを感じないですが、タクトスイッチのボタンが固いのが残念です。

ファームウェアがArduinoなので、改造してPS/2インタフェースに変更できるかもしれません。


追記

IchigoJamでもI2Cインタフェースで利用出来ました。

Dscn9733

2019年1月27日 (日)

IchigoJam ver 1.3がリリースされました

Ichigojamのバージョン 1.3がリリースされました。
久々に大き目な更新です。

01_2

関連情報
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では改善が出来たようなので、
また積極的に利用していきたいと思います。

より以前の記事一覧