SSブログ
前の10件 | -

obniz で赤外線リモコンを操作させようと思ったけど躓いた [工作]

世の中"IoT"なんだってよ。知ってた?。 職場でも話題になってたな。>>IoT
ということで仕事とは全然関係ないけど、obniz ボードを取り寄せていじってみた。

obniz_board.png

これを使って何かするといえば・・・
まぁ最初に思いつくのはインターネット経由の赤外線リモコン操作だよね。
赤外線モジュールを繋いだ obniz をリモコンに仕立てて、
スマホで obniz を操作してエアコンのオン・オフをやってみるというもの。
それで赤外線モジュール取り付けていじってみたんだけど、
例によってすんなりとはいかなかったのでメモ。

やろうとしたことは、学習リモコンみたいに本家リモコンの信号を obnizボードで受信して保存、
そのデータを使って obnizボードから赤外線を出してエアコンを操作するというもの。
例があったのでその通りにやってみたがうまくいかなかった。
原因は、赤外線受信時のデータ長不足。
まず、赤外線モジュールが受信できているのか?を確認。
デジタルオシロでモニターしたら、受信自体はできているようだ。
データの長さを測ってみたら0.7秒弱だった。

oscillo.png
    図1. 赤外線モジュール受信信号(赤外線リモコンは 日立 エアコン RAR-9E3)

次に、obniz の赤外線モジュールのライブラリを調べてみたら、
受信時間はデフォルトで0.5秒・・・・足りてないじゃんorz
なので、ちょっと余裕を見て1秒に設定してやったら無事動きましたとさ。

設定は JavaScript で module.start の前に下記を追加。
     module.duration = 1000;
私は JavaScript の経験がないので、最初のロジックはブロックプログラムで組みました。
ですが、ブロックで受信時間を設定する方法がわからなかったので、
ブロックプログラムで組んだロジックを JavaScript に変換して、
受信時間を設定する行を追加して動作させました。

ブロックプログラムは簡単でいいですね。
たとえ参考例があったとしてもいきなり JavaScript でコーディングしろとか言われるとちょっと尻込み。
ブロックプログラムは見た目で分かりやすいのですぐ使えました。
でも、細かな設定ができないのとプログラム間のコピーが出来ないのが難点。
細かな設定は仕方ないとして、普通、プログラム書く時は、いくつかソースを表示させて、そこからコピペで作っていくものだと思いますが、それが出来ないって・・・
ブロックプログラムはとっつきやすくてとても良いシステムだと思うのですが、
何か obniz のプロジェクトでのブロックプログラムの立場が解ってしまった気がして、
ちょっと不憫。

obniz をちょっと触ってみただけの感想ですが、
obniz board ではハードウエアの細かい制御はちょっとしんどいかなと思いました。
私としては JavaScript で細かいハード制御をさせようと思わないので、
もし、そういうことをしようとする場合は、ハードの制御は Arduino とかにまかせて、
大まかな動作とインターネットとの接続は obniz board でということになるんだろうなと思ってます。
Arduino でも IoT は可能なようですが、私にとってはハードルが高く、
インターネット接続は obniz に任せちゃった方が良いかなと思ってます。
Raspberry Pi ならなおさら IoT は可能でしょうが、むしろいろいろ出来すぎてしまい、
セキュリティの設定で手間を食いそうなので、積極的にはやりたくないですね。
(セキュリティについて真面目に取り組んだことが無いし、語れない。)
なのでもし IoTでハードのコントロールというのであれば obniz + Arduino かなぁと思ってます。

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

スピーカーボックスの中に Raspberry Pi とオーディオアンプを組み込んで 「radiko」「らじる☆らじる」の受信機にしてみた [工作]

ラジオの電波が届きにくい場所で使うべく、
radiko が使えるポータブルラジオ型受信機を探してみたのだが、意外とこれが無い。
ネットラジオの受信機はいくつか見つかったが、radiko に対応しているものが無い。
radikoをスマホやPCなしで簡単に聞くにはスマートスピーカーが一番手軽だと教えてもらったが、
まぁ、簡単なスイッチで操作できる radiko 受信機があってもいいじゃないかと思い作ってみた。
この受信機、「らじる☆らじる」も対応させたのでNHKラジオ 第2放も聞けます!
あの大人気長寿番組「文化講演会」「気象通報」が聞きけるのです!
(でも21年4月から「文化講演会」は不定期になっちゃった・・・)
5つのプッシュスイッチの操作で、現状15局選択できるようにしています。

fig01_button_radio_s.png
記事の詳細はこちら↓
http://jq1qnv.sakura.ne.jp/body/button_radio/button_radio.html


nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

fritzing のパーツ作成は LibreCAD で図を書いて dxf データを inkscape に渡すと良い [工作]

fritzing を使うとき、モジュールなどは市販であっても fritzing のパーツのデータが無いことが殆ど。
ちょっとブレッドボードに配置したいだけなんだが・・・・

それでどうしてもパーツが欲しいときは自作となるのだが、最初から inkscape で形を書くのはちょっとしんどい。
(寸法どおりの図を inkscape 書くことってできるんでしたっけ?)

正確な寸法で図を書くには CAD でしょう。
幸い、inkscape は dxf が読み込めるので試しにやってみたら、結構簡単に出来ました。
まぁ、CADが使えるという前提ですがね。私は LibreCAD を使いました。
コツとしては、下記の三点です。
(1)LibreCAD でのデータ登録時、目的の図形以外は登録しないこと。
(2)色塗りと、文字の書き込みは inkscape の方が効率が良い。
(3)inkscape で読み込んだあと、[ファイル(F)]-[ドキュメントのプロパティ(D)]から、
「ページのサイズを描画全体または選択オブジェクトに合わせる(R)」を実行する。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Ubuntu で LoTW [ham]

いろいろあって Windows で始めた LoTW だったが、
LoTW へのログ提出ソフト TQSL には Linux 版もあるので Ubuntu に入れてみた。
このインストールはソースからのインストールになる。
Vine Linux では Qt のバージョンが合わず、対応がめんどいのでインストールをやめたが、
Ubuntu では比較的すんなり入れることが出来た。
ただし、いつものことながら、いくつかライブラリが不足していたので必要なパッケージを事前にインストールする必要がある。
今回不足していたのは下記。apt-get でインストールした。
libwxgtk3.0-gtk3-dev
libssl-dev
liblmdb-dev
libcurl4-openssl-dev

今回インストールしたものは TQSL 2.5.7、インストール先は Ubuntu 20.04.1 LTS です。
ARRL のサイトから tqsl-2.5.7.tar.tz をダウンロード、
適当なディレクトリで解凍してそこに行って下記実行。

$ cmake .
$ make
$ sudo checkinstall

下記コマンドでTQSL実行。
$ /usr/local/bin/tqsl


TQSL スクリーンショット 2021-01-17 21-47-06.png

日本語になってる。うれしい。

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Ubuntu 20.04.1 LTS + LibreOffice の印刷 [Linux]

結局、完全には解決していないけど、メモ
(1)Ubuntu 20.04.1 LTS の LibreOffice 6.4.6.2 で差し込み印刷する場合の注意
差し込み印刷しようとしたが、差し込むデータにアクセスできず固まってしまう。
で、調べた結果、LibreOffice の Base がインストールされてないことが原因だった。
差し込み印刷するためのデータアクセスには LibreOffice の Base が必要。
Ubuntu をインストールした際、Calc や Writer はインストールされたのだが、 Base はインストールされなかったみたい。 Base をインストールしたら差し込み印刷はうまく行った。

(2)Ubuntu LibreOffice Writer の部数指定で印刷がうまく行かない。
はがきサイズの紙に同じ内容のものを印刷すべく、設定画面で枚数を指定して印刷しようとしてたんだけど、1枚印刷しただけで止まってしまう。プリンタは Canon TS6330。
結局、迂回措置で 「Writer」 → 「pdf」 → 「スマホへ転送」 → 「部数を指定して印刷」で対応した。
パソコン(Ubuntu)からPDFで印刷ができないわけではないが、なんかちょっと相性が良くないのよね。
今どきの周辺機器はパソコンよりもスマホの方が相性がいいみたい。
私の場合、どちらも PC もスマホも Linux だけど、スマホ(Android)の方が圧倒的にユーザー数が多いでしょうからね。
自宅ではパソコンとプリンタがそれぞれ別の部屋に置いてあるこので、プリンタの隣で操作できるスマホの方が楽だったりする。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Ubuntu にて FFmpeg で m4a から mp4 へ [Linux]

某音源サイトからアーティストのアルバムをダウンロード(m4aファイル)して、
プレヤーに移して音楽を楽しんでいるのですが、
その際、m4aファイルをmp4に変換して使っています。

Ubuntu で ffmpeg 使ってやってみたのですが、ちょっと引っかかったのでメモ。

Vine 使ってたときは下記コマンドで出来てました。

$ ffmpeg -i hoge.m4a -acodec copy hoge.mp4

ですが、Ubuntu だと下記エラーが出て止まります。

・・・・・ Could not find tag for codec h264 in stream #・・・・・・・・・

どうもジャケットのイメージデータが邪魔しているようなので、ビデオ無視のオプション(-vn)をつけてやったらうまく行きました。

$ ffmpeg -i hoge.m4a -vn -acodec copy hoge.mp4

ただ、これだとジャケットの画像が無い状態になってしまうので、
ジャケットの画像が欲しい場合は EasyTag で m4a ファイルのタグから画像をコピーして mp4 のタグに貼り付けます。

Ubuntu 20.04.1 LTS を使ってます。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Ubuntu はじめました。 [Linux]

Ubuntu はじめました。
Vine Linux 好きなんだけど更新されないんだよね。メンテはされているようだけど。
流石に古くなっちゃっていろいろ弊害が・・・

1ヶ月くらいだけどやっと慣れてきた。
Ubuntu にというよりは Gnome3に。


nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

IC-911DでのFT8運用におけるマイク端子入力レベルによる歪の影響 [ham]

FT8の送信実験の際に遭遇した不具合についてです。
WSJT-Xで発生させた低めの周波数のオーディオ出力をIC-911Dのマイク端子へ入れた場合、結構大きな歪が発生して高調波が出ると同時に送信出力まで下がってしまう事象が起きました。そこで、いくつか条件を変えて送信し、受信機の復調信号(オーディオ信号)を観察してみました。
詳細はhttps://jq1qnv.sakura.ne.jp/body/FT8_mic_level/ft8_mic_level.htmlをみてください。

下の図 はIC-911Dのマイク端子へ過大なレベルで入力、Fake It無しの状態で送信したものを別な受信機で受信したものです。

fig05_wsjt-x_disable_Fake_It_s.jpg

次の図は上の図の条件で、Fake It有りの設定のみ変更した場合の状態で送信したものです。
スプラッタが消えています。

fig06_wsjt-x_enable_Fake_It_s.jpg

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Raspberry Pi 3 による FT8 の運用 [ham]

1. FT8をやってみる
 少し前から流行っているデジタルモードのFT8ですが、私もようやく運用にこぎつけました。デジタルモードですのでPCに専用のアプリケーション(WSJT-X)をインストールすることになりますが、普段使っているデスクトップのPCではQtのバージョンが合わないことがわかり、どうしたものかと調べていたら、Raspberry Pi でWSJT-X を運用している諸先輩方がいらっしゃるようです。それで、ほったらかしになっていた Raspberry Pi 3 B+ が有ったのを思い出し、こっちの方が楽で面白そうだと思い、やってみました。機器の構成を以下に示します。

機器の構成.png

2. 機器の準備、運用
 FT8はWSJT-Xというソフトを操作することになるため、Raspberry Pi に WSJT-X をインストールするのですが、その前に準備が必要です。まず、変調/復調のデータはオーディオ信号なので、Raspberry Pi 3 で音声の入出力が扱えるようにしなければなりませんがRaspberry Pi 3には音声入力のためのハードウエアがありません。そこで今回はUSBオーディオ変換アダプタを使用しました。使用したアダプタは サンワサプライ(株)の MM-ADUSBTC1 で、これ自体はつなぐだけですぐ使えました。動作確認についてはhttps://ham-jq1qnv.blog.ss-blog.jp/2020-05-25-1を見てください。
 次に hamlib です。Raspberry Pi 3 からリグを操作するために hamlib とシリアルインターフェースが必要になりますが、これについてはhttps://ham-jq1qnv.blog.ss-blog.jp/2020-05-26-1を見てください。あと、FT8は時刻の精度が要求されますのでNTP等で時計の同期が取れるようにしておいてください。
 Raspberry Pi 3周りのハードウエアが準備できたら、最後にWSJT-X のインストールです。http://www.kk5jy.net/wsjtx-build/ に必要なライブラリのインストール方法など詳しく書かれていて、このページのとおりに操作したらインストールできました。
 WSJT-Xの設定や運用は webで諸先輩方が教えてくださっているので探してみてください。2020年6月23から7月11日までの運用実績は 144MHz 66QSO, 430MHz 25QSOでした。送信機は主にIC-911Dです。IC-7400でも交信していますが、後述の理由で2QSOに留まっています。

3. 周波数ドリフトの問題
 IC-911Dでしばらく運用した後、送信機を取り換えて IC-7400で運用してみたのですが周波数ドリフトが大きくてうまく行きませんでした。IC-7400でしばらくワッチして、いくつかCQを出している局が有ったので呼んでみました。しかし、相手から応答があるようなのですが、デコードしてくれません。ウォーターフォールを見てみると、どうも受信周波数がドリフトしているようなのでその様子を確認してみました。ダミーロードを取り付けた別な送信機(FT-817)でCWのトーンを連続送信し、その漏れ電波をIC-7400とつながっているWSJT-Xで受信、次にIC-7400からWSJT-XのTune機能を使って15秒送信、15秒受信を繰り返してWSJT-Xのウォーターフォールをみたところ、 15秒間の受信中に40Hz近いドリフトがあることが判りました(下図)。FT8の帯域が50Hzなので、さすがに短時間にこれだけ動くとデコードできないのでしょう。

IC-7400_144MHz_Screenshot from 2020-07-05 14-06-40_1.png

IC-911Dでも同様の実験をしましたが、送信・受信を繰り返してもほとんどドリフトは無く下図の通り良好に動作しています。

IC-911D_144MHz_Screenshot from 2020-07-05 09-59-56_1.png

(IC-7400はリグの電源を入れて2,3時間経ってもこんな調子です。まぁ、こんなにひどいのは144MHzだけで、50MHzも多少ドリフトはありましたが、程度は小さく、 HFではさらに小さいドリフトだったので、HFなら、まぁ、いけるんじゃないかと思います。)

4. FT8でのALC
 以前、PSK31の運用に際してALCとIMDの関係を調べたことがあり、送信機への制限を(少しでも)超えた入力はALCの影響で歪んだ出力になると認識していましたのでFT8でも同じだろうなと思っていました。しかし、調べてみると、FT8は変調により周波数が変化するとき以外は基本シングルトーンで相互変調するための周波数成分が無いためALCについてはPSK31ほど神経質になる必要は無さそうです。デジタルオシロでRaspberry Pi 3 からのFT8のオーディオ信号を観察してみましたが、一定振幅のシングルトーンでした。ただし、過大入力で問題が出ない無い訳ではなく、マイクからの音声信号を増幅する回路に非線形があると Raspberry Pi 3 からのシングルトーンに高調波が混ざってきますので、低いトーン周波数の場合はバンド内に妨害が出ます。また、この問題を軽減するためにWSJT-X では"Fake It"という機能があります。

5. MIC入力かACC入力か・・・答えは"Fake It"でした
 WSJT-X のTune時出力(500 Hzのトーン)をIC-911Dのマイク端子につないで実験したところ、結構ひどい高調波が出ていることがわかました。入力をACC端子に変えたら高調波はかなり低くなったのでマイク入力の低周波増幅器が悪さをしているようです。次にWSJT-Xの設定を変えて Fake It を有効にしたらMIC入力であっても高調波はかなり低くなりました。実験の結果を下表に示します。

送信機への入力の違い.png

6.その他
 U/Vの空いているバンドだからできるのかもしれないのですが、CQ局を呼んだ後に別な局から呼ばれることが結構ありますね。CWやフォーンだとCQ局への妨害になるのでCQ局を呼んだ局が別な局から呼ばれることは稀ですが、FT8だとスコープ内のCQ局とは別な周波数で呼べば妨害にならないので躊躇なく呼ぶことができます。また、呼ばれた方もそれが受信履歴で色分けされた文字として表示されるので、呼ばれたことがすぐにわかりますし、気づくのが遅れても1分程度であれば応答できるというこれまでとは違った形の交信ができますので意外と効率は良いと思います。
 やっと参入したFT8ですが、現時点まだHFでの運用ができていないので自宅のHF環境を整えつつ運用に漕ぎ着けたいと思います。

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

無線機を Raspberry Pi 3 で操作する (hamlib) [ham]

無線機と Raspberry Pi 3 を USB で繋いで無線機の制御をする。

1. hamlib インストール

https://dl1gkk.com/setup-raspberry-pi-for-ham-radio/
を参考に hamlib 3.3 をインストール。
パッケージ管理をしたかったので make install ではなく、
checkinstall を使った。
しかし、以下のエラーが出てうまく行かず。

$ sudo checkinstall

        ・
        ・
        ・
   /bin/mkdir -p '/usr/local/share/doc/hamlib/html'
  /bin/mkdir: ディレクトリ `/usr/local/share/doc/hamlib' を作成できません: そのようなファイルやディレクトリはありません
  Makefile:710: ターゲット 'install-dist_htmlDATA' のレシピで失敗しました
  make[2]: *** [install-dist_htmlDATA] エラー 1
  make[2]: ディレクトリ '/home/hoge/apl/hamlib-3.3/doc' から出ます
  Makefile:783: ターゲット 'install-am' のレシピで失敗しました
  make[1]: *** [install-am] エラー 2
  make[1]: ディレクトリ '/home/hoge/apl/hamlib-3.3/doc' から出ます
  Makefile:592: ターゲット 'install-recursive' のレシピで失敗しました
  make: *** [install-recursive] エラー 1

  ****  インストールは失敗しました。パッケージの作成を中断します

  クリーンアップ..OK

  Bye.

仕方がないので下記を実行

$ sudo mkdir -p '/usr/local/share/doc/hamlib/html'

そのあと、checkinstall を実行して何とかインストールできました。
$ sudo checkinstall



2.無線機との接続(シリアルインターフェース  ICOM CI-V)


使用した USB インターフェースは下記、
https://jq1qnv.sakura.ne.jp/body/ft232rl/ft232rl.html

これは Raspberry Pi 3 に繋ぐだけですぐ使えた。(ドライバのインストールは不要)

IC-911Dにつないで動作確認( 権限の関係でここでは sudo )
$ sudo rigctl -r /dev/ttyUSB0 -m 344
[sudo] hoge のパスワード:

Rig command: f
Frequency: 432420000

USB 経由で FT232 などのシリアルインターフェースを使う場合、ユーザが"root"や"pi"ではない一般のユーザだと権限の問題があり、結果的に hamlib が動作しないので、権限を付与するために下記を実行。
  $ sudo adduser 使用したいユーザ名 dialout

権限については設定がいろいろ面倒なので、結局のところ自ユーザの権限を pi に合わせて設定した。
$ sudo usermod -aG \
> adm,dialout,cdrom,sudo,audio,video,plugdev,games,\
> users,input,netdev,gpio,i2c,spi ユーザ名


(セキュリティーにこだわらないのであればユーザ"pi"で全てインストールしてしまった方が良いかもです。)

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。