雑記

Arduino で遊んでみた覚書

投稿日:

Arduino で遊んでみたのでその覚書。


 

環境

  • Arduino UNO SMD R3
  • Arduino Ethernet Shield 2
  • 開発環境: Ubuntu 18.04
     

セットアップ

Arduino IDE のインストール

本家からダウンロード
手順なども本家に詳しいガイドがある。

Linux の場合は、最終的に自分がおきたい場所に展開後、中で $ ./install.sh
一般権限で行うと展開場所に対するメニューエントリーやデスクトップショートカットなどを作成するのみ。
管理者権限で行うと、システムパスからリンクを張るような動作になっているようだが、あまり必要ないと思う。
 

デバイスのアクセス権限設定

Linux の場合は、IDE の実行ユーザーが Arduino のデバイスファイルに読み書きできる必要がある。
デバイスファイルは /dev/ttyACM* になる。
dialout グループにユーザーを追加して、ログアウト/ログインすれば反映される(はず)。
私は面倒なので今回は $ sudo chmod 666 /dev/ttyACM* とした。
(セキュリティ的にどうなのかは知らないが、本番環境ではないのでまぁいいでしょう)

Google Adsense



ひとまず動作確認

IDE で C++チックな "Arduino言語" でスケッチ(ソースコード) を書いて、コンパイル, 転送という流れ。
よく記載されているのが、基盤上のLEDを明滅させるスケッチ。

digital I/O 13ピン がLEDに直結されているので、
これを時間を空けて上げ下げすると LED が明滅する。
 

Arduino UNO の入出力PINアサイン

本家の DOCUMENTATION に記載がある。
 

電源

外部電源は

  • USB: 5V, 0.5-0.9(?)A
  • 外部電源DCジャック: 7-12V, 1A
  • 外部電源ピン(Vin, GND): 7-12V, 1A
     

デジタルI/O

14ピン, うち2ピンは RX/TXに割り当てられている。
基盤上に "~" 付きでラベルされている 3, 5, 6, 9, 10, 11 は 8bit-PWM制御可能。
digitalWrite の代わりに、analogWrite(10, 0xA0) とかすれば良い。
ピン#13 は基盤上のLED に直結されているので、開発初期においては、ステートを視覚的に確認しやすい。
 

ADC

6チャンネル, 10ビット。

Google Adsense



外部駆動電源ピン

3.3V, 5V, GND など。
Vin は少しややこしくてここから供給することもできるが、
他から供給している時は、3.3V や 5V に調整される前の電源にアクセスできる。
DCジャックから 9V を供給すると、このピンは 9V になる。
 

その他

  • SCL/SDA: I2C通信用
  • AREF (Analog reference): ADCの dynamic range を決める基準電圧
     

Ethernet Shield 2

新しめの IDE は各種ライブラリの導入も簡単にできるようになっている。
メニュー: スケッチ → ライブラリをインクルード → ライブラリを管理 からマネージャを起動、
検索から "Ethernet2" を探して、右のインストールを押下。
これでライブラリと共に、example も合わせて導入される。

メニュー: ファイル → スケッチ例 → Ethernet2 以下に動作するサンプルがある。
"Ethernet Shield 2" では "Ethernet2" ライブラリを使うのがポイントらしい。(出展失念)
 

やったこと

  • シリアル通信による読み書き
  • ブラウザ越しに読値などを表示
  • digital I/O からの供給電源のON/OFF制御
     

やりたいこと

  • I2C によるセンサ, 他機器の制御, 読み出し
  • PoE (Power over Ethernet) による配線簡素化
     

最終的にやりたいこと

  • Vin から昇圧して外部機器に供給
  • digital I/O から FET/photo-coupler で一部電源供給を切入, reset/latch解除など
  • ADC, センサなどスロー系を読み出し、読値を Ethernet 越しに DBへ記録
     

Google Adsense

Google Adsense

-雑記
-, ,

Copyright© HEPtech, 2024 All Rights Reserved.