2021年10月27日 (水)

蛍光表示管(VFD)で、表示器を作ってみた

 蛍光表示管(VFD)。ニキシー管などの、今はほぼ絶滅してしまった表示器とは異なり、いまだ現役の表示器である。
これを使って、8桁7セグメントLEDモジュールとインターフェース互換の表示モジュールを考えた。

上:VFD管(※ロシア製、IV-18) 下:8桁7セグメントLEDモジュール(74HC595使用、SPIモジュール)2

全てロジックIC(とドライバIC)のみで構成。とりあえず、基板形状はこんな感じに。
Vfd
この計画図は、今年(2021年)2月頃のもの。その後、ICの部品調達が厳しい事が判明し、この当時とは異なる部品を採用。

基板が届いたのが9月。(ICは裏面に搭載)
Vfd2
この時点でもまだ、部品が1点、届いていなかった。とりあえず組み立てる。Vfd2_20211026195101

基板の各部の寸法は問題なさそうだ。
残りの1点、とりあえず無くても表示可能な事に気付き(表示ムラが出るかも程度)、全て半田付けを終える。
早速、電源投入。(製作したのは黒い基板の部分、下の基板は市販の時計キット
Vfd11 Vfd21

問題なく表示された。
このように、既存モジュール互換にしておくと、表示系を別途用意せずともテストできて便利(ぉぃ

写真でジャンパー線が飛んでいる箇所は、発振回路。何故か正しく発振せず、強引な方法で動かしている。
この部分は後で直して、Rev.2版を作る(かもしれない)

原理上、表示ムラが起こりそうなものだが(左が明るく、右が暗くなる)、あまり気にならない。
届いていないICは無くても大丈夫そう…後日届いて、実装してみたが、違いは分からず。

これだけだと、ただの時計。せっかくなので、色々表示させてみたい。
というワケで、いつかは手を出さねば、と思ってたラズパイを購入、ケーブルを製作して接続してみた。
Spi2 2_20211026201201

Raspberry Pi の拡張コネクタ接続箇所は以下の通り。
Gpiopinoutdiagram2a

Pythonというものに触れたのも初めてだが、何だか簡単ですなコレ。昔のBASIC言語を思い出した。
で、なんやかんやプログラムしているうちに…あぁ、作ってもーた、ダイバージェンスメーター表示器…
動作させている動画を、ニコ動にUPしております。

この動画の冒頭で、タイマーっぽい事をしています。
この部分のソースコードを公開します。


  1. # coding: UTF-8
  2.  
  3. import spidev
  4. import time
  5. import datetime
  6. from dateutil.relativedelta import relativedelta
  7.  
  8.  
  9. #SPI設定
  10. spi = spidev.SpiDev()
  11. spi.open(0,0)
  12. spi.max_speed_hz = 1000000
  13.  
  14.  
  15. #表示データ(数値)定義
  16. disp_7seg_num = [0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90]
  17.  
  18.  
  19. #表示データ変換
  20. def cnv_to_7seg(chr):
  21.    ret = ""
  22.    if   chr == ".":
  23.       ret = 0x7F
  24.    elif chr == "-":
  25.       ret = 0xBF
  26.    elif chr == " ":
  27.       ret = 0xFF
  28.    else:
  29.       ret = disp_7seg_num[int(chr)]
  30.  
  31.    return ret
  32.  
  33.  
  34. #7セグ表示(STAT=0:数値として表示、STAT=1:時計用区切りドットあり表示)
  35. def send_data(data_chr, stat):
  36.    output_data = []
  37.    for x in data_chr:
  38.       Converted_data = cnv_to_7seg(x)
  39.       output_data.append(Converted_data)
  40.  
  41.    #区切りドット挿入
  42.    if stat == 1:
  43.       output_data[1] &= 0x7f
  44.       output_data[3] &= 0x7f
  45.       output_data[5] &= 0x7f
  46.  
  47.    #反転(表示器の仕様)
  48.    output_data.reverse()
  49.  
  50.    #表示
  51.    spi.xfer2(output_data)
  52.  
  53.  
  54. #3分タイマーメイン
  55. set_time = 180
  56. now_time = set_time * 1000000
  57. while True:
  58.  
  59.    time_str = "{0.hours:02}{0.minutes:02}{0.seconds:02}{0.microseconds:02}".format(relativedelta(microseconds=now_time))
  60.    send_data(time_str,1)
  61.    time.sleep(0.0093)
  62.    now_time -= 10000
  63.  
  64.    if now_time<0:
  65.       break
  66.  
  67.  

このプログラムを使用するには、いくつか準備が必要です。
まず、SPI通信を有効にします。設定変更したら再起動しましょう。

次に、PythonのSPIライブラリをインストールします。

$ sudo apt-get install python-pip
$ sudo pip3 install spidev

あと、上記プログラムは、数値を時刻に変換する際に dateutil ライブラリを使用していますので、それもインストールします。

$ pip install dateutils

ここまでで準備完了です。 

【プログラムの、ちょっとした解説(1)】

ネットを検索してみると、SPI通信に spi.xfer() を使用しているのを多く見かけます。間違ってはいません。
ですが、特にこの8桁7セグメント表示モジュールにおいては、これだと「ちらつき」が発生します。何故なのか。

この表示モジュールは(元にしたLEDモジュールもですが)、74HC595というシリアル→パラレル変換ICを使用しています。
1つのICあたり8bit、これを8つ数珠繋ぎにしていますので、1回の表示につき64bit分のシリアルデータを送ることになります。

74HC595の仕様書を見ると分かりますが、このIC、シリアル→パラレル用のD-FF、8bit保持用のD-FF、の2段構えになっています。
ですが、spi.xfer() だと、8bit(1バイト)送る度に、8bit保持D-FF用の”RCK"をアクティブにしてしまう…
つまり「表示」されてしまいます。表示とシフトを繰り返してしまうので、ちらつく、というワケです。

では、どうすればいいのか。

上記プログラムに記載ありますが、spi.xfer2() を使うのが正解です。
この関数は、与えられたデータを全て転送した後、最後に"RCK"をアクティブにします。ですので、ちらつきは発生しません。
シリアル→パラレル変換中は、変換用のD-FFが値を保持していますので、8bit保持D-FF用の”RCK"を毎回アクティブにする必要は
無いのでした。

【プログラムの、ちょっとした解説(2)】

このプログラムは、あまり正確なタイマーではありません。単純に time.sleep() で時間調整していますので、実行環境の
影響を受け易いです。まぁ、テストプログラムなので…
ガチでやろうとすると、タイマー割込み(スレッド処理?)を使用する事になるでしょう…

| | | コメント (0)

2017年10月28日 (土)

【MMD】リベルニア鉄道の進捗。その4

この記事を書いている時点で、リベルニア駅の配布Verは3.0です。
配布場所:

前回Ver2.1からの変更点は、
・信号扱所、車庫追加(前回ブロマガにも記載)
・駅舎追加
・ホームと停止目標板を駅地面に移動してテクスチャ不具合を修正

車庫についてはテスト動画をうpしていますので、中がどうなっているかは概ね把握できるかと思います。


駅舎はこちら。

 ※ミクさんと時計は付属しません。
時計は付属しませんが、入口正面に後付けできるようダミーボーンを設置しています。お好みの時計をどうぞ。
駅舎は、入口が動かないので入れません。中は基礎的な部分だけテクスチャ貼ってあって、1Fと2Fの仕切りもあるんですが、それ以外が空っぽ。券売所くらいは後で追加しようと思ってます…

外観的には、壁の終端がリベルニア公国の貴族街に似た作りがあり、参考にしたイギリスのゴースランド駅にも似た構造があったので似せてみましたが…普通の建物に見えてしまうかも?なので、駅名看板も設置しようと思ったんですが、リベルニア公国は文字表記自体が大変少ないので文字表記で良いのか悩みどころ…なので、これも後回しになっています。

リベルニア駅の構内部分は、これで概ねカタチになったかな。
給水塔付近に設置予定の給炭塔とか、郊外の踏切とか、追加・修正箇所はありますが、まだまだ先になりそうです…

| |

2017年10月 2日 (月)

【MMD】リベルニア鉄道の進捗。その3

この記事を書いている時点で、リベルニア駅の配布Verは2.1です。
配布場所:

Ver2.0からの変更点は、ポイントを可動化したこと、だけ(汗



操作ボーンは4か所です。ポイント全体は7か所ですが、両渡りポイントが元データと同じく、4つのポイントが同時に動くようになっているため。

ここからは、未配布の現在の進捗状況を。
配布データ付属ドキュメントで製作予告をしていた、駅に付随する建物を建築しています。



信号扱所、です。中に入れるようにはなっていますが、切替器は配置しておらず空っぽです。
ポイントだけでなく腕木式信号機も操作することになるため、配置数が確定できないという(汗
暫く中身無しの状態になりそうです。



車庫です。野ざらしだったところに建物を配置しました。
夜間駐機用という想定のため、検車庫的な機能は持たせていません。
(レール間に堀が無く、下からの点検は出来ません)

あとはリベルニア駅の駅舎本体ですが…まだ構想中です(汗
駅舎が出来たら、Ver3.0として公開しようと思います。

| |

2016年11月20日 (日)

【MMD】リベルニア鉄道の進捗。その2

約1か月ほど前、リベルニア鉄道の進捗を動画にして投稿しました。

現在は、この時点からいくつか修正しています。

大きな変更点1:港湾施設を拡張し、リベルニア貨物駅の用地を確保しました。
動画コメントで「貨物の積み下ろしがしたい」っていうのがあって…いあ、俺も欲しかったんですよ。前のバージョンでも貨物駅は用意したんですが、今回は用地が無くて後回しにしてたのです。港の拡張を思いついてしまって早速実装。

船舶停泊用の係留杭がありませんが、造成中という事でとりあえずこのまま、ですw
貨物駅は、r=200のY分岐ポイントを新規に作らないと本線に繋げられないので、暫くお待ちくださいませ(汗

大きな変更点2:跨線橋テクスチャ、ようやくここまで塗りました(汗

残るは壁面・欄干・欄干トップ。テクスチャが結構鬼門で…なかなか進みません(汗
ここの塗りが出来れば、リベルニア駅を暫定配布しようと思います。

大きな変更点3:給水塔の給水ノーズを可動可能に。

xファイルだったんですが、pmxへの変換を行いました。
こちらは単体配布予定で、ドキュメントが作成できたら公開します。

リベルニア駅を暫定配布した場合の、その後に可能なら実装したいもの:
・駅舎
・信号扱所
・機関車倉庫
・給炭塔
・貨物駅
・踏切(第四種相当、標識のみ)
なんだか、書き出したら結構ありますね…(汗

それでは、リベルニア駅暫定公開まで今少し、お待ちくださいませ…><

| |

2016年8月15日 (月)

【MMD】リベルニア鉄道の進捗。

以前、こちらの動画↓にて、リベルニア鉄道を敷設してます、と紹介させて頂きましたが…

このデータですと、元のリベルニア公国をかなり改変してしまっていたため
配布する事ができませんでした。(リベルニア公国の規約を参照願います)

現在、リベルニア公国データに一切手を加えずに鉄道を敷設するよう、
一から作り直している最中です。

駅構内。


リベルニア鉄道全体。


とまぁ、こんな感じです。踏切(欧州風)や駅舎等が、まだ出来ていません。
踏切設置角度の都合で、郊外の道路は若干ルート変更が必要かも知れません。
(元データは改変せず、上から被せる形で新道を敷設する予定)

そのうち、敷設した線路上の走行動画とか、うpする予定です。

| |

2013年1月24日 (木)

事務員Gの「生がお好き」157週目・・・

このような僻地までお越し頂きまして、ありがとうございます。
不定期で「何か書きたくなった時に書き散らす」程度の更新になるかと思いますが
もし宜しかったら覗いてやってくださいませ。
------------------------------------------------------------------------
2013/01/20の「事務員Gの生がお好き」157週目は何とゲストが
元SIAM SHADEの栄喜さん、でした。
最初聞いた時は目がテンになりましたがw
(タイムシフト↓はこちら)

で。
生放送配信の音声担当、akasakaさんがめっちゃ気合入っておりました。
詳細はこちら→http://ch.nicovideo.jp/akasaka/blomaga/ar35568

ならば映像担当・生放送配信担当としても頑張らねば!
…実は、akasakaさんからの音を放送に乗せる際、今までは結構苦労していました。
電気的には問題なく繋がるはずなのに、左右バランスがおかしかったり、音量が全く足りなかったり。
良い機会なので、akasakaさんからのガチ音声をしっかり放送に乗せられるようにしよう!

まずはXLRコネクタの電気的仕様を改めて調べるところから。って、こういうとこ調べるのは職業病ですなw(本業は電子回路設計です)
…何だか仕様が混沌としておる。怪しい。
色々調べた結果、間にバッファアンプを挿入すれば何とかなりそう、との結論に至り、早速このようなものを購入。
フェーダー付バッファアンプ、+10dB増幅機能付き。
回路図を見て、これなら大抵の入力には対応できる、と判断。
本放送では、基準信号を出してもらって音量調整、以降の音はakasakaさんにお任せしてビデオカメラと配信状況の監視に集中していました。PA出力~配信PC間の音声のトラブルは特になし。無事に配信できて良かった…

他に持ち込んだ主な機材:
ビデオカメラ HDR-CX720(SONY)
ビデオコンバータ VC-30HD(Roland)
配信PC CF-S9(Panasonic)
三脚
LANケーブル2本
XLRケーブル2本
電源延長コード(ドラム)2個
(実は、他に未使用機材が大量にあるんですが省略しますw)

| |

2010年2月28日 (日)

DCジャック調達

相変わらず、ゆっくり進行の「ATX-X68電源変換ユニット」。
今回は、千石電商にて「パワーDINコネクタ」という特殊なDCジャックが調達できたので
ちょっと構造設計を見直してみました。

何故、DCジャックが必要なのか。
それは、電気用品安全法対策ですw

「ATX-X68電源変換ユニット」が電気用品安全法の対象外となる為には、ACアダプタ
との接続ポイントが「容易に取り外せる」ことが必要です。

ところが、現在組み込みを想定している「PLS180」は、DCジャックの向きがX68kの
内部を向いてしまい、ケース収納後はPLS180のACアダプタとATX-X68電源変換
ユニットが一体(工具がないと分離できない)になってしまう。
…これはマズい。

という事で、DCジャックをX68k本体外に向けて設置する必要がありました。
(PLS180以外を採用したとしても状況は同じです)

DCジャック設置なら、そう難しい話じゃなくね?とお思い…ですよね^^;
そう容易には事が進まないんです。

100W近い消費電流を想定しなければならないので、ACアダプタからの電圧が20Vだと
すると、通過電流が5A以上、というのをクリアする大電流DCジャックが必要です。

ところが、一般的に売ってる丸型DCジャックの電流容量は、せいぜい3A程度。
全く足りません。

そもそもPLS180で使われてる特殊DCジャック、こいつぁ何者だ?って事で色々調べた
結果、「パワーDINコネクタ」というものであることが判明。
定格 DC20V7.5A。充分使えます。

でもこれ、存在は分かっていながら、中国メーカーからの調達ルートがわからず、
お手上げ状態でした。シャープの液晶ディスプレイ用ACアダプタにも使われてた位
なので、信頼性はそれなりにあるハズなんですがねぇw

で、最近、ようやく千石電商さんが取り扱いを開始してくれたので、調達してみた次第。
形状が判明したので、受電部の構造を再設計してみたら、こんな感じになりました。
(この絵は暫定です)
X68powerkk

| | | コメント (2)

2010年1月 5日 (火)

2010年がやってきた

あけましておめでとうございます。

半年ぶりの更新が新年挨拶…orz
相変わらずの遅筆っぷり、申し訳ない。
今年は改善できるのか?分かりませんが
宜しくお願い致します。

新年早々、こんな事を申し上げるのはどうなのか、とは思うのですが
ATX-X68電源変換基板、販売まで持っていけそうもありません。

問題なのは、勤めている会社の就業規則でして…
その中に「アルバイト禁止」というのがあります。
現物が完成したとして、ある程度売れた場合、それが不規則だとしても
一定の副収入があったら、それをアルバイトとして咎められる可能性が
無いとは言えません。

出来れば完成まで持っていきたいところですが、その先に、基板ガーバー
データと部品表、組立図、電線まとめ図面をお渡しして、部品調達・製作・
販売までして頂けるようなところがあればいいんですが…
(もちろん私は提出した設計資料に対する対価は一切頂きません)

ん?待てよ?無償譲渡って何か問題ないのかな。
何だか色々と問題がありそうな。どうなんだろ。

とりあえず、設計は進めます。亀より遅いかもですが。

| |

2009年8月29日 (土)

X68kにSSDを内蔵してみた(前編)

大変ご無沙汰しておりますorz
半期に一度しか投稿しないってどーなんだ、とか思いつつ。

今回は、X68kにSSDを内蔵してみました。動作確認まで出来ていないので前編です^^;
なんだか既出感たっぷり><
たぶん、既にどなたか試された方もおられると思います。まぁ2番煎じでも、一応やって
みたとゆー事で^^;;

接続対象機種、今回はACEにしました。元々のI/FはSASIですが、拡張スロットに
Mach-2を装着して、SASIコネクタを撤去、そこからケーブルでHDDまで接続する、
というHDD(SSD)内蔵実験も兼ねています。

えーと、まずはSSD。一番小さい容量を選択しましたが、これでもX68kにとっては
大容量すぎて持て余します^^;
Dscn0009

I/FはシリアルATAばかりなので、SCSIに変換する必要があります。
今回は、ACARDのARS-2000SUPというものを買ってみました。
Dscn0001

これは外側3.5インチHDDサイズのケースになっていて、2.5インチのシリアルATA-HDD
を内蔵するようになっています。とりあえず開けてみましょう。
Dscn0003

オリジナルのでっかいコントローラが見えますねぇ^^;
これ一つで、シリアルATAから50ピンSCSIへ一発変換してくれるので有難いです^^

早速、これにSSDを内蔵。こんな感じになります。
Dscn0004

えーところで…私はX68kのHDD内蔵モデルを持ったことがありません。
なので、内蔵HDDを収納するスペースは…
Dscn0006

こういう状態しか見たことがありません。ハテ、どーやって内蔵するんだろ??
とりあえず押し込んでみましたw
Dscn0007

ムリヤリだなぁ^^;

えーと、今回ここまで(ぉ
SCSIの内蔵50ピンを外出しする変換コネクタと、アンフェノール50ピンケーブルが
まだ届いていないので、SCSI接続がまだ出来ておりません^^;

というワケで、続きはまた近いうちに…

| | | コメント (3)

2009年4月21日 (火)

オリゲー・フェスタ☆68 第12回

毎度、放置し過ぎてて申し訳ない…;;

今年も行われる「オリゲー・フェスタ☆68」。一昨年はサークル参加できたものの、
昨年は一般参加、今年は参加すら怪しいという…orz

いや、本当はサークル参加したいんですがね。出展できるネタが無いワケです。
X68-ATX電源変換基板が全く進捗してない、ってのがね…
そろそろ動こうよ>自分

というワケで、極力一般参加で出没したいなぁ、とは思っているワケです、はい。
イベントの詳細はこちら

| | | コメント (1)

«あけてました^^;