ブログパーツUL5

ArduinoでI2Cを利用しようと安価なI2CのLCDを購入

 Arduino UNOでI2CのLCDを利用しよう650円という超安価な並行輸入品を購入しました。納期は中国からの直送で10日ほど掛かりますが、総量は無料なのでまたポチッとしてしまいました。なぜ、これを選んだかと言うと電源が5Vで使用できるので使い勝手がいいのです。
 普通のI2CのLCDは3.3Vなので、レベルシフト回路が必要となり面倒なのですが、その点、このLCDは5Vで接続できるので大変便なのです。何も考えずにピンに挿せば表示できるのですから。

 平行輸入品なのでこれだけ(説明書はありません)
I2CのLCD

 無事、届いたので、基礎からのIoT入門サイトの1602A I2C アダプターの利用を参考に接続して動かしてみました。Arduino UNO接続との接続は、4線のみと少ないのがいいのです。

 Arduino UNO側 I2CのLCD側
 5V  −−−− Vcc
 GND −−−− GND
 A4  −−−− SDA
 A5  −−−− SCL

 接続図
I2CのLCD接続


 問題発生で、下記のように表示されて何も出てきません。(電源だけ繋いだ状態と同じ)
I2CのLCD

 そこで、調べていたらI2Cのアドレスをスキャンしてくれるスケッチがosoyooというサイトで見つかりました。それが、16×2 I2C LCD プロジェクトというサイトで神様のように思えました。I2Cのアドレスを探すことが出来き、シリアル通信を9600bpsにしてシリアルモニターに表示されるので、まず、それでアドレスを調べます。

 無事にI2Cのアドレスが分かり表示できるようになった
I2CのLCD

 なんと、0x27でなく0x3Fでした。並行輸入品なので何の説明書もありませんから仕方ないですが、アドレスが分からないときにこのアドレスをスキャンするスケッチは有効です。
0

    Arduino UNOの書込装置が完成

     Arduino UNOのCPUソケットは安物なので耐久性がなく、スケッチ(プログラムのこと)を何度も書き込んでだりするのでその度にCPUを抜き差ししていたら壊れる恐れがあります。折角、自作したブートローダー書込み基板があるのですから、新規に書込装置を製作しなくても安くArduino UNOが入手できれば、専用の書込装置が出来ます。ヤフオクで純正品のArduino UNOを落札できて入手できました。

     入手したArduino UNOに自作したブートローダー書込み基板を差し込みます。書込みソフトのArduinoISPのメニュの「ファイル」の「スケッチ例」から「11.ArduinoISP」の「ArduinoISP]を読み込みます。それをArduino UNOに書き込みます。これで出来上がりで手間要らずでしょ。

     完成したArduino専用書込装置(先日の写真と変わらず?)
    Arduino専用書込装置
     下のArduino UNOがArduinoISPを書き込んだ状態で書込装置の専用になっただけです。

     この書込装置でスケッチ(プログラムのこと)を書込む場合には、書込みソフトのArduinoISPのメニュの「スケッチ」の「書込装置を使って書き込む」をクリックして書き込みます。

    画面
    0

      Arduino用のブートローダー書き込み装置を自作

       Arduinoのブートローダーを自作にしました。下記のサイトを参考にしたので詳細はそちらを参照ください。回路図もそちらで提供しています。

      Arduino Uno用ブートローダライタシールドキットサポートページ


       完成したらまずArduino UNOだけを接続して、Arduino IDEのファイルからスケッチ例の中から「11.ArduinoISP」を選択してArduinoISPを読み込みます。それをArduino UNOに書き込みます。ArduinoISPのスケッチが正常に書き込めると、HeartbeatのLEDが明るくなったり暗くなったりを繰り返します。

       完成したブートローダー書き込み装置
      ブートローダー書き込み装置
       しなぷすのハード製作記のサイトに参照にした回路図(PDF))があります。

       書き込みが完了した後に、製作したブートローダー書き込み装置を差し込んで、生のATmega328PをZIFソケットにセットして手順どおりに、ブートローダーを書き込みます。その後に書き込むスケッチを開いて、スケッチの「書込み装置を使って書込む」でスケッチを書込む。書き込み中はProgramのLEDが点灯して、エラーがあるとErrorのLEDが点灯します。

       これでいつでもCPU単独で起動させることができます。但し、今回は16MHzの発振子なので5V対応で、3.3V対応にするには8MHzの発振子にする必要があります。動作確認できたので、ICSPのコネクタを設けて結線して完了しました。

      0

        LCD Keypad Shieidが超安価で、ついポッチと

         Arduino UNO本体はTポイントが貯まったので、それでもう1台を購入しました。また、AmazonでLCD Keypad Shieidが400円を切る超安価(送料込み。税込み)で売られていたので、ついポッチと押してしました。1週間後に中国から直送されてきました。

        やはり問題点が


         中国製のためピンヘダが傾いて半田付けされておりソケットにうまく入りづらいじょうったいでした。出荷検査で不合格になった製品かもしれません。ソケットにピンを刺して半田こてを当てて傾きを修正しました。

         LCD Keypad Shieidのテストプログラムを動作せてみると、キーのLEFT、SELECTの表示がDOWN。LEFTになるということテストプログラムを調べてみました。

         キーを検出する端子のレベル調整が必要でした。
        // For V1.1 us this threshold
        if (adc_key_in < 50) return btnRIGHT;
        if (adc_key_in < 250) return btnUP;
        if (adc_key_in < 450) return btnDOWN;
        if (adc_key_in < 650) return btnLEFT;
        if (adc_key_in < 850) return btnSELECT;

        の設定で問題で、上記をコメント文にして下記のコメント文を外して有効にします。
        // For V1.0 comment the other threshold and use the one below:
        /*
        if (adc_key_in < 50) return btnRIGHT;
        if (adc_key_in < 195) return btnUP;
        if (adc_key_in < 380) return btnDOWN;
        if (adc_key_in < 555) return btnLEFT;
        if (adc_key_in < 790) return btnSELECT;
        */
        (US規格になっておらず不合格品になったのでしょう。推測です。)

         問題が解決したLCD Keypad Shieidをテスト
        LCD Keypad Shieid
         写真では表示が見にくいですが、正常に表示しています。
        0

          スケールスピードメーターのケースの製作

           100円ショップで適当なサイズを見つけたので、取りあえずカッターナイフで穴加工してケースに収めてみました。できれば。9V電池も収まればされによかったのですが、一応、これで今回のスケールスピードメーターの製作完了とします。今後はLCD交換や利用していて不具合があればを改善する程度でしょう。

           100円ショップで購入したケースと本体
          購入したケース
           (上の写真の本体向きが逆でした、センサー側が上向きです)

           加工後にケースに収めてみた
          ケースに収納
           Nゲージ・HOの切替はケースの蓋を開けて切替えますが、いつも切り替えませんのでこれで良しとしました(手抜き)。

           【追加】2018.3.2
           NゲージのSL(側面が凸凹)でも計測できるかのテスト
           
          SLのスロー走行をテストしてみました。

           移動が面倒なので、手元にあった有り合わせの部品でちょっと改良しました。

           電池ボックス(9V)を取り付ける
          電池ボックス取付け

           電池のスイッチを付ける
          電池のスイッチ
          0

            スケールスピードメーターの資料

            スケールスピードメーターが、一応、完成しましたので、実際にテストをしています。誤動作することが珠にあり、改善の余地はまだありますが、これを基本形にノイズ対策など精度を今後上げていこうと思います。参考になればと回路図、部品表、ソフトウェアを掲載すます。ソフトウェアはどこかのサイトを参考にデバッグしながら修正しているのであまりきれいではありませんが、短いソフトなので解読は出来るともいます。LCDは標準SC12602に準拠しており、16文字×2行の表示に対応しています。縮尺率や計測距離など調整、変更してください。

             回路図
            回路図

             部品表
            部品表
             すべて秋月で購入できると思います。Arduino UNO Rev3は互換品での動作は保証できません。自己責任でご確認ください。価格は参考価格です。

             ソフトウェア
            (見づらいので折りたたんであり、続きを読む>>をクリックすれば開きます。)

            【変更点】2018.2.27
             ・HOの縮尺の表示を、1/80から1/87に変更
             ・計算式の中でも、80から87に変更
             ・計測エラーのエラー処理(Error表示)を追加
            0

              スケールスピードメーターを製作

               プログラムはほぼ出来上がってきたので、鉄道模型用スケールスピードメーターのハードを製作しました。製作する上で、Arduino UNOのUSB端子が大きく専用のユニバーサル基板の配置をきちっと決めないとUSB端子のシールドでショートするので注意が必要です。実はLCD端子と1列間違えてしまいショートすることが分かり修正するということになりました。

               オリンピック競技を応援しながら、製作してます。

               鉄道模型用スケールスピードメーターの基板
              スケールスピードメーター
              スケールスピードメーター
               ながら製作をしたので簡単な回路の割りに、配線を間違えてLCD端子の付け直しをしたり、LCD端子の半田付けを間違えたり忘れたり、USB端子のシールドでショートして原因が分からず苦戦したりで、散々でしたがオリンピンックはメダルラッシュで素晴らしい結果でした。

               おめでとう! お疲れ様でした

               なんとか配線が完了してプログラムのデバッグを行なう。車輌とセンサーは近すぎると誤動作するみたいで、1cmほど話した方が安定して測定できるようになりました。

               一応、完成!
              スケールスピードメーター

               動作チェック動画
               
              ・測定する車輌から1cmほど話して設置
              ・9V電池を接続
              ・VRはLCDの明るさ調整
              ・手前のスライドスイッチはNゲージとHOを切替え
              ・「OK」の表示で測定
               思い立ってから1週間程度で、多少の誤差はありますが利用できる範疇まで出来たことに満足しています。ケースは常設ではないので面倒くさく、当分、このままで使用してみます。ジオラマでもあれば、センサーを建物に隠してパワーパック近くに表示させるのがいいのかもしれません。
              0

                Arduinoをはじめる(スケールスピードメーターの製作1)

                 久しぶりのブログの更新です。ロボットではありませんが、Arduinoの基本ボードを初めて購入して勉強中です。言語がC言語に近いですが、BASIC言語のようにプログラミングできるので、大きなプログラムや高速な処理はできませんが、ちょこっとした便利グッズを製作するには初心者でも取り組みやすいと思いました。賢い子供ならプログミングできるようにS4Aというツールも用意されています。

                 では本題ですが、鉄道模型用のスケールスピードメーターを製作するために取り組みはじめましたのがArduinoです。まず図書館で関連書籍を借りて、Arduino IDEをインストールして開発環境を整えました。それを使ってプログラミングを開始して、2,3日でPCと通信しながらデバッグできるところまで出来上がりました。

                 ここまでくればあとはハードが必要なので、センサーの選択と簡単な回路設計で必要な部品を購入しました。

                 購入した電子部品
                購入した部品

                 購入した正規品のArduino UNO
                 Arduino UNO
                Arduino UNO
                 USBコードでPCと接続してプログラミングをデバッグできます。試行錯誤しながら、いわゆるプロトタイピング開発できます。

                 Arduino専用ユニバーサル基板に部品配置の検討
                部品配置の検討
                 Arduino専用ユニバーサル基板を使用しないと普通のユニバーサル基板ではピッチが変わる所があり端子部分の半田付け処理もきれいにできません。
                 USBコネクターと電源コネクターがあるため、半田付けでぶつかったり、ショートの危険性があるので回避する必要があります。さらに今回は2つのセンサーを極力離したいので、このような配置になりました。安いLCDなので基板からちょっとLCDがはみ出しており、端子が横から出ていないタイプを選択すればきれいに基板内に収まると思います。後で交換するかもしれません。

                 Arduino IDE
                Arduino IDE
                 .螢鵐させるライブラリーの宣言
                 ∧竸瑤篦蠖瑤寮觚
                 void setup() {
                // put your setup code here, to run once:

                  初期設定を記載

                 }
                 void loop() {
                // put your main code here, to run repeatedly:

                  メインプログラムを記載

                 }

                 作成中のプログラム
                作成中のプログラム
                 基本動作の確認はうまくいっています。このあと基板の製作をして動作テストして完成です。こんなに早くできるとは思ってもいなかったので、ケースをどうするかも検討しなければなりません。3Dプリンタでケースを製作するのもありかな。

                 うまくできれば、回路図、部品表、プログラムを掲載する予定です。
                0

                  3Dプリンタでシュレッダーが復活2

                   先日は電動シュレッダーの復活でしたが、今回は実家で見つけて手動シュレッダーの修理です。安物の手動シュレッダーの構造は非常に簡単である。2つしかないギアが磨耗している。

                   手動シュレッダーの分解
                  手動シュレッダーの分解

                   この位だと朝飯前にできる
                  3Dプリンタでギア製作

                   試作2回目で何とか動作
                  手動シュレッダー修理

                   微調して再設計
                  3Dで再設計
                   念のため寸法を微徴して再設計した。次にギアが磨耗した時にすぐに補充できるようにしていきました。3Dのデータで在庫しておけば、部品管理が楽であり場所を取らず格納場所を忘れることもない。
                  0

                    3Dプリンタでシュレッダーが復活

                     故障したシュレッダーは大抵はギアの歯が欠けてしまうことが多い。安価にするためプラスチック製のギアを使用しているためで、当然、業務用は金属製のギアを使用していますが高価になってしまう。

                     歯が欠けているギア
                    歯が欠けたギア

                     3Dでギアを設計
                    3Dデータ

                     3Dプリンタで製作
                    3Dプリンタ

                     製作したギアと交換
                    ギアを交換
                     これで1から2枚ぐらいの最低限の利用が出来る動作を確保できました。でも、3Dプリンタで材質を選べば耐久性は上がるとは思いますが、取りあえず手元にあるもので製作しました。うまくいくようであれば、材質を変えて再度作るつもりです。
                    0


                      カレンダ

                      1234567
                      891011121314
                      15161718192021
                      22232425262728
                      293031    
                      << July 2018 >>