Wileyfox SPARK+(まだAndroid 7.0)

今年に入って最初のOTA。

でもやっぱりAndroid 7.0のまま。せめて7.1とかにならないかなと思うんだけど、あんまり関係ないんだろうか。

まあちゃんと今年のGoogleのセキュリティパッチになっていて、ファームウェアはまだまだメンテされてるみたいなのでこれはこれで良いかなと思う。

実はこのバージョンアップの告知があったのはTwitterで今年の1月頃だった。

3ヶ月もかかってる。

このバージョンアップは無印の初代SPARKも一緒だったので、どの機種もまだ見捨てられてないようだ。

ただし公式のサイトを見ると、初代SPARKはもう購入できなくなっていて、このSPARK+は100ポンドをギリギリ切るぐらいに値下がりしている。

そろそろ在庫処分かな、寂しいけど。

 

とは言っても最近あんまり面白いスマホがない(小さいやつはともかく)ので、買い替えもどうしようという感じ。

Android端末はしばらくこれ使うかな。

ArduinoのI2C関連メモ

Mongoose OSからちょっと離れるけど、せっかくなのでArduinoのI2Cについて調べていた。
OLEDのアドレスで引っかかってた件で気になった。
そういえばArduinoとかでOLEDを表示させる際のスケッチは、普段何気なくコピペしてたので深く考えることがなかった。
というわけで検索して発掘したURLを、自分用にだけどちょっとだけメモっておくことにする。

 

基本はArduinoでI2C通信を使うためのライブラリ、Wire.h。
これについては公式を見たほうがいいかな。
 https://www.arduino.cc/en/Reference/Wire

ちなみにMongoose OSでもArduinoの一般的なライブラリを使ってる。
(全部ではないらしいけど、標準的なのはカバーしてるっぽい)
そもそもスケッチの互換性が一応あるみたい。
当然書き込むボードはESP32とかESP8266になるけど。
ついでに調べてフォーラム見てみたけど、ちと微妙…かな。
 https://forum.mongoose-os.com/discussion/253/arduino-compatibility-is-awesome

 

横道にそれたけど、デバイスのアドレスとかで検索してたら、ArduinoのI2Cに絞ってまとめられてて解りやすいところ。
具体的な使い方。
 https://qiita.com/MergeCells/items/20c3c1a0adfb222a19cd
上記の説明が自分的には一番しっくりきた。
というか、参考になる別サイトへのリンクもあって正直もうここだけで充分じゃんと思った。
しかしやっぱり自力でスケッチを作成してみるのが一番勉強になるよなあ。

 

デバイスのI2Cのアドレス確認は、Arduinoの以下のスケッチで確認できる。
 http://playground.arduino.cc/Main/I2cScanner
接続するとシリアルモニタで確認できる。便利。
ソフトは書けないんでいつもコピペばかりだけど、できるなら自分もこういうシンプルなのを目指したい。

Mongoose OS(その3)

諦めきれずに、もうちょっとMongoose OSのこと。

同じように、Mongoose OSでのI2Cについて書いてる人発見。
 http://www.chaoticfocus.net/posts/2017/09/esp8266-using-i2c-with-mongoose-os/
最終的にはやりたいことが違うけど、とてもわかりやすいのでこれを参照に途中までI2Cについて確認してみる。

 

mos.yml内を確認。
 config_schema :
    - [ "i2c.enable", true ]

となってるので、I2Cを使用する状態になってる。
ライブラリも、libs:に
    - origin: https://github.com/mongoose-os-libs/i2c 
が入っている。問題なし。

 

デフォルトでSDAとSCLに使用するピンがちゃんと設定されてることを確認。
これはbuild/fs/conf0.jsonの中。自動的に追加されてるらしい。
    "i2c": {
        "enable": true, 
        "freq": 100000, 
        "debug": false, 
        "sda_gpio": 12, 
        "scl_gpio": 14

       }
記載されている通り、GPIOは12と14。
自分はNodeMCUのモジュールを使ったので、D6(GPIO12)にSDA、D5(GIPO14)にSCL。ここまでは確認できている。

 

んじゃ配線は問題ないよなあと考えて、ふとOLEDの設定の見直しを考えた。

元のinit.jsの中に、

 d.begin(Adafruit_SSD1306.SWITCHCAPVCC, 0x3D, true /* reset */);

という一文があるんだけど、Adafruit SSD1306ライブラリを使うプログラムでで良く見かける。

これはハード(というか解像度)の設定でアドレスが0x3Cに変わることがある。

なので試しに0x3Cにしてフラッシュし直した後、無事OLEDに表示が出ました。

結局、コードもライブラリもほとんど問題ありませんでした。

しかしトラブルがあって見直しをかける際、ビルド後のログとかも確認しやすいし、使いやすい開発環境だということは良くわかった感じ。

プログラムを修正して書き込み直ししたときに、また戻ってこなくなったことがあったので、ここだけはネック。

 

最近M5Stackに構い過ぎなので、こういうところでガス抜きしていこうかな。
(でも結局ESP32とかESP8266とか使ってばっかり)

Mongoose OS(その2)

昨日の続き。
インストールがさくさく終わっちゃったので、何かサンプルを書き込んでみた。そして案の定躓いてる。

スクリーンショットが取れなかったので、ホントにメモ程度。

 

そういえばさくさくとESP8266のモジュールと接続しちゃったけど、USBドライバがなければインストールしておくことが必要。
あと、接続をESP8266にしたとき、メモリの大きさを選択できたのでとりあえず(良く解らないまま)2MBを選択してあります。

 

で、続き。
メイン画面の「My Apps」のところに、「+New」と「Import」があったので、「Import」をクリックしてみたところ、サンプルプログラムらしきものがだ〜っと出てきた。
たぶんこういうところから引っ張ってきてるかなと思った。
 https://github.com/mongoose-os-apps
検索できるので、SSD1306 (OLED)関連のを引っ張ってきてみた。
やり方は上記にもムービーで記載されてる。解りやすくて助かる。

 https://github.com/mongoose-os-apps/example-arduino-adafruit-ssd1306-js

 

ボード名横の右上の端っこのアイコンでESP8266にフラッシュ。
…が、延々とフラッシュし続けてるみたいで戻ってこなくなった。
(画面を別のものにして戻ってきたら止まっていた)
どうも先に隣のスパナのアイコンを押してビルドしておかないとダメみたいだ。って、githubの該当ページのムービー見てればわかったはずなんだけど。

なのでやり直してみたところ、無事に終わった。書き込みの状態は画面下半分のウィンドウで解る。

 

書き込んだESP8266のモジュールと、OLEDと接続して…というところで気づいたんだけど、接続はどのピンが該当するんだろう?

その辺も再確認ということで調べてたら、フォーラムで

 https://forum.mongoose-os.com/discussion/1106/i2c-oled-not-working

という書き込み発見。

さっそくi2cのライブラリを探したところ、

 https://github.com/mongoose-os-libs/i2c/blob/master/mos_esp8266.yml

を確認して、

["i2c.sda_gpio", 12]

["i2c.scl_gpio", 14]

になってたので、該当する端子に繋いだ。つもりなんだけど、表示されない。

断線してるとかじゃなければ、何か間違えてる。

いつものことだけど一気にここまでやっちゃったので、また順にチェックして行きます。

一応方法だけは理解できたし。(たぶん)

Mongoose OS(その1)

まだよくわかってないのと、調べつつメモしてくことが増えそうなのでその1にしておく。

 

ESP8266とかと絡んでツイッターで「Mongoose OS」というのが気になったので、調べてた。

公式のHPを見る限り、IoTに強いという感じだろうか。

 https://mongoose-os.com

とにかくインストールしてみればいいか、と思ったので詳細を検索。

土台になるPCに開発環境を入れて、ESP32やEPS8266にプログラムを転送する感じかな。

Arduinoっぽいけど、JavaScriptでもプログラムできる。

インストール方法は以下。

 https://mongoose-os.com/software.html

端末はMacだとまたごちゃごちゃしそうなので、Ubuntu OSに入れてみた。

 

リポジトリを取得。

$ sudo add-apt-repository ppa:mongoose-os/mos
  The Mongoose OS command line tool
  詳しい情報: https://launchpad.net/~mongoose-os/+archive/ubuntu/mos
 [ENTER] を押すと続行します。ctrl-c で追加をキャンセルできます

 gpg: 鍵リング「/tmp/tmpysuy3rq4/secring.gpg」ができました
 gpg: 鍵リング「/tmp/tmpysuy3rq4/pubring.gpg」ができました
 gpg: 鍵1A213823をhkpからサーバkeyserver.ubuntu.comに要求
 gpg: /tmp/tmpysuy3rq4/trustdb.gpg: 信用データベースができました
 gpg: 鍵1A213823: 公開鍵"Launchpad PPA for Mongoose OS"をインポートしました
 gpg: 処理数の合計: 1
 gpg:               インポート: 1  (RSA: 1)
 OK

一瞬で終わった。で、あとはインストール。

 $ sudo apt-get update

 $ sudo apt-get install mos

 $ mos --help

これはコマンド一覧が出るだけ。起動は、

 $ mos

とすると、WEBブラウザからMongoose OSのIDEが起動する。エラーもなく簡単。

画面キャプチャが小さすぎたけど、とにかくMongoose OSのIDEの準備画面が起動している。

最初USBに何も接続されてなかったのでNo Deviceになってたけど、ESP8266のモジュールを繋げたところ、認識してOSをフラッシュできた。

あとはWifiの設定を入れれば終わり。

 

初期設定が終わって、プログラムが表示されている。

最初はサンプルプログラムが入ってた。

 

使ってる人のブログとか探してみたところ、解りやすいところがあったのでそこも参照して見るといいかも。

(自分はいつものとりあえすやってみようで、行き当たりばったりでやっちゃったけど)

 https://www.1ft-seabass.jp/memo/2017/07/20/espr_developer_32_meets_mongoose_os/

 https://qiita.com/shanonim/items/2c6429f0a0bb2c7d9325

でもってAWSとの連携が多い感じ。あらかじめサンプルが多くて便利らしい。

自分はAWSとか使う予定はなさそうなので、別のサンプルを引っ張ってきて使ってみることにする。

なのでもうちょい続く。

Sponsered Link