2022年2月20日日曜日

窓枠へのホイップアンテナの固定

 ホイップアンテナ程度なら、窓枠に斜めでもいいから、うまく固定する方法がないか考えていたが、いい方法を思いついた。カメラ固定のクランプをたまたま持っていたので、使ってみた。(現在、amazonでは販売してないようだが)これだと、サッシの縦の枠にもつけられる。RHM8Bをある程度調整してSWRを2程度まで下げて、さらにATU-100をつなげて、1.5以下に下げることができた。運用するときだけ、窓の外にササっと設置し、使い終わったらコンパクトにしまえるので便利です。

 他に必要なものとして、カメラ三脚取付用アンテナ基台50cmの取付用同軸コネクタがあります。基台が少し値段が高いですが、台を自作するとなるとそれなりの手間とお金はかかるようなので、購入してみました。これで、風が強くて釣り竿アンテナがあげられないときなど、重宝しそうです。

2022年2月15日火曜日

Unity ドラッグ&ドロップ

 Unityでのドラッグ&ドロップを実装したいところがあり、いろいろ調べてみた。

ドロップしたとき、ドラッグしたオブジェクトと、ドラッグ先のオブジェクトの両者を消すという操作にしたかったが、下記のようにしたら、うまくいった。

ドラッグ先のオブジェクトを取得するには、RaycastAllというものを使うとうまくいくという情報を見つけるまで少し苦労した。

2022年2月13日日曜日

ATU-100キット組み立て

 ATU-100のキットをamazonで購入してみた。SMDは既につけてあるものなので、コイル巻きが少し面倒なぐらい。ただ、マニュアルがネットで探さないといけなかった。


 組み立て終わったものの、コイルのインダクタンスが心配になる。というのも、安価なLCメータを使っていたので、測定値が不安定で、少なめのインダクタンスが表示されていた。そこで、若干多めの巻き数にしていた。TUNEがうまくいかなかったので、再度、マニュアル通りの巻き数に修正してみた。

 しかし、それでもうまくいかない、数日、試行錯誤したが、SWRが下がらない。充電タイプの9V積層電池を使っていたので、その辺が原因かとも思ったが、10V~15Vなら許容範囲とあるから、考えにくい。電源入れると、受信感度が落ちる感じがしたので、配線不良を疑う。再度、基板を点検した。そしたら、なんと、付け忘れたコイルがひとつあったことに気付く。まき直し後取付忘れていた。一番小さいコイルだった。これをつけてみたら、うまく動作させることができた。

 手間はかかったけど、完成品の半額ぐらいで使えるようになった。写真のように、タッパーの中におさめてみた。スイッチ類、9V積層電池スナップ、M型コネクタ変換ケーブルは、キットの材料に入ってなかったので、別途購入した。

7MHzアンテナ整合について

 7M程度の釣り竿アンテナのマッチングは、以前作った自作コイル(直径11cmの塩ビパイプにスズメッキ線を巻いたもの、7MHzなら、7~8m長だと3~4Tで十分だった)に加え、あらたに自作コンデンサを硬質のカードケース(B5を購入したが、大きすぎて半分にした。B6でもいいかも。厚さが思ったより薄く、静電容量がけっこう大きくなるのかも)でつくってみた。そしてnanoVNAでSWRやスミスチャートを見ながら、コイルのインダクタンス、コンデンサの容量を調整することで、なんとかSWR1.5以下に下げることはできた。ATU-100もあまり調整がずれると、うまく動作しないときがあるので、あらかじめ手動で調整するときは、この方法がよさそうだ。

https://www.youtube.com/watch?v=6q6zuZrKzogを参考にさせていただきました。

2022年2月9日水曜日

UnityのGameObject取得

 UnityのGameObjectの取得方法もようやく概要がつかめてきた。

取得方法も大きく分けて、2通りあって、オブジェクトがアクティブでないと取得できない場合、非アクティブでも取得できる場合があることが最初わからなかった。

最初から、変数をPublicにして、IDEを通して、オブジェクトを指定もできるが、数が多い場合面倒な時もある、できればスクリプトで解決したい。そうなると、非アクティブのものがうまく取得できない(基準となるオブジェクトより下の階層しか取得できない制限などあるため)こともあり、意外とやっかいだ。

 そこで、思いついた解決策が、とりあえず、なるべく上位階層のオブジェクトで、アクティブなオブジェクトをまず、取得して、それをもとに、非アクティブなオブジェクトを取得していく方法だ。

例として

 Canvas
   PanelMondai
    Button1
               Text1
             Button2
               Text2
             Button3
               Text3
             Mtext

ならば

        GameObject cv = GameObject.Find("Canvas");
        Mpanel=cv.transform.Find("PanelMondai").gameObject; 
        mtext=Mpanel.transform.GetChild(3).GetComponent<Text>(); 
        Button bt1= Mpanel.transform.GetChild(0).GetComponent<Button>();
        atext1 = bt1.transform.GetChild(0).GetComponent<Text>();
        Button bt2 = Mpanel.transform.GetChild(1).GetComponent<Button>();
        atext2 = bt2.transform.GetChild(0).GetComponent<Text>();
        Button bt3 = Mpanel.transform.GetChild(2).GetComponent<Button>();
        atext3 = bt3.transform.GetChild(0).GetComponent<Text>();