組み込み系

ラズパイのセットアップメモ (ヘッドレス運用)

ヘッドレスでのセットアップと運用 ラズパイをヘッドレス(ディスプレイ、キーボード、マウスを接続しない)で使うためのセットアップ手順を以下にメモする。 母艦: Windows 10 の PC ラズパイ: Raspberry Pi 3B OS: Raspbian Stretch Lite SDカード: 16GB O…

HHD Free Serial Port Monitor

Windows PCのシリアルポート(仮想COMポートを含む)の送受信データを傍受してモニタできるツール。コンソール表示、Hex/ASCII表示など種々の形式でモニタできる。 freeserialanalyzer.comFree Serial Analyzerという名前になっているが、このソフトはHHD社のD…

FTDIのUSBシリアル変換ICのCBUSの機能割り当て

FTDIのUSBシリアル変換ICのCBUSxピンには種々の機能を割り当てることができます。 FT232RLの場合、デフォルトでは下表の機能が割り当てられています。 ピン 機能 説明 CBUS0 TXLED# 送信データLED駆動 (Lowアクティブ) CBUS1 RXLED# 受信データLED駆動 (Low…

メモ:WindowsでEtherCATマスター

やりたいこと Windows PCで通常のLANポートを用いてEtherCATのマスターになる。 SOEM SOEM (Simple Open EtherCAT Master) とは、Open EtherCAT Society が提供しているオープンソースの小規模なEtherCATマスターのスタック。ソースコードはGitHubで公開され…

MPU-6050系モーションセンサまとめ

6軸モーションセンサではSTマイクロのLSM6DS3とならんでメジャーなTDK InvenSenseのMPU-6050。派生型番がいろいろあってややこしいのでまとめ。 MPU-6050はI2Cのみで4mm角QFN。 MPU-6500はI2C/SPIで3mm角QFNだけどあまり見かけない。 MPU-9150 = MPU-6050 + …

Arduinoのボード別ソースの場所

Arduinoのボード別のライブラリソースは、通常は下記の場所にある。 (Winsows10の場合) C:\Users\ユーザ名\AppData\Local\Arduino??\packages\arduino\hardware\この場所にアーキテクチャごとにフォルダを切って置かれる。 avr\ sam\ stm32f4\

FM音源YMF825メモ

FM音源YMF825とは とても便利なヤマハのFM音源チップ。 SPI I/F DAC/アンプ内蔵 4オペ16音ポリ すぐに使えるモジュール基板が市販 akizukidenshi.com github.com Arduino用簡易ライブラリ Arduinoで使える簡単なライブラリを作成した。 github.com 作例 これ…

スマートオシロを作ろう(1)

やりたいこと オシロを基板に当てて波形を見る時、両手がふさがってオシロの操作に困ることがよくあります。そこで今流行りのAIスピーカを使って、声で操作できるようにしたいと思ってます。具体的には、Google AIY Voice Kitで音声を認識し、LAN経由でオシ…

SDS7102のファームウェアをアップデートしてSCPI対応

やりたいこと 中華オシロのSDS7102のファームウェアをアップデートして、SCPIコマンドによるリモートコントロールに対応させます。メーカー公式のファームウェアアップデートですが、後述するように少し挙動が怪しいです。アップデートの実施は個人の責任で…

Raspberry PiをWindows PCから操作

やりたいこと ラズパイとPCをLANケーブルで直結(※) コンソールまたはリモートデスクトップでラズパイにログイン PCのインターネット接続をラズパイと共有 ラズパイ上のフォルダを共有フォルダにしてPCから開く ※ ラズパイはAuto MDI/MDI-X対応なのでクロスケ…

SPIクロックのモード

SPIはクロックパルスの極性と位相による動作モードが4通りあって設定がめんどくさい。 モード0 : 正パルス前ラッチ (CPOL=0, CPHA=0) モード1 : 正パルス後ラッチ (CPOL=0, CPHA=1) モード2 : 負パルス前ラッチ (CPOL=1, CPHA=0) モード3 : 負パルス後ラッチ…

STM32のTips (Flash関係)

開発環境はIARのEWARMです。 binファイルの生成 デフォルトではプロジェクトをビルドするとoutファイルが生成されます。outファイルからbinファイル(バイナリイメージ)を生成するには、プロジェクトの[オプション]の[出力コンバータ]にて、[追加出力ファイル…

CubeMXのコードを流用して音声再生

この記事はMbed Advent Calendar 2017の23日目の記事です。 STM32のCubeMXの吐いたコードをmbedにコピペしても、ふつうにコンパイルできます。HALライブラリのAPIもふつうに使えます。そこで、Nucleo-F767ZIをmbedで使用しつつ、CubeMXで生成したコードをコ…

Nucleo/mbedのタイマリソースの調査

この記事はMbed Advent Calendar 2017の19日目の記事です。 目的 mbedベースでお手軽に開発しつつ、痒い所だけ本気出して底からコード書くようなスタイルが好みです。ただしそのとき問題になるのが、mbedライブラリがどういうリソースの使い方をしているかと…

nRF52ミニ基板「斑鳩」の試作

この記事はMbed Advent Calendar 2017の8日目の記事です。 BLEマイコンnRF52搭載のミニ基板「斑鳩」の試作について書きます。「斑鳩」はオープンソースハードウェアです。今はまだ試作段階ですが、そのうちイベント等で頒布するかも。12/16(土)・17(日)開催…

AndroidをUSBシリアルのホストに

usb-serial-for-androidを使用する方法をメモ。 他にFTDriverというのもある。 (1) usb-serial-for-androidのソースを入手 下記サイトからプロジェクト一式をダウンロード(またはgitでclone)する。 usb-serial-for-android (2) Android Studioでプロジェクト…

LPCXpressoでのRAMブロック指定

LPCマイコンのたとえばLPC1549は、合計36kバイトのSRAMを持っていますが、16kバイト/16kバイト/4kバイトの3つのブロックに分かれています。第一のブロック以外は、省電力のために個別にディセーブルすることが可能です。LPCXpressoでソフトウェアを開発する…

ESP32のフラッシュメモリの読み書き

WindowsでESP32のArduino開発環境がセットアップされていること。 esptool.exeのあるディレクトリにパスを通しておきます。通常は、C:\Users\ユーザ名\Documents\Arduino\hardware\espressif\esp32\tools ESP32を書き込みモードで起動してシリアルポートをPC…

いまさらTWELITE

数年前、TWELITE (旧称 TWE-Lite、例のマッチ棒アンテナのやつ) ていう無線マイコンモジュールが流行ったことがあって、でも最近あんまり聞かないなと思ってたんですが、ちょっと縁があって触ってみることになりました。 やりたいこと PLC(シーケンサ)をコン…

Android Things予習ノート

Android Thingsとは AndroidベースのIoT向け軽量OS。 要するに、ラズパイやエジソンで動くAndroid。 Androidのいろいろなご利益を享受できて、ハードも叩ける。 Windows 10 IoT Core とよく似たコンセプト。 まだ開発者向けプレビュー版の段階である。 対応…

Milkcocoa ESP8266 SDKの非同期化ハック

問題点 ESP8266でMilkcocoaを使うためのライブラリとしてMilkcocoa ESP8266 SDKがあります。 たいへん分かりやすく使いやすいライブラリだけども、同期処理(ブロッキング処理)なのが困りものです。下のコードを見てください。 loop(){ // 以下をloopの中で必…

BLEいろいろ

チップとモジュールとボードの関係 BLEはチップ、モジュール、ボードがいろいろあって分かりにくいので、(1)Nordic勢、(2)その他のARM勢、(3)非ARM勢 に分けて主なものを整理してみた。(クリックで拡大) けっきょく、どれを選べばいいのか? (1) マイコンな…

nRF52のSoftDeviceについて

SoftDeviceとは NordicのnRF52のSDKによる開発でBLEの機能を使うためにはユーザーアプリケーションとは別にSoftDeviceなるものをあらかじめROMに書き込んでおく必要がある。SoftDeviceとは何かというと、要するにBLEのプロトコルスタックのライブラリであり…

nRF52-DKを使ってBL652をデバッグ

nRF52-DKボードをJ-Linkデバッガとして使ってBL652をデバッグする方法をメモ。 BL652の線を引き出す BL652モジュールの端子は0.75mmピッチの端面スルーホールである。 まずはなんらかの方法で線を引き出す。 UEW(ウレタン線)で引き出す やり方はChaNさんのペ…

BL652について

BL652とは? NordicのnRF52832を搭載した、英Laird社製BLEモジュール。 日本の技適を取得済み。米国FCCも欧州CEも。 0.75mmピッチの端面スルーホールなので、なんとか手ハンダ可能。 BL652-SA-01がチップアンテナタイプ。 (同-SC-01は外部アンテナタイプ) 安…

Nordic nRF52開発環境導入メモ

NordicのBLEチップnRF52832のソフトウェア開発環境構築についてメモする。 基板 nRF52-DKを開発用に使用する。デバッガチップにPCA10040のシールが貼られているのが確認できる。Preview版はPCA10036、現行品はPCA10040である。(後述のサンプルコードに関係す…

PSoCのAPI関数を関数ポインタでエレガントに

PSoCのライブラリはクラスじゃないのがつくづくイラっとするけど、関数ポインタを使ってテーブル化したりクラスもどき構造体を作る手はあるな。 テーブル化 typedef uint16 (*UART_GetByte)(void); UART_GetByte uart_GetByte[] = { UART_1_GetByte, UART_2_…

ESP8266でタイマ割り込み

Arduinoでタイマ割り込みを使おうとすると、CPUアーキテクチャごとにやり方が違って不便に感じる。もっとも、Arduonoでタイマ割り込みなど使おうというのは筋が悪いのかもしれないが。 ESP8266の場合 // ミリ秒をクロック数に換算 (@80MHz) #define MSEC2CLO…

PSoCでI2C読み出し

PSoCでセンサICなどからデータを読み出す場合を考える。 以下では、I2Cブロックを I2C_1 という名前にしたものとする。 (PSoC Creatorめ! なんでC++でクラス化しないの?) まず、読み出し完了まで同期待ちしてもよいなら次のようになる。 // 複数バイト読み…

PSoC Creatorのプロジェクトのバージョン管理

PSoC Creatorのプロジェクトでバージョン管理すべきファイルと除外していいファイルは、以下の通り。(たぶん) バージョン管理すべきファイル ワークスペース名.cywrk プロジェクト名.cydsn/TopDesign/ プロジェクト名.cydsn/プロジェクト名.cyprj プロジェ…