ブログパーツUL5

Arduino UNO対応のタッチパネル(SmartGPU2)

 Arduino UNO対応したタッチパネルを探していたところ、VIZIC社のSmartGPU2というパネルが見つかりました。まだ、日本では入手できないようですが、LCDパネルの基板とArduino UNOのシールド基板から構成されており、Arduinoのライブラリーもあるようで期待が持てそうである。

 LCDは320×240で解像度はあまり高くはないですが、コントローラとして使用するには十分なように思います。詳細は、SmartGPU 2を参照ください。価格は、$89.00 USDとちょっと高いかもしれません。

SmartGPU 2
SmartGPU2

 オシロスコープにも(?)

 これができるのであれば、1つ購入してもいいかも。




0

    Bluetooth部品(HC-06)で接続する方法

     Bluetooth部品のHC-05も届く。HC-05も基本的にHC-06と類似しているので接続方法は同じで問題は無い。HC-06は子機しかならないが、HC-05の方は親機と子機の設定ができるため高機能になる。そのため、ATコマンドで設定できるこことが多い。

     Bluetooth部品のHC-06とHC-05
    HC-06とHC-05
     基板は共通のようで、ペアリングの押しボタンがあるかないか位の違いしかなく、HC-05の方がピン数が多い。それにしても1桁も安く入手できるようになったのには驚くばかりである。

     HC-06とHC-05の接続方法
    接続
     HC-06とHC-05の電源は内部に3.3Vへの降圧回路があるので、3.6V〜6Vの供給となっており5Vに接続するのが正解である。珠に、3,3Vに繋いでいるのがあるが不正解である。モジュール内部は3.3Vなので、TXやTXの信号線は3.3Vでの入出力である。そのため、レベルシフト回路で5V←→3.3Vの変換をする必要があります。簡易的な処置で、3.3Vの信号は5V系の入力にそのまま繋いでも動作しますが、3.3V信号入力に5V信号を接続すれば壊れることが想定されます。そこで、抵抗分割で5Vを3.3Vに降圧して接続します。

     基本的な動作テストは、Bluetooth部品(HC-06)で接続する方法と同じです。HC-05にあるATコマンドをテストできれば、問題なしです。
    0

      Android開発環境の構築

       スマホのアプリを開発するために、Android開発環境を構築する必要があります。そこで、入門書を参考に必要なツール(ソフトウェア)をインストールします。忘れないようにメモをしながら、作業を進めていきます。

       Androidのスマホのアプリ開発には、主に下記の3つのツールが必要です。
      1.JDK(Java Debvelopment Kit、Java開発キット)
      2.Android Staudio(統合開発環境)
      3.Android SDK(Android Development Kit)

       インストールする。Windowsno32bit版OSにインストールする場合には、「Java SE 8」で検索して探さないと見つかりません。
      1.JDKをインストール
      http://www.oracle.com/technetwork/java/javase/downloads/index.htmlのORACLEにアクセス
      ・JavaのうちJava SEを選択して、Dwonloadボタンをクリックする
      java SE
      ・JDKのDWONLOADボタンをクリックする。ここではWindows64bit版しか見つかりません。
      JDK
      ・JDKのAccept License Agreementを同意して、ダウンロードファイルを選択する
      JDK

       インストール後に、コントロールパネルで「システムとセキュリティ」→「システム」→「システムの詳細設定」→「環境変数」を開いて設定を追加します。
      システム環境変数→新規で
      ・変数名:「JAVA_HOME」と入力
      ・変数値:jdkをインストールしたディレクトリのパスを記載
      してOKをクリックします。


      2.Android Staudioのインストール
      ・windows10 64bit版は下記のURLからダウンロードしてインストールできます。
       https://developer.android.com/studio/index.htmlにアクセスする。
      Android Staudio
      ・私はWindows7 32bit版のため、32bit版を探し他のバージョンをダウンロードしました。直近のバージョンは上記のURLの下の方にありますが、それ以外は検索しないとみつかりません。
      Android Staudio

       「Android入門」と同じバージョンの入手は下記のURLですが、インストールしても問題がありました(?)。原因わからず。
      http://tools.android.com/download/studio/canary/1-2-2
      Android Studio
       インストールと削除を5、6回してみましたが、「Android入門」のようにならずSDKはインストールできませんでした。結局、問題の起きないバージョンをインストールしておきました。

       Winodows10 64bit版は全く問題なく素直にインストールできますので、もうWindows7 32bit版はサポートしていないのかもしれません。悪戦苦闘の1日で、今日はここまでです。
      0

        Bluetooth部品(HC-06)とスマホの通信

         Bluetooth部品(HC-06)とスマホの通信できることは確認できたのですが、コマンドを打つのもスマートではないのでアプリを開発しなければならなくなりそうです。しかし、アプリ開発は全くやったことが無くハードルが高すぎます。一応、図書館から入門版の本を借りてきましたが、開発環境もまったくないのでどうしようかと思います。

         そこで、Arduino bluetooth controllerというのがあり、ゲーム風のインターフェイスがありテストでは使用できるかもしれません。

         テスト中
        テスト中
        いづれ自分で開発できればいいのですが、難しそう。

         こんなGUIができれば最高なのですが・・・
        GUI
        0

          Bluetooth部品(HC-06)で接続する方法

           Arduino UNOでBluetooth部品(HC-06)およびスマとペアリングしてうまく接続する方法には、キーポイントがあります。忘れてもいいように自分の記録としてまとめてみました。
           なお、やっている間にわかったことですが、HC-06は子機(スレーブ)には使用できますが、親機(マスター)には使用できません。親機に使用する場合には、子機/親機兼用(マスター/スレーブ)のHC-05を使用することになる。

          HC-06(表面と裏面)
          HC-06

          接続キーポイント
          ・Arduino UNOで接続する端子は、D0(RX)とD1(TX)は回避する
           →この端子はArduino UNOにスケッチを書き込む端子と共有している
            スケッチ書込み時に外せばよい。面倒なのでD2、D3を指定する
          ・HC-06の供給電源(Vcc)は3.6V〜5Vで問題ない
           →従って、3.3Vでは電圧不足となり、5Vに接続する
          ・HC-06のRXD,TXDは3.3V系の入出力となる
           →3.3V/5Vのレベルシフト回路が必要ですが、簡易的な対象で十分
            出力(TXD)はそのまま接続で、入力系(RXD)は抵抗分割する
            Arduinoの出力電圧を1,8KΩ+3.3KΩで3.3Vレベルにして入力する

          接続の確認方法
          1.まず、最初にArduino UNOでBluetooth部品(HC-06)の接続確認する。
           ・Bluetooth部品(HC-06)はペアリングさせない状態(LED点滅)で確認する。
           ・下記のテストスケッチを書込んで確認する。

          //----------------- Test Program 1 ----------------------------
          // HC-06 の TXDは、Arduino の Pin2(D2)に接続する
          // HC-06 の RXDは、Arduino の Pin3(D3)に抵抗分割で接続する
          // HC-05 の TX は、Arduino の Pin10(D10)に接続する
          // HC-05 の RX は、Arduino の Pin(D11)に抵抗分割で接続する
          //-------------------------------------------------------------
          #include
          SoftwareSerial BTserial(2, 3); // HC-06 : RX | TX
          //SoftwareSerial BTserial(10, 11); // HC-05 : RX | TX

          void setup()
          {
          // PCとArduinoのシリアル速度は、9600bps
          Serial.begin(9600);
          Serial.println("AT コマンド入力 :");
          // HC-06 のデフォルトでのシリアル速度は、9600bps
          BTserial.begin(9600);
          }
          void loop()
          {
          // HC-06からATコマンドを読み、Arduino IDEのシリアルモニタに通信する
          if (BTserial.available())
          {
          Serial.write(BTserial.read());
          }

          // Arduino IDEのシリアルモニタから送信データを読み、HC-06に通信する
          if (Serial.available())
          {
          BTserial.write(Serial.read());
          }
          }
          //--------------------------- End -----------------------------------

          ・起動すると、シリアルモニタに「AT コマンド入力 :」が表示される
          ・「AT」を送信すると、「OK」と表示されれば接続はOKです
          ・Bluetooth部品(HC-06)に対するATコマンドによる設定や確認はこの状態で行なう
          ・HC-06のATコマンドは子機専用なので、HC-05よりもかなり少ない
           
          原文ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
          HC-06 AT commands are limited, all I could find are given here.
          AT : check the connection
          AT+NAME: Change name. No space between name and command.
          AT+BAUD: change baud rate, x is baud rate code, no space between command and code.
          AT+PIN: change pin, xxxx is the pin, again, no space.
          AT+VERSION

          change baud rate, type AT+BAUDX, where X=1 to 9.
          1 set to 1200bps
          2 set to 2400bps
          3 set to 4800bps
          4 set to 9600bps (Default)
          5 set to 19200bps
          6 set to 38400bps
          7 set to 57600bps
          8 set to 115200bps
          ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

          2.Bluetooth部品(HC-06)とスマホとの接続確認
          ・まずスマホのBluetooth Terminalをインストールする
           →私は、Serial Bluetooth terminalというアプリが使い勝手がよかった。
          ・ペアリングすべきBluetooth機器を検索する。ここでは「HC-06」と表示される
          ・同じ機器がある場合は、1.の状態で「AT+NAME」コマンドを使って変更する
           (ex. AT+NAMEHC-06_1
          ・ペアリング機器を指定して、デフォルトのPINである「1234」を入力する
          ・PINを変更したい場合は、1.の状態で「AT+PIN」コマンドを使って変更する
           (ex. AT+PIN4321
          ・シリアル通信を変更する場合、1.の状態で「AT+BAND」コマンドを使って変更する
           (ex. AT+BAND6
          ・ペアリングが完了すると、Bluetooth部品(HC-06)のLEDが点滅から点灯に変わる
          ・この状態で、下記のテストスケッチをArduinoに書込む。

          //----------------- Test Program 2 ----------------------------
          // HC-06を繋いだArduinoとスマホリアルモニタを使った通信用スケッチ
          // ボーレートは 9600
          // NL+CR をコマンドに追加しない
          //-------------------------------------------------------------
          #include
          SoftwareSerial BTserial(2, 3); // RX | TX

          void setup()
          {
          BTserial(9600);
          }
          char a;
          void loop()
          {
          if (BTserial.available()) {
          a = (BTserial.read());
          if (a == '1') {
          BTserial.println("HELLO <Bluetooth> WORLD!");
          }
          if (a == '2') {
          BTserial.println("2 is comming.");
          }
          }
          }
          //--------------------------------- Eed -------------------------------

           スマホのBluetooth Terminalアプリを起動して、ペアリング接続したの後に「1」を送信すると、「HELLO<Bluetooth>WORLD」と返信され、「2」と送信すると「2 is comming.」と返信されます。これでBluetoothの接続確認が出来たことになります。
          0

            Arduinoで温度、湿度、気圧の製作

             Arduinoで温度、湿度、気圧の測定ができたので、正式に製作することにしました。問題はケースですが、あまりコストを掛けたくいないので、透明なアクリル板の余り板がありこれを利用することにしました。アクリル板を曲げるのが初めてなのであまりうまく出来ず温度コントロールを失敗してしまいました。折り曲げ部分を隠すことで利用できそうであり良しとしました。

             簡易ケース(?)の出来上がり
            ケース前
            ケース後
             これに、Arduinoのブートローダーを書き込んで専用基板を製作して取り付ける予定でした。しかし、LCDへの接続配線が多く見栄えが悪いので、LCDの裏に専用基板を取り付けるように変更しました。電源はバッテリーを辞めて、USB端子の電源から取るようにUSB端子を取り付けました。PCのUSB端子から電源供給できる方が使い勝手がいいと考えます(データ通信はできません)。

             配線が終わってセンサーの端子表示が見えなくて配線を間違えていることに気づかず電源投入してしまい壊れてしまい、安いとはいえセンサーを再購入という痛い出費となりました。

             別のセンサー(BME280で湿度のないもの)を取り付けて動作テスト

             センサーとして湿度の計測値がないためエラー表示していますが、一応これで正常動作していることが確認できたので完成です。センサーを入手できしだい交換して完了です。ちょっと格好いいでしょ。

             センサーを正規版にして完成!
            正規版
            0

              Arduinoで温度、湿度、気圧を測定器を試作

               スケールスピードメーターで試作したものをバラバラにして再利用してみました。購入したのは温度、湿度、気圧の安価なBME280センサーだけです。Arduino unoでBME280センサーを使用して測定できるように製作しているサイトを探して一部改良して動作させてみました。

               BMP280センサー
              BMP280センサー

               温度、湿度、気圧を測定器を試作
              試作した測定器

               動作している動画
               
               快適なのでブルーのLEDが点灯して、25℃を越えているので、夏モードになってLCDには不快指数が表示されています。

               詳細は、DeathMarch.netというサイトを参照ください。
              Arduinoでスマートな温湿度+気圧計を作ろう!をクリックしてください。ここでもI2Cのアドレスをスキャンして合っているかの確認をしました。
              0

                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


                      カレンダ

                        12345
                      6789101112
                      13141516171819
                      20212223242526
                      2728293031  
                      << May 2018 >>