カテゴリの投稿: » マイコン・電子工作

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できるのは魅力ですね。

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 );

これで動いたさ。