工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoを使用したHID準拠のUPS

コンポーネントと消耗品

Arduino Pro Micro
× 1
ブレッドボード(汎用)
× 1
ジャンパー線(汎用)
× 1

このプロジェクトについて

私は最近Arduinoで遊んでいて、Arduinoで何ができるかを確認しています。古い「ダミー」のUPSがありますが、USBポートがないため、ホストコンピューターにステータスを報告できません。私が念頭に置いていたプロジェクトの1つは、Arduinoボードを使用してダミーUPSの「頭脳」を作成することです。このようなUPSブレインの目的は、バッテリー残量、充電/放電状態、バッテリー電流、電圧などを測定することにより、UPSの内部ステータスを読み取ることです。これらの読み取り値はすべて、USBインターフェイスを通過し、ホストオペレーティングシステムによって解釈されます。商用スマートUPSで行われるのと同じ方法でコンピューターを使用します(たとえば、APCによる)。

カスタムUPS用のハードウェアドライバーの開発に煩わされることはなく、「プラグアンドプレイ」にしたかったので、調査の結果、この仕様に従ってHID準拠のインターフェイスを実装することにしました。 HIDは「HumanInterfaceDevice」の略で、もともとはキーボード、マウス、ジョイスティックなどの人間入力用のデバイス用に設計されていましたが、最近ではUPS、バッテリー、充電器などの電源デバイスをサポートするように拡張され、HIDを使用することでメリットが得られます。ホストコンピュータとのインテリジェント通信の標準。私の次のステップは、Leonardo、Pro Micro、およびそれらのクローンなどの一部のArduinoが、HIDキーボードまたはマウスとしてホストに表示できることを学ぶことでした。 Arduino HIDライブラリ、キーボードライブラリ、および多くのグーグルを分析した後、私は独自のHIDPowerDeviceライブラリを作成しました。設定方法と使用方法の詳細については、GitHubのreadmeをご覧ください。

私のテストラボは非常にシンプルで、ラップトップ、Arduino Pro MicroをUSB(私の場合はMacbookですが、Windows 10とUbuntuでも動作します)にUSB、ブレッドボード、1つのスイッチ(実際に使用した代わりにジャンパー)。また、診断用のLEDと、充電レベルをシミュレートするためのポテンショメータをいくつか追加しました。回路図は以下のとおりです:

S1は、Arduino Pro Microのピン4をアースに接続し、UPSがバッテリー電源で動作するのをシミュレートします。 S1がオフの場合、Arduinoは「充電中」であることをPCに報告します。

私の「UPS」はHIDに準拠しているため、Windows 10はArduinoもHIDバッテリーとして認識し、残りの容量のパーセンテージが正しく表示されます。

言及すべき重要な制限が1つあります。Windows10ではシステムに複数のバッテリーを使用でき、それらすべてをトレイに表示できます。ただし、バッテリーは同じモードでステータスを報告する必要があります(HID仕様はmaH、mwH、およびパーセンテージをサポートします)が、ほとんどのUPSは充電のパーセンテージのみを報告します。システムにすでにACPIバッテリーが搭載されている場合(たとえば、ラップトップでテストしている場合)、パーセンテージが正しく反映されていない可能性があります。

同様に、UPSはLinuxでも動作しますが、追加の構成が必要になる場合があります。READMEを参照してください。

更新2021年6月12日 Synologyのサポートに関するいくつかの質問を受けた後(ArduinoボードはSynologyによってHID準拠のUPSデバイスとして認識されませんでした)、私はこれについて少し調査することにしました。問題は、Synologyディストリビューションで使用されるネットワークUPSツール(NUT)にあります。これは、すべてのHID準拠のUPSモデルでデフォルトでUSBインターフェイス0を想定していますが、Arudino Leonardo / Pro Miniは、UPSにアクセス可能な複合デバイスとしてUSBポートにアドバタイズします。インターフェイス2で。割り込みエンドポイントにも同様の問題があります。この問題に関する技術的な詳細については、こちらをご覧ください。

Arduinoをサポートする変更されたNUTライブラリはこちらです。ソースからビルドして、ターゲットプラットフォーム(Synologyまたはその他の互換性のあるLinuxディストリビューション)にインストールできます。これはまだ実験段階であるため、現在のNUTファイルのバックアップを作成することを強くお勧めします。

楽しみ! :)

コード

HIDPowerDeviceソースコード
https://github.com/abratchik/HIDPowerDevice

回路図

arduino_ups_mlvhJQLrSZ.fzz

製造プロセス

  1. 実際のセンサーで効果を制御する
  2. K30センサーによるCO2モニタリング
  3. 1Sheeld / Arduinoとの盲ろう者のコミュニケーション
  4. Arduinoでコインアクセプターを制御する
  5. LEDを制御するBluetoothを搭載したArduino!
  6. ArduinoまたはESP8266を搭載した静電容量式指紋センサー
  7. Nextionディスプレイで遊ぶ
  8. Nunchuk制御ロボットアーム(Arduino付き)
  9. Arduinoで日射量を測定する
  10. Arduinoを搭載したミニレーダー
  11. Arduinoで音楽を作る方法