ラベル Arduino の投稿を表示しています。 すべての投稿を表示
ラベル Arduino の投稿を表示しています。 すべての投稿を表示

2017年2月10日金曜日

Arduinoでシーケンス制御を学ぶ-導入偏

 最近の電気業界では、PLC/シーケンサを使ったシーケンス制御を扱えるエンジニアが引っ張りダコらしいです。
 学生のころリレーを使ったシーケンス制御を教科書レベルで学んだ記憶がぼんやりとありますが、PLCの知識は皆無です。
 そんな事情から、PLCを使ったシーケンス制御を学んでみようと思いましたが、PLCは、それなりに高価です。なんとか安価にできる方法がないかと探してみると、PLCのように、Arduinoをラダー図で制御できる「SoapBox Snap」というツールを発見しました。



以下、SoapBox Snapの導入手順です。

■PCの準備
 次の手順で、PCに必要なソフトウェアをインストールします。

①Phidgets Driver Libraryをダウンロードしてインストールします。
・Phidgets Driver Library 32 Bit Installer Download
・Phidgets Driver Library 64 Bit Installer Download

②SoapBox Snapをダウンロードしてインストールします。

※必要に応じてインストール中に、.NET Framework 4が自動的にダウンロードされます。
※Windows 8またはWindows 10の場合は、.NET 3.5もインストールされていることを確認してください

■Arduinoの準備
 次の手順で、Arduino IDEおよびArduino をセットアップします。

①「Timer1 Library」ライブラリをダウンロードして、インストール(インクルード)します。
②次のフォルダ内にある「Arduino Firmware.ino」(SoapBox Snap Arduino Firmware)を開いて、ボードに書き込みます。

C:\Program Files (x86)\SoapBox Automation\SoapBox Snap\ArduinoFirmware\

または

C:\Program Files\SoapBox Automation\SoapBox Snap\ArduinoFirmware\

 ファームウェアが正常に機能していれば、ボード上のピン13に接続されているLEDは、1秒ごとに1回短い点滅で点滅します。

●補足 コマンドの送信
シリアルモニターのボーレートを115200、改行コードをCR/LFに設定します。

・「status」と入力して[Enter]キーを押してください。「Running = False」、次に 「EOM」と表示されます。

・入力のステータスを読むことができます。「read b0」は入力ピン3のステータスを読み、「read b1」は入力ピン4のステータスを読みます。「read n0」はアナログ入力A0などの値を読み込みます。

・「device-config」コマンドは、I/O構成のリストが読み込みます。

・デフォルトでは、すべての個別ピンが入力として設定されていますが、ピンを出力に変更することができます。たとえば、ピン8を出力にしたい場合は、「config-output 8」コマンドを送信します。ピン9をアナログ(PWM)出力にしたい場合は、 「config-pwm 9」コマンドを送信してください。すべて入力に戻すには、「config-reset」コマンドを使用します。

■初期設定とラダー図のダウンロード
●初期設定
①SoapBox Snapを起動します。
②「New Program」をクリックします。
③「Solution Explorer」の「Runtime」を右クリックし、「Properties」をクリックします。
④[Type]ドロップダウンリストから 「SoapBox Snap Arduino Runtime」をクリックします。
⑤[Address]テキストボックスにArduinoのCOMポートを入力します。
⑥必要に応じて、[Configuration ]テキストボックスにI / O設定情報を入力します。たとえば、ピン7と8を出力したい場合、最初の行に 「config-output 7」と次の行に「 config-output 8」と入力します。PWMピンの1つをアナログ(PWM)出力(たとえばピン9)として構成するには、「config-pwm 9」と入力します。


⑦[OK]ボタンをクリックします。

●ラダー図と設定のダウンロード
 ラダー図と設定をダウンロードするには、次のように操作委します。

①「Solution Explorer」の「Runtime」を右クリックし、「Connect」をクリックします。


②未保存の場合、「Save」ダイアログボックスが表示されるので、[はい(Y)]ボタンをクリックし、ファイル名を入力し、保存先を選択し、[保存(S)]ボタンをクリックします。
③「Upload/Download」 ダイアログボックスが表示されるので、「Download」を選択し、[OK]ボタンをクリックします。


 ダウンロード後、ランタイムは自動的にラダーロジックプログラムを開始します。この時点では、プログラムが空であるため何もしません。

●デバイス設定の表示
 ソリューションエクスプローラのランタイム項目の下には、「デバイス設定」項目があります。「デバイス設定」を表示するには、次のように操作します。

①「Device Configuration」を右クリックし、「Read Device Configuration」を選択します。
②接続中の場合、警告ダイアログボックスが表示されるので、[はい(Y )]を選択いします。
③「Local I/O」という名前の新しい項目が表示されます。各アイテムの横にあるプラス(+)または矢印アイコンをクリックして、Local I/Oアイテムとすべての子アイテムを展開します。



■簡単な例(LEDの点灯/消灯)
●配線図
 LEDとプッシュボタンを次のように配線します。


●ラダー図


 上記ラダー図を作成するには、次のように操作します。

①「Instructions」から「Normally Open Contact」をラング(横線)の上にドラッグ&ドロップします。



②ラング上の「Normally Open Contact」の「False」と表示されている部分をクリックし、表示された[…]ボタンをクリックします。







③「Device Configuration」→「Arduino」→「Discrete Inputs」の順に展開し、プッシュボタンが接続されているピン(ここではpin2)を選択し、[Ok]ボタンをクリックします。


④「Instructions」から「Coil」をラングの上にドラッグ&ドロップします。
⑤名前(「New Coil」と表示されている部分)をクリックし、任意の名前(ここでは「M1」とします)を入力します(入力確定は[Enterキー])。

⑥エディタの空白部分を右クリックし、[Insert at Bottom]→[Ladder Logic]を選択します。
⑦「Instructions」から「Normally Open Contact」を追加したラングの上にドラッグ&ドロップします。
⑧ラング上の「Normally Open Contact」の「False」と表示されている部分をクリックし、表示された[…]ボタンをクリックします。
⑨「Logic」→「Main」の順に展開し、「M1」を選択し、[OK]ボタンをクリックします。


⑩「Instructions」から「Coil」を追加したラングの上にドラッグ&ドロップします。
⑪名前(「New Coil」と表示されている部分)をクリックし、任意の名前(ここでは「LED」とします)を入力します(入力確定は[Enterキー])。
⑫「Local I/O」の「Discrete Outputs」の「pin7」を展開し、「False」と表示されている部分をダブルクリックします。
⑬「Logic」→「Main」の順に展開し、「LED」を選択し、[OK]ボタンをクリックします。


⑭「Runtime」を右クリックし、「Connect」をクリックします。
⑮未保存の場合、「Save」ダイアログボックスが表示されるので、[はい(Y)]ボタンをクリックし、ファイル名を入力し、保存先を選択し、[保存(S)]ボタンをクリックします。
⑯「Upload/Download」 ダイアログボックスが表示されるので、「Download」を選択し、[OK]ボタンをクリックします。

 ダウンロード後、ランタイムは自動的にラダーロジックプログラムを開始します。プッシュボタンのオン/オフで、LEDが点灯/消灯することを確認してください。

2016年10月29日土曜日

DCモータードライバーIC制御用のArduinoライブラリ

 BluetoothやWiFiで制御するリモコンカー、ドローン、ロボットなど作ろうから思い、Aliexpressで購入したDCモータードライバーモジュール用のライブラリを書いてみました。(L298N用のライブラリを修正)
 ICの名前は、削られているのか、読み取ることはできませんでした。品名、商品説明にはL298Nという表記がありますが、EN(イネーブル)はなく、制御信号2本で1つのモーターを制御する仕様になっています。

モード
IN1
IN2
IN3
IN4
モーターA
正転
H/PWM
L


逆転
L
H/PWM


スタンバイ
L
L


ブレーキ
H
H


モーターB
正転


H/PWM
L
逆転


L
H/PWM
スタンバイ


L
L
ブレーキ


H
H

 以下のモータードライバICなどでも使用できます。

2016年10月19日水曜日

秋の夜長の電子工作 - ミンティア デジタルカメラ





















○パーツリスト
1
カメラモジュール
1
1
1
1
1
10kΩ抵抗
1
1列ピンソケット4P
1
ミンティアドライハードのケース
1

 カメラモジュールは、SymaのマルチコプターX5シリーズに付いているカメラの中身を使用しました。
 ミンティアのケースは、各モジュールのLEDが確認できるように、透過率が比較的高いドライハードのケースを使用しました。

○回路図
 

○レイアウト・配線
 

  TP4056 充電器モジュールの改造手順は、こちらを参考にしてください。


○ファームウェア(Arduinoスケッチ)

 プッシュボタンを短めに押すと写真を撮影、長押しでビデオ撮影開始、ビデオ撮影を停止するには、もう一度ボタンを押す。


2016年10月14日金曜日

秋の夜長の電子工作 - ミンティアブリーズ MP3プレーヤー V2

ミンティアブリーズ MP3プレーヤーを少し改良してみました。

○変更点
・充電器モジュールをミニUSBタイプからマイクロUSBタイプに変更
・lipoバッテリーを120mAhに変更
・プッシュボタンの接続端子を変更
・リピート機能、リピートのLEDインジケータを追加
・レイアウトを変更

 befor 













 After
 

○回路図

○ファームウェア(Arduinoスケッチ)


・中央:プレイ/ポーズ、長押しで現在の曲をリピート(リピートLED点灯)
・左 :ボリュームダウン、長押しで前の曲へ
・右 :ボリュームダウン、長押しで次の曲へ

 今回は、MP3のライブラリは使用していません。





秋の夜長の電子工作 - ミンティアブリーズ FMラジオ

 




その他、配線用ワイヤー、ホットボンドなど。

○回路図
 

 音声出力のカップリングコンデンサ(4.7μF)は無くても良いですが、5段プラグのヘッドフォンなどを使用した場合、接触不良で出力が発振する場合があるので、念のため入れています。

○実装・配線
 

TP4056 充電器モジュールの改造手順は、こちらを参考にしてください。


○ファームウェア(Arduinoプログラム)
・必要ライブラリ Adafruit_SSD1306、Radio


・上ボタンでボリュームアップ、長押しでシークアップ
・下ボタンでボリュームダウン、長押しでシークダウン
・中央ボタンでメモリーした周波数(既定は81.8MHz)で選局、規定の周波数は、FIX_STATIONで設定
・中央ボタン長押しで現在の周波数をメモリー

2016年8月29日月曜日

電子工作 - ミンティアブリーズ MP3プレーヤー

パーツリスト
Arduino Pro min 3.3V(※)
1
1
1
1
1
1
3
1
1
ミンティアブリーズケース
1

※Arduino Pro minは、互換品など多種ありますが、動作電圧が3.3Vのものであれば、なんでも可です。

その他、配線用ワイヤー、ホットボンドなど。

○ケースの加工
 ヘッドフォン、電源スイッチ、充電USB端子用の穴を開けます。
 

 MP3のSDカードを出し入れするために、ミンティアの取り出し口を少し広げます。
 

 合わせるとこんな感じです。(加工が荒いのは・・(´・ω・`))

・SDカード(左)、電源スイッチ(右)

・充電USB


・ヘッドフォン端子



○TP4056の改造

 
 充電電流を調整できるように、RPROGを半固定ボリュームに変更します。

RPROG(kΩ)
IBAT(mA)
30
50
20
70
10
130
5
250
4
300
3
400
2
580
1.5
780
1.2
1000



 この例では、抵抗10kΩと半固定ボリューム10kΩを使用しています。20kΩ~30kΩの半固定ボリュームがあれば、すべての充電電流をカバーできます。

 改造が終わったら、使用するlipoバッテリーの充電電流に合わせて、抵抗値を調整します。


○タクトスイッチ(プッシュボタン)と電源スイッチ基板の作成
 操作ボタン(タクトスイッチ)はできるだけ少なくということで、3つとしました。
 タクトスイッチと電源スイッチは、ユニバーサル基板の半田付け面に実装します。
 

 タクトスイッチは、片側の足をカットします。

 基板の挿入後、足が基板がはみ出さないようにカットします。

 もう一方も同様にカットします。


○レイアウト
 各パーツは、次のようにレイアウトします。
 

○回路図
 

○プログラム
 Arduinoに次のスケッチを書込みます。

 Catalex MP3 Boardは、GroveのMP3 v2.0とほぼ同じなので、Groveのライブラリが使えます。


○配線


配線後、各パーツをホットボンドで固定します。


○完成
 タクトスイッチ用の穴は開いていませんが、ケースがしなるので、ケースの上から押せます。

スイッチの機能は、次のようになっています。

中央:プレイ/ポーズ
左 :ボリュームダウン、長押しで前の曲へ
右 :ボリュームダウン、長押しで次の曲へ





充電中