\r\n\r\n

携帯電話を何日も使い続けるための5つのArduino省電力化ヒント

Arduinoボードは、DIY技術のあり方を変えたが、しばしば電池切れになる。Arduinoを何日も、何ヶ月も、何年も動かし続ける方法を見てみましょう...。

Arduinoボードは、DIY技術のあり方を大きく変えました。Arduinoの信号機のミニチュアを作るような簡単なプロジェクトは、初心者に基本的な電子工学やプログラミングを教えるのに最適です。

Arduinoはホームプロジェクトに最適で、バッテリーパックを接続すれば移動中も使用可能です。問題は、どんなに大きなブロック電池でも、小さなArduinoボードではすぐに消耗してしまうことです。

本当にArduinoを長く使ってあげたいなら、いくつかの調整と変更が必要です。

1arduino 低消費電力ソフトウェアライブラリ

Arduinoの消費電力を変更するためのソフトウェア・ライブラリがいくつかあります。Arduinoを一定時間ディープスリープさせることで、動作の合間の電力を節約することができます。特に、気象観測所など遠隔地にあるセンサーの測定値を取得するマイコンや、大型機器のセンシング用サブ回路に有効です。

Githubユーザーのrocketscreamさんの低消費電力ライブラリは、使い勝手がよく、節電に最適なライブラリの一例です。ライブラリのサンプルコードを元に、次のようなコードを考えてみましょう。

#include "LowPower.h"// setup() your sensors/LEDs herevoid loop(){ // This next line powers the arduino down for 8 seconds //ADC means ****ogue to digital conversion, and BOD for brown out detection //both are turned off during the sleep period to save power LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); //After each sleep, you can instruct the Arduino to carry out its tasks here - for example, take a temperature reading and send it to a server.}

このコードを参考にするとよいでしょう。すでに組み込まれている方法を用いて消費電力を削減するだけでなく、潜在的に高価なアナログ-デジタル変換をオフにしたり(アイドル時でも電力を使用可能)、入力電圧が低すぎるときにArduinoのコード実行を停止するブラウンアウト検出を行うことができます。

Arduinoが消費する電力を削減するためのシンプルかつ効果的な方法です。

2arduino内蔵パワーセーブ

プログラミング言語であるArduinoには、省電力に配慮したスリープ機能が搭載されています。スリープ機能は、割り込み句と組み合わせて、Arduinoが再び起動できるようにするために使用します。

Arduinoにはスリープを中断させるための専用ピンがあり、セットアップ機能を使って以下のようにアクセスできます。

#define interruptPin 2void setup(){ //interrupt pin MUST be Arduino pin 2 or 3 on Uno //set the pin to pull up mode pinMode(interruptPin, INPUT_PULLUP);}

これで割り込みピンの設定ができましたので、安心してArduinoをスリープさせ続けることができます。簡便な方法としては、2つの小さな関数を作成することです。

void sendToSleep(){ //enable sleeping - note this primes sleep, not starts it! sleep_enable(); //attach the interrupt, specify the pin, the method to call on interrupt, //and the interrupt conditi***, in this case when the pin is pulled low. attachInterrupt(interruptPin, wakeUpAgain, LOW); //actually activate sleep mode sleep_cpu(); //code continues on from here after interrupt Serial.println("Just awoke.");}void wakeUpAgain(){ //stop sleep mode sleep_disable(); //clear the interrupt detachInterrupt(interrputPin);}

上記のコードは、Arduinoをスリープモードにするための簡易的なもので、2番ピンをGNDピンに接続することで、再びスリープを解除することができます。ArduinoUnoはスリープ状態ですが、総消費電力を約11mA削減でき、Pro Miniを使用すれば、通常25mAの消費電力がわずか0.57mAになることが期待できます。

割り込みは消費電力を削減する素晴らしい方法です。カークスのブログには、初心者向けに割り込みを解明するための詳細な記事が掲載されています。

arduinoのクロック速度を遅くする

Arduinoのクロックスピードは、1秒間にどれだけの演算を行えるかを決定します。ほとんどのArduinoボードは8または16MHzのプロセッサで動作しますが、Teensy 3.6などの一部の分岐ボードは180MHzまでの速度で処理することができます!そのため、多くのDIYハッカーは、DIYプロジェクトでArduinoよりも小さなマザーボードを好んで使用します。

このような処理能力は、消費電力という犠牲の上に成り立っており、フルクロックスピードを使用する多くのユースケースにとっては過剰な消費電力となっています。そこで、ソフトウェアでクロック速度を調整する。

クロックスピードを変更すると、ブートローダに問題が発生する可能性があり、間違った操作をするとスケッチをアップロードできないArduinoになってしまう可能性があることを警告しておかなければなりません。

どうしてもクロックスピードを変えたい場合、CPUの周波数をその場で変更できるArduinoIDE**のツールは、PieterPさんの詳細なガイドが参考になると思います。

4消費電力の大きいArduinoの部品の交換

ArduinoUnoは初心者に最も人気のあるボードで、ほとんどのArduinoキットには公式モデルやクローンモデルが用意されています。大きなフォームファクターとホットスワップ可能なマイクロチップにより実験に最適で、入力電圧の容量が広く、3.3vの部品をオンボードで電圧変換できるため、ほぼすべての用途に使用できます。

これらの機能はすべて、消費電力の面では決して安くはありません。これを踏まえて、Arduino Unoを物理的に変更することで、節電できることがたくさんあります。

ArduinoUnoの電圧レギュレータは、ボード上で最大の単一電力消費となります。入力電源から基板本体まで7Vで安全に落とさなければならないので、特に驚くことではありません。 この問題を解決するために、より効率の良いレギュレータを使おうとする人もいますが、これでは本当の解決にはなりません。

デフプロックエンジニアリングのパトリック・フェナー氏は、宇野選手の省エネ戦略を取り上げたブログで、素晴らしい解決策を提示しています。電圧レギュレータをDC-DC降圧型に完全に置き換えることで、マイコンの消費電力を半分にすることに成功したのだ。

5 自作のarduinoを作る

プロジェクトに必要な電源だけを使用する確実な方法は、マイコンを独自の仕様で設計することです。これまでにも、公式ボードの数分の一のコストでArduinoを自作する方法を紹介してきました。

回路のサイズや範囲をより自由にコントロールできるようになっただけでなく、待機時の消費電力を15.15mA、スリープ時の消費電力をわずか0.36mAに抑えました。この数値は、フォーラムのNick Gammonによる非常に詳しい記事から引用しました。

この記事は、Arduinoを使った省電力化について他の多くの側面から取り上げており、モバイルの電力をより多く絞り出そうとする際に非常に良い参考となるものです。

Arduinoで大きなアイデアと小さなパワーフットプリント

初めてArduinoの入門プロジェクトに取り組む場合、消費電力はあまり重要ではないかもしれません。

アイデアが膨らみ、より多くの思考を必要とするようになれば、セットアップをシンプルにする方法を学ぶことは、努力に値することです。Arduinoのボードを入手し、それを最大限に活用することで、本当にユニークで便利なデバイスを作ることができます。頑張って、どんどんいじってください。

  • 2021-03-24 09:53 に公開
  • 閲覧 ( 26 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ