SSブログ

ユニコーンガンダム掲載 [模型誌掲載作品]

本日発売のModelGraphix誌 2020.02 No.423 へ、ユニコーンガンダムを掲載して頂きました^^
MG2020_02.jpg
今月は「電飾特集2020」ということで、電飾を様々なアプローチで活用した作例がてんこ盛りです^^
DORO☆OFFメンバー(全員じゃないけど)の対談も掲載して頂きました。
ボクはバカなので、言わなくても良いことまでヘラヘラしゃべってしまって、そのまま掲載されていてアセアセなのですが、メンバー全員がいつもの会話しているようなナチュラルな対談になっておりますので、ぜひご一読下さい。
作例はMasterGradeのユニコーンを製作させて頂きました^^
完成 赤 4.jpg
サイコフレームを透明化して、フルカラーLEDを組み込んでいます。
完成 グリーン 5.jpg
搭載したLEDは32個(^_^;)
1個に3色のLEDが入っているので、96個のLEDになります。
完成 ブルー2.jpg
これでもまだ光が届いていない部分があるので、また機会があればリベンジしたいところです。
全てのLEDは赤・緑・青の3色で、個別にON/OFFが可能です。
切替スイッチ.jpg
この3個のスイッチの組み合わせによって、7色の発光色に切り替えることが可能になります。
光の三原色.jpg
これは、光の三原色というもので、例えば赤と緑をONにすれば黄色に、緑と青ならシアンに、赤、緑、青の全てをONにすると白になる現象を応用したものです。
カラバリ.jpg
ユニコーンは、劇中では赤、緑、青の3色に発光しますが、ほかの色で発光させることも可能となります^^
今まで見たことの無いユニコーンガンダムを楽しむことができます(^^)/
詳しくは誌面でお楽しみ下さい
よろしくお願いします~

コメント(2) 

DFPlayerをPICで制御 [電飾しましょ]

【プロローグ】
多機能で安価なMP3プレーヤー、DFPlayer mini を使ってみました^^
今まで作品の効果音やセリフ等は、市販のMP3プレーヤーを分解して、操作スイッチをトランジスタ・スイッチでPICから操作していました。
人間の代わりにPICでボタンを操作する格好です。
それなりに動いてくれていましたが、展示会などではみなさんDFPlayerというMP3プレーヤーを使っていて、とても良いとのウワサを聞いていました。
ただ、ほとんどの方はArduinoで制御されていて、それもそのはず、ライブラリが公開されていて、それを組み込むだけで簡単に操作できるみたいです。
そこで、PICからも操作出来ないかと試してみたところ、アッサリ出来たので公開してみようと思います。
PICからMP3プレーヤーを制御したいと言う要望が、どれだけあるのか判りませんが、この記事がお役に立てれば幸いです。

【DFPlayer mini とは?】
さっそく、Amazonで購入してみました。
秋月電子通商でも取り扱っていますが、2019.12現在、1、050円です。
Amazonでは海外から発送されるショップもあり、そこから買うと2週間くらい掛かってしまいます。
ボクは5個セットで1,300円くらいで購入できましたし、2日後には届きましたので、購入する際は購入先にご注意下さいね。
ちなみに、1,300円で5個なので、1個260円です^^
本当に動くのか不安になる値段ですね。

DFPlayer mini は、とても小さなMP3プレーヤーです。
DFPlayermini 外観.jpg
曲はMicroSDカードに入れて使いますが、サイズはほぼSDカードスロットと同じですね^^
再生させたり停止させたり、次の曲にスキップしたり、ボリュームを上げたりするには、幾つか方法があります。
DFPlayer mini のピンアサインです。
PINアサイン.jpg
1 VCC 電源のプラスを接続します。今回は5Vで使用します。
2 RX シリアル通信の受信端子です。後程PICで制御させます。
3 TX シリアル通信の送信端子です。こちらもPICと繋ぎます。
4,5 DAC_R&L 別にアンプを繋ぐ場合の出力端子です
6 SPK2 なんと直接スピーカーを繋げます。3Wのアンプ内蔵です。
7 GND 電源のマイナスを繋ぎます。2つありますが、どちらも同じです。
8 SPK1 スピーカーのマイナス端子です。
9 IO1 マイコン無しで、直接スイッチで動作させる端子です。
10 GND 電源のマイナスを繋ぐ、もうひとつの端子です。
11 IO2 直接操作端子が、もうひとつあります。
12,13 ADKEY1&2 これもマイコン無しで操作できる端子ですが、
        抵抗値で機能を分けられるので、色々操作出来ます。
14,15 USB+- パソコンと接続したり、ほかのUSB機器用の端子です。
16 BUSY 曲の再生中を検知できる端子です。

今回は、2番と3番ピンを使って、シリアル通信でPICから制御しますが、スイッチを繋げばマイコン無しでも使える仕組みがあります。
その1 IO1&2
speaker2.png
データシートに参考回路が載っていますが、IO1をGNDに繋ぐスイッチを付けるだけで、SDカードの曲を順番に再生してくれます。
IO2なら前の曲になります。
長押しすればボリュームは変えられますが、ストップもポーズも出来ません。

その2ADKEY
adkey_control.png
ADKEY は2本ありますが、ここに抵抗を介してGNDへ繋ぐことで、抵抗値によって様々な機能が使えます。
抵抗が沢山必要になりますが、ちょっとしたMP3プレーヤーを作る事も可能ですね。

【PICとの接続】
さて、ここからが本題です^^
PICと接続してみましょう。
今回はPIC12F1822を使ってみますが、PICにはほぼシリアル通信機能が付いているので、基本的な使い方さえ覚えればどのPICでも使えると思います。

回路図です。
DFPlayer for PIC.PNG
回路図のDFPlayerは、丸い切り欠きがある方が上で、SDカードが刺さる方が下です。念のため^^
DFPlayerのTXとPICのRX,RXはPICのTXへ繋ぎます。
DFPlayerの送信はPICの受信へ、DFPlayerの受信はPICの送信へと、送受信の関係が逆になります。
これはベテランでも間違うことがありますので、注意して下さい^^
1kΩの抵抗が入っていますが、PICは5VでDFPlayerの通信端子だけ3Vの仕様のため、電圧を調整するためのものです。
後は電源とスピーカーを繋ぐだけですので、非常にスッキリした配線になりますね。
ブレッドボードに組んでみました。
DFPlayer ブレッドボード.jpg
DFPlayerのピンは太いので、ブレッドボードに挿すにはキツイです。
あまり奥まで差し込むと、ブレッドボードのピンソケットを痛めてしまいますので、程々にしましょう^^

SDカードに入れる曲は、曲名ではなく連番になります。
0001.mp3 0002.mp3 0003.mp3 ・・・
と、4桁の数字で書き込んでください。
フォルダを作る事も可能ですが、模型製作では連番で充分でしょう。

【MCCでのプログラム】
次にプログラムですが、MCC(MPLAB Code Configurator)を使う方法と使わない方法があります。
MCCとは、MPLAB X にプラグインとして追加できる、PICの持つ様々な機能を簡単に設定してくれる優れものです。
標準では入っていないので、MicriChip社のHPからDownLoadして下さい。
組み込み方法は詳しいサイトがたくさんありますので割愛します。
ただ、MPLAB X のバージョンが古いとインストールできない場合があるらしいです。
これで出力端子やタイマーなどPICの持つ機能がグラフィカルにセット出来ます。
もちろんシリアル通信の設定もしてくれるのですが、基本的に機能の意味を知らないと何を設定して良いのか判りません。
余計なインクルードファイルも追加されて若干ですがメモリも消費しますので、MCCを使う方法はボクからはあまりお勧めしません。
ただ、実験的に使うには便利なプラグインですので、一応MCCでのUSARTの設定を掲載しておきます。
MCC設定.jpg
この設定でGenereteしたmain.cへ、以下のプログラムを追記します。
MCCにより、1バイト送信するEUSART_Write()関数が使えるようになっています。
送信するピンや、通信速度も設定済みなので、いとも簡単にシリアル通信が出来ちゃいます。
ボリュームを15に設定して、2曲目をセット、5秒間隔で再生・停止を繰り返します。
PROG.JPG

送信するデータは、8個が一組です。
7E FF 06 command para1 para2 para3 EF で1セットになります。
command が機能で、para1~3がパラメータ値になります。
例えば、ボリュームを15にセットするなら、
7E FF 06 06 00 00 1F EF
7E FF 06 の後に、ボリューム機能の06 、設定値の 00 00 1F(10進数で15)と続き、EF で終わります。
再生開始なら、
7E FF 06 0D 00 00 00 EF
0Dが再生開始機能で、設定値は無いので00です。
これらのコマンドは、DFPlayerのデータシートに記載されています。
こちらからダウンロードして下さい。
http://www.flyrontech.com/uploadfile/download/2016441645109830.pdf
6~7ページに記載されています。
コマンド.jpg

【MCCを使わないプログラム】
次に、MCCを使わない方法です。
こちらは設定をすべてプログラムしなくてはなりませんが、何を設定しているのか把握できます。
回路はそのままで使用できます。
今度は普通にプロジェクトを作成して、「電飾しましょっ2 PIC編」のPIC12F1822のテンプレートをコピペしてください。
そこへ以下のプログラムを打ち込んで下さい。
PORG 1.jpg
PROG 2.jpg
すみません。プログラムは画像ファイルで、コピペは出来ません。

#defaine _XTALFREQ 8000000
 動作周波数を8MHzに設定

void DFP(char command,char par){
 コマンドと設定値をDFPlayerへ送信する関数を作りました。
 TXIFは送信可能かを判断するもので、送信可能なら1バイトずつ送信しています。

OSCCON 動作クロックは内部発信で8MHz
ANSELA アナログ入力に設定するピンの指定
TRISA デジタル入力にするピンの指定
    今回RXにしたRA5は、入力にしなくてはならないはずですが、自動的に
    入力になっているみたいです
PORTA 出力を全て0に

ここからがシリアル通信の設定です。
RXDTSEL PIC12F1822は、RX,TXの端子を2箇所から選択できます。
TXCKSEL        今回はRX=RA5 TX=RA4 を選択しました。
TXSTA 送信の設定レジスタです。非同期、8Bit、パリティ無し
RCSTA 受信の設定レジスタです。詳しくは後述するサイトで
SPBRG 通信速度(ボーレート)を設定します。

設定するのはこれだけです。
あとはコマンドと設定値を引数にしてDFP()関数をコールするだけです。
プログラムは、ボリュームを20にセット、2曲目を指定してから、次の曲を10秒再生して2秒停止する を繰り返します。

ここで難解なのは、TXSTA、RCSTA、SPBRG ですね^^
TXSTAとRCSTAはシリアル通信ではスタンダードな設定値で、このまま丸写しでほぼ問題ないと思います。
設定を変えたい、中身を知りたいという場合には、こちらのサイトがとても詳しいです。
マイコンの実験:PIC16F628A-12F1822 USART実験(1-2)
http://zattouka.net/GarageHouse/micon/USART/USART.htm
※失礼ながら、無断でリンクを記載しております。問題がある場合はご指摘下さい

SPBRGはボーレートの設定で、使用するPICのデータシートから設定値を決めます。
今回は非同期(SYNC=0)、高速モード(BRGH=1)、ボーレートは8Bit(BRG16=0)です。
PIC12F1822の場合は、データシートの300ページにある表から
BR設定表.jpg
この表から51と言う数値を設定しました。
ちなみに、表が無くても計算で値を出すことも可能です。
今回の場合は
( Fosc ÷ 通信速度 ÷ 16 ) - 1
(8000000 ÷ 9600 ÷ 16 ) - 1
= 51.08 = 51
という計算でも求められます。

これらの設定は、シリアル通信がどのように行われているのか、細部まで詳しく理解していないと設定出来ません。
今回設定した値は標準的なもので、大抵の通信はこの設定で行けるハズですが、使用する機器によっては、もっと高速なボーレートだったり、チェックサムが必要だったりする場合もありますので、その場合は自分で設定内容を調べなくてはならなくなります。
簡単に設定できるMCCを使って、上手く通信できるか試してみて、設定内容が判ったらMCCを使わないでプログラムする といった使い方がベストかも知れません。
とりあえず、DFPlayerはこの設定で動きますから、まずは動かして楽しみましょう^^

最後にオマケ
コマンドの一覧表を掲載しておきます。
コマンド表.jpg
自分でも参照しやすい様に編集したものです。

【最後に】
DFPlayer mini は、安価で小型であるにも関わらず、アンプ内蔵で音質も良く、たった数行のコードで自在にコントロールできるスグレモノです^^
この記事でPICからサウンドを自在にコントロール出来る様になって頂けたら幸いです。

コメント(27) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。