ツールの使い方

2021年4月17日 (土)

WordPress Lightbox機能

以前悩んで上手く構成できなかったLightbox機能(イメージをクリックすると拡大される機能)の設定の仕方がやっと分かったので備忘録。

まず、ページに画像を張り付ける方法は編集方法によって以下のとおり。

ブロック編集

この場合はギャラリーで画像を張り付けること。そうするとリンク先選択が出てくる。ここでリンク先をメディアリンクにする。画像で張り付けるとリンク先選択が出てこないの要注意。

クラッシック編集

この場合はメディアの追加で画像をはりつけること。そうするとリンク先選択がでてくる。

LightboxはResponsible Lightbox & Galleryを使うこととする。設定はDefaultのままでOK。ただし、Cocoonも画像拡大機能がDefaultでONになっているので、画像拡大が2パターン実行されてしまう。この為、Cocoon側の設定をOFFにする。この選択画面は画像タブにある。

Cocoon

これで画像拡大が使えるようになった。めでたし、めでたし。

2021年3月 6日 (土)

デジタルフィルターの実験

Python scipyでデジタルフィルターの実験をしてみた。

インプットとしてフォトレジスターの値をMCP3208で読み取った。Raspberry Pi 4BにSPIでインターフェースしている。回路図左側のラベルはRaspberry Pi 4BのGPIO信号で、カッコ内はヘッダーピン番号。

Mcs3208cds

実際の様子はこんな感じ。
Img04797

0.01秒周期で512サンプル行った。読み取ったサンプルデータに対して先人の知恵に学びながButterフィルターをかけてみた。

写真のセットを机の上(蛍光灯、LED証明、LCDモニター前)に置いた場合。
通過域端周波数 4Hz、阻止域端周波数 6Hz

どうやら蛍光灯の影響で3Hzから4Hzの間の周波数でCdS出力が変化する(蛍光灯を切るとこの周期の波はなくなった)。通過域端周波数を4Hzとするとフィルター出力は正にこの変化を捉えることになった。

Fl2fp4ps6

通過域端周波数 1Hz, 阻止域端周波数 3Hz

通過域端周波数を1Hzとすると、3~4Hzの波の下に隠れている周波数成分を取り出すことが出来たようだ。

Fl6fp1fs3

ちなみに蛍光灯を消した状態ではこんな感じになった。

Fl7

CdSを手で覆って光を遮断した状態
通過域端周波数 4Hz、阻止域端周波数 6Hz

CdSの光を遮断(センサー表面を手で隠す)した場合、相対的にノイズ成分が多くなる。この状態でフィルターしてみた。確かにノイズの下に隠れている波を取り出しているように見える。

Fl5fp4fs6dark

CdSの上およそ20cmのところで手のひらを1秒弱で往復させた場合
通過域端周波数 2Hz、阻止域端周波数 4Hz

1~2Hz程度でインプットがあった場合の周期性を捉える実験もしてみた。これは手のひらを通過させたときの出力変位が多きの出フィルターするまでもない感じだけれども、仮に多量にノイズが乗っていても恐らく同様の結果が得られるものと期待できる。

Fl4fp2fs4

記録のためにここで使ったコードは以下に置く。多くの方々の知恵をまとめて一つにしたもの。

ダウンロード - filtertest2.py

感謝。

 

 

 

 

2021年2月21日 (日)

Raspberry Pi でのUSB CDC ACM

rshellでPicoをUSBで接続するにあたって/dev/ttyACM0を指定した。

そもそもACMってなんだろうってことで調べたので備忘録。

USB CDC ACM、Universal Serial Bus Communication Device Class Abstruct Control Modelの頭文字だということらしい。

このデバイスはLinux上では /dev/ttyACM* として認識されるとのこと。つまり、PicoはCDC ACMデバイスとして認識されたということだ。そこでlsusbを実行してみた。

pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 2e8a:0005
Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

この中にPicoらしきものがない。とりあえず2e8a:0005をメモ。現在Raspberry PiのUSBにはデバイスが2つ(LogitechのUSBアダプターとPico)が接続されている。

Img04713

そこでdmesgでカーネル出力メッセージをみてみた。

pi@raspberrypi:~ $ dmesg
....
[ 1.813769] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[ 1.996373] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[ 1.996394] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.996412] usb 1-1: Product: USB2.0 Hub
[ 1.998223] hub 1-1:1.0: USB hub found
[ 1.998538] hub 1-1:1.0: 4 ports detected
[ 2.323746] usb 1-1.1: new full-speed USB device number 3 using xhci_hcd
[ 2.463994] usb 1-1.1: New USB device found, idVendor=046d, idProduct=c534, bcdDevice=29.01
[ 2.464014] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.464032] usb 1-1.1: Product: USB Receiver
[ 2.464048] usb 1-1.1: Manufacturer: Logitech
[ 2.476766] input: Logitech USB Receiver as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.0/0003:046D:C534.0001/input/input0

....

[ 2.723762] usb 1-1.3: new full-speed USB device number 4 using xhci_hcd
[ 2.861186] usb 1-1.3: New USB device found, idVendor=2e8a, idProduct=0005, bcdDevice= 1.00
[ 2.861207] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.861225] usb 1-1.3: Product: Board in FS mode
[ 2.861242] usb 1-1.3: Manufacturer: MicroPython
[ 2.861258] usb 1-1.3: SerialNumber: 000000000000

[ 6.833920] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device

USB Bus 1-1.1にLogtech、1-1.3にPicoが検出された記録が残っている。そして1-1.3はUSB ACM Deviceと認識されてttyACM0でマウントされている。LogtechはMouseとKeyboardがその先に繋がっていて、ACM Deviceとしては認識されていない(実際コミュニケーションデバイスではないし)。

lsusbの出力でメモした2e8a:0005はUSB deviceとしてのpicoのVendor IDとProduct IDだったようだ。なのでBus 001 Device 005はpicoと判明した。

1-1.1とか1-1.3とかはUSBのソケット番号に対応するらしい。実際、LogtechのUSBアダプタを直下のソケットに移したらdmesgに以下が記録された。

[ 3602.399066] usb 1-1.2: new full-speed USB device number 6 using xhci_hcd
[ 3602.539296] usb 1-1.2: New USB device found, idVendor=046d, idProduct=c534, bcdDevice=29.01
[ 3602.539317] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3602.539335] usb 1-1.2: Product: USB Receiver
[ 3602.539353] usb 1-1.2: Manufacturer: Logitech

いろいろと奥が深い。

2021年2月13日 (土)

Google AdSense落選

構築中の別のブログに対してGoogle Adsenseから「駄目よー」と返事が来た。

お申し込みの状況について
このたびは AdSense に関心をお寄せいただきありがとうございます。お客様のお申し込み内容を確認させていただいたところ、当プログラムのご利用要件を満たしておられないことがわかりました。そのため、申し訳ございませんがお申し込みを受け付けることができかねます
AdSense プログラム ポリシーは、Google サービスをご利用のサイト運営者様と広告主様の双方に対して Google 広告の有効性を確保するために設けられております。弊社はすべてのサイト運営者様を審査し、その結果によってお申し込みを却下する権限を有しています。今後、ポリシー要件を満たすように変更を加えていただくことができれば、その時点で改めて AdSense にお申し込みいただけます。
なお、この決定について具体的な理由をお尋ねいただいても、お応えいたしかねますのでご了承ください。何卒ご理解いただきますようお願いいたします。
ご利用いただきありがとうございます。
Google AdSense チーム

Googleで調べてみると、「オリジナリティの欠如」が審査落選の一番大きな理由らしい。

そもそも、今も自分がGoogleで検索して「ここを見てみようかな」って思うのは、そこには他のサイトにないユニーク(有用性の高い)情報が掲載されていると思うから。Google AdSenseは、そのようなサイトにターゲットを絞って許可を出しているらしい。まぁ、自分が誰かのサイトに頼るけれど、自分のサイトは誰にも頼られないってのは流石にマズイわけだな。

SEOについて「重点キーワード」ってのが文字通りのキーワードだって書いているサイトがあるけれども、この重点キーワードにオリジナリティ臭を付けないといけないわけだな。

素人の自分がこの審査を自動化するのであれば、まずは単純に重点キーワードらしきキーワードを抽出して、そのキーワードでGoogle検索かけて、同様の重点キーワードが設定されているサイト数がある程度以上あれば、それでボツってのを作るかも。

これは企画を再構築しないとダメだ。

2021年1月31日 (日)

Cocoonで編集画面が左寄りになる問題。

Cocoonで編集画面が左寄りになる問題。Cocoonを新たに入れたサーバーで発覚。作者のわいひらさんからから修正がでてたのでメモ。

結構深いスレッドの中に記載があったので、その部分だけ以下Cocoon Comunityの投稿の転載:

Cocoonbug

こちらが上記スレッドにあるgithubのリンク先

このcocoon masterでcocoonを入れ替えたら元に戻った。ありがたや。

Wordpress Responsive Lightbox & Galleryの設定

WordpressのRepsponsive Lightbox & GalleyでLightbox表示(ページ内の画像をクリックすると拡大画像をポップアップする)を使ってみたくて使い方を調べると、どの説明を読んでも張り付ける画像のリンク先をメディアファイルにするだけ、超簡単!と書いてあるけれども、そのリンク先が見当たらない。

Lightbox2

そもそもそれらの説明で参照しているエディター画面が自分のと違う。これはどういうことか???ってなわけで色々とダッシュボード内をあっちこっちと這いずり回ってCocoon設定のエディタータブにGutenbergエディターってのがあってチェックが入っている。つまり、自分が使っている投稿エディタはGutenbergエディターなんだ、と分かった。で、無効化すると旧ビジュアルエディター形式になるとある。そこで外してみた。

Lightbox1

そうすると、Lightboxの説明に出てくる編集画面になった。で、説明どおりにメディアを追加をクリックして画像ファイルを選ぶと、、、
Lightbox3


添付ファイルの表示先にリンク先が現れた。ここでメディアファイルを選択してプレビューするとLightboxが動いた。なるほど、こういう事だったのね。

Lightbox4


ただし、Gutenbergエディターではなくて旧型式ビジュアルエディターでは以下の構成が表示できず、ギャラリー映像もカラム表示も全部縦一列になってしまった。

Lightbox6

旧型式エディターで作成したページの各要素はGutenbergエディター環境ではその部分だけ旧式エディター機能で編集できる。この状態でこのページを公開してもLightboxは機能する。

Lightbox7

上記のブロックへ変換をクリックするとGutenbergエディターのブロック形式に変換される。この状態でこのページを公開してもLightboxは使えるままになっている。
Lightbox8

結論:Lightboxを使いたい場合はGutenbergエディターをオフにして旧型式エディターでメディアを追加して、その後Gutenbergエディターに戻せばよい。

WordpressにWP Tabsでタブを追加してみた

現在制作中のホームページでタブを使ってみたくなった。ちょっと使い方が複雑(直感的には分かりにくい)だったので備忘録。

まずインストールしたPlug-inはWP Tabs。選択肢は沢山あるようだったけれど、Wordpress使いと思われる方の投稿などを読んで、こういう方が手間をかけて投稿してるのだかそれなりに良いのだろうとの判断。
Tabs1

インストールが完了するとメニューにWP Tabsが現れる。
Tab2

以下はTabs Groupsを選択した場合。既に工作日誌という名前でTabs Groupを登録した後の画面コピー。ここで重要なのはShortcode。これが後からモノを言う。
Tab3

Add New Tabをクリックすると新しいTabが追加できる。工作日誌には3つのタブを追加した。なお、タブ形式はHorizontalを選んでいる。
Tab4

それぞれのTabの内容を編集する。
Tab5

タブの編集ではいろいろなスタイルが使用できる。
Tab8

このタブを設置する固定ページの編集をおこなう。予め上記のShortcodeをコピーしておいてからタブを置きたい場所でペーストを実行すると、自動的にショートコードとして張り付けを実行してくれる。
Tab6

以下が設置したタブ部分のプレビューの結果。うれしいのはちゃんとテーマに合わせてレイアウトされていること。
Tab7

これでホームページがちょっぴりリッチになった。

2021年1月25日 (月)

Raspberry PiのDefaultのPythonを2.7から3.7に変更する

最近TWELITEでPySimpleGUIを使っている。なんだかPython2.7では具合が悪かった、というかフツーにPySimpleGuiをインストールするとPython3用が入ってくる。Python2.7はpysimplegui2.7をインストールせよ的な情報が幾つもあるし、Python2.7でPySimpleGUIを使おうとして困っている書き込みの多々ある。

で、Raspberry Pi 4のpythonはどうなっているか確認したら2.7.16だった。Python 3も入っていてPython 3.7.3だった。このDefaultのpythonをPython 3に切り替えたい。

Debianではalternativesというコマンドがある。どうやら、指定したコマンドのシンボリックリンクを作って特定のディレクトリに保存しおき、このコマンドが発行されたらそのシンボリックリンクを呼び出すようだ。このシンボリックリンクは同じコマンドに対して複数登録できて、その中のどれを選ぶかも決められる。つまり、今回のようにpythonコマンドが呼ばれた際に2.7を呼び出すか、3.6を呼び出すかをここで管理できるわけだ。

使うコマンドは以下になる。
update-alternative --install

このコマンドの使い方は以下のようだ。
--install link name path priority [--slave link name path]...選択肢のグループをシステムに追加する。link は master リンクの一般名、 name は alternatives ディレクトリにおけるシンボリックリンクの名前、 path は master リンクとなる選択肢の名前となる。

で早速実行した。

Pythonsw

以下、上記コンソール表示内容の解説。

pi@raspberrypi:~ $ python --version   <- Defaultは2.7.16
Python 2.7.16
pi@raspberrypi:~ $ python3 --version
Python 3.7.3

pi@raspberrypi:~ $ ls -l /usr/bin/python*

lrwxrwxrwx 1 root root 7 3月 5 2019 /usr/bin/python -> python2 <- ここのディレクトリではpython2にシンボリックリンクが張られている
lrwxrwxrwx 1 root root 14 3月 5 2019 /usr/bin/python-config -> python2-config
lrwxrwxrwx 1 root root 9 3月 5 2019 /usr/bin/python2 -> python2.7  <- python2.7へのシンボリックリンク
lrwxrwxrwx 1 root root 16 3月 5 2019 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x 1 root root 154 12月 30 2018 /usr/bin/python2-pbr
-rwxr-xr-x 1 root root 2984816 10月 11 2019 /usr/bin/python2.7 <- python2.7の実態
lrwxrwxrwx 1 root root 36 10月 11 2019 /usr/bin/python2.7-config -> arm-linux-gnueabihf-python2.7-config
lrwxrwxrwx 1 root root 9 3月 26 2019 /usr/bin/python3 -> python3.7  <- python3.7へのシンボリックリンク
lrwxrwxrwx 1 root root 16 3月 26 2019 /usr/bin/python3-config -> python3.7-config
-rwxr-xr-x 2 root root 4275580 12月 21 2019 /usr/bin/python3.7  <- python3.7の実体
lrwxrwxrwx 1 root root 36 12月 21 2019 /usr/bin/python3.7-config -> arm-linux-gnueabihf-python3.7-config
-rwxr-xr-x 2 root root 4275580 12月 21 2019 /usr/bin/python3.7m
lrwxrwxrwx 1 root root 37 12月 21 2019 /usr/bin/python3.7m-config -> arm-linux-gnueabihf-python3.7m-config
lrwxrwxrwx 1 root root 10 3月 26 2019 /usr/bin/python3m -> python3.7m
lrwxrwxrwx 1 root root 17 3月 26 2019 /usr/bin/python3m-config -> python3.7m-config

alternativeへの登録を確認。pythonは未登録。
pi@raspberrypi:~ $ sudo update-alternatives --list python
update-alternatives: エラー: python の alternatives がありません

python2.7をpriority 1で登録
pi@raspberrypi:~ $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives: /usr/bin/python (python) を提供するために自動モードで /usr/bin/python2.7 を使います

python3.7をpriority 2で登録
pi@raspberrypi:~ $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2
update-alternatives: /usr/bin/python (python) を提供するために自動モードで /usr/bin/python3.7 を使います

登録内容の確認
pi@raspberrypi:~ $ sudo update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.7

構成内容の確認。優先度が高いpython3.7が自動モードで選択されることがわかる
pi@raspberrypi:~ $ sudo update-alternatives --config python
alternative python (/usr/bin/python を提供) には 2 個の選択肢があります。

選択肢 パス                          優先度 状態
------------------------------------------------------------
* 0     /usr/bin/python3.7    2        自動モード
   1     /usr/bin/python2.7    1        手動モード
   2     /usr/bin/python3.7    2        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

pythonのバージョンが3.7.3になっていることを確認
pi@raspberrypi:~ $ python --version
Python 3.7.3
pi@raspberrypi:~ $

以上で作業終了。

Raspberry PiにTeamViewerをインストール

Raspberry Pi 4にTeamViewerをインストールした。VNCをインストールしてあるけれど、それだとインターネット経由のアクセスができない。まぁ、家の中だけだったらそれで充分ではあるけれども、、、

BluetoothスピーカーでRadikoが聞けるようになったけれど、依然としてモニターやキーボード・マウスをRaspberry Piに接続しないといけないのはうまくない。TeamViewerが使えたら便利だろうなぁって思ってTeamViewerを覗いたらなんとあるではないか!これでインターネット経由でリモートデスクトップが使える。

まずはChromiumでダウンロード。
Step1

ダウンロードされたteamviewer-host_15.13.6.armhf.debをインストール。
Step2

ドバドバっとコードがインストールされる。インストール途中で以下のダイアログが現れる。
Step3

インストールされたTeamViewerはプルダウンメニューのインターネットの下にTeamViewer Hostで登録されている。それをクリックする。
Step4

簡易アクセスを許可をクリックする。持っているTeamViewerのアカウント情報を入力する。
Step5

割り当てをクリックすると以下の赤字のテキストが表示される。
Step6

メールをスマホで受信した。画面上の「この端末を承認する」をクリックする。

Step7

「はい、このデバイスです」を選んで先に進むと完了メッセージが表示される。

Step8 Step9

以上で設定は完了。Windows PCからRaspberry PiにTeamViewerで入れば、もうRaspberry Piにモニターもキーボードは不要。

らくちん、らくちん。

2021年1月24日 (日)

WordPressのメンテナンスモード設定

作りかけの状態でサイト公開するのはつらい。でも投稿などを非公開にするとサイト設計上、そのページが存在しない扱いになってしまう。これは不便だ。

先人の知恵はWP Maintenance Modeをプラグインすることガイドしている。で、早速試してみた。

背景イメージは自由に設定できる。これに合わせて文字の大きさや色も変えられる。クリック一発でメンテナンスモードを無効化できる。これは使える。

Maintenance

より以前の記事一覧