virt_flyのブログ -29ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑Arduino Nano互換機でLチカ

 

IDEの設定と可動確認編

 

 

  IDEの初期設定はボード、マイコン、ポートの3つ

 

Arduinoの統合開発環境IDE、すなわちArduino用のプログラム作成ソフトがインストールできたので、「Arduino IDE」をダブルクリックして起動します。

 

↑インストール後、最初に起動したArduino IDEの画面

 

起動したら、さっそくスケッチ(プログラム)を入力して実行してみたいところですが、その前に初期設定が必要です。

 

↑「Select Board」と表示された箇所をクリックし、ボードとポートの指定へ

 

Arduinoにはさまざまなボードがあるため、どのボードを使うのかを指定しなければなりません。起動したArduino IDEのウインドウ画面上部の「Select Board」と書かれたボックスをクリックし、現れたメニューの最下段にある[Select other board and port]を選びます。

 

↑ボードとポートの指定画面

 

開いた「Select other board and port」の画面で、「BOARDS」と「PORTS」の2つにそれぞれ下にあるリストからボード名[Arduino Nano]とポート名としてUSBが付いた[COM9 Serial Port]をクリックしチェックを入れ、[OK]します。

 

↑3つ目は、マイコンの指定

 

初期設定の最後となる3つ目は、マイコンの指定です。IDEウインドウ上部のメニューから[Tools]を選んでクリックすると、画像のようなプルダウンメニューが開きます。

 

下の方にある「Processor:」の項には、今回「ATmega328P」がすでに指定された状態になっていました。そのために、3つ目の指定を確認しないままでも互換機を動かすことができましたが、本来は指定が必要です。互換機の中にはここを「ATmega328P(Old Bootloader)」と指定しなければ動かないものもあることを、このプルダウンメニューを開いてみていて思い出しました。

 

IDEの初期設定は、①ボード、②マイコン、③ポートの3つです。[Tools]からプルダウンメニューを開く方が、3つを一度に確認でき、また指定に入ることもできて便利です。IDEの設定は、Raspberry Pi Picoに似ていそうで結構違っています。

 

  スケッチ(プログラム)の実行例

 

Arduinoのスケッチ(プログラム)は、C言語で書かれているそうです。まだ一度も勉強したことがないので、Arduino Nanoの互換機がうまく動いてくれるかどうかを確かめるのは、できあいのスケッチ(プログラム)を借りて確かめるしかありません。

 

Arduino IDEには、あらかじめ組み込まれているプログラム例があり、メニューの[File]から[Examples]を選ぶとビルト・イン・イグザンプルのカテゴリーが表示されて、これらのプログラムにたどり着けるようになっています。

 

↑Built-in examplesから「Blink」名のスケッチを選択

 

今回は、簡単そうな[01.Basics]から[Blink]を選んで、実行させることにしました。

 

↑ビルと・イン・イグザンプルからスケッチ例を選択したら、後は実行

 

スケッチ例として「Blink」を選択したら、Arduino IDEの画面にプログラムが表示されます。

 

スケッチ(プログラム)の実行は、上部にある「→」マークの[Upload]をクリックすると始まるようです。アップロードというのは、パソコンからArduino Nanoのフラッシュメモリにスケッチ(プログラム)を転送という意味なのでしょうね。

 

Arduino Nano互換機に内蔵されたLED、画面て外部に接続したLEDが、参考例のBlinkのスケッチ(プログラム)にもとづき点滅。あるいは点滅間隔を書き換えたスケッチ(プログラム)を反映して点滅させることができました。

 

USBケーブルをパソコンから抜去し、乾電池式のUSBチャージャーにつなぎ替え、Arduino Nano互換機単独でスケッチを実行した場合でも間違いなくLEDを点滅させることができました(冒頭の写真)。

 

互換機は、ブートローダーが書き込まれていないものが多いと聞き、また今回使用した互換機の販売元のAmazonサイトを見ると、おかしな日本語で「ブートローダーがいる」ようなことが書いてあり、てっきりブートローダーは書き込まれていないものと思っていたのですが、これはどうしたことでしょう。

 

結果は、スケッチ(プログラム)とおりに互換機が動いたわけですから、この互換機にはブートローダーが書き込まれていたと考えればよいのでしょうか?

↑2個セットで購入していたArduino Nanoの互換機

 

互換機のドライバーとIDEのインストール編

 

  やる気がそがれる値上がり

 

物価の高騰の折、無駄遣いはやめようと言いながら、舌の根の乾かぬうちにもう次の商品をポチっています。

 

それでも、Raspberry Pi ZeroからRaspberry Pi Picoへ、高いものから安いものへとシフトはしています。さらに安く抑えるために、ATtiny85でも使おうかとも。1万円を超えたRaspberry Pi 4はもとより、2千円以上の買い物には余程の勇気が必要な私には、もうPi Zeroにも手が出せません。

 

しかし、安いといってもPicoは770円。Raspberry Pi Zeroが発売当初550円だったことを思うと、何か損な気分。考えてみれば、ATtiny85だって、390円(マルツオンライン)ほどとPicoよりは安いにしても、以前は100円だか130円と聞くと、なんだかむなしくなって電子工作する気が失せそうになります。

 

車を欲しがらなくなったように、電子工作も金持ちの道楽か何かのように思ってしなくなる人が増えるのでしょうか。経済が停滞し賃金は据え置かれたままである以上、日本人は高い外国製品を指を加えながら見ているしかないのは自己責任。いやなら海外移住しろってか。甲斐性のある人はとっくに出ていってますけど。

 

甲斐性なしは仕方がないので、Aliexpressで安いATtiny85を探すことにします。2個で送料込み409円(昨日までは407円。優柔不断が情けない)。

 

 

 

  ATtiny85を使うのはArduinoを知ってから

 

AVR/ATtinyシリーズは、Microchip(旧ATMEL)の8ビットRISCベースの1チップマイコンで、価格帯や手軽さからPICと並ぶ人気なんだそうです。ArduinoもAVRマイコンを使っています。

 

8ピンのATtiny85がどれほど使えるかは、実際にさわってみないことにはわかりません。Arduino IDEでスケッチ(プログラム)を書き込むことでArduinoとして動かすことができるということなので、まずはArduinoから勉強をはじめることにします。

 

手元には一昨年購入していたAruduino Nanoの互換機がありました。購入時は2個で999円、現在1,850円とこちらもずいぶん値上がりしています。これが使えるかどうかが問題です。

 

 

互換機ではブートローダー(注参照)が書き込まれていないことが多いといわれます。もし、そうならArduino UnoなりArduino Nanoの正規品を買うか、書き込み機を買う必要が出てくるわけです。

 

出費も痛いですが、少々面倒なことが、これまで使わずにいた理由の大半です。もう、当たって砕けるしかありません。

 

以下、Arduino Nanoを使えるようにするためにWindows上で必要な作業のメモです。

 

ドライバーをインストールする

 

使用するArduino Nanoの互換機が認識されるように、まずドライバーをインストールする必要があります。

 

販売元のAmazonの当該ページに書かれたリンク先からドライバーをダウンロードするのですが、かなり古いものでWindows11ではインストールができませんでした。

 

ようやく古いのに気づきネットで検索。互換機のドライバーのダウンロード元にふれたサイトを探し、WCHというサイトから得たドライバーをインストールしたところ、無事認識されました。ただし、Windowsでの話であり、Ubuntuでは今回コンパイル&ビルドに成功していません。

 

以下に、Windowsでの手順を簡単に記します。

 

WCHというサイトにアクセスし、首页(ホーム)の上部のメニューバーの[服务支持]をクリックして開いたドロップダウンメニューから[资料下载]を選択。開いたページを少しスクロールアップして[驱动程序]を見つけてクリック。OSにあったドライバーファイルを選び、次に開いた画面で[下载]をクリックしてダウンロードを開始します。

 

↑中華製互換機のほとんどは、ここのドライバーが使えるようです

 

ダウンロードしたファイル、CH3415SER.ZIPを解凍し、生成したCH341SERフォルダ内の「SETUP.EXE」をクリックして実行。次の画面で[インストール]をクリックし、「Driver install success!」と表示されれば、ドライバーのインストールは完了です。

 

↑ドライバーのインストール画面

 

Arduino IDEをインストールする

 

Arduinoの統合開発環境であるArduino IDEを、パソコンにインストールします。

 

Arduinoのサイトにアクセスし、[Ξ](ハンバーガーメニュー)から[SOFTWARE]をクリック。次いで、開いたダウンロードのページにある目的のArduino IDEの右側に表示されているダウンロードオプションからOSを選択します。

 

↑ArduinoのサイトのIDEのダウンロードのページ

 

新たに「Support the Arduino IDE」と表示されたダイアログが開きますが、[JUST DOWNLOAD]をクリックし、ダウンロードを開始します。

 

ダウンロードしたファイル、Windowsではarduino-ide_2.1.0_Windows_64bit.exeをクリックしてインストールを実行します。Ubuntuについては省略します。

 

↑はじめて起動した直後のArduino IDEの画面

 

 

注)Arduino Unoが採用したスケッチの書き込み方法は、フラッシュメモリに小さなブートローダを書きこんでおき、パソコンのUSBポートから送られてくるスケッチの情報を、シリアルインターフェースで取り込み、ブートローダがフラッシュメモリにスケッチを転送してから実行するというものです。(Arduinoのブートローダって何?より)

 

↑今更ながらですが、Raspberry Pi Pico互換機を使い作り直した二酸化炭素濃度測定器

 

RP2040-Microを使ってみる

 

Raspberry Pi のおかげ
 
Raspberry Pは、パソコンと言うには非力で、しかもケーブル類の取り回しが面倒、マイコンにしては少々お高くて、どうにも中途半端な印象が拭えません。そんな中でRaspberry Pi Picoは、マイコンに特化というかマイコンそのものですから、中途半端感がなくてすっきりします。
 
なんかRaspberry Pi をディスってるみたいですが、個人的にはRaspberry Pi がなければPythonを使って電子工作をすることもなかったでしょう。
 
 なにせ、パソコンに開発環境を構築したり自作のハードを接続することは、使いこなせなければメモリ喰いになり、下手すれば高額なパソコンを壊してしまいそうに思ってましたから。払拭できたのは、まだ安価なRaspberry Pi を母艦にすれば、例え壊しても損害は少なく気が楽に思えたからこそです。
 
しかも、Raspberry Pi にセンサーなどをつなげることは、WindowsやLinuxなどのOSに慣れ親しんできたパソコンにセンサーをとりつけるようなもので、直接マイコンで行うよりは余程敷居の高さを感じずにできたと思います。
 
Raspberry Pi Picoを使って電子工作するようになると、OSが立ち上がるのを待たされることもなく即プログラムが実行されて、さすがマイコンと便利さを痛感します。
 
MicroPython用とCircuitPython用に2つのPico
 
それならば、Raspberry Pi Zeroをより安価なPicoに置き換えるべしと、以前作った二酸化炭素濃度測定器を作り直しました。
 
文字サイズが変えられるようにしたいので、CircuitPythonでプログラムの書き直しが必要でした。
 
MicroPythonからCircuitPythonへプログラムを書き換えるためにはIDE自体をインストールし直さなければなりません。両環境を行ったり来たりする場合は簡単なことでもいちいち面倒です。
 
Raspberry Pi Picoを2つ用意しそれぞれに専用とすれば、いらぬ手間が省けます。さっそく、Aliexpressで思わぬ早く届いたRaspberry Pi Picoの互換機RP2040-Microを使うことにしました。
 
↑Zero用プロトタイプ基板(バニラ基板)上のPico互換機(手前)、ブレッドボード上は本家Pico(奥)
 
RP2040-MicroだとかRaspberry Pi Pico−newだなどと怪しげな商品名からして互換機かなと思ったわけですが、届いたものにはRaspberry Piのロゴが使われ基板の印刷もそっくり。色が少々濃いくらいで、本物と変わらぬ価格といい、中国にも正式な生産工場が設けられたのかと思わず考えてしまうものでした。
 
さすが中国!大丈夫かと思ってしまいますが、ブツの方は至って順調、いまのところ問題なく動いています。
 
スタック用にプロトタイプ基板(バニラ基板)
 
あいにく使えるブレッドボードが1つしかなく、互換機のピンは下向きにハンダ付けしてしまっていましたので、ユニバーサル基板に互換機を貼り付け、40本のピンを引き出すピンソケットをハンダ付けすることにしました。
 
↑Zero用のプロトタイプ基板(バニラ基板)にPicoを載せたため、40本のピンが2列ピンソケットに
 
汎用性をもたせようというわけですが、同時に基板をスタックして二酸化炭素濃度測定器に使えるようにもしたいとなると適当な基板が見つかりません。そこでRaspberry Pi Zero用のプロトタイプ基板(バニラ基板)をこれにあてることにしました。
 
プロトタイプ基板(バニラ基板)は、Zeroの40本のピンを隣の2列のスルーホールに引き出すようになっており、1枚の値段はaitendoで110円、秋月電子で130円、SwitchScienceでは330円もしており、2枚も使うのは少々もったいない。
 
結果的には、Picoの両端にあったピンがプロトタイプ基板(バニラ基板)では片側に2列並んだピンソケットに変わることとなりました。のちのち上にスタックする基板がPico用かZero用かわからなくなりそうです。これで良かったのか、一抹の不安が残るところです。
 
↑いずれも0.9インチOLEDとMH-Z19B二酸化炭素センサーが載り、どちらがPico用かZero用か一見して区別が付きません
 
スタンダードなRaspberry PiにしろZeroにしろ、ピンが上向きにハンダ付けされているのが一般的なようですので、今回互換機を貼り付けたプロトタイプ基板(バニラ基板)でピンソケットを使ったのは、区別にはなります。
 
ピンソケットを基板の裏側に使うと、あとから他のパーツをハンダ付けする際にかなり邪魔になるー表面実装の場合は逆になりますーので、個人的には表側に使いたい思いがあったことが反映しています。
 
Picoを使い二酸化炭素濃度測定器を作り直し
 
Raspberry Pi Picoを使った二酸化炭素濃度測定器の作り直しは、安くはないCO2センサーのMH−Z19Bや0.9インチSSD1306OLEDの使い回しができるように、直にハンダ付けはやめてピンソケットを多用したためかさばりは避けられず、また電池駆動の際は単3電池2本のチャージャーを使用することになったので、コンパクト化には至りませんでした。しかし、電源接続直後から測定が開始され、手数がかからずすこぶるご機嫌です。
 
外装は、3D プリンターを持たないので本格的なものはのぞむべくもありません。せいぜい、天板と底板をつけるくらいです。天板にディスプレイ用の窓を開けてOLEDをネジで固定し、センサー用に空気が通る穴を穿つ簡単な工作で、単に濃度を表示するだけの測定器が、一見それらしい見てくれとなったので良しとしたいと思います。