JJ1WKN Log

自作や移動運用関連のログです。

mameTanukino ATtiny10 LED GuruGuru

2018-07-30 | Tanukino
ATtiny10のCPUモジュールを3つ作りました。
右端のコネクタでターゲット基板に接続します。


裏です。実装方法が微妙に異なります。


CPUモジュールを差し替えるだけで、点灯パターンを簡単に変更することができます。


グルグル渦巻き、マル、サンカクの動画です。
ATtiny10 LED GuruGuru


ちっちゃなTanukinoシリーズも軌道に乗ってきたので、「mameTanukino」とします。
ちなみに豆狸は妖怪いなり寿司やさんもあるようです。

Tanukino ガッテンRの製作 その2

2018-07-23 | Tanukino
その2です。

ATtiny85の開発環境が整ったので、習作としてガッテンRを自力で作ってみました。

音出しは決まった周波数の音が出れば良いので、適当な周波数の方形波がでるようにポートをON/OFFしてみました。
周波数はオリジナルより少し低くなりました。

SWを押すとRが送信される機能はオリジナルのママとして、SWをFB側に切り替えると「DE JJ1WKN K」が送信されるようにしました。

電源SWが無いので、Sleep機能もサポートしました。
LEDは押すたびに色が切り替わる機能は割愛して、Rが赤でFBが緑の固定にしました。

現状のサイズは1626バイトなので8192バイトまでは余裕があります。

ATtiny85ならI/Oが5本使えるので、Ledなら5x4=20個制御でき、色々楽しめそうです。


ガッテンRの製作

2018-07-22 | その他
先日の工作会で頂いた「ガッテンR」のキットを早速製作しました。
「ガッテンR」はJQ1SRNさんのブログ「プロジェクト59」で頒布されているキットです。

「ガッテンR」の詳細はこちらをご参照ください。
キットの難易度は「★☆☆」なので超簡単です。

真上から


斜めから


裏面です。


使い方も超簡単で、ガッテンしたら赤いボタンを押すだけです。
SWをFBに切り替えるとFBです。


Tanukino ATtiny10のサポート その2

2018-07-21 | Tanukino
その2です。

穴開き基板に直接付けるのは「ぷるぷる」なので、規格が異なる変換基板があってのでこれに実装してみました。



回路図です。
回路図を掲載したので、Charileplexingのおさらいを少し。
ダイオードを逆向きに接続して一端をポートに接続します。
他端を同じ組み合わせにならないように他のポートに接続します。
例えばLED1を点灯する場合は、D0をHI、D2をLO、関係のないD1は入力とします。
スタティック点灯の場合は複数のLEDを同時点灯できませんが、制御は簡単です。
複数のLEDを同時点灯させたい場合はダイナミック点灯にする必要があります。


LEDの配置は直線では何なので六角形にしてみました。
点灯時間が短くなりながらグルグル回ります。



Tanukino ATtiny10のサポート

2018-07-16 | Tanukino
ATtiny13A/85に続き、米粒AVRのATtiny10のArduinoIDEからの書き込みにトライしてみました。
手順はKosakalabさんのサイトに掲載されています。

適当なArduinoに専用のTPI書込みスケッチを書き込み、ターゲットのATtiny10と結線します。
ArduinoIDE側は専用の開発環境パッケージをインストールします。
ここまでは簡単ですが、プログラマ制御のAVRDUDEの相当する、AVRBOYがGo言語ソースで提供されていますので、コンパイルする必要があります。

Go言語入門のページを参考にダウンロード、インストール、HelloWorldとコンパイル環境を確認します。
「go build avrboy.go」でコンパイルできますが、githubにあるパッケージの参照でエラーとなりました。
そこでgithubからgoburrow/serialパッケージをダウンロードして、Go言語のsrcフォルダにコピーし、avrboy.goのソースも"github.com/goburrow/serial"から"serial"に変更します。
コンパイルが成功するとavrboy.exeができるので、AVRDUDEが置いてあるフォルダにコピーします。

Tanukino2号機にTPI書込みスケッチを書き込みATtiny10を載せたターゲット基板に書き込みました。


ターゲット基板です。
ATtiny10は中央の足を持ち上げて近くのランドに空中配線してあります。
ターゲット基板では確認用にD2ポートにチップLEDを接続しました。


米粒を穴開き基板に実装する方法を検討してみました。

手順は下記です。
1.ICを裏返して1番ピンに印を付ける。
2.適当な台に両面テープを貼り、裏返したママICを貼り付ける
3.セロテープを2mm幅に切りICのお腹に貼る
4.穴開き基板の所定の位置に裏返したママICを貼り付ける。
5.穴開き基板の6ヶ所のランドにハンダを盛る。
6.リード線の被覆を剥き、撚り線をばらして1本にして2cmに切断する。
7.リード線を穴開き基板のランドにハンダ付けする。
8.ICの足に届くようにリード線を切断する。
9.リード線とICの足が接触するように整形してハンダ付けする。



接続する銅線が太く短いと熱が伝わってICの足とのハンダ付けが溶けるので、芯線の1本を使うのがコツです。
スケッチ書き込み用基板にする場合は、リード線とICの足のハンダ付けを外してからセロテープを剥がせば書き込み済みのICとなりますが、ターゲット基板に実装するのに同様の手順が必要です。
書き込み装置を切り離せるような書き込みケーブルを作れば便利そうですね。

Charileplexingで6つのLEDを点灯させてみました。
丁度3本I/Oで6つのLEDを制御する例があったので、そのママテストしてみました。







Tanukino ATtiny85/ATtiny13Aのサポート

2018-07-15 | Tanukino
8ピンのAVRをArduinoのIDEから開発しようと思い、環境を整備しました。

スケッチの書き込みにはArduinoISPを使用しますが、ISPソケットを増設して、別基板上のAVRに書き込めるようにしました。
電源の供給が不要な場合もあるので、ジャンパーSWを追加してあります。
ターゲット基板は8ピンのATtiny85とATtiny13Aを対象にして、動作確認用にLEDをD4ポートに接続しました。
ArduinoISPの回路図です。


ArduinoISPと接続してLチカの動作確認をしたところです。


Arduino側の環境はATtiny13Aが下記で、
https://kimio-kosaka.github.io/bitDuino13/package_bitDuino13_index.json

ATtiny85用が下記です。
http://drazzy.com/package_drazzy.com_index.json

クロックの設定にはダミーのブートローダーの書き込みが必要です。

スケッチの書き込みは、「マイコンボードに書き込む」でOKです。









Tanukino Si5351A SGの製作 その4

2018-07-05 | Tanukino
その4です。

Si5351Aと制御用のArduino(右上)を追加しました。


その後色々な処理を追加したところ、メモリーが足りなくなってきたので、メモリーを消費する原因を調べてみました。
処理量が多いのはさておき、結局のところライブラリ標準の16x16ドットのフォントが原因でした。

そこで、ベクタフォントにすればかなり削減できそうなので、開発することにしました。
例えば数字の「1」ですが、ビットマップフォントでは文字によらず32バイト必要ですが、ベクターフォントでは1本棒なので、始点と終点の座標だけで表現できます。
16ドットなので、X座標を上位8ビットY座標を下位8ビットにすれば2バイトで済みます。
また一筆書きで描画すれば、例えば3本の線で構成される「N」は4点で表現できるので、4バイトとなります。
「E」など一筆書きで表現できない文字は重複を許すことにより、強引に一筆書きにしました。
ただし、「:」など接続していない文字は無理なので他の文字に置き換えることにしました。

16x16ドットフォントの他に5x7ドットの小さいフォントもあればグラフの数値表示などで便利そうです。
同様にサポートしてもいいのですが、ベクタフォントなので、小さいフォントのデータを2倍すれば大きなフォントが簡単に作れます。
そこで、5x7ドットフォントの他に10x14ドットフォントもサポートすることにしました。
単純に2倍してもいいのですが、大きいフォントでは太い線にしたいので、1ドット分肉付けしました。


フォントデータの他に各フォントがどこから開始するかを示す位置テーブルを作成しました。
数字と英大文字でフォントデータが248バイト、位置テーブルが85バイトで収まりました。
英文は今の所全部大文字としますが、MHzやdBmなど単位で小文字が必要な部分のみサポートしました。

現状の画面です。

メインメニューです。テンキーの1-4を押すと遷移します。
キャラクタベースのメニューと線画っぽいフォントが相まって、懐かしい雰囲気の画面になりました。


<SIGNAL GENERATOR>画面です。
画面下にテンキーに割当られた機能のHELPを表示しました。
Si5351Aは3種類の信号を出せるので、それぞれの周波数が表示されています。
LVはレベルで0-4の5種類あり、0で出力停止、1-4がSi5351Aのドライブ電流2/4/6/8mAに対応し、テンキーの7-9でUP、4-6でDOWNできます。
SELは編集対象かどうかを示し、テンキーの1-3で選択できます。
[1]はSG1が選択されていることを示し[ENT]キーで周波数の入力が、[F^]/[FV]キーで設定された周波数ステップでのUP/DOWNができます。


[ENT]キーを押すとEDIT > でテンキーで周波数を直接入力できますが、訂正機能は未サポートです。
画面は12.3MHzの12.3を入力したところです。


周波数表示が更新されました。


[STEP]キーを押すと<CHANGE STEP>画面に遷移します。
テンキーで8種類の周波数ステップを選択できます。
[6]キーを押すと、周波数ステップが100KHzに変更されました。


[ESC]キーで前画面に戻ります。


周波数ステップは100KHzなので[F^]をキーを押すと12.4MHzになりました。


[ESC]キーでメインメニューに戻り[2]キーで<POWE METER>画面に遷移します。
ログアンプはまだ実装していないので、値はダミーです。


<FRMS>画面です。
操作方法は<SIGNAL GENERATOR>画面と同じですが、対象とする周波数がスキャン開始周波数(S)とスキャン終了周波数(E)です。
使用するSGを選択することができます。
周波数の変更やUP/DOWNはSGと同様です。
設定が終わったら[8][5]キーを押すとグラフ画面に切り替わりスキャンが開始されます。


グラフ画面です。
横軸は開始、終了周波数を10等分した目盛、縦軸は-80dBmから20dBmの表示の予定ですが、ログアンプのダイナミックレンジにより変更するかもしれません。
グラフはy=ax^2のダミーです。