|
setup diary |
マイコンとしてAVRを使い出したのは2010年頃だった。それ以前は、論理ICを組み合わせて回路を作ったりしていたが、PS2のマウスとの通信をする必要があって、いろいろと調べていたらAVRを見つけれ、使い出したのが最初だと思う。それから約六年が経つが、必要なものを作るのに、AVRはいろいろと活躍してきた。PCと測定装置のインターフェースや測定装置自身、最近では電力制御電源なども作ったりした。
この間に、書き込み機もいくつか使って来た。最初はプリンターポートを使っていて、専用のケーブルを自作した。しかし、プリンターポートがだんだんと無くなって来て、USBの書き込み機として、FT232のbitbangを使ったものを作って使うようになった。しかし、PCと通信させるようなものを作るときには、USBシリアル変換と書き込み機の両方の役割をFT232にさせることもある。その際、配線の手間を省くためには、arduino互換の基板を使うと便利であることに気が付き、それを使うことが多くなった。
こうなって来ると、arduinoを使ったら良いのでは無いかと思うが、それなりの値段がするので、あまり乗り気では無かった。いろいろと探してみると、arduino互換機の中には、非常に安く売られているものもある。AVRとUSBシリアル変換ICの値段よりも、安くなっているものを見ると、もうこれを使わない手は無いということで、重い腰を上げることになった。
まず使ってみたのはarduino UNOの互換機であるが、確かに簡単なことは簡単に使えて素人には便利である。しかし、AVR自身を使っていた人間にとっては、かゆいところに手が届かないような感じもする。例えば、すべての種類の割り込みが使えないようだし、ADCも差動が使えないようだ。基板だけarduinoを使って、プログラムは普通に書いて、ISPで流しこんだら良い気もする。普通のAVRのプログラムをUSBからarduinoに流し込めるのかな。これができたら私に取っては非常に便利なのだが。簡単なことをするときには、arduinoのスケッチを書いて、複雑なことをしたいときにはAVRのプログラムを書けば良いのである。
arduino IDEから扱える、NodeMCUも試してみた。こちらのCPUについてはまだ理解していない部分が多いのだが、WiFiを手軽に使えて、少し驚いた。CPUも速いし、メモリも多いので、あまり気にしないでプログラムできるし。
今後、arduinoとNodeMCUを使って、いろいろな装置を作っていこうと思う。
トラ技の過去の目次を見ていたら、ESP8266が紹介されていた。これを使うとWiFiを簡単に使えるようになるらしい。また、それが組み込まれたボードもいろいろな種類が発売されているので、それらを使う方法もある。
ESP8266自体を直接使うためには、ピッチ変換基板にハンダ付けをしたり、USBシリアル変換と繋いだりしないといけないので、それなりに面倒なようだ。一方で、Arduinoとピン互換のD1や、それを小型化したD1 mini、さらにはNodeMCUなどは、USBケーブルに繋ぐだけで、使えるようになっているので、ちょっと試してみたい人には良いように思える。これらはArduino IDEから使えるようだ。実際、NodeMCUは試してみたが、簡単に動かすことができた。大きさ的にはD1 miniが良いように思える。
Groveを簡単に使えるようにしたWio Nodeというものもある。しかし、こちらはWiFiからしか命令を送ることができず、汎用性に乏しいように感じられる。しかし、Groveコネクタとして、RxDとTxDが出ているので、これにUSBシリアル変換をつなげば、直接プログラムを流し込むことができるのでは無いかと考えている。いつか試してみよう。
簡単な数式の計算をしたいことがあったので、raspberry piのMathematicaでやろうかとも思ったが、手元になかったので、maximaでやってみた。aptでインストールして、ターミナルでmaximaと打って立ち上げる。
今回やりたいのは、複素数の実部と虚部を求めることである。最初につまずいたのは、文の最後に;を打たないといけないことである。そして、虚数単位は%iとして記述する。実部はrealpart()で、虚部はimagpart()で求めることができる。しかし、表示が目で見て分かりやすいようになっていて、通常の表示にはなっていない。そこで、display2d:false;とすると、表示形式が通常のプログラムで書くような感じになる。これで、maximaの出力を別のソフトに渡すことができる。