LabVIEW Communityの講習会@11/18岩手県

LabVIEW Communityの電子ブック「LabVIEW CommunityEditionでプログラミングを楽しもう」をベースにして講習会を開催することになりました。

日 時:令和3年11月18日(木) 9:00~17:00 (受付8:30~9:00)

会 場:岩手県立大学 地域連携棟2F 組込みシステム実験室 (滝沢市巣子152-89)

アクセス: http://i-mos.iwate-pu.ac.jp/access/

対象者:LabVIEWに興味があり研究や技術開発のためにLabVIEWプログラミングを始めたいと考えている方、「LabVIEW CommunityEditionでプログラミングを楽しもう」をダウンロードして一読していただき、内容に興味を覚えた方

<無料電子ブックのダウンロードURL> http://quatsys.com/labview/1109/lvproraku.jp.html

定  員:8名(先着順)

申込期限:令和3年11月15日(月)17:00

受 講 料:無 料

詳細は下記リンクから

http://i-mos.iwate-pu.ac.jp/docs/2021101400016/

対象となりそうな方がいらっしゃったら紹介をお願いします。

好きな山域を3Dプリントしよう

山の立体ディスプレイ
遠くから眺めてよし、頂を目指すもよし。頂から遠くの山を眺めるもよし。
思い出の山、これから登る山を3Dプリントしてみましょう。地理院地図の3Dツールを使って好きな山域のSTLファイルを作成します。STLファイルは小さな3角形のメッシュで3次元形状を表現するファイル形式で、多くのアプリケーションで共通に使われています。地理院地図の3Dツールは緯度、経度に沿った長方形の範囲の標高データをSTLファイルで出力します。そのまま3Dプリントしても良いのですが、手に持って色々な方向から山域を眺めるには外形が円形の方が便利ですから、ここでは外径115mmのディスク状にする方法を説明します。
黒部渓谷・立山・剱岳を含む山域の3Dプリントの例です。PLAクリアフィラメントでプリントしてフルカラーLEDで下から照らすと立体感が増します。

OLYMPUS DIGITAL CAMERA

大まかな作成手順
(1) 地理院地図の3Dツールを使って立体ディスプレイを作る山域(正方形)のSTLファイルを作成します。
(2)Fusion360を使って直径115mmの円筒状にくり抜くツールとなるSTLファイルを作成します。
(3) Fusion360に山域のSTLファイルを読み込んで縮尺を調整します。
(4)くり抜きツールのSTLファイルも読み込んで、山域メッシュとツールメッシュの両方に含まれる部分を結合ツール(交差)で取り出してSTL形式で保存します。
(5) 3Dプリンターでプリントします。

 

(1) 地理院地図の3Dツールで山域のSTLファイルを作成
まず地理院地図で作成する山域を表示します。ここでは富士山で説明します。
「作図・ファイル」ツールでプリントしたい範囲に円を描きましょう。
3Dツールでは3D化する範囲の指定方法として「大(縦横2048px)」「小(縦横1024px)」「カスタム」がありますので、「カスタム」を選び、四隅の選択点をドラッグして先ほど描いた円に外接する正方形を指定して「OK」ボタンを押します。
ブラウザに新しいタブが作られて指定した範囲の3次元の地図が表示されます。
画面の右下端に3種類のファイルのダウンロードボタンが表示されますので、STLファイルをダウンロードします。画面の立体表示には等高線などが描かれていますが、STLファイルには描かれません。dem.stlという名前になっていますので、MtFuji.stlなど分かりやすい名前に変更すると良いでしょう。このSTLデータは一辺(長方形の場合は長辺)が150mmのデータになっています。

(2) 円筒形状のツールSTLファイルの作成(2回目以降は不要)
Fusion360のソリッドモードで、左上のブラウザの原点タブにあるXY面を右クリックしてスケッチを作成します。原点を中心として直径115mmの円を描いてスケッチを終了します。スケッチで描いた円をクリックして押し出しツールで115mmの長さの円筒を作成します。ブラウザのボディタブで円筒のボディを右クリックして「メッシュとして保存」を選択します。Cylinder.stlとして保存し、このデザインを閉じます。

(3) 山域STLファイルの読み込みと縮尺変更
新規デザインで新しいページを開きます。「挿入」メニューの「メッシュを挿入」を選択し、MtFuji.stlを開きます。この時、「上方向を反転」ボタンを押して、Y軸とZ軸の方向を反転します。「中心」ボタンを押して、メッシュデータの中心を原点に移動し、「地面に移動」ボタンを押してデータの底面がXY面と一致させます。
メッシュモードを選択し、「修正→メッシュを尺度指定」を使って一辺150mmの正方形の範囲のデータを一辺115mmに縮小します。縮小してもデータの底面がXY面になるように、「点」(縮小拡大の基準点)に底面の中心を指定します。視点を「下」にすれば選択しやすくなります。「エンティティ」は縮小拡大するメッシュを指定します。150mmを115mmに縮小したいので縮小倍率は0.77(≒115/150)と入力して「OK」ボタンを押します。データの底面がXY面にあることを確認してください。
(4) ツールSTLファイルの読み込みと結合ツール(交差)
Cylinder.stlを読み込みます。メッシュモードの結合ツール(交差)を選択し、「ターゲットボディ」にMtFujiメッシュボディ、「ツールボディ」にCylinderメッシュボディを指定します。もしも厚みが大きくてプリント時間が余分にかかりそうな場合は、結合ツールを実行する前にMtFujiメッシュボディをZ軸のマイナス側に移動します。下げすぎて底に穴を開けないように注意します。
作成したメッシュボディを右クリックし、「メッシュとして保存」を選んで、例えばMtFujiDisk.stlのようにファイル名をつけて保存します。

(5) 3Dプリンターでプリント
作成したSTLファイル(たとえば、MtFujiDisk.stl)を3Dプリンターでプリントします。

OLYMPUS DIGITAL CAMERA

LibreOffice DrawのSVGファイルをAI風のSVGファイルに変換する方法

背景
レーザー加工用の切断データはパス(Path)と呼ばれるベクトルデータで作成します。周知のようにベクトルグラフィックソフトのデファクトスタンダードはAdobe Illustrator(AI)ですが比較的高価なため、趣味として切断データを作成する場合にはLibreOffice Drawなど無料のベクトルグラフィックソフトを使います。

課題
自宅でLibreOffice Drawを使って切断データを作成し、SVG形式のファイルをUSBメモリに保存してレーザー加工機のあるファブ施設に向かいます。ファブ施設ではデファクトスタンダードなAIがレーザー加工機のインターフェースとなっている場合が多いので、LibreOffice DrawのSVGファイルをAIに読み込ませます。AIで開くと、一見、作成した時と同じ図形のように表示されますが、実際は同じ図形が二重になっています。そのままレーザー加工機で加工を行うとレーザーが二度通過するために多くの時間がかかったり、切断面が焦げてしまいます。慣れないAIを使って手作業で重なったパスを取り除くのはかなり苦痛な作業です。AIはプロが素早く作業ができることを目指していて、素人が使うようにはできていないのです。
SVGファイルならば全て二重になるかといえば、そんなことはありません。AIで作成した切断データをSVG形式で保存して、それをAIで読み込んだ場合は二重になるような不具合は生じません。
SVGファイルはテキストで書かれているので、テキストエディタで開いて両方のファイルを比べてみると、AIで作成したSVGファイルはヘッダーとパスしかないシンプルなファイルであることがわかりました。つまり、AI風なSVGならOK!!

無料のベクトルグラフィックソフトで作成した加工図を使って不具合なくレーザー加工をするために、「LibreOffice DrawのSVGファイルをAIで作成したSVGファイルのように変換したい」

解決方法
LibreOffice DrawのSVGファイルからAIが必要とする部分だけを抽出して新しいファイルを作成する。テキストファイルの文字列操作なので、ほとんどのプログラム言語で容易に作成することができるはずです。ここではMac OS、Windows 10、Linux用に実行ファイルを作成できるProcessing(バージョン3.3.5)を使用しました。個々のPCで実行するためには無料のJava実行環境をインストールする必要があります。Mac OSとWindows 10では動作を確認しましたが、Linuxでの動作は未確認です。

プログラムを実行し、ユーザーが変換するファイルを指定すると、「xml:space=”preserve”>」が含まれるヘッダー行と「<path fill=”none”」が含まれるパスデータだけを抽出して、ファイルの末尾に「</svg>」を置きます。そしてファイル名の末尾に「_ai」を追加した新しいファイルを作成します。

ProcessingプログラムファイルとサンプルSVGファイル
実行ファイル(Javaランタイムエンジンを別途ダウンロードする必要がある)
Windows64bit
Windows32bit
Mac OS
Linux64
Linux32
LinuxArm64
LinuxArmV6hf

その他
InkscapeのSVGファイルも同様な処理をすればAI風なSVGにできると思いますが、私にはInkscapeが使いづらいので確認する意欲がありません。Inkscapeの好きな人は多いと思いますのでどなたか検討していただけるとありがたいと感じてくれる人が多いのではないかと思います。

LibreOffice Drawは使いやすいですよ。

 

無料で使えるドローソフトGravit Designerの紹介

ドローソフトの定番はイラストレータですが、プロ用の高機能・高価格なアプリケーションなので自宅での趣味に使う人にはお勧めできません。

これまでは無料で使えるオープンオフィスドローを勧めていたのですが、これからはGravit Designerです。

レーザーカッターの加工図を描く時にどの程度使えるか理解してもらえるように
ベクターデータ作成の手引き
を作成しました。ぜひダウンロードして目を通してみてください。

画像のトレースについて付録に追加しました。(b04—-2020.11.04)

 

 

 

 

Maker Faire Tokyo 2020に出展します

今年は「チームいわて」で参加します。コロナウィルスへの対応で、チームメンバーに展示を託すリモート参加です。出展作品は次の2点です。
(1)「LabVIEW Community Edition用の無料の電子ブック紹介」
(2)「球体をテトラヘクス結合したピースによるピラミッドパズル」

「LabVIEW Community Edition用の無料の電子ブック紹介」

LabVIEWは研究開発や工場の自動化などで使われているプログラミング環境で、計測・制御分野で強みを持っています。今年の5月に非商用であれば無料で使えるCommunity Editionがリリースされましたので、ArduinoやRaspberry Piを使っているメイカーに使い方を紹介したいと考えています。

電子ブックのダウンロードサイト
日本語版
英語版
初めてLabVIEWに触る人でもこの本だけで使いこなせるように、29個のサンプルプログラムを用意しました。きっとプログラムを動かしながら理解を深められると思います。
電子ブックの内容
1章 : LabVIEWで学ぶプログラミング
2章 : LabVIEWコミュニティ版を使ってみよう
3章 : グラフィカルプログラミングにふれる
4章 : 自分のアプリを作ってみる
5章 : LabVIEWとArduino
6章 : LEDの特性を調べてみよう
7章 : 半導体センサを使ってみる

「球体をテトラヘクス結合したピースによるピラミッドパズル」

六角形を4個並べた図形をテトラへクスと言い、7種類の図形があります。

OLYMPUS DIGITAL CAMERA

六角形の内接円でテトラへクスを作ると下のようになります。
薄い円形の板ではなく球でピースを作ります。
7種類を2セットで、14個のピースを作るには56個の球が必要です。
56個の球を積み上げると一辺が6個の正四面体になります。
1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5)+(1+2+3+4+5+6) = 56

さて、球体をテトラヘクス結合した14個のピースでうまく正四面体が出来上がるでしょうか?

OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA

難しいパズルだと感じるかもしれませんが、組立手順はたくさんあります。

問題です。球に外接する立体を使って同じように正四面体を作るにはどんな立体を使えば良いでしょうか?

OLYMPUS DIGITAL CAMERA

菱形12面体と言います。表裏が120°ずれているので、表裏違いのピースが3種類増えます。表裏違いのピースを組みとして、7組14個でパズルを作ったのですが、球のパズルよりも8倍難しいと考えられます。

来場者にこんな話をしたかったのですが、今年は残念です。

ESP32でI2Sを使ってみる

ESP32はWiFiやBluetoothが使える高機能なボードです。I2S(Inter-IC Sound)というサウンドをデジタル通信できる機能も持っていて、I2S対応のマイクモジュールやアンプモジュールを接続してArduino IDEで制御することができます。

OLYMPUS DIGITAL CAMERA

ESP32のプログラムガイド」や「ESP32のI2Sマイク研究」、「I2Sマイク、ESP32、Arduino、SPH0645LM4H」などの記事を参考にしながら試してみました。

結論から書くと、マイクからの入力をイヤフォンで聞くことができましたが、音質がどうこうというレベルにはなっていません。タイムラグをまったく感じないのは今後に期待できるかもしれません。

興味のある方への参考と、自分のための備忘録

ESP32は「 MH-ET LIVE MiniKit」を使用しました。マイクは「Sipeed 1マイクモジュール」2個、アンプは「GY-PCM5102」を使用しました。

ESP32のI2Sは2本あり、入力か出力どちらかを選択できます。今回はI2S_0をマイク入力、I2S_1をアンプ出力に使います。それぞれバッファメモリが使えますので、マイクの入力バッファからデータを読んで、32ビット符号付整数に変換して、処理(たんなる掛け算)して、バイト配列に戻してから、アンプ出力のバッファに書き込みます。delay()を入れずに繰り返して呼び出していますが、アンプ出力を見る限りではバッファがうまく丸く収めてくれているようです。

OLYMPUS DIGITAL CAMERA

マイクモジュールの配線
DA — IO18(1kΩでGNDに接続)
CK — IO23
LR — L:3.3V, R:GND
WS — IO19
V — 3.3V
G — GND

OLYMPUS DIGITAL CAMERA

アンプモジュールの配線
SCK — GND
BCK — IO16
DIN — IO21
LCK — IO17
GND — GND
VIN — 3.3V

OLYMPUS DIGITAL CAMERA

 

フルカラーウェルカムボードの製作

OLYMPUS DIGITAL CAMERA

壁時計に使っているESP32と32×8 LEDパネルのスケッチを書き換えてSendai Micro Maker Faire用のウェルカムボードを作りました。

使用部品と配線はESP32と32×8フルカラーLEDでデジタル壁時計をつくるを参照してください。
外装についてはデジタル壁時計の組み立てを参照してください。

英数字の5×8フォントを作って表示させたのが新しい点です。フォントデータが96行あるので見苦しいですが、それ以外はシンプルに書いたつもりです。左端から右端に向かってLEDの色が変化していくプログラムに、”フォントピクセルだけ表示する”という条件をつけています。

フォントデータはAppleⅡeの資料を見かけたのでデータ化してみました。

 

 

 

 

 

 

Sendai Micro Maker Faireに出展します

仙台マイクロメイカーフェアに出展します。( #SendaiMMF )

2020年1月25日 12:00-17:00
産業見本市会館(仙台市) サンフェスタ301

 

いろいろな素材で作ったスクエアキューブパズルの紹介とLabVIEW 2014 Home版で書いた解探索プログラムのデモを行います。

リーフレット

LabVIEWユーザー会(2019)のお知らせ

例年NI Daysで開催されてきたLabVIEWユーザー会ですが、今年は日本でのNI Daysがなくなったので、独自開催を計画中です。
日時は2019年12月14日(土曜日) 13:00からを予定しています。場所は未定(浜松町周辺が候補)で、11月15日ぐらいまで参加者の人数を把握して決定するようです。会費は無料ですが、会場費を割り勘で負担する予定です。
予定しているプログラムなど詳細は下記URLのEventsから確認してください。
https://jlabcon.wixsite.com/jlabcon-top

私は、NIのディスカッションフォーラム「北東北ユーザー会」で紹介したIndustrial ShieldsのM-DuinoとSIEMENSのSIMATIC IOT2020を持参します。また、Arduino UNOの互換機でFPGA機能があるXLR8も、使いこなせていませんが、持参します。
また、テトロキューブ16個で4x4x4の立方体をくみ上げるパズルのLabVIEW版を作成しているのですが、自動的に解を探索するLabVIEWプログラムを(出来たところまでですが、)紹介します。画面上でパズルで遊ぶ部分はできましたのでNIのディスカッションフォーラム「北東北ユーザー会」の別トピックスで紹介します。

LabVIEWユーザー会に関する問い合わせは上記URLからお願いします。