逆ポーランド方式の電卓キットを作ろう

組み込みの里で、長年利用してきた逆ポーランド方式の電卓が多数ある。歴代使い込んできたモデルを中古で再入手したり、最新型モデルを買ったりとしてきた。写真にあるのは日常に利用しているHP-15Cというものだ。動作ステップをプログラミング出来るものでもある。
この逆ポーランド方式の電卓には=キーがないので、困惑する人が大半だ。学生時代から誰かが借りていっても使えないといってすぐに返されるというメリット?もある。

複雑な計算式を解法していく上では綿密に対応する括弧を確実にインプットしたりすることもなく、最奥の点から手計算で解いていくというやり方なので逆にインプットミスも少ないのだ。当時は日本語方式と呼んで売られたりもしていた。

3に5を足すという形なので  3 に 5 + というステップで答えが出る

計算式通りというやり方だ 3 + 5 = となる。

逆ポーランド式(RPNと略す)の電卓では区切りとなるキーがENTERというものになる。

スタックは4段あり、最上位(X)が表示されている。

ETNERというキーが操作されるとそれまで入力された数値・結果がスタック(Z->T, Y->Z, X->Y)にプッシュされる形になる。

二項演算をした場合にはX, Yで演算を行い、スタックから

順次ポップ(演算結果(x,y)->X,  Z->Y, T->Z, T) されてくる。

今回作ろうとするモデルは、この写真の機能を実現したキットだ。

メキシコの方が設計されて出されている。基板や部品は中国で手配されているようだ。

以下のサイトで販売されている。今回はアルミパネルと3Dのケースを手配したので
63ドルほど、更に送料がFedexで25ドルかかった。

https://www.tindie.com/products/hobbystone/px-15c-an-hp15c-emulator/

表面実装部品はないが、沢山のタクトスイッチを揃えて実装するのは少し大変だ。

なお3Dプリンターでケースやキートップを作り、PDFのラベルを貼り付けるという形も取れるようだ。その場合は50ドルくらいになる。

セオリー通りに背の低い部品から実装していく。
タクトスイッチはそれぞれ1ピンだけ半田付けをして、都度垂直を整えてから次のピン
を半田付けするという形で進めていく。

液晶表示器の下にATMEGA328が実装されて、液晶表示は両面テープで留められて
基板とはヘッダーを半田付けして接続される。ファームの書き換えは、背面にコネクタがある。キットのマイコンにはファームが書き込まれている。

バックライトが付くのは実機にはなかったことでした。

大きさを比較すると少し小さくて、厚いです。

サイズ比較

電池はCR2032を無骨に挿入する形なので交換するのに
振り回すか、ドライバで開けるしかない状況でした。

対策として電池を交換できるためのハンドルを設計しました。
こちらの載せて挿入すると取り出すときにはつまんでロック
を外して引き出せるようになります。

電池ホルダー

PLAで作成しました

電池向きを合わせてキャリーをかぶせます

出すときには、少し出ている爪を挟むことで引き出せます

サークル時計のケースを作ってみた

残り物のABS材料で足りるかと思ったが足らなかったので余っていた中途半端なフィラメントで息継ぎをしたところ、結局サイズ間違いが見つかったので作り直しになった。

 

 

 

 

 

新しいフィラメントで気を取り直して出力する。ABSなので取り扱いは、楽だ。

PLAの保管箱の乾燥剤のメンテナンスは必須で、吸湿してしまったフィラメントはボキボキと折れてしまい使うものにならなくなる。

さて、サークル時計の上側の基板は欠きとって目覚まし時計の雰囲気になった。

 

 

 

データは、Thingiverseに上げてあるが、時計キット自体が似たようなものでも差があるので、ビスの穴位置は手持ちのキットに合わせていただく必要があるかもしれない。

 

 

 

 

 

 

 

残りも

ガイガーカウンターシールド基板を頂きました

シーエー様から、ガイガーカウンターシールド基板を複数いただきました。Arduinoの足を取り付けるとシールドとして使えるようになります。

シールドとしてでなく、AVRを載せても良いように設計されていますね。書き込み用のソケットランドもあります。

ガイガー管も搭載済なのであとフリーランドに液晶を取り付けたり、Bluetoothのモジュールを付けてスマホで活用したりといった使い方も考えられていますね。

ちなみにシールドにすると下側にソケットをつけて刺しますので三宝のようになってしまいます。サイズの観点からは、親亀子亀ではなくてコバンザメになるわけです。

 

 

詳細のリンクはこちらにありますが、使ってみたい方には、この基板はフリーで提供しますが、ほかの必要な部品を実費手配します。

 

 

 

 

 

 

アクリルLED時計の開発環境の構築 (3)

今回のアクリルLED時計キットに取り付けるべきリレーは、以下のフットプリントに合致するものでなければならないのだが、合わせて部品高さは10mmに押さえる必要があります。

footprintところが、これに該当するリレーは悉く11mm以上の高さとなっているようです。

現状のままつけてしまうと、1mmの蓋のガタが生じてしまうわけです。

リレーのパターンしか付いていない状況はこうした設計のミスがあるようです。

対応策としては

  1. ケースを作り直す
  2. 背の低いリレーを開発する
  3. リレーがあたる部分のアクリル板のみ削る
  4. なんとか押し込む

以上のものから現実的な案の4を考えた末に、LED表示器のケース足を切ることで高さ方向にゆとりを変形を許容しながらも出来そうだということで一旦半田付けした両面実装を崩してこんな形にしてみました。

下から見た写真ですが、正面の左側のLED二組の足をカットして高さを斜めにして稼いでいます。

IMG_6610

LEDの外形足を切ってしまいました。

IMG_6611

このリレーがあたります。

アクリルLED時計の開発環境の構築 (2)

imageアクリル時計との接続は、P3.0\P3.1へのUSBシリアル変換での接続。CH340Gの中華USB変換が最近の里でのはやりだ。

内蔵RC発振のSTC15F204EAだがシリアルの伝送速度への対応は誤差も少なくて素晴らしい。11.0592MHzを設定しているようだ。

 

2016-05-31 (1)こちらは、本家のSTC-ISP(Windows版)で、Windows10でも動作している。書き込み速度は115200bpsでハンドリングしていたので4kBほどのサイズはあっというまです。

書き込みをしてる過程で、静電気故障と思われる症状でUSBシリアル基板と書き込み対象のSTC15F204EAがお亡くなりになったようだ。どちらもチップの買い置きはあるので再生はするものの取り扱いには注意したほうが良いのは改めていうまでもない。

アクリルLED時計の開発環境の構築

imageimage長らく扱っている、アクリルLED時計ですが、基板の版も新しくなりハード制御を学ぶ教材として使うのにも良さそうです。時計からアラーム出力ということで、リレーが搭載可能というスベースが追加されています。

利用したい方には、ソフト開発の挑戦が待っています・・・・

容量サイズの制限もあり、学生さんが腕試しをするのにも良さそうです。

8051系のSTC15F204EA 4kBのチップです。

Ubuntuの上で、開発ツールがオープンソース環境で構築できるのは素晴らしいですね。

SDCC 8051サポートもあるコンパイラでSTC15F204EAも対応

書き込み系ツール stcgalはpythonで書かれたSTC社のサポートツールのオープンソース版で、BSL経由でシリアル書き込みが可能となっていますが、まだUbuntuでの確認はとれていません。Windows版はSTC社のツールstc-ispが使えましたのでこちらで書き込み確認は出来ました。Linuxだけで完了させたいところです。

SDCCは、すでにapt-getでインストール出来る時代になっていてこれでアクリル時計のgithubプロジェクトをコンパイルして書き込み動作確認までとれました。リレー拡張部分へのUI設定の追加が必要です。今はメインループでブザーのようにon/offを繰り返すコードになっていたのでまずは、修正しました。

 

 

ニキシー管入荷しました (IN14)

image image ニキシー管時計キットの基板をベースに必要なパーツは、ほぼそろいました。今回のニキシー管はIN14です。USEDですが、状況はよさそうです。6個で6000円です。

このタイプのニキシー管には専用のソケットはなく、このリード線を基板に直付けか、丸ピンのICソケットを使うか・・・・

時計製作されるかたの相談に乗ります。
材料費はACアダプター含みで10000円程度かと思います。

ソフトウェアはArduinoベースです。

ニキシークロック保守パーツの件

imageニキシー管をつかった時計キットを作る機会があった。設計された方がチェコの方だったこともあって使われていた部品が少し見慣れないものだったので記載するとともに若干の予備在庫を手配した。githubでソース公開されている

Arduinoベースでハードが設計されているので、Arduino UNOなどATMEGA328が搭載されている環境でチップ書き込みを行い、ソフトとハードの差異を埋める作業をしていた。基板のRevと説明書のRev相違などが課題だったが、基本的にArduinoに200V程度の高圧発生回路を登載し、フォトカプラーでATMEGAとは分離してKM155経由でニキシー管をダイナミック点灯します。高圧発生回路は、これがベースとなっていて555の代わりにATMEGAでソフト制御をしているということだ。最近でも使われているパーツは、基本的に中華マーケットで安価に手に入るが、趣味に走ったレトロなパーツは、そこにはちょっとないという事がわかった。

image

IRF740

400V 10A TO-220 N-CH MOS FET IRF740 @30

UF4004 D41

高速リカバリー 400V 1A UF4004 @8

817C1801

フォトカプラー PC817互換品 @5

74141

ニキシー管駆動用のBCDデコーダ兼高耐圧ドライバー SN74141は既に生産中止品で、写真上はKM155という互換品でロシアで製造されています @450 写真下は市中在庫なのか中華互換チップかは不明 @140

チェコからの電子メール

先日作ったニキシー管時計のキットを開発してくれていたチェコの方に、顛末説明をしたところ古い基板での課題について漏れについて再確認してもらえたようだった。まだ古い基板の在庫もあるようなので、今後の方のためgithubの上でソフトウェア更新していただけることになった。

imageDSC_0588

時計プロジェクトの製作過程などをホームぺージのリンクから紹介したところ、学生たちの研究目的であれば、彼の開発した基板データも提供していただけるそうだ。ありがたい・・・。

間違った基板のまま、学生さんに課題として動作させるというのも教材としてはありかと思いますね。

 

電子工作のケースを3Dプリンターで作る

トランジスタテスターに適当なケースが無かったので3Dプリンターで作成することにした。
課題としては、006P電池も収納出来ること。電池ボックスのふたも構成できることも含めると3D設計の難度は上がる。本体はこんなイメージで、仮にアイロンビーズのケースに入っている。

image

もう少し収まり具合をよくしたいので、まずは基板のサイズを各部測定した。

image

これにカバーするイメージ作り、背面のふたにさらに電池ボックスを抱かせるイメージで前面部のカバーを作った。使ったソフトは123Designだ。プリンターはRobo3Dで黒のPLAです。
image
実際に基板を当ててみると使いにくいのが部品装着のレバーの部分だったので改良して次のようにした。

image

液晶の収まり具合も修正してぴったりはいった。
image

背面の収まり具合は、こんな感じで次にふたを作ることにした。
image

電源は006Pなので横置きにして台座のように傾斜して使うようなイメージにした。
imageimage

電池を交換出来るようにスライドするような設計をしたのだが、問題多数でまだ試作段階だ。
とりあえず、こんな感じになりますよというサンプルになっている。3Dプリントで複数のパーツを作成してスライドふたを作ったりする経験はノウハウが色々ありそうだ。
image

現在の形は006Pの収納部分の配置がバランスわるく直ぐに平置きになってしまうということがあるが、まあ最初の試作品はこんな形で・・・。

imageimage