気になること(BlackBerry KEYone、KEY2)

気晴らしに、気になってる端末の値段チェック。

しかしここ最近、欲しいスマホは値段が高いのばかりに目が行くので手を出しにくい。
高いというか、欲しいのが格安中華スマホじゃなくて普通のスマホが多くなったという感じか。

 

キーボード付きがずっと気になって、BlackBerryシリーズを今もチェックしてる。

OSのサポートが切れるのが解ってるけど、今でもBlackberry Passportなんて使い勝手が良すぎて手放し難い。
キーボードの感覚は個人的にはQ10が好きなんだけど、画面が小さいのがネック。

持ち運びにはQ5やQ10がいいんですけどね。

 

Android OSになったとはいえ、やっぱり気になるのがBlackBerry KEYone。
KEY2が出てきたおかげで、32GBのほうならEXPANSYSで45000円切ってる。今のところ。

icon

icon

ただ、入荷待ちの時の方が多い。意外と売れてるのかな。

これがいずれ3万円台になったら手が出せるかなと考えてるけど、その前に販売終了になる可能性もある。

タイミングが難しい。

 

KEY2はさすがに7万円超えてる。まだまだ高値。

icon icon

こうやって画像を見比べてみると、外観にあんまり差がないように見える。

スペックを見ちゃうと、KEYoneよりやっぱりこっちが欲しくなってる…気がする。

 

ちゃんとしたサポートが欲しいなら、当たり前だけどamazonの日本正規代理店品を買うのが一番いい。

もちろん値段は高くなるけど、最近中華通販サイトのやりとりに疲れてきたのでこっちもチェックしてる。

でも国内のamazonもたまに海外の業者がいるので、注意は必要。

EXPANSYSはまだ比較的安心感はあるんですけどね。

Sponsered Link

MacのPythonのバージョンアップ

やりたい事の流れで、MacにインストールされてるPythonをバージョンアップしたくなった。

デフォルトでインストールされているのが古い(2.7だったと思う)ので、せめてVer.3以上のを使いたいと考えた。

そしたら思ったより面倒だったので、やった事メモ。

 

作業はもちろんターミナルから。

普通にPythonのみ入れようとしたらダメで、まずpyenvをインストールする必要があった。

pyenvって何かと思ったら、pythonのバージョン管理を行うらしい。

 $ brew install pyenv

必要なPythonのバージョンをインストール。

 $ pyenv install 3.6.0

しかしここでエラー発生。

MacではOS 10.13でエラーが出るらしく、検索したらそのまんまのところがあった。感謝。

 https://qiita.com/kasama123/items/ab9eea7a9c42e3941a14

みんな同じようなところで苦労してるみたいで、ログを残してくれているのはありがたい。

上記の通り、コマンドを入力していく。

 $ brew install readline openssl xz

.env-exporterというファイルを作成。viエディタでもいいけど自分はいつもnanoエディタ。

 $ nano ~/.env-exporter

内容は以下。

# about zlib
export CFLAGS="-I$(xcrun --show-sdk-path)/usr/include"
# about readline
export CFLAGS="-I$(brew --prefix readline)/include $CFLAGS"
export LDFLAGS="-L$(brew --prefix readline)/lib $LDFLAGS"
# about openssl
export CFLAGS="-I$(brew --prefix openssl)/include $CFLAGS"
export LDFLAGS="-L$(brew --prefix openssl)/lib $LDFLAGS"
# about SQLite (maybe not necessary)
export CFLAGS="-I$(brew --prefix sqlite)/include $CFLAGS"
export LDFLAGS="-L$(brew --prefix sqlite)/lib $LDFLAGS"

これを保存。さらに動作するようにする。

 $ source ~/.env-exporter

ここで改めてインストール。

 $ pyenv install 3.6.0

たぶん、これで問題なくインストールできるはず。というか、できた。

 

最後に環境変数を設定しておく。

 $ nano ~/.bash_profile

.bash_profileファイルに

 export PATH="$HOME/.pyenv/shims:$PATH"

と、一行追記しておく。その後

 $ source ~/.bash_profile

 $ python --version

とすると、Python 3.6.0と出てきたので成功。

 

こうやってまとめると大したことやってないみたいだけど、あちこち検索して遠回りになって大変だった。

とにかく、これでPythonの3以上の環境が欲しい時に使えるようになって一安心。

 

なんでいきなりこんなことをやったかというと、前のM5Strackの書き込みができなくなったことが尾を引いてるんですけどね…。

ちなみにesptool.pyを最新にしてファームウェアを書き換えようとしたんですが、ダメでした。

この件も解決したら(するのか??)、やったことをメモに残す予定。

Sponsered Link

M5STACK(その10)

実は昨日の問題がまた発生したんだけど、何度も書き込みするのが面倒になったので別のM5Stackを引っ張り出した。

たくさん買っておいてよかった。(と、前向きな考え方をしておく)

 

接続したかったのは先日スイッチサイエンスで購入した、M5Stack用USBホストシールド。

 https://www.switch-science.com/catalog/3919/

9/8時点で既に在庫なしになってる。早めに買っておいてよかった。

ときどきM5StackをUSB機器と接続して使ってみたいことがあるので、ブレッドボード上でなんとかしようとしてたんだけど(実際、やってる人がいた)、やっぱコンパクトにまとめられてるのが欲しかった。
機能は言わずもがな、M5Stackの小さいサイズの良さが生かされてるのがいい。

 

今回の動作確認に使ったのは、よくあるBluetoothのドングル。

ESP32ってBluetooth(BLEか?)搭載だったような気がするので実際には使わないかもだけど、何がいいってお手軽に接続できるところ。

何よりドングルも小さいので邪魔にならないし。

 

事前準備として、USBホストシールドのライブラリをダウンロードして追加。

 https://github.com/felis/USB_Host_Shield_2.0

この中にあるサンプルスケッチの、Bluetooth/SPP.inoを使用。

中を見るとわかるけど、Bluetoothで送られたデータをシリアルモニタにエコーバックするだけの単純なスケッチ。

これをちょびっと書き換えて、M5Stack用にした。

ライブラリのSPP.hもいじって、69行目の

        SPP(BTD *p, const char *name = "Arduino", const char *pin = "0000");

を、

        SPP(BTD *p, const char *name = "M5Stack", const char *pin = "0000");

にし、ペアリングの時にM5Stackが出てくるようにした。

スマホから見るとこんな感じ。なんか嬉しい。

スケッチもシリアルモニタに表示させるところをM5Stackの画面に出るように書き換えて、コンパイルして転送。

お手軽にスマホからデータを送りたいので、「S2 Terminal Bluetooth Free」をインストールした。

アプリを起動し、ペアリング済みのデバイスからM5Stackを選択。

M5Stackと接続できた状態。

試しに「test」と書いて送ってみると…

なんだこりゃ。

と思ったけど、そうかASCIIコードになっちゃうのか。そこまで考えてなかった。

 

でも一応動作確認はできたのと、意外と簡単だったのでとても楽しい。

やりたいことはたくさんあるんだけど、自分の知識が追いついてないので、今回のようにサンプルスケッチをカスタムして実験しつつ欲しいものを作っていこうと思う。

Sponsered Link

M5STACK(というかESP32の問題)

M5Stackの新しいボードが届いたのでそれについて書こうと思ったのに、全然別件のトラブルが起きてビビったのでそっちを先にメモしておく。

(もう出ないことを祈るけど…)

 

久々にM5Stackを接続して、スケッチをコンパイルして書き込みしたところ、見たこともないエラーが出た。

ご丁寧に、

 A fatal error occurred: MD5 of file does not match data in flash!

 A fatal error occurred: MD5 of file does not match data in flash!

と、ムカつくことに二行も出て来てくれた。

もちろん書き込みはできてないようで、シリアルポートにも何も出てこない。

コンパイルまではできているので、ハード側の問題だとわかる。

 

このエラーメッセージでそのまま検索したところ、どうやらM5Stackの問題ではなくてESP32の問題らしく、いろんなところで見つかった。

でも具体的な対処方法が書かれているところが見当たらない。

どこかにはあったかもだけど、その時自分がざっと見た感じでは見つからなかった。

ESP32のフォーラムでも同じエラーをちょこちょこ見かけたけど、どうもはっきりしない。

 https://www.esp32.com/index.php

 

ただ、Nefry BTというESP32を使ったボードの解説サイトに、それっぽい話が書いてあった。

 https://dotstud.io/docs/nefrybt-error-handling-2/

単純に、

  • 何度も書き込みをしてみる
  • Arduino IDEのUpload Speedを遅くする

で、治ることがある…らしい。

 

スケッチを簡単なものに変えて、記載されている通りスピードを921600から460800にし、5,6回書き込みしてはリセットしてみたけど治らない。

なんかもう最後はめんどくさくなって、スピードを元通り921600にしてみたところ、あっさり治ってしまった。

 

元に戻したのがよかったのか、何度も繰り返したのがよかったのかわからず、なんか納得できない。

でももしM5Stackに限らずESP32が載ったボードで同じエラーが出たら、諦めずに書き込みを繰り返してみるといいかもしれない。

Sponsered Link