2015-11-21 Sat
現役だったころ一時、音楽の編集のソフトを購入して、MIDIの環境をPCに作ったことがありました。
ソフトは、結構な値段がしたように記憶しています。
ひょんなことから、楽譜から曲を演奏してみたくなり、フリー
のソフトを探しました。
今は、いいソフトがあり、簡単に楽譜から演奏ができてしまいま
す。DLしたのは、MuseScore というフリーのソフトです。以下
が楽譜入力の画面です。
フォギーマウンテンブレークダウンというバンジョ-のそれこそ
ギターで言ったら「禁じられた遊び」に匹敵するくらいの曲をいれ
てみました。MID形式の出力もできますので、このブログに
貼り付けてみました。
クイックタイムのインストールが必要ですが、下記の▶のプレイ
ボタンを押すと、その曲が聴けます。
2015-11-19 Thu
二組必要だったので、片方は、5V仕様、片方は、3.3V~5Vででも使えるように作りました。
今回は、配線に、ETFE電線(ジュンフロン線)を使いました。
以前、ポリウレタン導線を購入して使っていましたが、
これよりも使い勝手はいいように思います。
半田付け部分の皮膜をストリッパーでいちいちはがして
いましたが、なれると、半田ごてをあてると縮むそうです
ので、時間の短縮になると思います。
CNCで基板を作成すべく、ソフトの勉強を始めましたが、
中断してます。
2015-11-18 Wed
諸兄のHPに載っていたローコストLCDシリアル通信モニター(PIC16F1823)を作成しました。
USARTのボーレート設定がタクトスイッチでできるのが便利
です。
プログラム等は、全部、諸兄の作られた物を使わせていただき
ました。
もう一つPICをのせて、データー処理にとおもいましたが、
今回は、やめました。
諸兄のプログラムを見てみると、ボーレートの設定をEPROM
に書き込んで、プログラムからリセットすることで、設定をかえ
ているようでした。
いままで、EPROMは使ったことないので、こんな使い方もで
きるんだなと思いました。
また、リセットするのに、
asm("RESET")
というインラインアセンブラーのコードを使ってるようです。
それにしても、やはりすごいです。このような知識、どうやって
獲得されたんでしょうね。
2015-11-17 Tue
NETサーフィンをしていると「初めてのPIC」というHPが、目にとまりました。
そこで紹介されている「16F1455(16F1459)」というPIC
が目にとまりました。
スペックを見ると、クロックが48Mhzに設定でき、
2.3v~5.5vの幅広い電圧で動作できるとのありました。
早速衝動買いをしてしまいました。
○月や○ルツ等では、取り扱いがなく、「○S」という初めて
の会社での購入になりました。
届いたパッケージは、会社独自のおしゃれなものです。
中身は、HDD等の包装に使われている素材の袋にパッケージ
されてました。
開けてみると、PICは、静電気防止のスポンジ?ではなく、
一つ一つプラスティックのケースに入っていました。
感想としては、ICの取り扱いになれた?会社なのかなと
おもいました。
この「○S」という会社は、PICの検索をすると、必ずといって
いいほど引っかかる会社でした。なんどか、HPは見て存在は
知っていたのですが、どんな会社か分からず、利用していません
でした。
在庫のしなものばかりではなく、海外からも取り寄せ?で
しなものを購入できるようです。
2015-11-11 Wed
昨日コーディングしたリングバッファーを使ったプログラムの検証が終わりました。
ほぼ満足のいく結果で、データーの取りこぼしもほとんどなく
なりました。
今回、リングバッファーに使ったメモリーは、256バイトで、
これだけで、メモリーの74%を使ってしまいます。
でも、効果、絶大ですね。パルスの生成に時間がかかる
ので、その時間差を吸収してくれます。MPG1回転で、
100パルスですから、2回半程度の回転に対応できると
思います。
今回は、大きなはまりどころもなく、すんなりでした。
main.c
ざっと、ゴミを取り除いたプログラムです。
例によって、「uart.c」と「uart.h」は諸兄のものをそのまま
使わせていただいてます。
LCDのデバックモニターを作成予定ですが、ついでに、
I2C接続のLCDもあれこれいじってみようと思います。
本日、LCDの部品が到着しました。
2015-11-10 Tue
どこでデータが欠落するのか、いろいろ調べようと思ってます。そのために、LCDデバックモニターを作って、みようと思
います。部品を注文しましたので、届くのをまちます。
デバッグモニターの制作と平行して、データー受信を
リングバッファーを使ったプログラムに変更しみようと
思います。
当初は、リングバッファーを使ったプログラムにする予定で
したが、リングバッファーの理解がいまいちで、コーデング
できませんでした。その一番の原因は、構造体とポインタの
理解ができてないことでした。
ネットには、リングバッファーを使ったプログラムが沢山ある
のですが、そのほとんどが、構造体とポインタという、私が
一番苦手な手法を使ってありました。
いろいろあさっていると、構造体とポンタを使わないプログラム
を使って解説しているHPを見つけました。
Elementary data structures - Queue
このHPでやっと、リングバッファーの仕組みが理解で
きました。
また、このプログラムを組むにあたって、割り算のあまりを
求める、計算をしなければなりません。この計算に、結構
な時間がかかります。一般的には、計算の時間を短縮す
るために2のN乗の数を使うそうです。2のN乗の数を使う
ことで、割り算のあまりを出す計算を、X & (N-1)とする
ことで可能にできるそうです。これで、飛躍的に計算を早く
できると書いてあるHPにも出会ました。この2のN乗の大き
さをバッファーの大きさにするそうで、計算時間の短縮がで
きます。
この & を使った計算方法が、
%(剰余)の最適化について
というHPに分かり易く書いてありました。
ということで、リングバッファーを使ったプログラムを
コーデングしていきます。
2015-11-08 Sun
16F1827への移植がほぼ終わったので、有線でのMPGと
ワイヤレスのMPGの動作について、テストしました。
Multi Step-Cycle Jog Step1.00の設定で
100パルス(MPG1回転)をSS経由でMachを動かして
ました。
ワイヤレスMPG ゆっくり回転 97.00
早めに回転 64.00
有線 MPG ゆっくり回転 100.00
早めに回転 100.00
というような結果で、ワイヤレスの方は、早く回転すると、
4割ほど、パルスが欠落するようです。
今回生成したA相とB相のパルスは、振幅を少し広めに
とりました。この振幅をもうちょっと狭くすると、応答もよく
なるような気がします。
送信と受信側で、送受信のデータの個数を計測してみ
ようと思います。
TOP PAGE △