ホーム » コンピュータ (ページ 38)
「コンピュータ」カテゴリーアーカイブ
mineo 宛のメールを取り込む
子供の携帯は、mineo を使っているけど、子供の契約変更(auプラン→docomoプラン)の時に、子供のmineo メール宛に送られている確認メールに気づくのが遅れ、手間取った。
子供の mineo メールのアカウントで、転送設定すればいい…と思ったけど、mineo メールにはそんな機能は無いらしい。gmail で mineo のメールを取り込む方法もあるけど、基本は本人任せで契約変更をしたい時だけメールを確認するのなら、自宅のメールサーバに読み込むほうが手っ取り早そう。
そこで、自宅メールサーバで、mineo.jp のメールを取り込む .fetchmailrc を書き、crontab で fetchmail を実行するように設定した。
EdgeRouter-X で ssh 公開キーの登録
CUIで登録する方法
EdgeRouter-X で ConfigTree で設定できる項目は増えていて、WebUI で登録できそうなんだけど、失敗するので、CUI で登録する。
((接続元)) $ cat ~/.ssh/id_pub.rsa
ssh-rsa XXX….XXXX xxxx@server
((EdgeRouter))
$ configure
# set system login user xxxx
authentication public-keys
xxxx@server
type
ssh-rsa
# set system login user xxxx authentication public-keys
xxxx@server
key
XXX….XXXX
# commit # save # exit
WebUIで登録する方法
設定ができた後だと、ConfigTree に設定内容が反映されて、WebUI での正しい設定のやり方が分かった。
メールの日本語化
自宅で動かしている様々な機能で、警告メールを送信することも多いけど、基本英字。日本語でも文字コードが utf-8 なら、mail コマンドで送ることもできるけど、日本語の定番のJISコードで送りたい。そこで、Subject をMIMEエンコード、本文をJISコードで送るスクリプトを設置。
#!/bin/bash # 日本語のメールを送る(SubjectのMIME化,本文のJIS,Content-Type出力) # Usage: mail-jp -s SUBJECT -r FROM TO_ADDR ... SUBJECT="" FROM="" TO="" ( # オプション(subject,from)引数処理 while [ $# -gt 0 ]; do case $1 in '-s' ) SUBJECT=$2 shift ;; '-r' ) FROM=$2 shift ;; * ) # レシビの出力 [ -n "$FROM" ] && echo "From: $FROM" [ -n "$SUBJECT" ] \ && echo "Subject: $SUBJECT" | /usr/bin/nkf -M echo 'Content-Type: text/plain charset="iso-2022-jp"' echo 'Content-Transfer-Encoding: 7bit' break ;; esac shift done # 引数(to:メールアドレス) while [ $# -gt 0 ]; do echo "To: $1" shift done echo "" # 本文 /usr/bin/nkf -j ) | /usr/sbin/sendmail -t
FOLO robot
以前に参加した蟹ロボコンの講習会で実験用にもらった MapleSyrup と FOROを、IchigoJamで動くようにしてみた。
接続とマウント
接続は、こんな感じ。
ライントレース用のセンサーの取り付け。Rasbee TCRT5000 IR反射センサ
タミヤ 楽しい工作シリーズ No.157 の軸受部を FOLO 頭部接続部に穴を開けて、長めのシャフトで固定。
IchigoJam は、軸受の穴に結束バンドで固定。軸受の上面に両面テープを貼り、電池ボックスを固定。
ライントレース
10 'FOLO robot | 腰モータが速くて失敗 20 A=IN()&6 | IN(3),IN(2)だけ残す 30 IF A=6 THEN B=2 | 黒黒→直進 40 IF A=4 THEN B=2+16 | 黒白→左直進 50 IF A=2 THEN B=2+32 | 白黒→右直進 60 IF A=0 THEN B=0 | 白白→停止 70 OUT B : WAIT 10 | 出力, 待ち 80 GOTO 20
問題点
足を歩行させる動きの効率の悪さから直進速度が遅いのに比べ、腰(足)を回転させる動きが速いので、すぐに(白,白)領域にセンサーが入って止まってしまう、もしくは境界で曲がりすぎる。
腰の動きを遅くしたいけど、OUT5はPWM命令を使えばモータの速度を落とせるけど、OUT6はPWM命令が使えない。ソフトウェア的に対応が必要。
改良版
10 'FOLO robot 20 A=IN()&6 : B=0 | IN(3),IN(2)だけ残す 30 IF A=4 THEN B=2+16 | 黒白→左直進 40 IF A=2 THEN B=2+32 | 白黒→右直進 50 IF A=6 THEN B=2 | 黒黒→直進 60 OUT B : WAIT 1 70 B=B&3 | 方向回転モータは止める 80 OUT B : WAIT 4 | 出力, 待ち 90 GOTO 20
- ライントレース動作になるためには、前進速度と曲がる速度を調整し、60行 WAIT 1 / 80行 WAIT 4(腰モータのデューティー比(約20%)が良かったかな。(前進はフルスピード設定)
- 反射型光センサーは赤外線は反射・透過性が高いので、コースをコピー用紙にプリンタで黒印刷だと、プリンタの黒を認識しづらい。以下の動画では床板(黒)とコピー用紙(白)の境界で走行。
- センサーが微妙なので、センサー周りに内側黒塗りの遮光カバーを付けている。(効果は不明)
- FOLOは座高が高いため、歩行動作では体の揺れが大きい。このためセンサー・床間の距離が安定しにくい。光センサーをアナログ命令ANA()で取得しても、閾値設定が難しい。
PCN福井さんの車体では、センサーを床で滑らせて距離を一定に保つことを考えているみたい。
apachectl graceful で segmentation fault
以前からたまに発生していた、夜中になると、Webサーバが停止するトラブル。
確認をすると、logrotate あたりの cron で、“apachectl graceful”を実行すると、apache2 の子プロセスが、segmentation fault で落ちている。
最初は、エラーメッセージに geoip あたりのモジュールのエラーが出ていたので、いろいろ調べたけど改善せず。根本の原因ではなかったようで、更新をダメ元でかけているうちに出なくなった。
以前に、同じ症状で、 php7.2 → php7.0 にしていたけど、改めて最新パッケージにするために、最新の php7.3 に切り替える。これにより、graceful をかけても、落ちなくなった。
$ sudo aptitude install php7.3 php7.3-cli php7.3-common php7.3-curl php7.3-gd php7.3-imap php7.3-json php7.3-mbstring php7.3-mysql $ sudo a2dismod php7.0 $ sudo a2enmod php7.3 $ sudo /etc/init.d/apache2 restart
しかし、最新の php7.3 にあげたら、wordpress の投稿時に、以下のようなメッセージが表示されるようになった。PHPのcompact()の説明にも、php7.3から E_NOTICE を出すようになったと書いてある。
Notice: compact() : Undefined variable:...
エラー警告は消したくないけど、デバッグモードを外す。
/* /etc/wordpress/config-default.php */ define( 'WP_DEBUG' , false ) ;
悪質なMegaIndexによるcrawl
なんか、Webのアクセスが多いと思ったら、マナーの悪いサーチエンジンMegaIndexによるクローラ。アクセス元 176.9.146.74 を調べると、所在地はアメリカだけど、UserAgent をみると、”Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler)” なんて書いてあるから、ロシアかな。
robots.txt に、”UserAgent: MegaIndex … Disallow /”を書き加え、参考にしたサイトに記載のあった他の悪質クローラも拒否る。(といっても robots.txt 無視されたら効果ないし。)
中国・ロシアとかは、geoip を使いIPアドレスを国単位で拒否しているけど、所在がアメリカじゃあなぁ…User-Agent でも弾いておくか。