組み込み系

EtherCATネタまとめ

個人的に今年取り組んだ最大のネタはEtherCATでした。今年の成果をまとめます。 ブログ記事 (はてなブログ) ソース(GitHub) 動画 (YouTube) スライド資料 (SlideShare) ブログ記事 (はてなブログ) lipoyang.hatenablog.com lipoyang.hatenablog.com lipoyang…

EtherCATのSDOとかPDOとか

EtherCATに関する文章を読んでいて、何のことわりもなく唐突にSDOとかPDOとかいう異質な言葉が出て来て面食らったことはないですか? SDOとかPDOとかってCANの用語じゃないの? SDOとかPDOとかいうのは、EtherCAT用語というよりは本来はCANopen用語のはず。E…

ExcelマクロでEtherCATの制御

EtherCATについて語る Advent Calendar 2019 はもう埋まりそうなので、こちらはニッチすぎる番外編記事です。 やりたいこと オープンソースのEtherCATマスターであるSOEMをDLL化し、ExcelのVBAマクロから呼び出せるようにする。これによって、ExcelからEther…

GR-SAKURAでEtherCAT

この記事は EtherCATについて語る Advent Calendar 2019 の16日目です。昨日は@nonNoiseさんの EtherCATでステッピングモータ を動かしてみる でした。さて、12月14日に開催されたルネサスナイト15にて「GR-SAKURAでEtherCAT」と題してLTしてきました。今日…

EtherCATマスターSOEMを.NETで使う

この記事は EtherCATについて語る Advent Calendar 2019 の11日目です。昨日は@nonNoiseさんの EtherCAT開発方法 フレーム編(ライトまで) でした。今日はオープンソースのEtherCATマスターであるSOEMをWindows上の.NETアプリで使う方法を解説します。 SOEM…

EtherCATマスターSOEMをマイコンに移植する

この記事は EtherCATについて語る Advent Calendar 2019 の8日目です。昨日は@nonNoiseさんの EtherCAT開発方法 概要編 でした。今日はオープンソースのEtherCATマスターであるSOEMをOS無しのマイコンに移植する上でのポイントをまとめます。(本件の位置づけ…

IoTつくるよ!でのEtherCATに関するFAQ

この記事は EtherCATについて語る Advent Calendar 2019 の4日目です。昨日は@nonNoiseさんの EtherCATスレーブに使える半導体 (1) でした。さて、11月30日(土)に開催されたIoTつくるよ!2に出展し、「ArduinoでEtherCATのデモ」を展示してきました。すこし…

EasyCATのコンフィグ方法

EasyCATとは? AB&T社が開発・販売しているEtherCATスレーブ基板の製品群。この記事ではおもに EasyCAT Shield for Arduino について述べる。その名の通り、Aruino用のシールドである。 EasyCATのコンフィグとは? EasyCATは、出荷時には入力32バイト+出力32…

ArduinoやラズパイでEtherCAT

ArduinoやラズパイでカジュアルにEtherCATを組むまとめ。 EtherCATマスターとEtherCATスレーブ EtherCATスレーブ : EasyCAT + Arduino Uno EtherCATマスター(1) : Rasoberry Pi EtherCATマスター(2) : Ethernet Shield 2 + Arduino DUE EtherCATマスター(3) …

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

ヘッドレスでのセットアップと運用 ラズパイをヘッドレス(ディスプレイ、キーボード、マウスを接続しない)で使うためのセットアップ手順を以下にメモする。 母艦: 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マスターを動作させる方法のメモ。 (2019/12/29 加筆修正) SOEMとは? SOEMのファイル構成 SOEMのビルド サンプルプログラム slaveinfo サンプルプログラム simple_test おまけ:ネットワークインターフェース名の取得…

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の中で必…