まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

超音波距離センサ HC-SR04を1ピンで使う

 超音波距離センサモジュール HC-SR04というのがある。なぜかAmazonで安かった。
HC-SR04 Demo For Arduino 
HC-SR04 User Guide[PDF] 

 TRIG端子にパルスを与えると距離に応じた時間の後ECHO端子に信号がでる。電源を除くと2端子必要。が、Groveの超音波距離センサモジュールのライブラリが使えないかと眺めていたら1端子しか使っていない。同じものに見えるのに?
GROVE - 超音波距離センサモジュール 

 TRIG端子とECHO端子をショートさせたらどうだろうかと考えたが発振してしまうように思える。調べてみたら抵抗で繋げてしまえばいいらしい。
Hack your HC-SR04 into one pin mode 
ForumMain PICAXE ForumActive PICAXE Forum HC-SR04 
これらによると 1.8KΩの抵抗で TRIGと ECHOを接続し、TRIG端子を使えば良いとのこと。手持ちの2.2KΩで試してみた。

2014grove1


2014grove2

これをGroveのケーブルで接続する。

2014grove3
 

 ライブラリは Grove用のものをそのまま使った。
Seeed-Studio / Grove_Ultrasonic_Ranger [Github]

注意:Githubからzipでまとめてダウンロードすると後ろに-masterが付くがArduino IDEのライブラリ名はハイフンを許さないので削除

 ライブラリインストール後、UltraSonicDisplayOnTermスケッチを使って確認。
ソース中、距離をインチで取得する部分とセンチメートルで取得する部分があるが、この間にディレイを適当に入れてやらないと後に書いたほうが0を返す。ひょっとしたらGroveのセンサと非互換の箇所かもしれない。

RangeInInches = ultrasonic.MeasureInInches();
        delay(100); ←これ
RangeInCentimeters = ultrasonic.MeasureInCentimeters();

ということで2ピン必要なところを1ピンにケチることができた。



HC-SR04 超音波距離センサーモジュール For ArduinoHC-SR04 超音波距離センサーモジュール For Arduino

サインスマート(SainSmart)
売り上げランキング : 4897

Amazonで詳しく見る
by G-Tools

 

Leonardo互換のSeeeduino LiteとGrove OLEDテスト


 Seeeduino Lite (スイッチサイエンス) 1995円。同社扱いのArduino Leonardo 2835円とくらべて安い。
黄色いコネクタと白いGrove用コネクタは自分でハンダ付けする。
特徴として、3.3V/5V切り替え、I2CとシリアルのGroveコネクタ、半ピンずらしたコネクタ取り付けのパターンあり。

 MacOSX 10.9.1 + Arduino IDE 1.0.5で動作確認。

 Seeeduino Lite Wiki
2014leo



 このままだとちょっとつまらないのでGroveを使ってみる。Groveは4ピンコネクタを使用するセンサ類を接続するSeeedStudio独自の規格。最初、右側のシリアル端子にシリアル用LCDを接続して試してみたが、Seeeduino Liteでは1,2番ピンに接続されている。これはATMega32U4のハードウェアシリアル端子なので、ライブラリに付属しているexamplesでは動かないようだ。
 そこで左側のI2C接続端子に128x64 OLEDを接続してみた。

GROVE System

Grove - OLED Display 0.96"

2014leo2 

 これは簡単、ライブラリをインストールしてArduino IDEを再起動、サンプルスケッチを呼び出してみただけ。
 

MacOSX10.9(Mavericks)とFTDIドライバについて→10.9.5アップデートで解決

※MacOSX10.9.5アップデートで解決した模様。

 FTDIドライバ対策を行っていなかったMacOSX10.8をMavericksにアップデートし、10.9.5アップデート後、FTDIチップを使用しているArduino(例:互換機のCrowduino)を接続しbrinkスケッチを転送。接続時はドライバは以下のようにFTDIドライバは1つだけ認識。書き込み可能。

$ kextstat | grep FTDI

  155    0 0xffffff7f82c33000 0x8000     0x8000     com.FTDI.driver.FTDIUSBSerialDriver (2.2.16) <138 36 5 4 3 1>

 もともとのAppleUSBFTDI.kextは削除していない。

$ cd /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/

$ ls -al

total 0

drwxr-xr-x  24 root  wheel  816  8 21 03:26 .

drwxr-xr-x   8 root  wheel  272  9 19 13:21 ..

drwxr-xr-x   3 root  wheel  102  6  4 13:22 AppleUSBCDC.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:22 AppleUSBCDCACMControl.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:22 AppleUSBCDCACMData.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:23 AppleUSBCDCDMM.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:23 AppleUSBCDCECMControl.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:23 AppleUSBCDCECMData.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:23 AppleUSBCDCEEM.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:22 AppleUSBCDCWCM.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBEHCI.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:33 AppleUSBFTDI.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBHub.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBMergeNub.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBOHCI.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBOpticalMouse.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBUHCI.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:35 AppleUSBVideoSupport.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 AppleUSBXHCI.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 IOUSBCompositeDriver.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 IOUSBHIDDriver.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:26 IOUSBHIDDriverSafeBoot.kext

drwxr-xr-x   3 root  wheel  102  6  4 13:27 IOUSBLib.bundle

drwxr-xr-x   3 root  wheel  102  6  4 13:26 IOUSBUserClient.kext 



ーーー以下は以前の記事

 MacOSXを10.9にアップデートしたらFTDIチップを使っているArduinoが通信できなくなるという話を聞いて、10.9.1のアップデータが来るまで待っていたのだけど相変わらず直ってなかったので以下を適用した。
☆Arduino UNO R3、Arduino LeonardoなどFTDIチップを使わずにシリアル通信を実現しているものは問題なかった。

Arduino in OS X 10.9 Mavericks - Serial Port Issues

 AppleがMacOSX10.9からFTDIドライバをつけるようになったのだが、それに不具合があるらしい。修正方法は、標準のApple FTDIドライバを削除してFTDICHIPが配布しているドライバをインストールすること。
Virtual COM Port Drivers こちらからMacOSX用2.2.18をダウンロードする。ダウンロードして展開したFTDIUSBSerialDriver_v2_2_18.dmgを開くと2つのパッケージがあるが、FTDIUSBSerialDriver_10_4_10_5_10_6_10_7の方をインストールする。

ドライバの確認はkextstatコマンドで確認できる。デバイスを接続しないと現れない。

以下は2つのドライバが入ってしまっている例。

$ kextstat | grep FTDI

  127    0 0xffffff7f8259d000 0x7000     0x7000     com.apple.driver.AppleUSBFTDI (1.0.1b1) <114 37 5 4 3>

  128    0 0xffffff7f825a4000 0x8000     0x8000     com.FTDI.driver.FTDIUSBSerialDriver (2.2.18) <114 37 5 4 3 1>


先ほどのリンクにあった手順
cd /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns 
    sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabled 
    sudo touch /System/Library/Extensions
で削除して再起動し、FTDIのドライバをインストールすると以下の様に確認できる。

$ kextstat | grep FTDI

  125    0 0xffffff7f81ca1000 0x8000     0x8000     com.FTDI.driver.FTDIUSBSerialDriver (2.2.18) <114 36 5 4 3 1>

 動作確認はCrowduinoで行った。これはArduino Duemilanove互換でFTDIのチップを使ってシリアル通信をしている。クロウディーノ(Arduino互換) (801-ECP-C328) 

ついでにこんなのも見つけた。FTDIドライバをON/OFFするらしいが試していない。Arduinoに限らず影響があったみたい。OS X Mavericks (10.9) - IMPORTANT


追記:
Mac OS X MavericksにおけるFTDIシリアルポートドライバの取扱い 

201312メモ

Arduino関連。
Happy Hacking KeyboardをBluetooth化する(無改造版)

Arduino に dualMocoLUFA(USB-MIDI ファームウェア)を導入

無線LAN(Wi-Fi) SDカードまとめ ~Arduinoで使いたい~

Firmataプロトコル概要 (Ver 2.3)

DFU-Programmerのビルド

100円マイコンATtiny2313でArduino

Trinket 5V版と3.3V版がある。USBはソフトウエアで実現。シリアル通信はWindows側にドライバが必要。速度が遅すぎるせい?
Home/ Trinket/ Introducing Trinket/ Pinouts
Home/ Trinket/ Trinket USB Volume Knob/ Code

NXPのDIPーARMマイコン。
NXPの8ピンARMを食す(その2)
LPCXpresso IDEのRed State Machine file generatorを使ってみた [電子ブロック工房]
180円mbedの使い方

BeagleBoardBlack
OpenRTM-aistをBeagleBone Blackに実装し、開発する方法

x86系のarduino 86DuinoとGalileo

 x86系のCPUを使ったArduino互換のボードが出始めている。

86Duino 

86Duino Zero

86Duinoは互換チップのVortex86を使ったボード。バリエーションがあるみたい。

 いっぽう、GalileoはインテルのQuark SoC X1000 Application Processorを使用した純正で、Arduino IDEも出ている。

Intel Galileo

スイッチサイエンスで予約が始まった。

インテル Galileo 開発ボード 

 

共立エレショップのシリアル→パラレル変換ボード付きOLED

 OLEDは視認性が良いということで実験してみたかったんだけど、よくあるキャラクタLCDとインターフェースは同じでも初期化などが若干異なるということでなんとなくやってなかった。共立エレショップのOLEDにはシリアル→パラレル変換ボードが付いたセットがあるので、ついでにArduino LeonardoやArduino MEGAにあるハードウェアシリアルを使った実験をやってみた。

C9B362 シリアル→パラレル変換ボード付16x2【白色】OLEDカラーディスプレイ
C9B361 シリアル→パラレル変換ボード付16x2【黄色】OLEDカラーディスプレイ

資料:
資料:パラレル→シリアル変換ボード付き 16×2OLED カラーディスプレイ

上記で使われているOLEDは以下と同じもの。
BB1418 OLEDディスプレイ キャラクタ表示タイプ 16文字x2行 黄文字

今回はArduino LeonardoやArduino MEGAにあるハードウェアシリアルを使う。
Arduino→OLEDモジュール接続:
TXD→RXD
RESET→RESET
5V→+5V
GND→GND

スケッチはこちら:
// #include 
// OLED serial
// 20131119 for Arduino MEGA & Leonardo
//

// SoftwareSerial oled(8,9);

void setup() {
  Serial1.begin(9600);
  while(!Serial1);
  Serial1.write(27);Serial1.write('C');
}

int count=0;

void loop() {
  Serial1.write(' ');Serial1.print(count,DEC);
  count++;
  delay(50);
}

 Arduino MEGAでの例:
2013oled1

 Leonardoでも同様。スケッチの冒頭、while(!Serial1); がないとゴミが表示された。
 2013oled2

 ひょっとしてこちらのディスプレイに差し替えただけで動くかなあとやってみたけどダメだった。残念。
DAV413 OLEDディスプレイキャラクター表示タイプ20文字×4行 黄文字

 なお、Arduino MEGAは比較的高価なので、SainSmartの互換品を使った。



サインスマート(SainSmart) MEGA2560 互換ボード for Arduinoサインスマート(SainSmart) MEGA2560 互換ボード for Arduino

サインスマート(SainSmart)
売り上げランキング : 37414

Amazonで詳しく見る
by G-Tools

201311前半メモ


LOGI-PI FPGA DEVELOPMENT BOARD “PLATE” FOR THE RASPBERRY PI

LPCXpressoでmbedライクなクラスライブラリlbedを作る

ボトムパッド付きQFN実装 ライブラリ作成 & デバイス実装手順

BeagleBone Black Breakers

LTspice Users Club

q61.org Arduino/AVR 使用 USB白黒液晶モニタ 「ちびモ」

mbed - クラウドオンラインですぐに使える高速プロトタイプツール

PIC32MXで作るMZ-80エミュレータの製作

Arduino hardware cores

マイコンでクラウドごっこ、LPC1114の仮想化に成功!






SpilmzieLabsの電卓キットを組み立てた

 SpilmzieLabs Calculator Kitを組み立ててみた。 2013calc0

 Adafruitで$44。ドイツ製。アクリルケースが美しい7セグLED6桁の電卓。
SpikenzieLabs Calculator Kit - 

 他のディストリビュータはこちら。
Calculator Kits from Spikenzie Labs Maker SHED
SpikenzieLabs Taschenrechner Bausatz EXPTECH
SpikenzieLabs Awesome Oldskool Calculator Kit Phenoptix


 組み立て方は詳しい説明書がある。また、レビューもある。組み立て前に見ておくと良い。
http://www.spikenzielabs.com/Downloadables/calc/CalcBuildInstructions.pdf [PDF]
レビュー記事:
SpikenzieLabs Calculator Kit review
Building the SpikenzieLabs Calculator Kit

 内容物はこんな感じ。CR2032コイン電池も入っている。ハンダごて、ニッパー、ラジオペンチ、カッター、六角レンチがあれば作れる。あとアクリル組み立ての時にテープを少々。
2013calc2


 では電気の工作から。電子部品はATmega328、10KΩ×4、0.1μF×2、7セグメントLED×6、コイン電池金具、タクトスイッチ×17。ICソケットはない。つけようとしてもケースを閉じることができない。
2013calc3

 コインホルダの金具を先にハンダ付けする。次に抵抗、コンデンサ。タクトスイッチは4本足があるが、対角2箇所を先にハンダ付けして目視で取り付け具合を確認し、調整する。 
ATmega328は直接ハンダ付け。7セグメントLEDはスペーサを介して基板に取り付けるがここが一番難しかった。説明書にはLEDのバリをカッターで取れとあったが、特に必要なかった。ピシっと揃っていればいい。

 2013calc4

 あとはコイン電池を上側がマイナスになるように取り付ければ"CALC 1.1"の表示が出るはず。色々押して動作確認。何も操作しなければ約15秒でオフになる。また、電卓機能は0に関する操作はサボってなにも動かない。つまり÷0や+0をやっても何も結果は表示されない。

 次はスイッチとアクリルケースの組み立て。
 アクリルはビニールで保護されているので剥がす。が、実際やってみて思ったのは指紋がペタペタついてしまって見栄えが悪くなってしまうということ。大きなパネル3枚については、スイッチの組み立てが終わるまでは剥がさないほうがいいかも。
 タクトスイッチの上にアクリルの土台とボタンを組み合わせたスイッチ部品を作ることにより、タクトスイッチむき出しのダサさをなくすことができる。キーの穴が空いている2枚のパネルを重ねながら、穴と同じサイズのアクリル部品に対してボタンを取り付ける。ボタンにはあらかじめ両面テープが貼ってある。
 ボタンができたら枝のようなスペーサ目的のアクリル部品をつけ、基板と一体化させる。ここらへんはネジで仮止めしながら行う。ちょっとむずかしい。底面用のアクリル板の四隅はタップが切ってあるので、これでネジを固定する。ネジは六角レンチで締めるが、ラジオペンチでも可。

2013calc5


 さてこうやってみると必要最小限の部品できれいにまとまっている。いいね。

 もうひとつの楽しみは、これがプログラム可能だということ。スケッチも公開されている。
Arduino互換で、Arduino IDEからは Arduino Pro / Pro mini 3.3Vとして扱える。独自の電卓も実装可能よ。

ここのフォーラムではIPアドレスを計算するものが投稿されていた。
SpikenzieLabs Calculator Kit

2013calc6



 組み立ては3時間くらい。国内でも扱わんかなあこれ。
 

2013年10月までのメモ


LTspice入門
 Mac用もある
 
INTRODUCING 123D CIRCUITS

Enginursday: Visually Programming Arduino

[GR-SAKURA][mruby]GR-SAKURAでmrubyを動かす (1)

2013-08-06 ¥1,650で買えるARM基板STM32F4DISCOVERYでmrubyを動かす

Nibbler 4 Bit CPU

TTL でCPUを作成、16bitの手作りコンピューター TANACOM-1 誕生

PIC32MX220F032B USB MIDI ホスト (15)

ISP programming application on mbed イカ醤油ポッポ焼き

[lang:ja] mbed LPC1114での遊び方

サポートするSCSIコマンド

プリント基板の試作、実装、リワーク 株式会社工房やまだ

カーネル/VM式ARMマイコン入門

BBB - FPGA / CPLD Programmer for the BeagleBone Black

論理回路デザイン

Amber ARM-compatible core :: Overview

DESIGNSPARK - ホーム

PINOUTS.RU

Arduino Leonardo用 USB-HIDの書き換えメモ、その他

 この記事、Arduino Leonardoでどうやって標準ではないUSB-HIDジョイスティックを入力可能にしているのかと思っていたら:
ゲームコントローラー cubic9.com

Turning an Arduino Leonardo into a joystick.

USBAPI.hとHID.cppを差し替えるだけだったのか! バイナリにパッチ当ててたよ……


以下、今月のメモ
HID-class USB Serial communication for AVRs using V-USB

Arduinoで物足りなくなっちゃった方へ。Cypress CY8CKIT-042 PSoC 4 PIONEER KIT
DA4121 PSoC 4 PIONEER KIT 共立エレショップ
Fubarino SD Development Board MICROCHIP PIC32MXのボード

mbed LPC1114FN28で8桁7セグLEDモジュールを制御してみた きょうのかんぱぱ
AVR用ISP変換ケーブルふたたび ikkei blog
Raspberry Piクイックスタートアップガイド (日本語) 
日本語音声認識  cubic9.com
ATmega32U2でArduinoモドキを作る  kosaka lab
Freescale,ノイズ耐性などに優れた5V電源仕様のARM Cortex-M0+マイコンを発売  5V系ARM
FRDM-KE02Z: Kinetis EシリーズFreedom開発プラットフォーム 
Cyclone V GX Starter Kit $179。DE0の次はこれか?
VFDとは
3V-5V switchable I2C Real Time Clock Shield
Marcelo Barros / This repository is a program ArduinoShieldSPI
ASOOVU USB

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ