Arduino(アルドゥイーノ) - Hello!Arduino

ご存じの通り冷却カメラを頑張って制作しているわけですが電子工学っちゅうのですか?(^^;
電流、電圧、V(ボルト)、A(アンペア)、Ω、抵抗、配線、GND。。。。。。そう言うの苦手で(^^;
かと言って何もやらないと知識が身に付かないし。。。。。。
と言うわけで
Arduino(アルドゥイーノと読むらしい(^^;)を買って面白おかしくお勉強する事にしました。
なんだか随分路線がずれてしまいましたが気にしないで下さい。

こちらは私の完全な備忘録ですので興味が無い人は無視して下さい!!(^^)/~

このArduinoってやつ使い方によっては色々面白い事が出来るらしいのですが今のところ使い道すら全く想像もつかない(笑)

まぁ難しい事は考えないで触って見る事にします。

IMG_6482

導入、開発、実行までの手順

Getting Started with Arduino on Windows

まずはこちらのサイトから
https://www.arduino.cc/en/Guide/Windows#toc2
手順01

開発導入手順はここに全て記載してあります!但し英語ですけどね(^^;

Get an Arduino board and USB cable
Download the Arduino Software (IDE)
Connect the board
Install the drivers
Launch the Arduino application
Open the blink example
Select your board
Select your serial port
Upload the program

訳するとこんな感じ
これぐらいの英語なら流石にわかりますね。

ArduinoとUSBケーブルを入手しろ
Arduinoのソフトウェア(IDE)をダウンロード
ボードに接続しろ
ドライバをインストールしろ
Arduinoのアプリケーションを起動しろ
点滅のサンプルを開け
ボードを選択しろ
シリアルポートを選択しろ
プログラムをアップロードしろ

早速この手順通りに作業を進めて行きます。

1.Arduinoを入手

秋月電子で購入してきました。
様々なタイプのArduinoがあるようだけどなんだかよく分からないのでスタンダード?的なものをチョイス
Arduino Unoお値段2,940円!安い!
何が出来るか分からない癖に安いと言うのも変だけどとにかく安い(^^;
ジャンパワイヤ、ブレッドボードがあると便利。
実はこれらの部品は初めて聞く名前(^^;ハンダを使わずに簡単に配線、テストが出来るものらしいよ。
ってこんなレベルで本当に大丈夫かい?www。。。。。。。
工作キット見たいなものがあるので最初からそれを購入すると良いですね!
今回は単品で買ってしまいました少し後悔です。

例えばこんなやつ!いっぱい部品が入ってて色々試せそうですね。

2.Arduino Software (IDE)インストール

 ※IDE:開発の統合環境

ソウフトウェアのダウンロードはこちらから
https://www.arduino.cc/en/Main/Software
Download the Arduino Software

手順2

このボタン「just download」から無料でダウンロードできますね
ダウンロードしたファイルarduino-1.6.6-windows.exeを実行してインストール開始
手順3
全てデフォルトでインストール(^^)

3.Arduino USBケーブル接続

ソフトウェアのインストールが終わったのでUSBケーブルでArduinoとPCを接続
緑のランプ点灯!(^^)
USBから電源を供給できるのですね。となりのジャックからもきっと電源供給出来るのでしょう。
IMG_6484

4.ドライバーのインストール

PCと接続したと同時に自動でインストールされました!
手順4

5.arduino IDE起動

いよいよArduinoのアプリケーションを起動します

起動画面
手順5

void setup() {
  // put your setup code here, to run once:

}

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

}

こちらが初期画面です。
setup()とloop()のサブルーチンがデフォルトで表示されてます。
ちなみにsetup()は起動時に一回走るイベント、loop()に主要なプログラムを書くようです。
自力でプログラミングする時はこちらにコーディングして行きます。

6.サンプル(BlinkWithoutDelay)を開く

ArduinoのアプリケーションIDEを使ってプログラミング、コンパイル、ボードに書きまで一連の流れをテスト

Hello!VisualBasic的な作業開始です

メニューバーの「 File 」→「 Examples」のからサンプルプログラムがあるようです。
手順通りLED点滅のサンプルを開きます
メニューバーの「 File 」→「 Examples 」→「2.Digital」→「BlinkWithoutDelay」を選択
自動でプログラムが表示されます

なにやらC言語らしきコーディング(^^;
ちなみにArduinoの世界ではプログラム、コーディングをスケッチと言うらしいです。

/* Blink without Delay

 Turns on and off a light emitting diode (LED) connected to a digital
 pin, without using the delay() function.  This means that other code
 can run at the same time without being interrupted by the LED code.

 The circuit:
 * LED attached from pin 13 to ground.
 * Note: on most Arduinos, there is already an LED on the board
 that's attached to pin 13, so no hardware is needed for this example.

 created 2005
 by David A. Mellis
 modified 8 Feb 2010
 by Paul Stoffregen
 modified 11 Nov 2013
 by Scott Fitzgerald


 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
 */

// constants won't change. Used here to set a pin number :
const int ledPin =  13;      // the number of the LED pin

// Variables will change :
int ledState = LOW;             // ledState used to set the LED

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0;        // will store last time LED was updated

// constants won't change :
const long interval = 2000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the
  // difference between the current time and last time you blinked
  // the LED is bigger than the interval at which you want to
  // blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}

7.ツールからボード設定を確認、ツールからポートなどの接続設定を確認く

手順8
正しく設定しないとエラーが出ます。
ちなみに初めての接続直後はポート番号は違ってましたので確認が必要ですね。

9.マイコンボードに書き込みく

サンプル(BlinkWithoutDelay)のスケッチをコンパイルしてマイコンボードに書き込みます

手順6
左から検証 - マイコンボードに書き込む - 新規 - ファイル - 保存
検証(コンパイル)を押してプログラムあっ違ったスケッチ?(^^;のコンパイル
マイコンボードに書き込む

数字13付近のオレンジランプがゆっくり点滅してます(^^)
これでプログラムあっ違ったスケッチ?(^^;のコンパイル、マイコンボードへの書き込みと言った一連の検証終わり
写真 1

せっかくなので
定数intervalの値を変更して(2000->50)再度マイコンボードに書き込み
点滅のスピードが速くなった!(^^)/
段々と面白くなって来ましたよ~

とまぁこんな感じで一連の流れ基本操作は終わりです

————————————————————————————————————

A.arduinoシリアル通信

一連の流れはつかめたので早速他のサンプルを試してみる

Arduinoのアプリケーションにあるシリアルモニタを使ってシリアル通信の検証です。
マイコンボードのシリアル通信をインプット、アウトプットのテストです。

マイコンボードにPC上のシリアルモニタから「o」と「p」の文字を受信(インプット)
arduinoが「o」を受けった時はLEDを点灯させ「LED ON - DRAGONDEMAND」の文字をPCに送信する
PCのシリアルモニタには「LED ON - DRAGONDEMAND」の文字が表示されます

arduinoが「p」を受けった時はLEDを消灯させ「LED OFF - DRAGONDEMAND」の文字をPCに送信する
PCのシリアルモニタには「LED OFF - DRAGONDEMAND」の文字が表示されます

プログラムあっ違ったスケッチ?(^^;してのコンパイルそしてマイコンボードに書き込む

ソースコード

// 変数の定義
#define LED_PIN 13
 
// 初期化
void setup(){
  pinMode(LED_PIN, OUTPUT);
 
  // シリアルポートを9600 bps[ビット/秒]で初期化 
  Serial.begin(9600);
}
 
// 繰り返し処理
void loop(){
  int inputchar;
 
  // シリアルポートより1文字読み込む
  inputchar = Serial.read();
 
  if(inputchar != -1 ){
    // 読み込んだデータが -1 以外の場合 以下の処理を行う
 
    switch(inputchar){
      case 'o':
        // 読み込みデータが o の場合
 
        Serial.print("LED ON - DRAGONDEMAND\n");
        digitalWrite(LED_PIN, HIGH);
        break;
      case 'p':  
        // 読み込みデータが p の場合
 
        Serial.print("LED OFF - DRAGONDEMAND\n");
        digitalWrite(LED_PIN, LOW);
        break;
    }
  } else {
    // 読み込むデータが無い場合は何もしない
  }
}

B.Arduinoシリアルモニターで検証

Arduinoのアプリケーションにあるシリアルモニタを起動
手順

[o],[p]の文字を入れて送信!
おおおぉぉぉシリアル通信が出来ましたよ~(^^)更に面白くなって来た!

C.Windows.NETのGUIでシリアル通信の検証

準備されてるインターフェース(シリアルモニタ)じゃつまらないので
当然出来るであろう!(^^)
他の開発言語でシリアルモニタ、通信プログラミングを作成
今回はVisualStudio2015で開発

ソースコード

Public Class Form1
    Const CNST_srtCOM As String = "COM3"
    'デリゲートの宣言
    Delegate Sub DataDelegate(ByVal sdata As String)

    Private Sub PrintData(ByVal sdata As String)
        txtMessage.Text = sdata
    End Sub

    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        Dim ReceivedData As String = " "        '受信データ用変数を宣言します
        Try
            'txtMessage.Text = ReceivedData
            ReceivedData = SerialPort1.ReadLine    'データを受信します
            'txtMessage.Text = ReceivedData.ToString
        Catch ex As Exception
            'ReceivedData = ex.Message       '例外処理を行います
        End Try

        'Invokeメソッドにより実行されるメソッドへのデリゲートの宣言を行い、受信データを表示します
        Dim adre As New DataDelegate(AddressOf PrintData)
        Me.Invoke(adre, ReceivedData)
    End Sub

    Private Sub btnON_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnON.Click, btnOFF.Click
        Dim strSend As String               'NewLine格納用文字列変数
        Select Case sender.text
            Case "ON"
                strSend = "o"
            Case "OFF"
                strSend = "p"
        End Select

        Try
            SerialPort1.WriteLine(strSend)      '送信バッファにデータ書き込み
        Catch ex As Exception                   '例外処理
            MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        If SerialPort1.IsOpen = True Then   'ポートオープン済み
            SerialPort1.Close()              'ポートクローズ
            txtMessage.Text = CNST_srtCOM & " - CLOSE"
        End If
    End Sub

    Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
        SerialPort1.PortName = CNST_srtCOM      'オープンするポート名を格納
        SerialPort1.Open()                      'ポートオープン
        txtMessage.Text = CNST_srtCOM & " - OPEN"
    End Sub
End Class

手順9

OPEN、CLOSEボタンはCOMポートのオープン、クローズ
ON、OFFボタンはLEDの点灯、消灯の切替ボタン

当たり前だけど.NETによるテストが無事に完了。

————————————————————————————————————
さらにアプリのインターフェースをもう少しいじりました。
そしてちょっとだけ難しい事に挑戦。
アナログピン0,1,2にそれぞれ温度センサー(LM61BIZ)を接続してグラフをリアルタイムで表示して見る事に

写真 2
この子たちが温度センサー(LM61BIZ)一個あたりの単価60円ぐらい

写真 3

ジャンパワイヤ、ブレッドボードで配線(^^;
なるほどハンダ要らずで簡単にテスト出来る!これは便利

写真 2

こんな感じでアナログピン0,1,2から三つセンサーを繋げてます。
写真 1

それぞれしっかり動いてるぅ~感動、面白い。

これで少しは電子工学に対する免疫力がついたかな(笑)

えっ!甘いってか?!(^^;

2015年最後の遠征~逆行(境)に挫けるなと今~自分に言い聞かせて

今日ほどブログアップをしたくないと思った日が果たしてあっただろうか。。。。

しかし!!今年最後の遠征だしここは勇気を出してUPしますよ~!(^^;

2015年最後の遠征は毎度お馴染みの荒木根ダムでした。

メンバーは、まーちゃるさん、ちゅらひろさん、kola29さん、そしてお久しぶりのさすらいさん(^^;
総勢5名、一番奥の一等地で観測をしました。

今年最後を締めくくる遠征、何とかして成果を残さねば!(^^;
とは言ってもこの日は24時30分過ぎまで大きなお月様がいます。

珍しく準備を早めに終わらせさらにドリフト法による極軸合わせもバッチリガイドが0.5ピクセル以内に収まってます。
後は月が沈むのをひたすら待つのみ。。。。

待ってる間スカイメモSの設定(^^;M42周辺をテスト撮影
これまたいつもになくバッチリな予感(^^)ただやっぱり月明かりが強すぎます。
で撮れた写真がこれ(^^;
111

いやーん見ないで(´ ▽`).。o

自信満々の写真がこれ?(笑)所詮自分の実力なんてこんなもんです。。。。。
再処理?!そんなものしません(  ̄っ ̄)

ただ初めて広角レンズで撮影した賑やかなところ!(^^;星がいっぱい!赤がいっぱい!凄く楽しい。
画像処理も難しいし遣り甲斐がありますね。
年明け早々に再チャレンジを誓います。

そして年内にどうしてもやっておきたかった魔女狩り
しかもメーカー不明(多分ビクセン)のアクロマートレンズの鏡筒で!
無謀とも思える夜中の鏡筒チェンジを強行そして魔女さんを狙いました。
結果は。。。。。。。
おおおぅ真っ白!
どこに魔女がいるんだ?!(@@;
撮って出し
DSCF2923

無理矢理炙り出してこれ
こ・こ・これが連邦のモビルスーツの威力なの。。。。じゃなくて
こ・こ・これがアクロマートの色収差なのか!

と言いますかアクロマート以前の問題です。何もかも全てダメダメです。。。。。
まーちゃる先生は魔女さんは入門編だと言っておりましたが。。。。
お兄ちゃんの嘘つき(><)ハメラレマシタ。。。。。
はかったな!シャァ!
majyo
居たは居たけどこれじゃぁねぇ。。。。これも来期繰り越し決定です(;´д`)トホホ

最後に皆さんに便乗してカタリナ星雲を撮影
ステラリウムの彗星アップデートが済んでおらず自動導入が出来ず泣いてる(TT)そんな時ちゅらひろさんのゴットハンドが火を噴きました!

ちゅらひろさん
「クランプ緩めていいですか?」

DRAGON
「いいっすよ、お願いします」

ちゅらひろさん手動で

キュウぃーーーーん、ビタッ!カチャ、カチャ。

おおおぉぉさすが30年のキャリア!とても自分には真似できない

お陰様でカタリナ君を導入する事が出来ました。

katarina

そして無事撮影終了

とまぁこんな感じでついに技術が逆行し始めたDORAGONちゃんでした。

今年の遠征はこれでおしまい。
来年もマイペースで楽しみながら行きます。
どうぞよろしくお願い致します。

第二回サイゼリア会議 - 充実した休日、知恵熱発症

必要な部品の買い出しも終わり実作業に入ります!
まずは銅板の切り出しから(^^)
BOSCHのジグソーを使って見ました。

切断能力:軟鋼板4mm、木材70mm、アルミニウム10mm、ストローク数:2,900回/分、ストローク幅:20mm、傾斜切断角度:左右0~45°、質量:1.6Kg

写真 2 写真 3

どうですか?思ったより綺麗に切れたと思います(^^;

しかし!!!

切って終わりにすれば良かったのですがその後、鍛冶職人のようにハンマーで叩いてしまい銅板が凸凹に。。。。
まーちゃる先生に「やり直し!」と言われてしまいました。(T-T)

配線ボックスの穴開け&カッティングシートの切り出し

写真 5 写真 4

どうですか中々のデザインでしょ?!

しかし!!!

甘皮(ビニル)が貼ってあるのを気付かずその上から文字を貼ってしまいました。
結局貼り直しです(T-T)

23時~
第二回サイゼリア会議開催

写真 3 写真 2

ファミレスのテーブルとは思えない悲惨な状態。。。。。
出禁にならないことを祈ります。

電源ユニットの配線
写真 2
説明書が入ってるけど何をどうすれば良いのか?見た目はガンプラのHGより簡単そうだが。。。。
見兼ねたまーちゃる先生、仮組してくれました(^^)/
そっとビニル袋へ入れて家にお持ち帰り

翌日は我が家でCANON X2の解体ショー

写真 1 写真 2
写真 2 写真 5

この解体ショーを見ずに自力で解体しようとしてたなんて無謀でした。。。今思うとゾットします。

そしてその翌日、慣れない事をしたせいか知恵熱発症!お仕事お休み。ドラゴンちゃんダウン。。。。。
写真 1