A's LabⅡ

アスラボと読みます。ロボトレースやマイクロマウスの大会に向けて、機体の構造設計・回路設計・基板設計・プログラミングを中心に行っています。趣味のパワーエレクトロニクス系では、テスラコイルやコイルガンなどを製作・評価・改善を繰り返しています。興味を持って頂ければ幸いです。アドバイスや感想などございましたらコメント欄にお願いします。

プログラミング

AVRマイコンの開発環境を整えよう

やっと忙しい日々から少しだけ解放されたHaidoです。

今回はAVRマイコンの開発環境を整えました。
IMG_20140816_222255 (2)
ライタは AVRISP mkIIを使っています。これ自体は去年から買ってあったのですが、うまいこと書き込めずにずーっとお蔵入りしてました。この間行われたものづくりコンテスト電子回路組立部門でC言語を必死に勉強したので、やっぱりその知識を捨てるのは勿体ない気がしますね。それで埃をかぶってたライタを取り出してきて開発環境を整えようと頑張ってみました。開発環境を整えるのは他のサイトを参照してください。

そうこうしてるうちにどんどん時間が奪われていくので金魚氏に相談してみることに。親切に教えてくださってありがとうございます。 でも結局書き込めなかった原因はもっと根本的な部分にあることが分かりました。新規プロジェクトの設定の選択ミスと言う情けない部分で動作しないと悩んでたのでした。


やっとマイコンの開発環境が整ったので更に知識を身に着けていきたいですね。
参考までに私の動作環境とサンプルプログラムの公開でもしておきましょうか。
OS:windows8.1
使用ソフト:AVRstudio バージョン6.2(8/16現在の最新版)
マイコン:ATmega328P,ATTINY13A

プログラムは動画に出てくる下ボードの2つのLEDが交互に点滅するプログラムを載せておきます。
上のランダムにLEDが止まるプログラムは動画に出てくるのでやりたい人はそれをみて理解してください。あまりブログをソースで埋め尽くすのは好きじゃないのでご協力を。欲しい人はコメント欄にでも書いてください。個別に対応します。

/*
 * GccApplication1.c
 *
 * Created: 2014/08/16 2:25:27
 *  Author: Haido
 */ 

/*
*【接続】
*B0にLED
*B1にLED
*【動作】
*LEDが0.5sで交互に点灯・消灯を繰り返す
*/

#include <avr/io.h>
#include <util/delay.h>

int main (void){
DDRB = 0xFF;  //ポートB出力
PORTB = 0x00;  //ポートB初期化
while (1){
PORTB = 0b000001;
_delay_ms(500);
PORTB = 0b000010;
_delay_ms(500);
}
return 0;
}

これは外部入力もないし単純で簡単な回路ですね。ライタの動作確認には持って来いのプログラムと言ってもいいでしょう。 

次はLCDに挑戦してみました。
BvOiFPLCMAEbzkQ
いい感じですね。ライブラリ使わずに全てプログラミングしてます。ポインタ使って入力も楽な仕様。

BvOk1F5CUAApSke
バックライトつけると結構いい感じになりました。1/8Wの抵抗を表面実装部分にはんだ付けするのにちょっと手こずりしたね。

BvUsg2-CEAEfyWm
更に7segの制御なのですが、ブレッドボードが小さすぎて接続できず諦めました。画像はただ光らせてるだけ。プリント基板の製作環境が整ったらこういった学習が手軽にできるボードも作りたいですね。これくらいは手配線でも大丈夫ですが。

その他サーボ等制御しましたが写真載せても地味なので省略します。こちらは割り込み処理を行う方式を使っているので色々なプログラムに組み込めそうです。

マイコンが使えるようになると電子工作の幅が思いっきり広がりますね。今までアナログ回路で面倒な回路を組んでいたのがマイコン一つでできちゃうものもあります。それにC言語の使い道はマイコンだけでなく、様々なところで通用する言語なのでやって損はありません。(大雑把な言い方にして逃げてる)

マイコンの進捗はこんな感じです。

【おまけ】
次回予告的な感じになるのかと。
現在プリント基板を自作する環境も整えています。現在届いているものは、転写に使う マット仕上げのA4コピー用紙・塩化第二鉄(腐食液)の2つです。この二つは両方とも送料手数料無料で合計700円程です。あとは生基板の到着を待つのみ。18日までお盆休みで、振り込みを確認したら発送するとのこと。それまでに基板のパターンを印刷しておきたいですね。月曜日学校行くのでその時に部室のレーザープリンター使って出力しちゃいましょう。またこれは一つの記事としてまとめるのでお待ちを。

switch ( natuyasumi )   default:ʅ(◔౪◔ ) ʃ  break;

・・・・・は?

natsuyasumi? なにそれスペシャルファンクションレジスタの初期化項目? 


void init ( void );
void main ( void )
{
int mode = 0, prcs = 0,  natsuyasumi = 0

while(1)
switch ( mode ) 
case 0:
if ( prcs = 0) {
natsuyasumi = ʅ(◔౪◔ ) ʃ
mode++;
}
break;
case 1:
if ( 1 == 1 ) {
printf("夏休みなんてねぇーからwww");
mode = 0;
}
break;
case 2
if ( natuyasumi = 1) {
printf("ლ( ❛ ◡ ❛ ლ)");
}
break;
default:
printf("(´・ω・`)");
break;
}
}
}

ほんとこんな現状なわけですよ。

case 1でmodeが0になった時点でcase 2まで行ってもくれない状態。行ったとしても1じゃないから実行されないんだよな。ヤレヤレ

どうして夏休みがないのか。
・WRO
・ものづくりコンテスト_電子回路組立部門
・日本学生科学賞
・大学に向けての色々
・文化祭でステージ発表

この5つがあるからだよ!
朝9時に学校に向かって夜の8時過ぎに家に帰ってくる。
これ平日よりもハードだからな・・・?w

家に帰ったらゆっくり過ごせるとかそんなことはない。今は学校でやるのはWROがメイン。パソコンでプログラム組んで只管ロボットに命令を与えてく。それを一日中。ものづくりコンテストの時間が取れないんだ。かといってどちらかだけ先に頑張ればいいということでもない。大会が偶然同じ日になってしまったのだ。WROはメンバー3人いるから任せられるんだけど、プログラム関係は一切できないとのことで何方も俺が頑張ってる状況。本番は俺は参加できないから光センサーの閾値とかの調整箇所だけ覚えてもらって会場に合わせるようにしてもらう。

ものづくりコンテストに関しては情報科の先生所に習いに行ってやっとマイコンで7segとかDCモータ、ステッピングモータなんかの制御ができるようになってきた。こちらの当日やることはマイコンの入力回路の配線図、設計、ユニバーサル基板にはんだ付けを行い、制御プログラムを標準のライブラリ以外参照せずにカタカタとプログラムを書いていかないといけない。それで点数化して順位を競う。福井県大会くらいは勝ち進みたいな。情報科の人たちが手怖くてもしかしたらってこともあるけどここまで書けるようになったから無駄なことではなかった。そう。これでいいんだ。

今日の部活の帰りにふと思ったけど、一日中部室でロボット弄って家帰ってもディスプレイに囲まれて作業する今の状態って、小学生くらいの時に夢見てたものが現実になっているのかもしれない。だが現実には期限や思い道理に行かないことが殆どでとてもこの状況を望んでいたわけではないけど形的には叶ってるなって。
BtujB5wCYAEXpNM

まあ、こういう忙しいの意外と好きだけどね。

MIDIインタラプタ製作

どうもこんにちは。最近電子工作ばかりしているHaidoです。

さて今回はMIDIインタラプタをつくりました。そもそもインタラプタとは何か。それから説明します。
インタラプタ、日本語に直訳すると”断続的な”などの言葉が当てはまります。テスラコイルでは、放電を断続的にする目的で使用されます。それにより、素子への負担を緩和したり、消費電力をおとしたり、放電にインパクトを与えたりすることができるわけです。勿論、インタラプタなしに信号の入力部にずっとHIを入力し続けても放電はします。

今回、そのインタラプタをMIDIデータで変調して矩形波の音源を製作しました。それにより、テスラコイルの放電で音楽を奏でることができるようになります。製作はAVRマイコンにプログラミングし、信号出力端子にNE555のワンショットトリガ回路を付けたものです。プログラムは金魚氏に頂きました。本当にありがとうございました。回路自体とても簡単なので3時間くらいで完成しました。しかし、MIDIを再生するDoimino側がいまいち分からず、もしかしたら回路が間違っているのかもしれないなどで2日悩み、それでも分からないので金魚氏に直接聞いてみることにしました。そしたらやっぱりDominoの設定がちょっと違ってました。設定し直すと呆気なく動作してくれました。

これ、動作したとき本当に感動するんですよ。金魚氏に感謝です。

因みに、このプログラムは結構前に金魚氏のブログからダウンロードさせていただいたものなのですが、今確認すると、もう公開をやめてしまったようです。 どうしても欲しい場合は金魚氏に直接お願いしてください。誰のことを言ってるのかわからない方はコメントいただければURLなどお教えします。(今面倒なだけw)
DSCN8459
私は配線図書かない人なので、まずは組んでみます。

DSCN8461
そしてケースに入るように基板をカット。

これがその品です。
IMG_20140324_220233

動画は撮ってません。ちゃんと全てケースに収めたらこの記事に追記するか新しい記事で書こうと思います。 

【おまけ】 
ヤフオクでアクリルの端材が10kg送料込みで2300円で売られていたので、それを落札してみたわけですよ。そしたら見てくださいこの量!!
Bj017exCEAIzqXW

半端ないですねw
IMG_20140329_010046

なぜアクリル板を買ったかというと、一番大きな理由は電子工作の作品をケースに収めたいという目的です。上と下2枚のアクリル板で基板を囲い、ボルトとナットで製作します。今まで作った作品が少しだけ格上げされる感覚ですね。

2つ目の目的はレールガンです。よく動画サイトなどで見るレールガンはプラズマアーマチャで、見た目は綺麗ですが威力が弱いというのが欠点でした。偶に小さいレールガンで、しかもプラズマアーマチャなのに高威力を出している人の大概は尾栓をしていて、サーマルガンの原理(プラズマ圧)で無理やりプロジェクタイルを加速させています。そこで、尾栓なしでどこまで効率を上げられるかの挑戦です。ヒントはソリッドアーマチャです。深夜のTwitterのTLで、ポンコツ氏とこそこそ話し合ってます。結構いいアイディア浮かんでるので、それを早く実行したいところです。

3つ目の用途はアクリルのリヒテンベルク図形オブジェの製作です。これは、検索掛けれもらえれば分かりますが、アクリルの中に放電を閉じ込めたような模様ができます。これは今後のお楽しみです。
 

次回予告
・レーザープリンター分解記事
・普通のインタラプタの製作記事
・ 前回のSSTC回路の追加基板についての記事
・1日でテスラコイル1台作るOne Day Tesla Coil(ODTC)製作記
・ちょっと変わった買い物記事
・初めてのEagle
・スピーカー高音質化

ちょっと上げてみたら書かないといけない記事溜まってますね。早く消費するようにします。ブログ1つ書くのにも結構時間かかってるんですよね。 
他のブログではネタがないだの言ってますが、こっちはネタがありやまって仕方ないです。更にまだまだ工作するのでネタも増えてくことでしょうし。 。。
Twitter プロフィール
今の出来事
非公開コメント

管理人へ直接コメントされたい方はこちらからお願いします。

名前
メール
本文
ギャラリー
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
  • 2017年春休みの進捗
最新コメント
訪問者数カウンター
  • 今日:
  • 昨日:
  • 累計:

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
  • ライブドアブログ