カテゴリー: ハードウェア

  • Raspberry Pi Pico WでMicroPythonを使ってLチカ

    個人的メモ。

    • BOOTSELボタンを押しながらUSB接続
      • USBドライブが認識されればOK. されなかったらケーブルを替えて試す(はまった)
        micro USBのケーブルは充電専用のものが多く紛れてる印象
    • UF2ファイルをダウンロードしてドライブに保存する
    • Thonnyをダウンロードしてインストール
      • https://thonny.org/
      • 今回は"Installer with 64-bit Python 3.10, requires 64-bit Windows 8.1 / 10 / 11 thonny-4.1.2.exe (21 MB)"を使いました
    • Thonnyを起動してRaspberry Pi Picoと接続する
      • Thonny画面右下に「ローカル Python3・ThonnyのPython」となっているところから切り替える

    file

    • 画面下の「シェル」にコードを入力して動作を確認する
      • machine.Pin('LED', machine.Pin.OUT).on()を実行すると光るはず
      • machine.Pin('LED', machine.Pin.OUT).off()で消灯

    画面上にソースを書いて「実行」してもOK

    import time
    
    while True:
        machine.Pin('LED', machine.Pin.OUT).on()
        time.sleep(1.0)
        machine.Pin('LED', machine.Pin.OUT).off()
        time.sleep(1.0)
  • SESAME3 に対応した Web API の使い方

    いつの間にかしれっと Web API が SESAME3 に対応していたので、実際に使ってみる手順を記録します。

    ※しばらく随時修正しています

    ドキュメント

    SESAME3 の UUID 確認

    公式アプリで操作したい鍵を設定画面を開いて確認します。

    API キーの取得

    ダッシュボードにログインします。
    ログインの仕方はアプリ版と同じで、メールで認証番号が届いて、それを入力するだけです。

    file

    file

    file

    file

    「API_KEY」を開くと確認できます。
    「CLIENT_KEY」は今のところ使いません。

    SESAME3 の状態取得

    Firefox の拡張機能 RESTer で動作確認します。

    file

    成功すると200でJSONが返ってきます。
    パラメータが間違っていたりすると502 Bad Gatewayになります。

    • batteryPercentage: 電池残量
    • batteryVoltage: 電池電圧
    • position: サムターン角度
    • CHSesame2Status: 状態
    • timestamp: 更新された時刻(1970-01-01 00:00:00:000からの経過ms)

    SESAME3 の履歴取得

    Firefox の拡張機能 RESTer で動作確認します。

    file

    成功すると200でJSONが返ってきます。
    パラメータが間違っていたりすると502 Bad Gatewayになります。

    SESAME3 の解錠・施錠操作

    secret key の取得

    公式アプリから鍵のシェアを行って表示されるQRコードを読み取ります。

    iPhone の場合は「ショートカット」アプリで新規ショートカットを作成し、「書類」の「QR/バーコードをスキャン」と「Quick Lookで表示」を追加し、「QR/バーコード」を「テキストとして」にしておくとQRコードの中身をテキストのまま得られます。

    URLは次のような形式になっていると思います。

    ssm://UI?t=sk&sk=AXXXXXXXX省略)XXXXXXXXXXX&l=0&n=%%%%%%%%%%

    この sk= の値をコピーしておいて、Base64 decode した文字列の1-17文字が secret key になります。
    1-17文字といってもindexでの[1:17](JavaScriptだとslice(1, 17))なので、実際は2文字目から17文字目までですね。

    Pythonが使える環境であれば、次のようにして対話モードでサクッと変換できます。

    $ python
    Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> b64 = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # skの値(sk=の後から&前まで)
    >>> import base64
    >>> base64.b64decode(b64)[1:17].hex()
    'abcdef0123456789hogehoge'

    動作確認

    CMACの生成が手間だったのでPythonで行っています。
    pipでpycryptodome, requestsをインストールしておきます。

    $ pip install pycryptodome, requests
    import datetime, base64, requests, json
    from Crypto.Hash import CMAC
    from Crypto.Cipher import AES
    
    uuid = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
    secret_key = '0123456789abcdef0123456789abcdef'
    api_key = 'XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx'
    
    # 鍵の操作(toggle/lock/unlock)
    cmd = 82    # 88/82/83 = toggle/lock/unlock
    
    # 履歴に残す内容
    history = 'Locked (Web API)' # 半角21文字/全角不明
    history = base64.b64encode(history.encode()).decode()
    
    # HTTP header
    headers = { 'x-api-key': api_key }
    
    # signの生成
    cmac = CMAC.new(bytes.fromhex(secret_key), ciphermod=AES)
    message = int(datetime.datetime.now().timestamp()).to_bytes(4, 'little', signed=False)[1:4]
    cmac.update(message)
    sign = cmac.hexdigest()
    
    # 鍵の操作
    url = f'https://app.candyhouse.co/api/sesame2/{uuid}/cmd'
    
    body = {
        'cmd': cmd,
        'history': history,
        'sign': sign
    }
    res = requests.post(url, json.dumps(body), headers=headers)
    print(res.status_code, res.text)

    参考

  • Raspbian (Debian buster) のタイムゾーンを JST にする

    現在のタイムゾーンを確認する

    timedatectl を使います。root権限は不要です。

    pi@raspberrypi:~ $ timedatectl
                   Local time: 水 2020-04-22 02:15:09 BST
               Universal time: 水 2020-04-22 01:15:09 UTC
                     RTC time: n/a
                    Time zone: Europe/London (BST, +0100)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no

    有効なタイムゾーンを確認する

    timedatectl list-timezone を実行します。

    pi@raspberrypi:~ $ timedatectl list-timezones
    Africa/Abidjan
    Africa/Accra
    Africa/Addis_Ababa
    Africa/Algiers
    Africa/Asmara
    Africa/Bamako
    (省略)

    数が多いので Asia/Tokyo があるかを確認するにはパイプで grep します。

    pi@raspberrypi:~ $ timedatectl list-timezones | grep Tokyo
    Asia/Tokyo

    タイムゾーンを変更する

    Asia/Tokyo に変更するには timedatectl set-timezone Asia/Tokyo を実行します。
    root権限が必要です。

    pi@raspberrypi:~ $ sudo timedatectl set-timezone Asia/Tokyo

    トラブルシュート

    ==== AUTHENTICATING FOR org.freedesktop.timedate1.set-timezone === と表示された

    timedatectl set-timezone を一般ユーザで実行すると表示されます。
    root権限を持つユーザか、sudoで実行してください。

    システムのタイムゾーンを設定するには認証が必要です。 と表示された

    timedatectl set-timezone を一般ユーザで実行すると表示されます。
    root権限を持つユーザか、sudoで実行してください。

    Authentication is required to set the system timezone. と表示された

    timedatectl set-timezone を一般ユーザで実行すると表示されます。
    root権限を持つユーザか、sudoで実行してください。

    一般ユーザで timedatectl set-timezone を実行しても何も表示されない

    変更前と変更後のタイムゾーンが同一だと何も表示されません。

  • 4種類ある TrackPoint のキャップはどれを買えばいいのか

    4種類ある TrackPoint のキャップはどれを買えばいいのか

    2020-04-22 追記

    指摘されて知りましたが、スーパーロープロファイルのキャップよりも更に背の低いキャップがあるそうです。

    補足情報です
    ・X1C7(2019)からスーパーローよりさらに低くなりました
    ・X1T3は1,2と形状が異なっているようです
    参考:https://t.co/x2e6sgpk8z

    — Saoto (@saoto28) April 5, 2020

    また、最新の対応表は「アクセサリー/オプション互換性ガイド (OCM)」に掲載されていることも教えていただきました。

    最新4月号OCMにX1C7情報が載っていました。https://t.co/EGA60AM8xA
    高さ2mmから6mmまでほぼ1mm間隔で出そろったので、これ以上は増えないのではと思います

    — Saoto (@saoto28) April 5, 2020

    @saoto28 さん、教えていただきありがとうございました。


    ThinkPad ユーザーがいつも困る TrackPoint のキャップの種類についてまとめます。

    現状販売されている TrackPoint のキャップには4種類の高さがあります。

    この中でウルトラロープロファイルだけが特殊で、「ThinkPad X1 Tablet Thin キーボード」にのみ使われています。

    次の写真は通常高、ロープロファイル、スーパーロープロファイルを比べたものです。

    見ての通り、通常高のものとロープロファイルは同じ軸受け形状をしています。
    そのため、ロープロファイルのキャップを通常高の代りに使えます。

    スーパーロープロファイルはそもそも軸形状が全く異なるため、通常高やロープロファイルとは全く互換性がありません。

    どの ThinkPad がどのキャップを使うのかをまとめましたが、Lenovo の対応表では3桁型番6世代目しか載っていなかったため、現行機種までをカバーするものではありません。
    唯一、ThinkPad X280 に関しては実際に使っているので載せてあります。

    通常高を使う製品

    • ThinkPad X230 以前
    • ThinkPad E530 以前
    • ThinkPad T430/T530 以前
    • ThinkPad L430/L530 以前
    • ThinkPad W 530 以前
    • ThinkPad X1 Carbon (2012)

    ロープロファイルを使う製品

    • ThinkPad X240 – X260
    • ThinkPad E540 – E550
    • ThinkPad T440 – T450/T540 – 550
    • ThinkPad L540 – L560
    • ThinkPad W540 – W550
    • ThinkPad X1 Carbon (2014-2015)
    • ThinkPad Yoga (2014)
    • ThinkPad Yoga 12
    • ThinkPad Yoga 260
    • ThinkPad Helix (2013)

    スーパーロープロファイルを使う製品

    • ThinkPad T460s
    • ThinkPad X1 Carbon (2016以降)
    • ThinkPad X1 Yoga
    • ThinkPad 13
    • ThinkPad X280

    ウルトラロープロファイルを使う製品

    • ThinkPad X1 Tablet Thin キーボード

    補足

    タイトルでは4種類と書きましたが、通常高のキャップには形状が異るキャップが3種あるため、正確にはもっとあります。
    ただ、現状では「ソフトドーム」と呼ばれている形状が一般的で、全てのキャップに共通している形状であるため、これに絞っています。

    参考

  • 2020-02-22 に注文した ThinkCentre M75q-1 Tiny が届くまで

    2020-02-22 に注文した ThinkCentre M75q-1 Tiny が届くまで

    仕事で使う PC として2020年2月22日に ThinkCentre M75q-1 を Lenovo 直販で数台注文しました。
    カートに入れた時点では3-4週間で出荷予定の表示でしたが、見積を保存しておくと優先手配のメールが来て1-2週間となりました。
    中国は大混乱の状態ですが、本当に予定通りに届くのか、記録していきます。

    決済はクレジットカードで行いました。

    大まかな構成は以下の通り。少し構成を変えたものも同時に注文しています。

    • Windows 10 Pro
    • Office Home & Business 2019
    • Ryzen 5 Pro 3400GE
    • 8GB DDR4 2666 SoDIMM
    • 128GB M.2 2242 NVMe TLC
    • 第3映像出力端子は無し
    • キーボード、マウス、ダストフィルタ、ツールレスは無し
    • ThinkVision S22e-19

    結局、1ヶ月を過ぎてから到着しましたが、むしろこの混乱の中、1ヶ月で届いてとてもありがたく思いました。

    file

    1. 発注: 2020年2月22日(土)
    2. 工場出荷: 2020年3月17日(火)
    3. 国内出荷: 2020年3月25日(水)
    4. 受取: 2020年3月26日(木)

    file

  • Cosmo Communicator ベンチマーク AnTuTu, PCMark, 3DMark

    Cosmo Communicator ベンチマーク AnTuTu, PCMark, 3DMark

    ベンチマークスコア
    AnTuTu180766
    PCMark/Web 2.08145
    PCMark/Computer Vision5694
    PCMark/Storage10128
    PCMark/Work11586
    3DMark/Sling Shot Extreme – Vulkan1246
    3DMark/Sling Shot Extreme – OpenGL ES 3.11270
    3DMark/Ice Storm ExtremeMax

    スクリーンショット

    AnTuTu

    PCMark

    3DMark

  • Cosmo Communicator フォトレビュー

    Cosmo Communicator フォトレビュー

    続々と到着報告が見られるようになってきた Planet Computers Cosmo Communicator を色んな角度から見てみます。

    file

    Gemini PDA との一番の違いはこの面です。次の3つが搭載されました。

    • 外部カメラ
    • サブディスプレイ
    • 指紋センサー

    file

    Gemini PDA は特殊な工具を使って天板が外せて、その中に microSIM と microSD のスロットがありました。

    Cosmo Communicator は nanoSIM のデュアルスロットになり、ディスプレイ左側面にスロットが移動しました。
    これでピンさえあれば、どこで SIM の脱着ができるようになりました。

    nanoSIM の2枚目は microSD と排他利用であることには注意する必要があります。

    file

    右側面は全くと言っていいほど、Gemini PDA と同じ見た目です。

    目に見えない変化としては、右の USB type C ポートからも充電できるようになりました。
    左側のポートより流れる電流の値が小さいので、充電に時間がかかることには注意する必要があります。

    file

    Gemini PDA ではヒンジ部分にあった機種名とメーカー名は、正面に移ってシンプルな表示なりました。

    file

    一番の進化点とされているサブディスプレイの "Cover Display" は、コントラストが高くてとても見やすい表示です。
    独立して明るさ調整もできて、調整幅も広くて細かに調整できるので実用的です。

    ただし、マイナスポイントが2つあります。

    • 表示の更新が 2fps 程しか出ていないのでカメラプレビューも含めてカクカク
    • 消費電力が多くてバッテリライフに影響大

    消費電力については厳密に試せていないので断言はできませんが、わりと影響が大きそうです。

    file

    ちなみに、開いているときはさりげなく Planet Computers のロゴが表示されています。
    開けているときに見ない面なので、しばらく気づきませんでした。

    file

    この写真のように、比較対象がないと宛らノートPCのようです。

    file

    nanoSIM + eSIM による通信も問題ありません。

    ただ、eSIM の設定を行う「eSIM Wallet」の動きが怪しく、ちょっとしたコツを覚えないと再起動後に復帰させるのに苦労します。

    また、大した問題ではありませんが、この画像のように充電中でもないのに充電表示になっていることがあります。
    今後の熟成に期待します。

    file

    このデバイスを欲する人にとって、一番重要視されるのがこのキーボードだと思います。
    ここからは個人の意見なので参考程度にしてください。

    まず、Gemini PDA の初期状態よりは遥かに良くなっています。これは間違いありません。

    しかしながら、Gemini PDA で問題となっていた「ストロークが引っかかる」という問題については、試行錯誤して軸部にシリコンスプレーを塗布するという対策をとっていたため、それと比較するとまだ「引っかかる」と感じました。
    特に小指でタイプする「Z」キーを打ち漏らすことが多々あります。

    感触としてはプラスチックとプラスチックの摩擦というところなので、使っていくうちに徐々に良くなっていくことを期待しています。
    Gemini PDA と同じくシリコンスプレーの塗布も有効だと思いますが、できれば手を加えずに使いたいと思っています。

    file

    開いた状態では、僅かに Cosmo Communicator よりもキーボードに角度がついているようです。
    本当に僅かなので個体差かもしれません。

    キートップの質感は、Gemini PDA では昔のキーボードのようなザラザラした感じだったのが、Cosmo Communicator では最近のしっとりした感触になりました。

    file

    ThinkPad を昔から使っている方なら、昔の7段配列キーボードの頃の質感から、現行の X1 Carbon や X280 のキーボードに近くなったというと、伝わるでしょうか。

    質感の違いについては好みの問題なので、どちらが良いというわけでもないと思います。

    file

    ディスプレイの角度も、僅かに Cosmo Communicator の方が開いているようです。

    file

    こちらも Gemini PDA にはなかった、キーボードのバックライト。
    明るさの調整も細かくでき、何よりとても美しいです。

    file

    左奥は ThinkPad X280 のキーボードです。
    こちらは明るさの調整が2段階しかありませんが、Cosmo Communicator は5段階で調整できます。

    file

    キーボードバックライトの調整は、USキーボードなら Shift + Fn + B/N で行えます。
    画面の明るさ調整が Fn + B/N なので、それに Shift を加えるだけですね。

    file

    Cosmo Communicator を最初に開くときに気づくのは、Gemini PDA よりも開くのに力を要することです。
    ヒンジの形状が変更されて、幅いっぱいだったヒンジは台形になりました。

    file
    file

    ヒンジの変更は他にもあります。ぱっと見ではわかりにくいですが、よく見ると板厚がかなり厚くなりました。

    この変更によって開けるときにより力を要するようになりましたが、いくつか良くなった点があります。

    • 逆さにしても自重で閉じなくなった
    • タイプ時にたわまなくなった
    • 角で指を切りにくくなった

    file

    Gemini PDA では何もなかった底面には、ロゴや内蔵ストレージのサイズが。印刷されています。

    file

    file