Arduino UNO互換機を安く使う

Written in 2017年11月10日 by | コメントする( 0件 )

Arduino UNOは純正品は2,000円以上する。

Arduino Uno Rev3 ATmega328 マイコンボード A000066

新品価格
¥2,660から
(2017/11/10 10:43時点)

私は当初、サインスマートの互換ボードとさまざまなモジュールやセンサーがセットになったセット購入したが、問題なく純正品と同様に使用できた。

サインスマート Arduino(Uno) をはじめよう互換キット 初心者専用Arduino基本チュートリアルプロジェクト付き! 十種類選択可! (19プロジェクト、1602 LCD、プロトタイプ シールド、MPU6050含む! )

今回はもっとも安く使いたいので、Easy World Mallの互換機を試してみた。中国から送られてくるので到着まで1,2週間かかるが安い。

EasyWordMall UNO R3開発ボード USBケーブル付属 Arduinoと互換

新品価格
¥458から
(2017/11/10 10:53時点)

試してみると、Arduino IDE でプログラムの転送ができない。。。 調べてみると、USB-シリアル変換チップが純正品やサインスマートのものはATmega16U2というチップが使われているが、このボードはCH340というのが使われているので、Win7ではドライバが自動インストールされず認識しなかったのだ。

以下のページからドライバー(CH341SER.ZIP)をダウンロードしてインストールすると、認識し、プログラム転送も成功し、動作した。

http://www.wch.cn/download/CH341SER_ZIP.html

安くArduinoできるのは魅力ですね。

Let’s Encrypt certbot-autoでlibaugeas0が古いと怒られる場合

Written in 2017年11月06日 by | コメントする( 0件 )

古いOSでLet’s Encryptを導入する際に、certbot-autoを実行する際に、libaugeas0とaugeas-lensesのバージョンが古いと怒られることがある。私の場合はCentOS6.2で出ました。

Could not choose appropriate plugin: The apache plugin is not working; there may be problems with your existing configuration.
The error was: NotSupportedError(‘Apache plugin support requires libaugeas0 and augeas-lenses version 1.2.0 or higher, please make sure you have you have those installed.’,)
The apache plugin is not working; there may be problems with your existing configuration.
The error was: NotSupportedError(‘Apache plugin support requires libaugeas0 and augeas-lenses version 1.2.0 or higher, please make sure you have you have those installed.’,)

この場合、rpmインストールされているaugeas-libsのバージョンが古い。

rpm -qa | grep augeas

CentOS6.5などでは、

augeas-libs-1.0.0-10.el6.x86_64

と出るが、6.2では、

augeas-libs-0.9.0-1.el6.x86_64

である。それで、このパッケージをアンインストールして新しいものをソースインストールする。その際、readline-develパケージが必要なのでインストールしておく。

yum erase augeas-libs

yum install readline-devel

mkdir /usr/local/src/augeas
cd /usr/local/src/augeas
wget http://download.augeas.net/augeas-1.6.0.tar.gz
tar -zxf augeas-1.6.0.tar.gz
cd augeas-1.6.0
./configure
make
make install

ライブラリは/usr/local/lib/ 以下に生成されるが、これではcertbot-autoがlibaugeas.so.0を見つけられないようなので、以下のようにシンボリックリンクを張る。私の場合は、64ビットOSなのでlib64以下に作成した。

ln -s /usr/local/lib/libaugeas.so.0 /usr/lib64/

これで無事、certbot-autoを実行できた。

mbed LPC824のファームウェアアップデート

Written in 2017年10月02日 by | コメントする( 0件 )

mbed LPC824のファームウェアをアップデートするには以下のページに従って行う。

https://os.mbed.com/teams/Switch-Science/wiki/Firmware-LPC824

Windowsでmbedとシリアル通信するドライバ

Written in 2017年10月02日 by | コメントする( 0件 )

Windowsでmbedとシリアル通信するにはドライバをインストールする必要がある。
MacやLinuxでは不要なようだ。以下のページからダウンロードする。
mbedをUSBに接続した状態でドライバをインストールする。

https://os.mbed.com/handbook/Windows-serial-configuration

mbed LPC824のAnalogInのプルアップ設定を解除

Written in 2017年10月01日 by | コメントする( 0件 )

mbed LPC824はinputがデフォルトでプルアップされている。プルアップ抵抗を追加しなくていいから便利なのだが問題がある。

mbed APIにおけるDigitalInクラスでは、コンストラクタで、

DigitalIn sensor( P0_6, PullNone );

のようにピンモードを指定できるし、mode()メソッドを使って、

sensor.mode( PullNone );

ともできる。
ちなみに、指定できるモードは以下の通り。

PullUp, PullDown, PullNone, OpenDrain

このようにDigitalInでは何の問題もないのだが、アナログ入力が問題だ。
AnalogInクラスにはこのピンモードを設定するメソッドがない!! なぜだ。。。。
mbedのサイトを見ると、

Warning

一部のCPUのmbedライブラリについて、アナログ入力ピンの内蔵プルアップ/プルダウンがONになっているものがあります。(意図してか、意図せずか不明)
この場合、ドライブ能力の低い電圧源や、抵抗器を介したアナログ入力の値がおかしくなります。

ピンモードを設定しているレジスタを直接アクセスして、プルアップ/プルダウンをOFFにしてください。

https://os.mbed.com/users/okini3939/notebook/AnalogIn_jp/

と書かれている。なんとも面倒な。レジスタを触るのか。
しかしレジスタを触らなくてもうまいことハックできちゃった。
つまり、いったんDigitalInで目的のピンをPullNoneで設定しておいて、再度同じピンでAnalogInを生成する。するとPullNoneなAnalogInが出来上がる。

DigitalIn dummy( P0_6, PullNone );
AnalogIn sensor( P0_6 );

これで動いたさ。

マイクロソフト系のメールアドレスへのメール送信ができない場合

Written in 2017年07月25日 by | コメントする( 0件 )

マイクロソフト系のメールアドレス

live.com
hotmail.co.jp
outlook.com
msn.com

など。

これらのドメインのメールアドレスへのメール送信ができずMAILER-DAEMONが帰ってくる場合、マイクロソフトのポリシーを確認しましょう。

https://mail.live.com/mail/troubleshooting.aspx

■以下のようなメッセージが帰ってくる場合(エラーコード:550 SC-001)

<nantarakantara@hotmail.co.jp>:

Connected to xx.xx.xx.xx but sender was rejected.

Remote host said: 550 SC-001 (BAY004-MC1F57) Unfortunately, messages from yy.yy.yy.yy weren’t sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.

エラーコード550の場合、対処方法はまず、SPI情報をDNSのTXTレコードとして登録しましょう。

TXT v=spf1 ip4:xx.xx.xx.xx mx:mail.simple-eye.com ~all

また、SC-001のエラーコードの説明は以下の通り。

ポリシーを理由にメールが Outlook.com によって拒否されました。拒否された理由は、メールの内容が迷惑メールの特徴に似ていることか、IP/ドメインの評価に関連している可能性があります。メールまたはネットワーク管理者のどちらでもない場合は、メールまたはインターネット サービス プロバイダーに連絡して支援を依頼してください。

とある。マイクロソフトは複数のサービスを利用して迷惑メール判断をしている。

https://mail.live.com/mail/services.aspx

この中で、「Junk E-Mail Reporting Program」というのがある。これはOutlook.com ユーザーによって報告された迷惑メールの問題についてレポートを提供してくれる。
記載されているリンク(https://postmaster.live.com/snds/JMRP.aspx)をクリックする。

サイドメニューの「Junk Mail Reporting Program」から、自分のSMTPサーバのIPを登録すると、「View IP Status」メニューでそのIPがブロックされているかが確認できる。

Blocked due to user complaints or other evidence of spamming

というメッセージとともに該当IPがブロックされてしまった場合、以下のページからメール送信者情報をマイクロソフトに送る。

https://support.microsoft.com/ja-jp/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=ja-JP&ccsid=636365643354583281

私の場合は1日後には上述のブロック情報のページで解除されたことが確認できた。

macでsmbサーバへの接続のパフォーマンス向上

Written in 2017年07月06日 by | コメントする( 0件 )

パケット署名を無効にすることでパフォーマンスが向上する可能性がある。

https://support.apple.com/ja-jp/HT205926

/etc/nsmb.conf を以下のように編集する。

[default]
signing_required=no

その後、SMBに再接続する。

macをAndroidスマホでUSBテザリング

Written in 2017年07月06日 by | コメントする( 0件 )

Androidスマホを使ってmacでテザリングするには、別途ドライバーのインストールが必要だ。

Josua Wise ( http://joshuawise.com/horndis )

latestバージョンをmacにインストールすれば、ネットワーク設定にUSBテザリング情報が現れる。
インストール後、一度、再起動が必要なようだ。

MySQL5.7.4から導入されたパスワード有効期限

Written in 2017年07月01日 by | コメントする( 0件 )

MySQL5.7.4からパスワードにデフォルトで有効期限が付くようになった。
知らずに使っていると突然、MySQLにコネクトできなくなり、

#1862 – Your password has expired. To log in you must change it using a client that supports expired passwords.

のエラーとなる。

my.cfgに

default_password_lifetime=0

と指定すれば従来どおりパスワードの有効期限をなしにできる。

この数値は有効期限の日数であり、0~65535日の間で指定できる。

0は制限なし。

PCサイトで画面全体の拡大・縮小

Written in 2016年09月08日 by | コメントする( 0件 )

PCサイトにおいて画面全体の拡大・縮小を行う方法だが、jQueryを使って、CSSのzoom属性を変化させる方法がある。

$(‘body’).css(‘zoom’,’150%’);

この方法のブラウザ対応は以下の通り

・WIN chrome52.0 => OK
・WIN Opera39.0 => OK
・WIN IE11 => OK(canvasの拡縮に問題があった)
・WIN safari5.1 => OK
・WIN Firefox48.0 => NG

・MAC Safari9.1 => OK
・MAC Chrome52.0 => OK
・MAC Firefox47.0 => NG

Firefoxがだめだ。CSS3を使う方法もある。

var rate = 1.5;
$(‘body’).css( ‘-ms-transform-origin’, ‘left top’ );
$(‘body’).css( ‘-webkit-transform-origin’, ‘left top’ );
$(‘body’).css( ‘transform-origin’, ‘left top’ );
$(‘body’).css( ‘-ms-transform’, ‘scale(‘ + rate + ‘,’ + rate + ‘)’ );
$(‘body’).css( ‘-webkit-transform’, ‘scale(‘ + rate + ‘,’ + rate + ‘)’ );
$(‘body’).css( ‘transform’, ‘scale(‘ + rate + ‘,’ + rate + ‘)’ );

これで全ブラウザをカバーできた。

・WIN chrome52.0 => OK
・WIN Opera39.0 => OK
・WIN IE11 => OK
・WIN safari5.1 => OK
・WIN Firefox48.0 => OK

・MAC Safari9.1 => OK
・MAC Chrome52.0 => OK
・MAC Firefox47.0 => OK