2023-01-01から1年間の記事一覧

NORDIC メモ

デバイス ショートレンジ (BLEなど) NORDICといえばBLE、BLEといえばNORDICというくらい、BLEマイコンの代表格といえるnRF5xシリーズ。じつはBLEだけでなく、ANTやZigBee、Threadといった2.4gGHz帯の短距離無線通信にも対応する。現在の主力製品はARM Cortex…

nRF5xマイコンの評価ボード一覧

PCAからはじまる謎の番号があり、サンプルコードのプロジェクトのディレクトリもこの番号に従っているので分かりにくい。 PCA番号 チップ 評価ボード名 コア Flash RAM PCA10095 nRF5340 nRF5340 DK M33+M33 1MB+256kB 512kB+64kB PCA10056 nRF52840 nRF5284…

nRF52マイコンの開発環境構築 (Segger Embedded Studio)

Segger Embedded Studioのインストール 下記からEmbedded Studio for ARMをダウンロードしてインストールする。 SEGGER - The Embedded Experts - Downloads - Embedded Studio 必要なら下記から J-Link Software and Documentation pack をダウンロードして…

C++のラムダ式と引数束縛

C++のラムダ式で、コピーキャプチャした場合と参照キャプチャした場合のふるまいの違いを示す。 コピーキャプチャの場合は、ラムダ式が定義された時点での変数の値が使われる。 参照キャプチャの場合は、ラムダ式が実行された時点での変数の値が使われる。ま…

メモ:RX100M5Aでテザー撮影

やりたいこと PCからカメラを操作して撮影して、すぐに写真を確認したい。 ツールのインストール Imaging Edge Desktop をダウンロードし、インストール。 Imaging Edge Desktop が起動するので、画面の指示に従い、Remote/Viewer/Edit をダウンロードし、イ…

オーバーライドのおさらい (C++/C#/Javaの比較)

見た目がよく似た3つの言語で微妙に挙動が異なるのでまとめ。 C++の場合 #include <stdio.h> class BaseClass { public: void hoge() { printf("BaseClass::hoge\n"); } virtual void piyo() { printf("BaseClass::piyo\n"); } // 仮想関数 }; class SubClass : publi</stdio.h>…

C++のオーバーロードとオーバーライドの挙動

C++のクラスで public なメンバ関数にオーバーロードがある場合、派生クラスでオーバーロードのどれか一つを private でオーバーライドすると、他のオーバーロードも全て private になる。これは仮想関数であっても非仮想関数であっても同じ。 #include<stdio.h> clas</stdio.h>…

メモ:Canon EOS Kiss Mでテザー撮影

やりたいこと PCからカメラを操作して撮影して、すぐに写真を確認したい。 ツールのインストール EOS Utility 接続とアプリの起動 カメラとPCをUSBケーブルで接続する。 EOS Utilityを起動し、「リモート撮影」を選択する。 保存先の設定と撮影 EOS Utility…

SPRESENSEでNeoPixel

ライブラリ Spresense Arduinoでは、Adafruit の Adafruit_NeoPixel ライブラリは使えない。。Spresense Arduino用のNeoPixelライブラリとしては、hideakitaiさんのSpresenseNeoPixel と、hideakitaiさんのnepils がある。nepils のほうが後発で、Adafruit_N…

関数の戻り値用テンプレート

C++で、任意の型に成否とエラー番号とエラーメッセージ(へのポインタ) を付加するだけのテンプレート。 関数の戻り値用に。 template <class Type> class Result { public: Type value; bool success; int errorNo; const char* errorMessage; Result<Type>() : value(Type()),</type></class>…

古英語

これは千年ほど前の古英語で書かれた文章です。いわば英語の古文ですが、さっぱり読めません。たぶん英語ネイティブでも読めないと思いますし、そもそもこれを英語だと思えるんでしょうか? Fæder ure þu þe eart on heofonum, si þin nama gehalgod. To bec…

setTimeout()やsetInterval()で関数に引数を渡す

やりたいこと JavaScriptで setTimeout() や setInterval() のタイマハンドラに引数を渡したい。 ダメな書き方 これはダメです。実行するとエラーが発生します。setTimeout() の第1引数に関数ではなく関数の戻り値を渡すことになるからです。しかも、hello()…

C#での日本語文字の扱い

C#のchar型は2バイト C#で下記のようなコードを実行してみます。 using System; class Program { static void Main(string[] args) { char c = 'あ'; int i = (int)c; Console.WriteLine(c); Console.WriteLine("size = " + sizeof(char).ToString()); Conso…

VC++での日本語文字の扱い

デフォルトではシフトJIS Visual StudioでVisual C++の空のプロジェクトを作成し、下記のようなソースを書いて実行してみます。 #include<stdio.h> #include<string.h> int main(void) { char s[] = "あいうえお"; int len = strlen(s); printf("%s\n", s); printf("length = %d</string.h></stdio.h>…

メモ:NordicのSoftDevice

S11x : BLE Peripheral 専用 S12x : BLE Central 専用 S13x / S14x : BLE Central / Peripheral 両用 S2xx : ANT用 S3xx : BLE / ANT 両用 ZigBeeは SoftDevice ではなく nRF5 SDK for Thread and Zigbee を使用

AndroidのChrome上のWebアプリをPCのChrome上でデバッグ

Android側の準備 「開発者向けオプション」を有効にしておく(「設定」→「デバイス情報」で「ビルド番号」を7回タップ) 「設定」→「システム」→「開発者向けオプション」で「USBデバッグ」を有効にしておく PC(Windows)側の準備 Google USB Driverをインスト…

文字化けのパターン

もうWeb上で見かけることは少なくなったけど。 UTF-8→シフトJIS (縺繧繝が頻出) UTF-8では平仮名と片仮名は E381xx, E382xx, E383xx のいずれかになる。シフトJISでは E381, E382, E383 は 縺, 繧, 繝 になる。そのためこの3文字が頻出する。 譁?ュ怜喧縺托シ…

Unicode以外の文字コードの雑な説明

シフトJISコード 英数字は1バイト (0x00~0x7F、ASCIIコードと互換) 半角カナも1バイト (0xA1~0xDF) 全角文字は2バイト (1バイト目は0x81~0x9Fまたは0xE0~0xEF) 第一・第二水準漢字に対応 Windows界では事実上は CP932 のこと (独自拡張を含む) Shift_JIS…

UnicodeとUTF-8/16/32の雑な説明

Unicode 世界のほとんどの文字は基本多言語面 (第0面, U+0000~U+FFFF) に収録 マイナーな漢字や絵文字などのは第1面~第16面 (U+10000~U+10FFFF) に収録 UTF-8/16/32は、Unicodeをバイト列で表すエンコードの仕方の違い いずれにしても、シフトJISコードの…

フォントの作成に関するノート

フォントエディタ FontForge : オープンソースのフォントエディタ。無償のツールではたぶん一番有名。 TrueTypeフォントエディタ(ttfedit):yuno氏作。シンプルなツールだったがすでに公開終了。 FontForgeのUIの不具合 Windowsの日本語環境だとUIの日本語…

「主の祈り」のラテン語

ヤハウェとか大嫌いな仏教徒が「主の祈り」のラテン語を読解した。Oratio Dominica (Pater Noster) 祈り-主の(女単主)Pater noster, qui es in caelis, 父よ-我らの(男単呼), who are(二単現) に-天(中複奪) 天にいる我らの父よ、sanctificetur nomen tuum. …

メモ:GreenPAK

GreenPAKとは GreenPAKは、ルネサス(旧Dialog)のちっちゃいFPGA/CPLDのようなプログラマブルICです。デジアナ混載で、GUIツールで回路図入力するので、PSoCのちっちゃいやつと言ったほうがいいかも。ただしマイコンは内蔵しません。ちょっとしたロジックやア…

メモ:SPRESENSEのSDKのソース

SPRESENSEのArduino環境は、SDKをソースで持たずビルド済みのライブラリ(とヘッダファイル)として持っている。ボードパッケージのサイズを小さくし、またビルド時間を短縮するためにこれは妥当なことだと思う。ただ、以前の記事(SPRESENSEの digitalWrite は…

マイコンでブラシレスモータを回す方法についてのノート

1. ESCを使う ラジコン用やドローン用のESC(Electronic Speed Controller)を使う。 PWM1本で制御できる。Arduino系ならServoクラスで制御できるのでいちばん簡単。 ドローン用のESCは一方向にしか回せないので要注意。(逆転ができない) 起動時にパルス幅のキ…

ブラシレスモータドライバIC

小型のブラシレスモータを回せる手頃なブラシレスモータドライバICというのはあまり選択肢がない。 STマイクロ L6230PD ブラシレスDCモータ・ドライバ: 製品 L6230 - DMOS driver for three-phase brushless DC motor - STマイクロエレクトロニクス 8~52V, 1…

Windowsでtouchコマンド (再)

Windowsで touch コマンドの代用となるバッチは前に作った。 しかし、WSL (Windows Subsystem for Linux) でLinuxが使えるならそちらのtouchコマンドを使えばいい。 下記は、カレントディレクトリの下にある hoge ディレクトリの下のすべてのファイルを touc…

ホールセンサあれこれ

仕様 パッケージ:表面実装ならSOT-23、リード部品ならSIP-3 (薄型TO-92) が一般的 出力:アナログ出力 / デジタル出力 (CMOS出力 / オープンドレイン出力) 論理:Lowアクティブ / Highアクティブ 極検出 (いずれもヒステリシスあり。下記の記事を参照) 両極…

英語の「不規則変化動詞」の歴史 (アプラウトとウムラウト)

英語のいわゆる「不規則変化動詞」は、不規則といいながら実はいくつかのパターンがある、というのは中学生のころに誰しも気づくことだと思います。いまネットで検索しても、不規則変化動詞のパターンについて解説している語学系のコンテンツがいくつも見つ…

ティラノサウルスとマハラジャ

ラテンもゲルマンもヒンディーもみな兄弟。同じインド・ヨーロッパ語族に属する言語です。ラテン語で「王」を意味する rex も、サンスクリット語で「王」を意味する rāja も語源は同じ。ゲルマン系の人名に含まれる ric も同じ語源です。ゲルマン系の人名に…

メモ:レベルシフタ (レベル変換)

双方向レベル変換IC FXMA108 方向を気にせず使えるので便利。 https://akizukidenshi.com/catalog/g/gK-17062/ https://akizukidenshi.com/catalog/g/gM-04522/ 2電源バストランシーバ 74LVC(H)8T245, 74LVC(H)16T245 標準ロジック74xx245の2電源版。 https:…