オブジェクト初期化子

C#って、 class Hoge { public int a; public int b; public int c; } というクラスに対して var hoge = new Hoge() { a = 1, b = 2, c = 3 }; という初期化の書き方ができるらしい。いま知った。 オブジェクト初期化子というらしい。 var hoge = new Hoge {…

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…

ロボットの体内ネットワークとしてのEtherCAT

この記事は EtherCATについて語る Advent Calendar 2019 の19日目です。昨日は@nonNoiseさんの EtherCAT 動画集(デモストレーション編) でした。 【注意!】 今日の記事はかなり偏った見解を含んでいる可能性があります。今日はロボットに使われる通信方式…

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…

日圧(JST)の圧着コネクタいろいろ

日本圧着端子(JST)の基板対電線用圧着コネクタのうちよく使うものを以下にまとめる。JSTのコネクタはやたらと種類が多くてメーカーのサイトを見てもよく分からないが、入手しやすく現場でよく使われるものをチョイスしたつもりである。(※わりと独断と偏見が…

Visual Studio Codeで がじぇるね の開発 (C++)

Visual Studio CodeでGADGET RENESAS(がじぇるね)の開発をする裏技です。 GR-SAKURAとGR-CITRUSで確認ずみ。 Windowsで確認ずみ。Macでもたぶんできるはず。Linuxは未対応。 Arduinoベース(C++言語)での開発です。Rubic / mrubyではありません。 Visual Stud…

LPC111xマイコンのピン機能設定の注意点

LPC111xマイコンのピン機能は基本的にはGPIOがデフォであり、IOCONFIGレジスタのFUNC=0がGPIOとなっているが、一部そうでないピンがある。特に下記(2)の場合が要注意である。 (1) RESET, SWCLK, SWDIO RESET, SWCLK, SWDIOのピン(PIO0_0, PIO0_10, PIO1_3)は…

ピンヘッダいろいろ

同じ2.54mmピッチのストレートピンヘッダにも、太さ・長さのちがうやつがあるので注意。 細いピンヘッダはブレッドボードに無理なくさせるのが利点だが、ふつうのピンソケットに挿すとスコスコになってしまう。 ふつうのピンヘッダ 太さ: 0.64mm 長さ: コン…

デジトラのピン番号

ロームのデジトラ、見た目のピン配置は同じなのにパッケージによってピン番号の振り方が違うの、落とし穴すぎる。CADでライブラリを作成するときに要注意。どうも、ペタ足のパッケージは左側が1番ピンで、ニョロ足のパッケージは右側が1番ピンの法則があるよ…

計装アンプについてメモ

べつに内部の動作を知らなくても使えるのだけど、ムズムズするのでいちおう簡単に計算してみた。 参考 www.tij.co.jp

EclipseでMbedでnRF52なローカル開発環境

(1) やりたいこと nRF52832のソフトウェアをMbedで開発したい オンラインコンパイラは嫌(※1)なのでローカルで開発したい EclipseベースでもいいのでGUIなIDEで開発したい Windows上で開発したい Mbed Studioなにそれ? (※2) デバッガはnRF52-DKボードのJ-Lin…

いまさらOPアンプの入出力特性

いまどきのRail-to-Rail(フルスイング)なOPアンプならあまり気にしないことですが、昔のOPアンプを5Vや3.3Vの単電源で使うとわりと思った通りになりません。このあたり、アナログ回路やってる人には当たり前の話でしょうが、僕はいままで実測して確かめたこ…

LPC1114のA/Dコンバータ

LPC1114のA/Dコンバータでちょっとつまづいたのでメモ。 LPC1114のA/Dコンバータには以下の2つのモードがある。 (1) ソフトウェア制御モード A/D制御レジスタ(AD0CR)のBURST=0とするとこのモードとなる。 AD0CRのSELでチャンネルを選択し、AD0CRのSTART=001…

Visual Studio CodeでArduino

Arduino IDEはなにかと不便なのでVisual Studio Code (VSCode) を使ってArduinoの開発をするメモ。 VSCodeとArduino IDEをインストール 当然ながら、まずVSCodeをインストールしておくこと。また、VSCodeでArduinoの開発をするといっても、内部ではArduino I…

SW4STM32のデバッガ設定の注意点 (リセットモード)

System Workbench for STM32 (SW4STM32) でハマったのでメモ。ST-Linkをマイコンボードに接続してデバッグしようと思ったら、下記のようなエラーが発生した。 Error: timed out while waiting for target halted どうも SWCLK と SWDIO だけを接続して RESET…

秀丸おじさんのVSCode入門

※この記事はかなり偏った思想にもとづいて書かれています。20年以上も秀丸を使い続けてきたおじさんだけど、ついにVSCodeへの移行をはじめている。VSCodeはたしかにすごく便利なのだけど、長年秀丸を使ってきた者にとっては痒いところが多々あるのも事実。と…

ラズパイのユーザ名/パスワード変更

手順をメモする。 (1) piユーザでログイン 仮ユーザ(tmp)を作成し、sudoグループに追加し、パスワードを設定する。 sudo useradd -M tmp sudo gpasswd -a tmp sudo sudo passwd tmp exit (2) tmpユーザでログイン piユーザのユーザ名(ここではnewnameとする)…

ArduinoやラズパイでEtherCAT

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

NeoPixel Ringでイヤリング

NeoPixel Ring (12連フルカラーシリアルLED)でイヤリングを作ってみました。点灯パターンは青と白を基調として「ゆらゆら」「ぐるぐる」「ちかちか」の3パターンを繰り返します。かなり重いので耳掛け式(イヤーフック)です。ピアスではありません。マイコン…

MbedからLPCXpressoへのエクスポート

やりたいこと Mbedのオンラインコンパイラで作成したLPCマイコンのプロジェクトをエクスポートしてLPCXpressoにインポートしたい。以前はエクスポート時の選択肢にLPCXpressoがあったのだけど、今はなくなっている。代替手段を見つけるのに手間取ったのでメ…

6軸IMUセンサBMI160

6軸IMUセンサ(3軸加速度+3軸ジャイロセンサ)と言えば、InvenSense(現TDK)のMPU-6050やSTマイクロのLSM6DS3が電子工作界隈ではメジャーですが、BOSCHのBMI160もがなかなか良いです。BOSCHといえば気圧・温湿度センサBMP280/BME280がすごく流行りましたが、こ…

PSoC注意点メモ

PSoC 5LP Prototyping Kitの注意点 PSoC 5LP Prototyping KitのP0_2, P0_3, P0_4, P3_2にはでかいコンデンサ(1uF)がついてるので要注意。とくにOPアンプで使うときに不都合。(不都合なときはC12, C13, C9, C7をはずす。) P1_0, P1_1もデバッガ用ピンなので使…

BME280とBMP280の仕様の違い

BOSCHの気圧・温度センサBME280とBMP280の差は、基本的には湿度センサの有無ですが、configレジスタのt_sbビットの解釈も一部異なっているので要注意。t_sbビットはセンサ測定値の更新周期に影響する tstandby を設定します。 tstandby[msec]の設定 t_sb[2:0…

PSoC CreaterでVerilogのコンポーネント作成

手順メモ。 ワークスペースにライブラリプロジェクトを追加 左ペインのWorkSpace ExploerでWorkspaceを右クリックして「Add」>「New Project」 Select project typeで「Library project」を選択 ライブラリの場所と名前を指定。ここではプロジェクト名を「M…