2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

鉄道模型

ブログ村

  • ブログ村
無料ブログはココログ

電子工作(Arduino)

2017年9月18日 (月)

AVRマイコン ATMega328

昨日、Arudinoを壊してしまった時に、マイコンATMega328を交換してみました。
その時に使用した機器をご紹介します。

Arduino UNOには、マイコン ATMega328P-PUが使用されています。
このチップは、秋月でも購入可能です。

しかし、このままでは利用できません。
というのは、ブートローダーという、起動用のプログラムを書き込まないとArudinoでは使用できないからです。

ちなみに、ブートローダーの書き込みは、ググってみると、結構記事がありますので、自分でやろうとすればできます。

そんな中、以前見つけたこの記事で、Arduino用ブートローダ/スケッチライタキットを購入していました。

しなぷすのハード製作記
Arduino用ブートローダ/スケッチライタの製作
https://synapse.kyoto/hard/bootloader_sketch/page001.html

ここで紹介されている、Arduino用ブートローダ/スケッチライタキットをスイッチサイエンスで購入し組み立てています。

久々に、そちらを引っ張り出してきて、まっさらなATMegaにブートローダーを書き込みました。

マイコンは、1個250円で秋月で購入したものです。

20170918_154430

こちらが、Arduino用ブートローダ/スケッチライタです。

20170918_154401

使い方は、こちらのページに書いてあります。

久々にブートローダーを書き込んだ後は、BLINKなどのスケッチを書き込んで、
Arduinoとして利用できることを確認しました。

で、壊してしまったArduinoに挿してみましたが、USB経由でパソコンに接続してみましたが、全く認識されず。
これで、完全に壊れていることが確認できました。

ちなみに、スイッチサイエンスでは、ブートローダー書き込み済みのATMegaも販売されています。
1個360円で秋月より110円高くなります。

Arduino用ブートローダ/スケッチライタを買うよりは安いですが、
購入したキットは、自分で組み立てて、動くことを確認できるし、
スケッチライタとしても利用できるので、個人的には、無駄だとは思っていません。

元を取るためには、ATMega20個以上にブートローダーを書き込む必要がありますが・・・。

当初、ATMegaを購入したのは、Arduinoとして利用するよりも、必要なパーツを取り付けて、PWMコントローラーに仕立てることが目的だったのです。

おそらく、ポイント切り替え器として使うのであれば、専用の基板に載せ替える方が効率的なのではないかとも考えています。
最終的には、基板に載せ替える手間とArduino本体の価格次第だとは思いますが。

ブログ村に参加しています。
下のバナーのクリックをお願いします。

にほんブログ村 鉄道ブログ 鉄道模型 レイアウト製作へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

Arduino用電源モジュールの製作

サーボを使った、スローアクションポイント用に、電源モジュールを製作しました。

また、漸く、サーボが入荷しましたので、購入してきました。

電源モジュールを製作するのに、不足しているパーツは、トランジスタだけでしたが、
サーボがしばらく前から入荷待ちになっていたので、入荷してから買いに行こうとその時を待っていました。

20170916_151641


20170916_15_13_17


20170916_15_12_09


そして、組み立てたのは、こちらです。

20170917_2_36_11

基本的には、こちらの記事を参考にしています。

ヤードポイント一括転換 その1

また、回路図自体は、以前、lofthonsenさんにお送りいただいていましたが、
今一つ、遅延回路の意味と仕組みが理解できていませんでした。

Arduinoから、信号を送ることにより、サーボへの電源供給を遅延させるという意味だったということがようやく理解できました。

で、早速実験してみたのですが、サーボが全く動きません。
出力電圧を測ると、4.9Vはあるのですが、サーボからはかすかに音がするだけです。

試しに、三端子レギュレーターの出力にサーボを接続すると、動きます。
どうやら、2SA1359の出力に問題がありそうです。

で、思い当たったのが、330Ωの抵抗です。
通常、1/4Wの抵抗を使っているのですが、何故か手持ちの抵抗は1/6Wしかなかったのです。

恐らくこれだろうと思い、1/4Wの300Ωに変更してみました。

その結果、無事にサーボが動きました。

20170918_011217


しかし、あれこれ弄りまわしているときに、致命的なミスを犯しました。

Arduinoの電源供給を間違えてテストしてしまい、Arduino自体が高温になってしました。
気づいた時には、すでに手遅れでした。

その結果、1台壊してしました。

マイコンが壊れたのかと思い、載せ替えてみましたが、マイコンだけではなく、Arduinoの本体側も完全に壊れたようで、全く認識しなくなりました。

20170918_012513


こんなことなら、もう一台買っておけばよかった。

それと、3端子レギュレータですが、少しサーボのテストしただけでも、高温になりました。
レギュレータには、ヒートシンクをつけたほうがよさそうです。


ブログ村に参加しています。
下のバナーのクリックをお願いします。

にほんブログ村 鉄道ブログ 鉄道模型 レイアウト製作へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

2017年9月 2日 (土)

音声合成LSI

音声合成のLSIのテストをしています。

まずは、デモモードで動くことを確認しています。


ドキュメントを読みながら、何とかここまでたどり着きました。
ここにたどり着くまで、数日かかりました。


今回入手したLSIは、3種類あるのですが、そのうちの1個のみがデモモードで動かすことができました。
所謂、旧バージョンのもののようです。

残りの新バージョン2個もデモモードがあるのですが、LSI単独で動かすためには、必要なパーツが手元にありませんでした。
新しいものには、セラミック発振子か、クリスタルを別途用意する必要があるようです。

今後、このLSIをArduinoでコントロールして音声を合成してみたいと思います。


すでに、このLSIを使って、音声合成を行っているページを見つけています。
また、このLSI用のライブラリも公開されているようです。
おそらく、メーカーの関係者が書いていると思われるブログです。


ところが、早速、躓きました。
何があったか、それは今後のお話ということで。


本日は、ここまでです。


ブログ村に参加しています。
下のバナーのクリックをお願いします。

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 レイアウト製作へ
にほんブログ村

2017年8月27日 (日)

Arduinoでmp3を再生してみる

Amazonで見つけたMP3プレーヤー。
どうやら、今回、自作のサウンドボードで使用している基板と同じようでした。

とりあえず、情報を集めて、まずは、購入してみました。

届いたものは、こちらです。

20170815_190235


実際に届いたものは、以前購入したこちらと同じ仕様のようです。

MK-156 超小型。ロボットなどに最適!アンプ内蔵でmicroSDカード付き!多機能MP3/WAVボイスプレーヤーモジュール
MK−156

まあ、それは直接関係ない話ですので。


まずは、こちらの記事を参考に、サウンド再生を試してみました。

500円以下のArduino用mp3プレーヤー”DFPlayer Mini”で適当なもの作ってみた

この記事にもあるように、専用のライブラリをダウンロードして、Arduino IDEにインストールする必要があります。

ちなみに、作成したテスト用のスケッチは、4つのファイルを順番に再生するものです。


実際の再生の様子は、動画にしてみました。
なお、音量は、かなり低めに設定しています。
2番目の動画は、最近のお気に入り曲です。
再生指定後のdealyを長くすることで1曲が再生できます。

ブログ村に参加しています。
下のバナーのクリックをお願いします。

にほんブログ村 鉄道ブログ 鉄道模型 レイアウト製作へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

2017年8月23日 (水)

テスト用スケッチでサーボテスト

早速、サーボテスト用のスケッチを作りました。
一応、固定値は、最初に定義する方式で組んでいます。
経験上、美しいプログラムは、メンテもしやすいのです。

/*
目的:サーボの角度を90度から50度へ単純に変更を繰り返す
2017/08/22
*/
#include<Servo.h>
Servo servo1;
int pos; 
int start_pos = 90; //開始位置 
int end_pos = 50;   //終了位置   
int pin_no = 9;     //出力ピン指定
int dealy_cnt = 80; //スピード調整
void setup() {
  // put your setup code here, to run once:
    servo1.attach(pin_no);
    servo1.write(start_pos);
}

void loop() {
 // put your main code here, to run repeatedly:
 int angle_1 = servo1.read();
 delay(1000);  //dummy
 
 if(angle_1==start_pos)
   for(pos = start_pos; pos>=end_pos; pos-=1)
   {
   servo1.write(pos);
   delay(dealy_cnt);
   }
 delay(1000);   //dummy
 
 if(angle_1==end_pos)
   for(pos = end_pos; pos<=start_pos; pos+=1)
   {
   servo1.write(pos);
   delay(dealy_cnt);
   }

 delay(1000);   //dummy
}


サーボを接続して、動くことは確認できました。

しかし、何点か、戸惑う部分も。

まずは、サーボへの電源供給。400円のサーボは、Arduino本体から電源供給しても動いたのですが、
500円のサーボは、音はするけど動かない。

結局、5VをACアダプタから供給したところ、動きました。
Arduino本体の5Vでは、容量不足なのかもしれません。

それと、サーボにACアダプタを接続したら、いきなりサーボがブルブルと暴れました。
これは、アースをArduino本体に接続したら、解決しました。

ブログ村に参加しています。
下のバナーのクリックをお願いします。


にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

2017年8月22日 (火)

スローアクションの可能性(予告編)

こちらの記事に刺激を受けて、実験を始めようと準備しています。

まずは、サーボを調達しました。

秋月電子で2種類買ってきました。
400円と500円の2種類です。
一応、トルクの違うものということで、
400円は、トルク:1.8kgf・cm、
500円は、トルク:2.5kgf・cm。

この違いがどんなものかはよくわかりません。

20170821_222945


20170821_222951

しかし、線の色が説明書と違うんだよね。
説明書では、PWM=オレンジ、Vcc=赤、Ground=茶色となっていますが、
実際は、PWM=黄色、Vcc=オレンジ、Ground=茶色となっています。

それと、ポイントもないと実験できないので。

20170821_223554

1個でもよかったのですが、なんとなく2個欲しかったので。

これを使って、実験開始です。


ブログ村に参加しています。
下のバナーのクリックをお願いします。


にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

2017年8月15日 (火)

MP3プレーヤー モジュールボード入手

アマゾンで見つけた、中華なモジュールボードを入手いたしました。

注文した時には、8月20日到着予定でしたが、意外に早く到着しました。

20170815_190235

ネットで検索した限りでは、Arduinoで使える様なので、購入してみました。
これを使えば、mp3を再生できるはずです。

ついでに、Arduinoと互換のボードも購入してみました。

20170815_190226

こちらも、試してみないとわかりませんが、問題なければ、普通に使えるはずです。

JAMが終わったら、少し時間をとって、試してみたいと思います。

ブログ村に参加しています。
下のバナーのクリックをお願いします。


にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

2017年8月 7日 (月)

Arduino UNOでLCD(AE-AQM1602A)を使う

秋月のLCD(AE-AQM1602A)を使った、表示実験を行いました。


参考にしたのは、こちらの記事です。

Arduino LEONARDOでLCD(AE-AQM1602A)を使う

この記事でも紹介されていますが、
事前に、LCDのライブラリをダウンロードし、インストールしておきます。

LCD用のライブラリを提供している方がいますので、そちらを利用させていただきます。

ストロベリー・リナックス/秋月電子のI2C液晶/OLEDほかをArduinoで使う

このライブラリを利用することにより、コードが簡単になります。
ライブラリの中には、サンプルも収録されていますので、使い方を理解するのにも役立ちます。
半角カナも使えますので、今回使用してみました。


ちなみに、LCDとの接続は、4箇所のみです。

20170807_015059


テスト用のスケッチは、こんな感じです。

*表示しているテキストは、HP表示用に特殊文字の処理をしていますので
 使用する際はご注意ください。


#include <I2CLiquidCrystal.h>
#include <Wire.h>

I2CLiquidCrystal lcd(20, (bool)true);

void setup() {
lcd.begin(16, 2);
lcd.kana("ジュンビカンリョウ");
}

void loop() {
delay(3000);
lcd.clear();
delay(500);
lcd.setCursor(0, 0);
lcd.kana("キリカエカンリョウ ") ;
lcd.setCursor(0, 1);
lcd.kana("4バンセン");

delay(3000);
lcd.clear();
delay(500);
lcd.setCursor(0, 0);
lcd.kana("キリカエカンリョウ ") ;
lcd.setCursor(0, 1);
lcd.kana("1バンセン");
}

テスト用のスケッチでは、
セットアップで、「ジュンビカンリョウ」を表示します。

その後、
「キリカエカンリョウ」 「4バンセン」と
「キリカエカンリョウ」 「1バンセン」 を交互に表示するだけです。

4番線に切り替えたのちに、1番線に切り替えたという想定です。


20170807_215829


20170807_215810


20170807_215807


このソースを参考に、実際には、サーボ切り替え後の位置に挿入してあげれば、
ポイントの切り替えと同時にLCDの表示が変わります。

なお、表示の部分は、よく見ると、4番線と1番線の違いだけです。
この部分をサブルーチン化すれば、ソースはもっと簡潔になりますね。

ということで、LCD(AE-AQM1602A)を使った表示実験でした。

ブログ村に参加しています。
下のバナーのクリックをお願いします。


にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村

2017年8月 5日 (土)

Arduinoでディスプレイ表示を試してみる

最近、訪問しているブログでは、Arduinoによるスローアクションポイント切り替えが話題です。
動画を見ていても、これはいいなあと思います。

というわけで、俄かに、Arduinoづいてしまい、ちょっと弄ってみました。

目指すところは、
1.ポイント切り替えのディスプレイ表示
2.ポイント転換機のサウンド再生
です。

1.ポイント切り替えのディスプレイ表示
現在、Arduinoによる、ポイントの一括切り替えが実用化されつつありますが、
その時、「何番線に切り替えられたかがわかれば嬉しいよね」といった単純発想から
「それもArduinoで出来るんじゃない?」と勝手に妄想してしまいました。

2.ポイント転換機のサウンド再生
Arduinoによる、ポイントのスローアクション切り替えが実現した際に、
やはり、音が重要な要素ではないかと思います。
スローアクションでポイントが無音で切り替えられるのはなんとも寂しい。
で、要は、「切り替え時にサウンドを再生すれば、何となく楽しいのではないか?」との単純な発想です。

先日、長野の篠ノ井線信号所でのポイント切り替えを間近で見て、
「おお、やはりポイントの切り替え一つでも迫力あるんだなあ」と感じたのがキッカケです。

サウンドの再生についても、実際にArduinoによる再生実験をされている方がいましたので、
それを利用すれば、可能ではないかという目処があります。

というわけで、まずは、手元に必要なパーツのある、1.の実験をしました。

使用したのは、
・Arduino Uno、
・I2C接続小型LCDモジュール(8x2行)ピッチ変換モジュール
・Windows PC
・USBケーブル
・ブレッドボード・ジャンパーコード(オスーオス)
です。

なぜこのLCDモジュールを使ったかというと、深い理由はなく、
以前購入した、RaspberryPiの実験キットに入っていて、使っていなかったからです。

LCDモジュールは、ブレッドボードに刺して、Arduinoと接続します。
接続はケーブル4本だけでOKです。

20170805_161213

それから、USBケーブルで、PCとArduinoを接続しておきます。
このタイミングで接続するのが正しいかはよくわかりませんが、いずれは接続しないと使えません。
ちなみに、Arduinoの電源は、USBまたは、ACアダプタから給電します。

そして、arduinoのサイトから、Arduino IDEをダウンロードします。

https://www.arduino.cc/en/Main/Software

そのままボタンを押すとダウンロードする際に、「Contributeしろよ」と言われますので、
まずは、お試しなので、右側の「JUST DOWNLOAD」をクリックして、ダウンロードのみ行います。

ダウンロードした開発環境(IDE)を起動します。

使い始めるには、ちょっとしたセットアップが必要ですが、それは、他のサイトを参照してください。
要は、使うArduinoのタイプの設定とUSBのポート設定です。
特に、USBのポート設定が間違っていると、ソフトの書き込みが出来ませんので注意が必要です。

何故って、それが原因で書き込みに失敗したからです。(経験者は語る)

そして、IDEを使ってスケッチを書き込みます。
が、初めからは誰も何も書けませんよね。

まずは、サンプルをコンパイルして実行するというのをやりましょう。

私は、一応使い方は知っているはずなので、実験用のスケッチを実行しました。
実験用のスケッチも、自分でコーディングしたものではなく、ネット上に公開されているものを
ダウンロードして、実行してみただけです。

その結果が、こちら。

20170805_161321


20170805_161419

本当は、「hello world!」と表示していますが、横が短いので表示されていません。

それで、文字がスクロールするスケッチも試しました。

20170805_161424


20170805_163435

とりあえず、こんな感じで、LCDの実験は成功です。

なお、秋月で購入できるLCDモジュールには、16x2行もあり、こちらだと、2倍の表示が可能です。

ブログ村に参加しています。
下のバナーのクリックをお願いします。


にほんブログ村 鉄道ブログ 鉄道模型 車両加工へ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型 Nゲージへ
にほんブログ村

にほんブログ村 鉄道ブログ 鉄道模型へ
にほんブログ村