2014年05月

    Arduino 12日目 高電圧シリアルプログラミングボードを作ってみる4-改善

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    前回制作したATmega8/48/88/168/328Pのフューズリセッタ用のシールドに問題があったので改善しました。




    IMG_3640_2.jpg

    赤く囲った場所が危なそうな場所です。

    半田がのりやすそうだと思い安易に両面基板を買ったことがあだとなった気がします。
    右と左下は配線をずらし1つのランドに1つの配線になるよう調整しました。

    左上は隙がなく無理だと判断したので紙を挟みました。

    s-IMG_3677.jpg

    かっこ悪くなってしまいましたがショートするよりはよっぽどいいですね。

    次回基板を作るときには気を付けて配線しようと思います。


    スポンサーサイト

    Arduino 11日目 高電圧シリアルプログラミングボードを作ってみる3

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    前回の記事でブレッドボードに作成した回路をユニバーサル基板に作ってみました。

    表側
    12Vを入力するVINとGNDにピンソケットをつけてみました。

    s-IMG_3642.jpg


    裏側

    s-IMG_3643.jpg


    Arduino Uno R3の7と8番の間が2.54mmではないので8-13番はプラスチックを外し、はんだ付けしました。

    s-IMG_3641.jpg


    Unoに取り付けてみたところです。
    ぴったり取り付けられるので抜くときにUnoのソケットを傷つけてしまわないか若干心配になります。

    s-IMG_3640.jpg

    Arduino 10日目 高電圧シリアルプログラミングボードを作ってみる2

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    前回に引き続きフューズリセッタを作っていきます。

    Arduino-based AVR High Voltage Programmer
    こちらの回路は非常に複雑でうまく動作しないとtwitterで嘆いていたところ、まりすさんが助けてくださいました。




    使う抵抗もワイヤーも少なく、何よりグラフィカルな回路図があり非常にわかりやすいです。
    また、シリアルモニタで対話しつつの操作が可能ということで動作状況を把握できるので安心感が全然違います。

    ということで、作ってみましたが、見事に動きません。
    スケッチをアップロード後、12V電源をつなぎ「D」を入力するも型を認識せず・・・何度か回路図を見直すも間違いを探しきれ
    ませんでした。
    そうこうしている間にCOM3(Arduino UnoをつないでいるUSBポート)が認識されなくなり・・・PC再起動で再認識しました。

    ほっと一息ついた後に、回路をすべて引っぺがして、一から作り直してみたところうまく動作しました。

    s-IMG_3612.jpg


    こちらがシリアルモニタの様子です。
    twi_avr140522.png

    フューズリセッタした後、もう何度作ったのかわからないUno経由で書き込みを行う回路で動作確認をしました。

    見事書き込みに成功していました。

    ユニバーサル基板と配線素材とピンヘッダをいくらか購入したのでユニバーサル基板に書き込み用の回路を作っておこうかと思います。

    Arduino 9日目 高電圧シリアルプログラミングボードを作ってみる

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    トランジスタやブレッドボードなどを追加購入したので先日ブートローダ書き込みに失敗し動かなくなったATmega328Pのフューズを再設定するために高電圧シリアルプログラミングボードを作ってみました。

    参考にしたサイトはこちら
    Arduino-based AVR High Voltage Programmer

    回路図とにらめっこしながらブレッドボードに回路を作ってみました。

    s-IMG_3593.jpg

    何度か見直して間違っている場所は直したつもりだが・・・さし直ししたくないくらいコードが多くてスパゲッティーです。

    上に書いた参考にしたサイトの操作手順通り何度も試したのだがうまくいかなない・・・。

    ちなみに、参考にしたサイトの配布しているスケッチはATmega8/48/88/168に対応したもので、ATmega328P用の設定としてスケッチの次の部分を変更した
    #define HFUSE 0xDF → #define HFUSE 0xD9

    症状としては

    1.スケッチをUnoにアップロード
    2.LEDが点灯
    3.12V電源を供給する
    4.ATmega328Pをソケットに差し込む
    5.スイッチを入れる
    6.LEDの点滅が止まらない←

    という感じである。




    アドバイスをいただいたので試してみたところ、エラー番号が変わったがやはりブートローダ書き込みに失敗したマイコンへのスケッチアップロードは失敗してしまう。

    ちなみに、エラーは
    「avrdude: usbdev_open(): did not find any USB device "usb"」

    また、手順を変えたわけではないのだが、違うエラーが出ることも
    「avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.


    ##########

    いろいろと参考にしたサイトを載せておきます。

    Arduino-based AVR High Voltage Programmer
    今回作成したATmega8/48/88/168(+328P)用のFuseリセッタ

    ヒューズリセッターを作った
    今回作成したFuseリセッタを作成・使用してらっしゃる方のブログ

    mega8・48・88・168ヒューズリセッターの製作
    今回作成したFuseリセッタを作成・使用してらっしゃる方のブログ


    AVR(ATtiny2313とATmega328P)のFuseリセッタ
    日本人の作成したAVR(ATtiny2313とATmega328P)の両用/兼用できるFuseリセッタ

    HV Rescue Shield 2
    ATmega48/88/168/328
    ATtiny2313
    ATtiny25/45/85 , ATtiny13A
    のFuseリセッタシールド(だと思う)
    プリント基板のみの販売もあるようで$6で安い、ほしい。

    ATmega328Pのfuse bits設定メモ

    ATmega328Pのfuse

    Arduino 8日目 ユニバーサル基板にフルカラーLED発光回路を作ってみる1

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    当初の「ジャグリングの道具に発光基板を取り付ける」という目的をついに達成できそうです。

    Arduino 6日目 ユニバーサル基盤への組み込みを考える

    上の記事で書いた、

    full_color_LED_ATmega168P_1405110436基板

    この図面に似せて、ユニバーサル基板へ部品を配置していきます。

    s-IMG_3532.jpg

    ボタン電池の固定は断熱材さんのアイデアを使わせてもらい、L字ピンで固定しました。







    基板の大きさに対して部品が多いので電池は2つになってしまいました。

    ユニバーサル基板を17*17穴に切り取り、部品配置がわかるようにしるしをつけました。

    s-IMG_3533.jpg

    ここで、にしのさんからお叱りをいただきました。




    場所がないですというと、アイデアをくださいました。




    チップLEDを買ってみて、小さすぎて自分には使えないと思ったのでチップ抵抗は厳しいですね・・・。


    何とかしてLED1つにつき抵抗を3つかませる配置を考えました。

    s-IMG_3535.jpg


    これはディアボロに取り付ける予定ですので、中央にディアボロの軸が通るだけの穴をあけます。
    穴はハンドドリルで4mm程度あけたのち、プラスドライバーで広げました。
    (使用したドリルはこちら proxxon No.28515 ミニルーターMM50

    s-IMG_3537.jpg

    少し大きくあけすぎましたがきれいに穴が開きました。


    スイッチを配置してみました。

    s-IMG_3538.jpg

    ボタン電池の入れ替えのためにスイッチは一穴ずつ端側に寄せました。


    あとは、裏側で配線するだけです・・・が、これが大変です。なにぶん、小さな基板にいろいろな部品を組み込んでいるのでスパゲッティー配線になることは間違いないでしょう。
    初心者にはなかなか厳しい細かい配線です。

    s-IMG_3583.jpg

    オレンジ(茶?)色の線以外はスズ導線なので意図しないところがつながっていないかなどと、とても心配になります。
    特に細かいところでは1mm以下の隙間で配線しているところもあり、つながっていないか判定するために虫眼鏡がほしくなりました。
    これだけ狭いと基板の変形でくっついてしまいそうです。

    線をまたいでの配線は少し厄介なので、使いやすそうな配線素材を追加購入してから続きを作ることにしました。

    出来上がるのが楽しみです。

    試作一号なので出来はあまり期待していないですが、やっぱり動いたらうれしいなと期待しています。

    Arduino 7日目 MPU-6050 使用 3軸ジャイロスコープ・3軸加速度センサー モジュールを使ってみる

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    前回の記事から若干日があきましたが、まだ電子工作続けてます。

    電子工作を始めるに当たり結構買い込んだと思っていたものの、始めてみると実はあれやこれや足りなかったので追加で買い足したものの中に加速度センサというものがありました。

    これが今日届いたので少し実験してみました。

    自分が実験に用いたものは「MPU-6050 使用 3軸ジャイロスコープ・3軸加速度センサー モジュール」というもので、購入元はAmazonです。
    この商品はかなり流動的に価格変動しているようなので見つけてすぐ買うよりも安い時を見定めてみるといいかも(誤差)
    自分は単価470円で5つ買いました。直後調べたところ580円で13個の在庫(販売元が変わっていた)になっていました。

    買ってから気が付きましたが、秋月電子で3軸加速度センサモジュールが単価450円で売られていました。加速度センサだけがほしい場合はこちらでもいいですね。
    6軸で単価470円なら損はしていない気がします。

    IMG_3511.jpg

    一つずつ黒っぽい袋に入っていてピン付きです。

    さっそくブレッドボードにさしてみましょう。

    IMG_3512.jpg

    配線はこちらを参考にしました。(A4,5が逆になっていたようなのでこの後刺しなおした)

    MPU-6050三軸加速度三軸ジャイロセンサーモジュール

    先ほどの参考ページまたはhttps://github.com/jrowberg/i2cdevlibこのサイトの右下の「Download ZIP」からダウンロードしたデータの中にあるMPU6050フォルダとI2CdevフォルダをArduinoのlibrariesフォルダに入れる。

    Arduino IEDで
    ファイル->スケッチ例->MPU6050->Examples->MPU6050_raw
    を読み込む。

    実行し、シリアルモニタを表示する。(右下を38400baudに設定)

    ひたすら並ぶ

    a/g: 0 0 0 0 0 0
    a/g: 0 0 0 0 0 0
    a/g: 0 0 0 0 0 0
    a/g: 0 0 0 0 0 0

    繰り返されるこの文字列・・・モジュール壊れとるんとちゃうんか。

    いろいろコードを見直す、配線も見直す。

    参考ページをいろいろとめぐる、ほかのサイトからソースをダウンロードしてアップロードしてみる。

    しかし直らないのでふて寝・・・

    ここで思い出したのですが、このモジュールは電源が来ていると表面に設置された赤色のLEDが点灯します。
    しかし、ブレッドボードに設置したモジュールは明らかに点灯していません。
    もしかして・・・配線がつながっていない?

    IMG_3513.jpg

    きちんとLEDが点灯しています、これ傾けるとショートしそうなので全くおすすめできないですね・・・やむを得ずの策でこうなりました。
    (ピンの代わりにブレッドボードにワイヤーでさすとよかったのかな?これも接続が安定しなかったが)

    再びシリアルモニタを覗いてみるとそこには

    a/g: -820 -16108 4832 -1812 834 -198
    a/g: -1204 -16388 4232 -1676 790 -210
    a/g: -1184 -16396 4396 -1814 666 -161
    a/g: -880 -16268 4544 -1865 1107 -228

    素敵!

    aX,aY,aZ,gX,gY,gZの値なのかな?よくわからないけど全部0より素敵!

    3軸加速度センサで傾斜角度を測定してみます

    予測としてはこういうわかりやすい出力をしてくれる予定だったのですが、この生データをどうにかしないといけないみたいですね。

    とりあえず値が出たので今日はここまで。

    Arduino 6日目 ユニバーサル基盤への組み込みを考える

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    5日目の記事に書いたPWMが非同期になる問題はいろいろ調べたり、聞いたりした結果簡単には解決しないことが分かったのでとりあえずは放置になりそうです。




    クロック変更でも解決しないようです。

    対策としては







    参考
    定電流ダイオード(CRD) その1 基本


    そしてほかの疑問も・・・




    ##########

    解決しませんでしたが、調べたときに見つけた有用そうな情報をまとめておきます。

    ArduinoビギナーのためのLED表示制御入門(解説書)
    ビギナー向けのLED制御入門のArduinoシールド解説書がPDF形式で公開されています。
    この解説書に対応したシールドを使用しての実験が書かれていますが、シールドがなくとも自前でパーツを用意すれば実験可能であることに加え、非常に丁寧でわかりやすく知りたいあれこれが書かれています。

    14. 8ビット タイマー/カウンター0 とPWM機能
    17. 8ビット タイマー/カウンター2 PWM機能と非同期動作
    あまり読んでいませんが、上の解説書では書かれていない応用(高速PWMモード)など書かれているようです。

    AVRのPWM波形生成機能を使う

    DAコンバータ MCP4922を利用しD/A変換を行う

    ロボ部の説明書
    C言語ではないのでとっつきづらいですが、PWMについて書かれている箇所があります。

    連載(10)Arduinoで何でも制御 サンプル・スケッチを動かす(4)
    時間による制御が書かれています。

    ##########

    本題のユニバーサル基盤への組み込みです。

    BnSnr4LCYAINecS.png

    この回路を最大で17*17の大きさに納めなければならないと考えると・・・できるんですか?

    いきなり基盤にはんだ付けは怖いのでCADのようなものを使ってイメージをつかんでみました。

    full_color_LED_ATmega168P_1405110436基板
    (ボタン電池マークがなかったのでコンデンサマークで代用、中央はディアボロの軸を通すためのドリル穴)

    つかめませんでした。

    ぐちゃぐちゃで謎ですね。

    赤、オレンジが表
    青、緑が裏

    の配線になっている予定です。

    ボタン電池の固定をどうしたらいいのでしょうか。

    参考
    ユニバーサル基板に挑戦

    ##########

    おまけの失敗動画まとめ

    問題:PWMが非同期で出力される(正しい表現ではないかもしれない)

    流れ
    ATmega168P(8MHz):非同期に点灯する

    Arduino Uno R3(16MHz):同期に点灯する

    ATmega328P(8MHz):非同期に点灯する

    結果:解決せず
    Unoの基盤の中でPWMを同期にするよう何かしくみがあるのか?










    Arduino 5日目 ATmega168PによるフルカラーLED点灯実験2(Unoによる点灯実験追記)

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    4日目記事で点滅の問題が解決したところで、次はまた違う問題が発生しました。

    同じタイミングで色を切り替えているはずの2つのフルカラーLEDが違う色の変化をしています・・・。(2個並列接続で4つ点灯)

    表現しづらいので動画で見てもらうとわかりやすいと思います。



    ちなみに、回路は

    ATmega168P02.jpg

    このようになっていて、

    11.12.13(D5.6.7)ピンは①左のLEDへ
    15.16.17(D9.10.11)ピンは②右のLEDへ

    接続しています。

    この追いかける現象の面白いところは、常に①(もしくは②)が②(もしくは①)を追いかけているわけではないというところだと思います。

    基本的に色の変化は

    赤色→黄色→緑色→水色→青色→紫色

    と変化するようにプログラムしています。
    (使用したプログラムは記事最下部)

    ①の色と②の色の変化を見える分に順を追って書いてみます。

    ①赤色→黄色→緑色→水色→青色→→→紫色→赤色→→

    ②赤色→緑色→→水色→→→青色→紫色→赤色

    大体上のような感じで変化しているように見えました。(直視しすぎて目に悪そう・・・)

    ②が紫色まで点灯している間①は先に紫色から赤色に変化し、赤色で一度色の追いかけっこはリセットされるようでした。

    ##########

    ---追記---

    Arduino Uno R3に同じスケッチを書き込み、実験してみました。



    きちんと同期で色が変化しています。

    Arduino Uno R3は16MHz、ATmega168Pは8MHzで動いているからだろうか?違うところがそれくらいしか見つけられませんでした。


    ---追記---

    Adruino Uno R3搭載のATmega328Pでも同じスケッチで実験してみた。



    結果はATmega168Pと変わらず非同期の点灯になった。
    ちなみに、ブートローダ書き込みを行い8MHzに変えているが、水晶発振子もないのに16MHz書き込めるかなと実験してみたところATmega328Pが一つ文鎮になりました。
    高電圧パラレル方式ライタ貸してください。

    ##########

    参考
    RGB3色フルカラーLEDの色を段々に変化点灯させます

    // ATmega186P フルカラーLED実験02

    //②LED右
    const int LED_R1 = 5;
    const int LED_G1 = 6;
    const int LED_B1 = 7;
    //①LED左
    const int LED_R2 = 9;
    const int LED_G2 = 10;
    const int LED_B2 = 11;
    //ボタン
    //const int BUTTON1 = 0;

    void setup(){

    }

    void loop(){
    int H ;
    int R , G , B ;

    /* HSVのH値を0-360で回します */
    for (H=0 ; H<=360 ; H+=10) {
    /* HSVのH値を各LEDのアナログ出力値(0-255)に変換する処理 */
    if (H <= 120) {
    /* H値(0-120) 赤-黄-緑 */
    R = map(H,0,120,255,0) ; // 赤LED R←→G
    G = map(H,0,120,0,255) ; // 緑LED G←→R
    B = 0 ;
    } else if (H <= 240) {
    /* H値(120-240) 緑-水色-青 */
    G = map(H,120,240,255,0) ; // 緑LED G←→B
    B = map(H,120,240,0,255) ; // 青LED B←→G
    R = 0 ;
    } else {
    /* H値(240-360) 青-紫-赤 */
    B = map(H,240,360,255,0) ; // 青LED B←→R
    R = map(H,240,360,0,255) ; // 青LED R←→B
    G= 0 ;
    }
    /* RGBLEDに出力する処理 */
    analogWrite(LED_R1,R) ;
    analogWrite(LED_R2,R) ;

    analogWrite(LED_G1,G) ;
    analogWrite(LED_G2,G) ;

    analogWrite(LED_B1,B) ;
    analogWrite(LED_B2,B) ;
    delay(400) ;
    }

    }

    Arduino 4日目 ATmega168PによるフルカラーLED点灯実験

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    3日目の記事でATtiny13Aを使っていましたが、容量の問題とPWMの使えるピンが少ないという問題を解決するためにATmega168Pを使うことにしました。

    なお、ATtiny13Aの容量が足りない問題に関しては、




    ATtiny13A用のオプションファイルを公開してくださっている方がいますので、こちらを利用すると容量の削減ができるようです。3日目の記事で書いたソースをコンパイルしていただいた結果、1018バイトから474バイトと半分以下になりました。

    ##########

    ATmega168Pを使ってみる

    Arduino Uno R3からマイコンへの書き込み回路は前回紹介したページを参考にするとわかりやすいと思います。
    一応リンクを張っておきます。
    Arduino IDEでATtiny他の開発(Arduino-ISP編)

    基本的にはATtiny13A書き込み時と同じですが、マイコンボードをATtiny13AからATmega168Pに変更します。


    点灯実験開始


    動画タイトルにも書いていますが、実験は失敗しました。
    意図した動作は、フルカラーLEDが赤から紫までスムーズに色を変えていく点灯パターンでしたが、動画で確認できる通り、複数色を点灯した場合交互に点灯してしまいました。
    抵抗の問題か?LEDが壊れているのか?といろいろと試しましたがどれも効果的ではありませんでした。

    解決方法は

    ヒューズビットを設定してやる




    Arduino IDEでATtiny他の開発(Arduino-ISP編)を参考にしている場合は




    参考ページ中ほどにあります


    ATtiny2313を内部クロック8MHzにする
    初期状態のATtiny2313は内部クロック1MHzと遅いのでヒューズビットを書き換えて内部クロック8MHzで動作させます。 (LoFuse=E4,HiFuse=DF)

    Arduino IDEのメニュー[ツール]–>[ブートローダを書込む]と選択します。
    この操作でチップの消去とヒューズビットの設定が行われます。

    表2のスケッチをアップロードしてLEDが1秒点灯1秒消灯を繰り返せば内部クロック8MHzで動作しています。


    と書かれているように、ブートローダの書き込みを行いヒューズビットを書き換えます。

    ##########

    このブートローダを書き込む手順をATtiny13Aでは実行していませんでした、なぜ実行していなかったのかというと

    1. 実行しなくともATmega168Pほどあらからまに意図しない点灯をしていなかった
    2. ヒューズビットの書き込みに失敗するとArduino Unoからは修正できなくなり(正しくはしづらい)、また正常に機能しなくなる

    上の2点があったためです。

    では、なぜ1のような状況が起こったかということですが、




    各マイコンの内部クロック既定値の違いだったようです。

    先ほどのブートローダを書き込む手順をATmega168Pに行ったところ1MHzから8MHzにクロックが変化し、フルカラーLEDが滑らかに点灯するようになりました。

    ##########

    AVRマイコンのブートローダ書き換えについて少し調べました。

    (AVR編第4回)AVRとArduinoについて,調べたことをまとめておこう

    AVRマイコンのブートローダ書き込み方法は主に3種類あり、

    1. ISPという方法で書き込む安価なライタがある.
    2. 高電圧パラレル方式というので書き込む高価なライタがある. (AVR Dragonはこっち)
    3. ちょっと特別な方法として,Arduinoのブートローダーで書き込むという方法も ある.


    自分が使っている方法は1番・・・?3番・・・?

    3番が一番お手軽のように書かれていましたが、ブートローダを書きつぶしてしまった場合は復旧に1,2番が必要となる。
    1番はブートローダの復旧ができるが、フューズビットを誤って書き換えた場合復旧には2番が必要になる。
    2番は一番万能のようだ。

    高電圧パラレル方式の書き込みには専用のライタ(AVR Dragon)や自作が必要になるらしいです。
    しかし、これもArduinoを利用して比較的簡単に作成できるようである。

    AVRヒューズリセッタ

    Arduinoを利用しない回路の設計方法は

    AVR - ATmega48,88,168リセッター

    方法が少し違うようだが下のサイトにはエラーの対処法が載っている、参考になるかもしれない。
    Arduino ISPを使ってATmega8/168Pにbootloaderを書き込む
    Arduino Unoでブートローダを書き込む

    Arduino 3日目 ArduinoUnoR3でAVRマイコンに書き込む

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    日記は下のほうへ、本題だけ上に書きます。

    ##########

    AVRISP mkIIやPololu USB AVR Programmerなどのライタを使わず、Arduino Uno R3のみでAVRへ書き込みを行う方法を調べ、成功しましたのでまとめておきます。

    基本的に
    Arduino IDEでATtiny他の開発(Arduino-ISP編)
    このサイトを参考にして順を追って進めていくとできると思います。

    回路図も丁寧に色つきの図で書かれているので回路図が読めない初心者にもやさしいです。


    書き込み対象がATmegaマイコンの内蔵発振子を使う場合は
    Arduino を AVR プログラマ(ISP: In-System Programmer)として使う
    の下部にある図を参考に回路を組むといいのではないかと思います。(こちらは試していないです)


    自分はATtiny13Aを使ったので次のような回路になりました。

    IMG_3455_2.jpg
    (上の回路は前に作ったものが残っているだけで関係ないです)

    これでAVRマイコンに書き込み、ほかの回路に埋め込んでいろいろな動作をさせるわけですね。

    初心者ながら頑張ってLEDをちかちかさせる回路を組みました。

    IMG_3452_2.jpg

    ATtiny13Aは書き込める容量が1024バイトしかないので、あれやこれややりたい!と思ってプログラムを組んでコンパイルしたら見事に容量オーバーして削りに削ったところ色を切り替えるくらいしかできませんでした。
    また、digitalWriteしかない?のかanalogWriteを受け付けませんでした。
    ピン割付表を見たところだとA13,12などと書かれているので、そこは使えるのかな?

    つたないプログラムですが初心者向け記事ということで貼り付けておきます。
    光らない光らないと思ったらD2番はないようですね。(書いている途中で見つけましたA11/D2であるようです)
    ということは、点灯していない場合の2番は無駄に使っているようですね・・・汗



    (最初に変数宣言しているのに結局loopで使っていないのは容量を小さくしていこうとした過程でいろいろあったためです。最初は使っていたのでそのまま残っています。)

    // ATTiny88P RGBフルカラー点灯実験 03

    const int LED_R = 0; //赤色D0番
    const int LED_G = 1; //緑色D1番
    const int LED_B = 3; //青色D3番
    const int BUTTON = 4;

    //点灯パターン
    int val = 2;
    //前回の点灯パターン
    int val_old = 0;

    void setup(){
    pinMode(LED_R,OUTPUT);
    pinMode(LED_G,OUTPUT);
    pinMode(LED_B,OUTPUT);
    pinMode(BUTTON,INPUT);
    }

    void loop(){
    //前回光らせたLEDを消す
    digitalWrite(val_old,LOW);

    //ボタンで点灯パターンを変化
    if(digitalRead(BUTTON) == HIGH){
    if(val<3){ //パターンが最大でなければ次のパターンへ
    val++;
    delay(100); //待ち時間
    }else{
    val = 0; //パターンが最高なら初期値へ
    delay(100);
    }
    }
    digitalWrite(val,HIGH); //LEDを点灯
    val_old = val; //次回ループ時に消灯するために点灯LED番号を保存
    delay(100);
    }

    ##########


    Arduino 3回目の記事、三日坊主になりそうだったので触り始めたら止まらなくなってレポートに手が付きません。

    入出力部品がLEDとCDSくらいしかないので、新しい部品を買わずに何をしたらいいのだろう・・・と迷いつつ次に買う部品を調べていました。

    AVRマイコンへの書き込みを行うライタはArduino Uno R3で代用できると聞いていたのですがいまいちよくわからないので、とりあえずAVRマイコン用のライタを買おうと調べていると

    Pololu USB AVR Programmer

    がいいかなという気がしました。安価で、たまに使っている人がいて、(何に使うのかわかりませんが)オシロスコープがついているらしいです。

    といろいろ調べて、送料と手数料のことを思い出しました。
    沖縄+代引きなのでそれだけで800円くらいかかるのです、これは痛い。
    やっぱりArduino Uno R3で何とかしたいですよね。

    何とかできました。

    これからArduinoやAVRを始める人向けの記事です、抵抗の計算や配線が怪しいレベルの人が書いているので突込みはゆるめでお願いします。

    Arduino 2日目

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    LEDとボタンを使った簡単な回路を組めるようになったところで、センサー類を光センサーしか買わなかったことに公開しました。
    また、AVRマイコンもいろいろ買ったにもかかわらずプログラマはArduino uno r3を改造すればいいとの記事を見て買わなかったのですが、いざ読み直してみると難しい・・・。
    もう少し情報収集と回路をいじってから足りないものを買い足します。

    1日目にLEDとボタンを使った簡単な回路を組んだので、買ってあったフルカラーLEDを使っていろいろな色を表現する回路を組むことにしました。

    使ったものは
    Arduinoをはじめようキット
    RGBフルカラーLED
    ボタン数個
    抵抗数個

    参考
    Arduinoをはじめよう 第2版 P35
    RGB3色フルカラーLEDの色を段々に変化点灯させます(各色にあった抵抗も書かれていて助かりました、赤色に合う抵抗がなかったので若干大きめの抵抗を使いました。)



    発光パターンを4種類と発光間隔を調整するためのボタンを付けました。
    IMG_3428_2.jpg

    AVRマイコンをArduino化できるようなので道具を光らせられる日も近いかも!?


    (黒ボタン)4パターンの発光パターン切り替え
    (白ボタン)発光間隔切り替え


    小さなLCDも買ったので使ってみたいなと思ったところ・・・LCDから出ている足間隔が近すぎてブレッドボードに刺さらなかったのでユニバーサル基盤にはんだ付けして・・ということをしているサイトを参考にはんだ付けしてなんやらしましたがパーツが足りず失敗したので次回足りなかったパーツを買い足した時に再挑戦してみたいと思います。

    折るところまでは調子よかった・・・。
    AVRマイコンのソケットを探している時に見つけたチクチクしててかっこいいけど何に使うかわからなくて放置したちくちく買っておけばよかった。
    ピンヘッダ 1×40 (40P)

    参考
    AQM0802AをArduinoで使ってみる。
    I2C液晶のArduinoライブラリ – ST7032

    Arduino用液晶シールド


    もう4年くらい使い続けているBENQの液晶モニターに赤外線リモコン機能をつけられたら(寝ながら画面いじれて)楽だなとか思いました。

    Arduino 1日目

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    届いたうれしさから参考書の「Arduinoをはじめよう 第2版」に出てくるパーツが足りている回路についてはすべて作り、プログラムを書き動かしてみました。

    Arduino標準の開発環境ではインテリセンスが使えないのでpinModeなど途中に大文字の含まれる命令文を書くときに手がつかれると思い、ほかの開発環境がないのか探してみたところ、VisualStudio用にプラグインが出ているとのことで、そちらを導入してみました。

    Arduino for Visual Studio and Atmel Studio

    導入してみてプラグラムを作成、最初から「setup()」「loop()」が書き込まれている親切設計!
    しかし、一番ほしかったインテリセンス機能がない・・・C#のプロジェクトを立ち上げ打ち込んでみるとインテリセンス機能がきちんと動作する。

    なぜ・・・。

    回答は先ほどのプラグインのホームページにきちんと書かれていました。
    「Ctrl+J」を入力したときのみインテリセンス機能が動作するようです、これが標準でほしかったのに・・・。

    使いづらいので仕方なく最初の公式開発環境に戻っていろいろ試していました。

    Arduinoによる電子工作 準備

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    ジャグリング道具を自由に光らせることができたら面白いなと思って電子工作始めてみました。

    購入したものはこちら
    Arduinoをはじめようキット
    Arduinoをはじめよう 第2版

    あとはお好みでいろいろ
    自分は最終的にジャグリング道具に組み込みたいと思っていたのでAVRマイコンや抵抗、スイッチなども買いました。
    あとはコンデンサー(何に使うからしらないけど)とかとか

    Arduinoを触り始めて2日目ですが、センサー類は買っておいて損をしないと思いました。
    特に、光センサー、三軸加速度センサー、温度センサーなどです。
    スイッチだけで完結するのではなく、環境や状態に左右されて動作が変わると面白いです。

    amazonの「Arduinoをはじめようキット」のレビューで「Arduinoエントリーキット」を勧めている方がいましたが、前者のキットはArduino Uno R3が永久保証になっているのでこちらを買いました。
    回路図も読めなければ抵抗値の計算もままならない初心者なので思わぬことで壊してしまって3500円さようならはさみしいです。

    キットを開封した直後の写真です。
    基盤が思っていたよりも小さく驚きました。
    IMG_3418.jpg
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。