このブログを検索

ラベル Arduino の投稿を表示しています。 すべての投稿を表示
ラベル Arduino の投稿を表示しています。 すべての投稿を表示

2020/12/30

raspberry piに環境構築未完

昨日の夜、pi4にxubuntu-desktopをインストールさせたまま寝た。
ので、起きてから環境構築。
numlock周りの設定を変えて、ユーザ作って。

・Arduino IDE
arm64のtar.xzを拾ってきて普通に動く。初回起動時点で日本語表示になってる。ただ、ボードマネージャではESP32の環境を入れられない。「対応してない」と言われる。

・XCTU
Digiのダウンロードページにはx86,x64のみで armなし。

・PyCharm
tar.gzを拾ってきたがエラー。java関係の依存?

・vs code
arm64版で普通に動く。

といったような結果。chromeboxで動いちゃうから、現時点ではつきつめない。M1 macのおかげでarm対応が増えて来れば期待ができる。バックアップ用にintel CPUなpixelbook goの方に環境作ったほうが得策だ。持ち運びできるからMake系電子工作と相性良いし。

2020/12/29

chromeboxでArduino IDE + あるふぁ

 chromo os に戻してから入れて無かったので入れた。前回やったときはunoは認識してたけど他はだめでした。

 動作確認。
uno
 何故か書き込めない。でも、「昔こんな事があったな」とUSBA−B ケーブルを変えてみたらあっさり書き込めた。
Leonardo, Micro
 32U4系なので、リセットする度にchromeosで再接続する必要がありますが、書き込めます。
ESP32 系
 cp2102使ってるやつですがちゃんと認識して書き込めた! それよりLinux でのesptools周りのセットアップが未だにどこか手を出す必要がある方が問題だ。
m5stick-cやFT231X 使ってるSwitchScienceオリジナル系
 OK。

というわけで、raspberry piでArduino環境を別途作らなくても良さそうではある。ま、ubuntu LTSいれて作るには作るけど。

 続いて pycharmとmicroPython関係を整備してベランダに2つ動かしてるXBee3のメンテ環境も再構築。
 pycharmは入れるXBee用プラグイン「Digi XBee」の対応次第なので、最新版を入れれば良いわけではない。今回は2020.3まで対応してるということで 2020.3.1を入れてみたがプラグイン上手く読めました。あと忘れてた XBee汎用設定ルールの「xctu ng」もインストール。.runファイルなのだけどついsudoで実行してしまったら起動エラー。やりなおしてユーザー権限で実行してバッチリ起動しました。

 あとはvs code入れる前にコンテナのバックアップを取って、いざ。というタイミングでLinuxコンテナが起動できなくなった。バックアップから戻そうとしたが、壊れてるらしく戻せなかった。βだしなぁ。1回やってることなので戻しは早い。年末ネット混雑でパッケージを落とし直すのに時間がかかる。

 で、vs codeも無事入って arduino拡張入れていじってるとこ。中華フォントになってるのを治そう。感じがわかったらraspberry piにも環境作るかな。

2020/07/15

C101PでもArduinoIDE


 こないだ試してはいたものの起動できてなかったCPUがArmなASUS C101PでのArduinoIDE。こっちのほうがUSB−AポートもあるのでMake系には便利。

 $ uname -aLinux penguin 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:13:49 PDT 2020 aarch64 GNU/Linux

だったので、chrome osは32bitだけど64bit Arm版のarduino-1.8.13-linuxaarch64で入れてみたらビンゴ!無事起動できてblinkのコンパイルとアップロードもできました。duetに入れようかどうしようか。ポートがUSB-C 1個なのでマイコンとつなぎにくい。Over the Airでアップロードできるマイコン(ESP32 など)なら使えるかな。あ゛、ESP32用toolchainのarm版のバイナリが配られてないんだった。

2020/07/14

スリープブロッカーを作る

 スイッチサイエンスさんで委託販売されてた「スリープブロッカー」。OSがSleepしないようにマウスエミュレートして定期的にちょっと動かす感じのガジェット。こないだ見たら売り切れてて、なんだろうと思ったらGizmodoで記事になった為だとか。テレワークならではですかね。(さっき見たら在庫回復した。)
 マウスをエミュレートするならうちにもあるじゃんと、ATmega32U4の載ったArduino Leonardoがあるじゃんと。早速コード書いて作ってみた。ただ、LeonardoだとchromebookのArduinoIDEではポートがつながらなかった。Leonardoは起動シーケンス時に1回接続が切れるのか、Windowsでもポピポピ言ってかからなぁ。テストをWindowsでするからWindowsでコンパイル&書き込みした。


#include &ltMouse.h>const int interval = 30;  // secvoid setup() {  Mouse.begin();}// 一定時間に1回マウスを動かす x軸 右1 左1void loop() {  Mouse.move(1, 0, 0);  Mouse.move(-1, 0, 0);  delay(interval * 1000);}

ま、簡単だが機能しているようだ。

2020/07/13

chromebookでarduinoIDEできた

なにげに久々にぐぐったら以下のサイトを発見。
https://www.stevencombs.com/arduino/2020/01/20/arduino-on-chromeos.html
前に見た気もするけど試してみた。
Arduinoとつなぐために普段電源入れてるUSB-Cにもハブ入れて接続。arduinoとLinuxを接続するか?みたいなメッセージが出て呆気なく接続。
ArduinoIDEでもPort /dev/ttyACM0 で認識してる。blinkを書き込んだらちゃんとアップロードされて動きましたよ。
ESP32の環境もつくっちゃえばもうchromebookでカバーできるなぁ。XBee関係のソフトも試してみる価値ありだな。
半年損してたけど動いて良かった。


2018/05/23

室温センサー作り変え

micropythonでやってた室温センサー。連続動作4時間ぐらいでハングって動かなくなるので、1時間ごとにESP.restart()するようにしてたが、なんか腑に落ちないので。ESP32のArduinoで作り直した。httpまわりはmbedより楽だな。室内光センサとしてCDSもつけてDBにアップした。この室内光データを他のデバイスからも参照して、就寝中は表示デバイスを消したりするのに使います。

2018/02/26

ESP32 OTA

家に帰ってからOTAを試しました。実機は昨夜ジップロックに入れてベランダに貼り付けてしまったので、もう一つのESP32にて。i2cデバイスがADT7410とLCDの状態で。
いざ、コンパイル。ってあっけないほど簡単にwifiでプログラムのアップロード完了。でも、シリアルはあくまでシリアルに出力されるだけ。Serial.print()のデバッグ文も無線の向こうのマイコン側で出力される。
ってわけで、いまいち使い勝手がわるいかな。

2018/02/25

ベランダセンサーのESP32化

arduino互換機とXBeeでやってたベランダのセンサー。去年のマンションの外壁再塗装と入院でいまは部屋の中。子機の雨センサーはベランダに復帰させたのでこれだけが使える状態。
XBeeも低消費電力でスタックも軽いのだけど、違うこともやってみようと作り変え。

wifiで勝手知ったるjsonをrestで。iotらしいmqtt化はそのうち。右手がまだハンダごてをあつかえない為、ハード組み立てはブレッドボードで。センサーはi2cに統一。

昨日の朝はESP8266でやっていたのだが、昼にESP32-DEVCでも行けるんじゃないかと変更。こっちのほうがリソースに余裕あるい青歯にすることも出来る。その後ベランダで雨除けのケーシングする際にもう少し小さい方がいいなとブレッドボードを変更。ひさびさにFritzingをいじったがCAD系で左手でオブジェクトをクリックするのがきつくて、つい違うものクリックしちゃうよ(笑)。

最初のesp8266版の抜け殻


ESP32化してみた


ブレッドボードを小さいものに変更

LCDはデバッグ確認用なので、ソフトウエアからも取り外せるようにdipswで対応。i2c的には出力オンリーなので取り外してソフトはほったらかしでも問題はなさそうだけど。

とりあえず、
 ・センサーから情報読み取り
 ・読み取った値のweb表示
 ・読み取った値のjson化
 は出来たので。ベランダに設置して部屋の中のraspberry piから情報取得やグラフ系iot向けサービスと連携させていく。でもなぁpachubeの事もあるのでwebサービスはいつ潰れてもいいように自前の代替の仕組みを用意しとかないと。

2018/01/20

ESPR irでgoogle home連携

ESPR irは画像の左側のモジュール。ひとつのモジュールで赤外線受信機と赤外線LEDの双方が載ってるのでゲットしました。USB-UART変換は別に要るけどいっぱい持っている。
で、寝室の照明のリモコンをirRecvDumpでデータ化。どうやらNECフォーマットっぽい。
全灯 NEC: 176807F
調光 NEC: 17640BF
豆球 NEC: 176C03F
消灯 NEC: 17600FF
プログラムを変えて、赤外線照射のテスト。まずローカルで、ESPR上のWebサーバでsubmitボタン3つで、全灯・豆球・消灯を実装して寝室の照明の操作に成功。ある程度赤外線LEDの向きに気をつかう必要あり。ファイアウォールを変更してIFTTTからのwebhooksを受けられるように改造して、google assistantをthisに設定。
これでやっと寝室の明かりを音声で操作できるようになりましたさ。ESP8266はいっぱいあるので、赤外線LEDと組み合わせて手作りモジュールも作りたい。はんだ付けやらコードの皮むきとかの両手での作業を治具用意して片手でも出来るようにしよう。

で、ツレが「30分後に消して」とかの機能をリクエストしてきた。リモコン自体にも30分後/60分後の消灯ボタンがあるので、これを決め打ちで動かすのは出来る。だがn分後とかm時間後の任意のdelayをどう実現できるか?考えたい。IFTTT自体にはthisとthatの間にdelayを置く機能は今現在はない。案1は時間を$パラメータとしてもらってESP8266の中でwaitする。案2はこのWebサイトでwebhooksを受けてwaitしてからESPへwebhooksを引き継ぐ。ただ、waitしてる間に新たに点灯コマンドが入った時に消灯をキャンセルするとか考える必要あり。あ、夜中トイレにいくのに「5分だけあかりをつけて」ってのも便利だなぁとか。

2017/12/14

スマートスピーカテスト

寝室の照明をコントロールする手始め。
Google home miniをつかって音声コマンドをテストした。IFTTTを使用。Google home miniに「メールして」とお願いすると、自分のメールアドレスに「メールしたよ」という本文のメールが届くだけ。thatの部分をwebhookに変えて、自宅内のマイコンのWebサーバを引っ張らせて照明の赤外線リモコンと同じ発光をすれば良い。マイコンを外にさらすのもアレだけど、OSが無い分raspberry piとかをさらすよりは良いだろう。IFTTTでなくて直接宅内でスマートスピーカからRESTできるといいんだが、「Actions on Google」の「Actions SDK」 の方も試してみたい。宅内ローカル環境としてサーバ兼赤外線発光機を立てるならpiもありだな。pi zero wも1枚だけあるし。

2016/08/10

BP35A1と格闘中

 工事のあった週の週末にはBルートのIDとパスワードが届いたので、スマートメータからの読出しのテストをしている。

 最初にPCでpythonのサンプルを試したらサクッととれた。居間からやっててメータボックスの中のスマートメータに対しても通信は問題ないみたい。

 続いて、ESP8266単体でのテスト。コードはここのをベースにSoftwareSerialはesp用のを入れて、さらに参照サイトの様にBP35A1との通信は9600bpsまで落としてみたが、受信欠落してしまう。
ESP8266でできると小さいし、無線LANで直RESTでデータ送信もできるので良いのだが。BP35A1とはソフトウエアシリアルではなくハードシリアルでつなげばいけそうではあるが。

 うって変わって、mbed1768でのテストに変更。ソースはESP8266の時にいただいてきたのをベースにmbedに合うように修正。mbedですらも、標準Serialだと受信欠落する。デバッグ用にPCともつないでいるからか。バッファリングしないとだめだぁとMODSERIALに変えてみた。したら、欠落することなくスマートメータとコネクトまではできるようになった。しかしそこから進まない。
 どうやら、ECHONET Liteの電文に0x00があるのがバッファリングするMODSERIALだとダメ臭い。MODSERIALはpc側だけにして、BP35A1とはRawSerialにしてみたら、電文がputcできるようになって、無事にワットが受信できるようにはなった。しかし、何度かループさせてると、受信データにゴミがはいることがあり止まる。

 だいぶ元のコードがやってる事がわかってきたので、シリアルのライブラリが便利なArduino系のESP8266単体に戻してハードシリアルでテストしたいと思う。これでダメだったら、Arduino Due出してくるかね。

2015/09/15

少電力化(省電力化)

 ハロウイーン用イルミのコードのを見直し。

 pwmで動いてるところはSLEEP_MODE_IDLEのsleep, LED点灯しない部分のdelayはSLEEP_MODE_PWR_DOWNのsleepにしてみた。
SLEEP_MODE_PWR_DOWNの部分はガクッと消費電力がさがった。
 あとは点灯時間中でもすべてのLEDが0のタイミングでSLEEP_MODE_PWR_DOWNが使えるかな?→使えるようだ。

 ただ、デバッグ時はシリアルを使うし、millis()も参照したいので、#ifdefでモードを使いわけようかね。

2015/09/13

ATtiny84vにしてみたり ATmega328pに戻したり

 ハロウィーンイルミネーションの話です。

 電池ボックス内に入れる基板の実装に不安を覚えて、14ピンDIPのATtinyでもプロトタイピングしてみました。
PWMも4つ使えるし、ATmega328Pの28ピンと比べると半分の長さですから。
 で、動作時の電流を測定してみると、なんか多い。まぁ、LED点灯時でなければ2mA以下なのですが。タイマーが2つしか無いからPWM使うと厳しいのかしらん?

 結局、328Pで実装しました。

 プログラム書き込み機能は省いて、デスクで書き込んだICを丸毎取り替えるようにICソケットソケット実装です。

 続いて、リースにつけるLEDに電線つけてコネクタを圧着する作業があります。

2015/09/12

ArduinoIDE1.6.5にしたら

 デバッグ時はデバッグ文をシリアルに出してるのだけども、表示されない。
タイマーの使い方がArduino1.0.x系と違うのかな?
#ifdef DEBUGを外してやれば動くことは動く。
一旦1.0.x系に戻そう。1.0.6環境をつくるか。

2015/09/11

ATmega328PにしたのでArduinoIDE1.6.5に移行

ATtinyからATmegaに移行したので、ArduinoIDE1.6.5が使えるようになった。
どうもLinux版の1.0.5だと日本語文字列がエディターに入らなかったので日本語がインラインではないけども入力可能になって助かった。
もしかしたら1.0.6なら行けたのかもしれない。

1.0系も1.6系もLinuxだとフォントが汚くて嫌気がさしてたのだけど、単にデフォルトでアンチエイリアスがオフになっていただけ。preferences.txtのeditor.antialiasをtrue変更して綺麗になった。助かった。

コードはATtinyの時はi2cのPWMドライバを使ってたので、analogWriteに変更するのとPWM中はウォッチドッグタイマを使ったPowerDownモードに落とすとPWMが止まるのでIDLEで。

2015/09/06

電流計測部を変更&ATmega328P化

 昨日、はまっていた168Pの内蔵クロック8MHz化。諦めて手持ちのATmega328Pを使う事にしてさくっと内蔵クロック8MHz化は完了。168は168と168Pがあって、シグネチュアが違ったり、イマイチうまく設定できない。1個だけうまく行ったのがあるのだけども、再現できなかった。

 続いて電圧と電流を計測する部分を単独LCD表示も可能なように変更。うちのi2cLCDは3.3V版しか余ってないので、計測マイコンをArduinoNANOからArduinoProMini 3.3V 8MHzに変更。

 そして肝心要の本体をATmega328P化しました。

 これで書き込みがブートローダ経由なので楽ができる。タイマーも3つあるし。ATmega328PベースでIOの数を絞った14ピンDIPくらいが欲しいなあ。28ピンはでかすぎる。

 電池ボックス内の8×18の基板イメージ。やっぱ狭いし、328Pが長すぎるなw。

2015/09/05

CR2032はあきらめた

 こんな感じで電流測定。4mA-7mA。でもATtinyだけでも3mAくらい消費している。まだ、Sleepのコードを入れていないからというのもある。
 CR2032を使うのはやめて単4電池二本の3Vにする。

 秋月のスイッチ付き単4x4本の電池ボックスを改造。

 本来電池4本で6Vのところを端子を外したり移動したりで2本で3Vの仕様に変更。

 残りの2つの電池部分はパーテイションのプラをラジペンでもぎ取って、ニッパーで整形。

 これならATmega328P/168Pでも入るな、と思ってその後ハマった。8MHzのATmega168[P]のArduinoを作るのに。

 なので一旦、初心通りにATtinyでコード&プロダクトまで作っておいて、余裕があったらATmega化を考えることにした。
「小さくつくって大きく育てる」ですかね。

2015/09/03

ATtiny開発環境復活


LinuxMintなのでArduinoISPにて書き込み。
ArduinoIDE 1.0.5環境。1.6系でATtiny対応させようとは思ってますが、まずはISPできないと始まらないので後回し。

2015/09/02

ハロウィーンの準備

あっという間に9月。8月は休日出勤とか残業とか雨で公共交通機関通勤とかあって時間が取れず。
マトリックス掲示板はまったく進捗してない。でも、seeedstudioに似たようなの4mm 64×32を1枚オーダー中。なぜかシンガポール周りで来るようだ。

さておき


数年前にこれを手に入れたのでなんとか電飾化したい。
ただ、これは直径10cm程度の小さなもの。電源、マイコン類を隠すのに苦労する。


困った時のフリスク頼み。手持ちのフリスク基板とCR2032で何とかしたい。TrinketはLEDが載ってるので除外。ATtiny84は14pinでオーバーサイズ。8pinoかATtiny85Vか。PWMでLED2つ点灯ですけど、CR2032なので良いかなと。欲張っても仕方ないので。ATtiny85 DIPの場合高さがあるのでICソケットが使えなく基板に直付。となると書き込み用の端子が必要になるなぁと。
実は間違えて買ったTSSOPの45Vを2つほど持ってるので、平べったいこっちでなんとかするかも。

一番の問題は10月前半に間に合うか。11月になったら意味ないし。

2015/08/29

マイクロテクニカのESP-WROOM-02実装済みブレイクアウトボード

Amazonのマーケットプレイスで売ってるマイクロテクニカ版のESP-WROOM-02のブレイクアウト。
ちょっとまえに2個、先週2個ゲット。これで家のESP-WROOM-02は6個になった。

スイッチサイエンス版とピン配置が違うのですが、リセットスイッチのパターンとかが出てて、タクトスイッチをつければ良いので楽。
自前で基板を起こして、リセットや内蔵フラッシュ焼きモードへの切り替えとかをブレイクアウト基板上で行えるようにしたらいいかな。
多分そんなブレイクアウトも出てくると思う(他人任せ)。

さてwifiのテストをせねば。アドホック通信で1ペアをつかってラジコンにするか、単純に温度センサーにしてアップするか。
あ、このモジュールADCの仕様がMAX1V&1チャンネルのみなのでちょっと残念です。温度センサするならi2c温度センサを使わないと。