2021年12月18日土曜日

IcnigoJam-R ナンチャッテ

 半導体の供給が減ってる昨今ですが、いかがお過ごしでしょうか。すでに新ネタではなくなりましたが、RISK-Vを使ったIchigoJamファームウエアの開発が粛々と進行しています。例にもれずCPUチップは入手難ではありますが、ボードは入手できるのでこれでIchigoJam-Rを作ってみました。

IchigoJam-Rをつくってみる

IchigoJam‐R(以下Rと略記)とは、RISK-Vアーキテクチャを採用したコスパの良いCPUを使っており仕様が強化されています。CPUのリソースを使いきっていないので、伸び代も大きいと踏んでいます。
β版完成品は、こちらで購入できますが、変わりJam製作を趣味とする私としましては、作りたいという欲求は抑えられません。


目的

当面の目的は、「二足歩行ロボのコントローラに使いたい」というものです。

Rは、サーボモータを6個制御できるのです。速度も約10倍(公称値)で期待できます。

設計方針

  • 電源:単三電池3本で動力系と共用
  • 基板を製作
  • CPUチップが手に入らないので、Longan Nanoを採用
  • キーボードとモニタが付くようにしてIchigoJamとしても使える
  • サイズは、ミンティアサイズにしておく
  • サーボモータを6個つなげられること 

余談

 実はすでにミンティアにはいるIch-goJamRは製作しています。ところが、世界中の通販サイトを探して最後の数個をやっと購入したというCPUを使っていて、これ以上はつくれないのです。作ったのは、こちら。CPUは、ちっちゃいです。


閑話休題

そこで、このCPUを使ったボード(Longan Nano)を使って作ってみたのが、こちらです。基板の中央下よりにある3x6個のあるスルーホールはサーボモータ用です。

Longan Nano と プリント基板

完成品

残念ながら、TxDとRxD信号が横向きに出ているので簡単にはJamのソケットに接続できません。とりあえず、ワイヤーをつかってつないでいます。

モニタのRCA端子とキーボードコネクタも用意しました。いずれも基板に埋め込んでいます。

回路

自分でも作りたいという奇特な方のために回路を上げておきます。


LINKs

IchigoJam公式サイト https://ichigojam.net/

β版IchigoJam-R販売サイト https://hello002.stores.jp/items/5fdc3daff0b10819906d9c74

ファームウエアの書き込みはこちらを参考にしてください。

https://15jamrecipe.jimdofree.com/%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%81%A8%E6%8E%A5%E7%B6%9A/risc-v/


書き換えは、IJutilitiesというツールを使うとあまり悩まなくても書き換えできます。おススメです。

http://ijutilities.micutil.com/


IchigoJamファームウエア利用規約 次のページにLINKがあります。

https://ichigojam.net/faq.html

注意事項

Longan NanoのCPUにはメモリ容量の少ないタイプもありますが、それは使えません。必ずGD32VF103CBT6を使ってください。目印は最後から3文字目が”B"のものです。”8”になっているものは、Flash ROM容量が半分しかなく、少し安く買えるのですが、使えないのです。

Longanは龍眼ですね。Nが抜けると私です。

LonganのUSB-Type-Cコネクタで普通に給電すると、キーボードが動きません。これはType-CのUSB信号とキーボードのUSB信号がつながっているためです。キーボードを使うときは、Type-C以外から給電するか、Type-Cケーブルで信号線のない”充電専用”を使う必要があります。充電専用Type-Cは売っていないのですが、充電用USB‐Micro BケーブルとMicro B→Type-Cアダプタを組み合わせるとつくることができます。

IchigoJamのファームウエアは公開されていますが、使用するには許諾条件(LINKs参照)に同意する必要がありますので、順守してください。

IchigoJam は 株式会社jig.jpの登録商標です。




2021年5月2日日曜日

Raspberry Pi Pico のC++開発環境をWindows10でつくってみた

 Raspberry Pi Pico のデフォルト開発環境はRaspbianのようです。純正の説明がこれで書いてあります。Windows10に環境をセットアップしてみましたので書いておきます。

RaspberryPi Pico C++ Windows10 

用意するもの

  • RaspberryPi Pico
  • USB-Micro Bケーブル データ転送用(充電専用は使えません。)
  • Windows10 PC(Inter-net接続が必要です。)
  • Windows10 用 ターミナルソフト(Tera-Termを使いましたがお好みで)


RaspberryPi Pico 左下のタクトスイッチがBoot設定用です。

STEP1
Boot設定用のタクトスイッチを押しながら、USB-uBケーブルでWindows10 PCに接続します。μB側を先にさしてボタンを押してPCに差し込むと楽かもしれません。

Picoはマスストレージデバイスとして認識されてWindowsのファイルエクスプローラに認識されますので、開いてみます。


 INDEX.HTMを開きます。するとラズパイ財団のページに移動します。少し下がったところにある「Getting started C/C++」をクリックします。



少し下に Blink an LEDがあります。Picoの上にあるLEDを点滅させるサンプルでコンパイル済みのものが用意されています。 「Download UF2 file →」をクリックしてダウンロードします。ダウンロード先は、Picoのマスストレージにします。ダウンロードが終わるとPicoは再起動してLEDが点滅します。 

 


 

 さらに下を見ると”Hello World”があります。これも定番のプログラムですね。

 一度USBケーブルを抜き、Bootボタンを押しながらケーブルをさして、

「Download UF2 file →」をクリックしたらPicoのマスストレージにダウンロードします。

 LEDは点滅しなくなります。

さて、PicoがCOMポートとしてWindows10に認識されていますので、ターミナルソフトで開いてCOMで接続してみてください。COM番号は色々変化しますのでデバイスマネージャで確認してください。Hello, worldが受信できていると思います。今回はCOM6でつながっていますね。

 
以上で初期確認できました。

 STEP2

 開発環境をMS-Windows PCにインストールしてみます。

Windows SDK(C++)が必要なのでインストールします。ここから入手できます。


 

ここにWindows用のセットアップツールがあります。インストールしてください。下の方のAssetsにLINKがあります。


インストール先はドキュメントの中が良いと思います。フォルダを設定してInstallボタンをクリックします。




実行するとしばらくしてダイアログが開きます。次に進むとコマンドウインドウが開いて環境設定を行います。これにはしばらく時間がかかります。「続行するには何かキーを押してください。。。」と表示されます。


これで、ドキュメントフォルダの中にPicoフォルダができます。



 

次に code と入力してEnterキーを押してください。Visual Studio Codeが起動すると思います。これで環境設定されたVS Codeが起動しています。スタートメニューなどから起動した場合は環境設定されていない状態になると説明書に書いてあります。

 Codeが起動したら拡張機能を設定します。Control+Shift+Xキーで拡張機能選択になりますので、CMake Toolsを設定します。


 CMake Toolsにある歯車(次のスナップショットの赤矢印でしめす)をクリックすると右に設定枠が開きます。


下にスクロールしてCmake: Configure Environment"を探します。(黄矢印)項目の追加で PICO_SDK_PATH を ..\..\pico-sdk に設定します。


 

さらに下がって"Cmake: Generator" に "NMake Makefiles"をいれておきます。


環境設定が終わりましたので、ファイルメニューからフォルダを開くを選んでpico-examplesフォルダを選びOKをクリックします。


ステータスバーにある Build をクリックするとビルドが実行されます。

成功すると、Pico-EXAMPLES¥buildの中の各フォルダに *.uf2ファイルができています。

特定のプロジェクトのみをビルドするときは、ステータスバーの[all]をクリックすると選択できます。pico-EXAMPLE\blinkの中にLEDブリンクプログラムがありますので時間を書き換えるなどして試してください。 

注意として初回のBuildでコンパイラの選択が必要ですが、適宜選んでください。

ソースコードを開くと includeファイルが無いというエラーが表示されたりしますがそのままでビルドできました。環境の読み込みに時間がかかるようで、しばらく待つとエラーは消えるようです。

 

次回の起動からはインストール先のフォルダ内にある「Visual Studio Code for Pico」というリンクが使用できます。ここから以外(スタートメニューなど)から起動すると環境設定ができないのでビルドに失敗します。


追記 2021/05/03

新しいプロジェクトを作ってみる

 Picoフォルダにある「Pico Project Generator」を使うと新しいプロジェクトを作ることができます。このままだとINCLUDEファイルが見つけられないので「ファイルメニュー」→「フォルダをワークスペースに追加」で新しく作ったプロジェクトのフォルダを追加しておきます。これで、Build対象に選べるようにもなります。もうひとつ変更が必要でした。以下の変更で動くようになりましたのでメモしておきます。

状況: 

Picoフォルダの「Pico Project Generator」を起動して 「pico-project-generator」の下にCのプロジェクトを作ったところCompilerが見つからないというエラーが発生しました。

エラー内容:

「pico-project-generator\.vcode\c_cpp_properties.json」ファイルに記述されたコンパイラが見つからない。

修正:

 Compiler Path と intelliSenseModeを書き換えます。もしこれで動かないときは、「pico-examples\.vcode\c_cpp_properties.json」ファイルで上書きすればよいと思います。

 "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe"

"intelliSenseMode": "windows-msvc-x64"

       以上

 

 

2021年4月17日土曜日

3Dプリンタ 購入記 KP3S

 Kingroon社のKP3Sを購入してみました。
これの1世代前のKP3を保有して使っています。コスパは良いと思いますが、これの後継機のさらに改良版を購入しましたので、様子を紹介したいと思います。

3Dプリンタ KP3Sを使ってみた話

気に入ったところ

  1. X-Y両軸がリニアガイドになった。
  2. フィラメント送りがボーデンでなくなった。送りギアとヒートヘッドが直結。
  3. フィラメント送りに減速ギアが入っている。

1で剛性が高そう。全機種ではX軸のみリニアガイドでしたが、結構よかったので、両軸とも採用したところに期待大です。2と3は、0.2mmノズルで小さなパーツを印刷することを考えています。


開封しました。工具とネジの小箱が上の方にありました。
ヘッドのアセンブリものぞいています。

組み立て時間は10分でした。Z軸を立ててネジを2本下からさしてあと2個ねじを締め、Z軸の駆動用台形ネジを固定しました。組み立てはそれだけ。

完成写真は、メーカーカタログと変わらないので省略しておきます。


さて、テーブル高を調整しようとしたら、ケーブルが邪魔してヘッドが端まで動きません。
届かせるには、ケーブルはZ軸の手前を通るのでしょう。ということで修正しました。
ケーブルをとめているケーブルタイを一度切って止め直しました。
なんとご親切に、言語設定が初めから日本語でした。
嬉しい心使いですね。
そこで、印刷データのファイル名に日本語を使ってみたらちゃんと日本語で表示してくれます。良いですねえ。
色使いもグレー濃淡表示でシックないい感じ。
写真でみると青っぽいですが、目で見るとそうでもありません。


CuraでKP3用にスライスしたデータを印刷してみます。
即、戦力投入です。
ベッド60℃ヘッド190℃ PLAです。
接着性良好です。


出来上がったものがこちらです。同じデータを前から使っているKP3と今回買った新品のKP3Sで印刷しています。自作のマイコンロボのパーツです。
左がKP3 右がKP3S


どちらも私的には十分ですが、KP3では壁の中央に余分な水平の線が出てしまっていますが、KP3Sでは平です。KP3は中古なので直接比較はできませんが、KP3Sはとりあえず期待通りの性能でした。



ビルドプレート変更

標準のビルドプレートはゴム磁石シートで取り外しができ便利ではあるのですが、やはり厚みが一定でないところがありました。そこで、ガラスプレートを試してみました。Kingroon製のものです。固定は四隅をカプトンテープで止めています。クリップ等で止めるのが一般的なのですが、ガラスの歪みを避けるためにテープ固定にしてみました。

左下の中心で少し浮いているのは、最初にプリントされるところでベッド温度が十分に上昇していなかったのではないかと考えています。


結果は良好です。取り外して裏返すとこんな感じできれいに出来ています。小径ノズルを試したいと考えてたのですがこれで一歩前進です。


二台になりました。

前から持っていたものは、フィラメント押し出しモータのドライバが壊れたようなので、修理待ちです。





2021年3月30日火曜日

IchigoJamで動くデジタル時計を作ってみた話

前書き
IchigoJamの1.4版からカラーLEDテープがサポートされました。
その機能を使って置時計を作ってみました。



材料
IchigoJam 
1.4以降が必要です。古い場合はアップデートしてください。
LEDテープ 
1mあたり60個のLEDが並んだものを使います。ピッチは16.7㎜です。50㎝(30個)使います。 

RTCモジュール 
DS3231を使ったもの。 電源を切っても時計がずれないように時計モジュールを使います。RTCはReat Time Clockの略です。通販でも比較的安価に入手できます。

3Dプリンタで造形した枠

STLファイルを下に置きますのでご利用ください。自由に改造頂いて結構です。 

配線材料、半田付け工具一式(半田こて、ニッパーなど) 

LED表示

3Dプリンタで枠を作ってLEDテープを裏に貼ってつくります。黒でつくるといいです。白だと透けてしまい、文字がくっきりしませんでした。STLはこちらです。


 この前に置くスクリーンも用意しました。白で作ってください。STLはこちらです。


一体化してみました。スクリーンが終わったところでフィラメントの交換が必要です。途中で交換できない機種の場合は別に作って貼り付ければOKです。STLはこちらです。

 

組み立て

    

    

裏面(穴の小さい側)に薄手の両面テープを貼ります。
穴のところのテープを取り除きます。
LEDテープを切って貼り付けます。方向に注意してください。
INが下でOUTが上に貼ります。

電源を配線します。
こんな感じで5V電源(VDD)をつなぎます。
テープの中央でつなげば端でつながなくてもOKです。


赤が電源

電源と信号線1本を順番につなぎます。IchigoJamのLED端子をLEDのINにつないでください。
    

試作中の動画です。


    PROGRAMはこんな感じです。
 SAVE0しておいてください。
 IchigoJam V1.4以降が必要です。
 BTNを押しながら電源をいれると時刻がキーボードから入力できます。

load
Loaded 802byte
OK
list
10 @ARUN
20 IF BTN()=0 THEN GOTO 90
30 CLS:?"デジタル トケイ"
40 INPUT "ジカン:",H
50 INPUT "フン :",M
60 INPUT "エンターキーデカイシシマス。",N
70 LET [0], 0,(M/10*16 + (M%10))*256, H/10*16 + (H%10),0
80 S=I2CW(#68,#800,1,#802,4)
90 R=(SIN(A)+256)/5:G=(SIN(A+120)+256)/5:B=(SIN(A+240)+256)/5
100 LET [0],0: S=I2CR(#68,#800,1,#802,6)
110 H=[1]%2:C=[2]>>4%16:D=[2]%16:E=[1]>>12%16:F=[1]>>8%16
120 LET [90],#F7,#03,#BE,#1F,#CB,#DD,#FD,#13,#FF,#DF
130 P=0:Q=[90+F]:GOSUB 600:Q=[90+E]:GOSUB 600:GOSUB 640+H:Q=[90+D]:GOSUB 600:[90]=0:Q=[90+C]:GOSUB 600
140 WS.LED30:IF BTN()=0:GOTO 90:ELSE A=(A+5)%360:GOTO 90
600 FOR I=0 TO 6:IF Q%2 THEN LET[P],G,R,B:ELSE:LET[P],0,0,0
620 Q=Q>>1:P=P+3: NEXT:RTN
640 LET [P],G,R,B,G,R,B:P=P+6:RTN
641 LET [P],0,0,0,0,0,0:P=P+6:RTN
OK

お楽しみいただければ幸いです。

100均謹製のアクリル展示ケースに収めてみました。良い感じです。



IchigoJamはJig.jp社の登録商標です。
詳しくはこちらをご覧ください。








2021年2月27日土曜日

Ichigoプリン.ta シーズン2(IchigoJam-R)

ペンプロッタは無事出来上がりました。
顛末は、Elchikaに投稿しましたので、ご覧ください。
ELCHIKAこちらから

当初の計画では、Arduinoで制御しましたが、高速化を果たしたIchigoJam-Rでも試してみました。

十分使えますね。




IchigoJam-R(β版)での直接制御の様子をご覧ください。

2021年2月10日水曜日

導電性フィラメント

導電性フィラメントを使ってみました。

導電性フィラメント使ってみる


まずは、ご紹介から。


このフィラメントはこちらで販売されています。 挑戦的材料を出されていて好感が持てます。

第一印象は「マットな質感」です。カーボンがたっぷり練りこまれている感じです。
そのためだと思いますが、曲げると折れます。フィラメント自体は柔らかい感じですが、曲げ厳禁ですね。
早速、なにか作ろうと思いますが、まずはちょっとテストです。
こんなのを作ってみました。
幅1mmの波型を高さ5mmで作っています。
両端にねじ止め用の丸を付けました。


造形してしまうと、もろい感じは無くなって、少々曲げ伸ばししても折れることはないですね。
(程度問題とは思いますが)
両端をねじで固定してテスターで抵抗を測ると約15kΩでした。
ねじなしでテスターリードで当たると24KΩくらいだったので接触抵抗がかなりありますね。
可変抵抗器の抵抗体にも使えるかもしれません。それなら抵抗値で音程が変わる電子オルガンもできそうです。
ロボットの腕の曲げ角度検知もできたらいいな。

電力供給は無理ですが、マイコンの入力接点くらいなら使えそうです。

次何を作るかは、思いついたものがありますので、出来たら更新します。
お楽しみに~~


2/11追記 -迷路を作ってみた件

早速ですが、プリント基板のお試し製作で昔よく見た迷路作ってみました。
白いPLAで台を作って、手動で途中でフィラメントを交換しています。
台のサイズは100㎜x100㎜で導体幅1mm、絶縁間隔1mmです。


つまりは、テスターで抵抗値を測ると正解が判るって代物です。
測ってみると、正解は150kΩで良かったのですが、
一部剥がれて絶縁不良になりました。不正解でも400KΩくらいで導通しています。

敗因はフィラメント交換に手間取っているあいだに、台が冷え切ってしまい、導電フィラメントの定着が良くなかったことと思われます。

傾向が判れば、対策もできますね。


プリンタ機種ほか

Kingroon製 KP3  温度240℃ ベッド60℃

LINK


導電性フィラメントのページ
無料配布頂きました。のでレビュー書いてます。

2021年1月24日日曜日

Ichigo プリン.ta

ペンプロッタを作ってみたいと思います。 3Dプリンタ的な機構でサインペンを動かしてノートの上に絵や字を書く(描く)ものです。 市販品は売っています。DIY的に通販で買えますが、自分でもつくれそうなので、挑戦してみます。 CADで主な部分の構造を作ってみましょう。
こんな感じでペンを縦横に動かすわけです。

目標の仕様はこんな感じ。
 描画サイズはハガキ以上程度ほしい。
 IchigoJamで簡単な絵が描ける。(希望)
 Ic higoJamのLISTを出力できる。

設計
 X-Y起動は、ステッピングモーター(NEMA17)とタイミングベルトを使用。
 ガイドは、8㎜シャフトを使用。
 機構パーツは3Dプリントする。

 モータードライバーは、GRBLとA4988ドライバをつかう。
 マイコンボードにはArduino Nanoクローンを使う。  ユニバーサル基板に組み立てます。

3Dプリンタでパーツを作って、ねじ止めし、ベルトを張りました。
まだ、スライドのブッシュが届かないのですが、形が見えてくるとうれしいですね。


コントローラ
探してみたところサーボモータを使うタイプがあるのでこれを使わせて頂きます。
コンパイルと書き込みは、ArduinoIDEを使えます。方法はこちら
試した範囲ではgrbl-0.9はこれでコンパイルできますが、最新版のgrbl-1.1はコンパイルできませんでした。Binaryが公開されているのでそれを使うことはできます。

久しぶりにユニバーサル基板で配線しました。何年ぶりでしょう。
とりあえず、書き込んでArduinoのシリアルモニタで応答が返ってきたので一安心です。


   つづく