3Dプリント

Sparkfunとかで公開されているEagleデータから部品データをライブラリに取り込む方法

Sparkfunとかで公開されているEagleデータから部品データをライブラリに取り込む方法

Eagleや他の基板設計CADを使うときも同様だと思いますが、
パーツライブラリとして公開されていない部品を使いたいとき、自分でライブラリデータを作るのは手間がかかります。

Sparkfunで販売されているセンサーモジュール基板はEagleデータが公開されているので
その図面データからパーツのデータをライブラリにエクスポートすれば自分でデータを作る手間が省けます。

今回 ロードセル用のIC HX711 データをライブラリにエクスポートしてみました。

この基板に使われているICです。
https://www.switch-science.com/catalog/2848/

スイッチサイエンスさんのページではEagleデータは公開されていませんが
製造元のページ(Sparkfun)のページではEagleデータが公開されています。
https://www.sparkfun.com/products/13879
このページから Eagle Files をクリックして Eagle用の回路図と基板のデータをダウンロードします。
ZIPで圧縮されているので解凍してください。

解凍すると
SparkFun_HX711_Load_Cell_v11フォルダーの中に
SparkFun_HX711_Load_Cell_v11.brd
SparkFun_HX711_Load_Cell_v11.sch
の2つのファイルが展開されます。

SparkFun_HX711_Load_Cell_v11.sch(回路図)を Eagle で開いてください。
File -> Expoer -> Libraries ライブラリデータをエクスポートします。

エクスポートしたファイルをEagle のライブラリフォルダーにコピーします。
自分の場合は以下のフォルダーにコピーしました。

コピーしたライブラリデータをEagleから使用できるように設定します。
Eagleのメイン画面の
Librariesから今回エクスポートしたライブラリを表示すると
右側の●が灰色になっているので、

フォルダー名を右クリックして Use all を選択してください。
(自分の場合は SparkFun_HX711_Load_Cell_v11 フォルダーです。)
右側の●が緑色に変わったはずです。
これで Schematic の add コマンドで今回エクスポートした部品が指定できるようになります。

add のパーツ選択画面で HX711 で検索しても検索されません。

今回 use で追加したライブラリを調べると
Testing の 中に HX711HX711 という部品がありました。
これが今回の目的の部品となります。

結構手間がかかるイメージですが慣れてしまえば、パーツデータを作成するよりは楽だと思います。

Autodesk EAGLE 8.0 とりあえず使ってみた。

EagleにAutodeskの冠をかぶった Ver8 が公開されました。
http://www.autodesk.com/products/eagle/overview

とりあえずインストールしてみました。
前バージョンは Free版ではなく Standard版を使っていましたが日木津儀は後日、できるか出来ないかも含めて。

Autodesk社のダウンロードページから Free版 をダウンロードしてインストールするも
起動時に Autodeskアカウントにログインしないと先に進めないので
既に作っていたアカウントでログインしても次のようなアラートが表示されて起動しない。

仕方ないので新しいアカウントを作成してログインすると無事に起動しました。
どうしてなのかはわからないのでこの件に関しての調査は後日。

Scamatic と Board でメニューの差を比較。
両方ともに Ver8ではいくつかのコマンドが追加されています。
この内容に関しても後日。

最後にオートルートを比較してみましたが全く差がないので
オートルートに関しては更新されていないと思われます。

とりあえずここまで確認しました。
詳細に関しては後日報告します。

IoTプロジェクトビルダー「Cayenne」を試してみた (まだ途中)

rduinoやRaspberry Piを使ってセンサーの値を取得したりアクチュエータへの出力をネット経由で行えるサービス「Cayenne」を試してみました。
色々とやれることは沢山あるみたいですが、
先ずはArduino UNOにI2C経由で繋いだ照度センサー(TSL2561)の値を表示するサンプルを動かしました。

■準備するもの

「Cayenne」のアカウント
http://www.cayenne-mydevices.com/
こちらの「Cayenne」のサイトから登録します。

Arduino UNO
Arduino用 インサーネットシールド(W5100)
照度センサー(TSL2561)
ブレッドボード、ブレッドボード用ジャンパー線
USBケーブル(Arduino UNO用)

■Arduino IDE へ「Cayenne」のライブラリを追加。

Arduino IDEのメニューから
[スケッチ]→[ライブラリをインクルード]→[ライブラリを管理] を選択します。

ライブラリマネージャーが開いたら
検索をフィルター となっている箇所に
「Cayenne」と入力します。

Cayenne by myDevices と
Cayenne MQTT の2つのライブラリが表示されますのでこの2つをインストールしてください。
ライブラリの表示枠内(黄色)で左クリックすると[インストール]ボタンが表示されます。

■Cayenneの使い方
1. Cayenneのサイトにログインします。
  https://cayenne.mydevices.com/cayenne/login

2. プロジェクトの作成
  [Create new prj]ボタンを押してください。

  プロジェクト名を入力して[☑]をクリックしてください。(自分はTestという名前のプロジェクトを作りました。)

3. Device/Widget の選択
  {Add New]メニューから[Device/Wedget]を選択してください。

  Arduinoを選択してください。

  Arduinoのセットアップ説明画面が表示されるので[Next]をクリックして次へ進んでください。

  Arduino と インサーネットシールド を選択します。
  (自分はArduino UNO とW5100 の組み合わせを選択しました。

  Arduino用のプログラムがポップアップウインドウに表示されるのでこのコードをコピーしてArduino IDE にペーストして Arduni にプログラムを書き込んでください。

  Arduinoにプログラムを書き込んだ後にインサーネット上に検出されると[Remove]ボタンが消えてソースコードの下に[Done]ボタンが表示されるのでクリックしてください。

  以下の画面に切り替わったら[Add new] [Device/Widget] を選択してください。

============== 続きは後日 =================

MS-DOS エミュレータ DOSbox を使ってみることに

最近懐古趣味熱が出てきたようなので
備忘録代わりに。

MS-DOS Emulator の 「DosBox」をインストールしてみました。

ダウンロードは
http://www.dosbox.com/download.php?main=1
Windows用の最新バージョンは 0.74(2016年11月30日 現在) です。

インストールはダウンロードしたインストーラを実行するだけです。

Tutorialは
http://www.dosbox.com/wiki/Basic_Setup_and_Installation_of_DosBox

何かを動かす目的があるわけではありませんが
とりあえずインストールしました。

起動した画面がこれです。
2016-11-30

ドメイン売って「電子工作工房」の設立資金にするかな

自分のインターネット歴は結構長くて多分20年は超えている。
1997年11月に取得した.comドメインをと瀬メイン査定サービスで調べたら
オーバー $10000

売っても良いかなと言う気になっていたりして。
当然そのお金はずっとやりたかった

「電子工作に特化したファブ」

やるやる詐欺になる前に実現したい。

ちなみにドメイン査定のキャプチャー 2サイトで調べました。

domainindex

estibot

プリント基板CAD用ライブラリ配布サイト

たまにはプリント基板CAD Eagle ネタを

勤めを辞めてからEagleを扱う機会が増えていますが
辛いのが使いたい部品のシンボルが無い時。

無精者の自分はシンボルを自分で作るのも面倒なので
ネットに公開されていないか探しまくります。

そこでちょっと便利なサイトの紹介です。
(もしかしたらかなり以前に少しだけふれていたかも)

SnapEDA というサイトです。
利用登録は必要ですが無料で使えるサイトです。

snapeda_1
[トップ画面]

検索したい部品名を入力して「虫眼鏡アイコン」をクリック(またはリターンを押す)
snapeda_2
[検索]

検索した部品が登録されていると以下のような画面になりますので、赤枠の部分をクリックします。
なお、一番右に表示されているアイコンは
左から {データシート} {回路図用シンボル] [基板用パターン] の有無を示しています。
snapeda_3
[検索結果]

検索結果をクリックすると以下のような画面になります。
今回検索した部品はシンボル図、パターン図ともに有りとなっていたので両方表示されています。
ここでCAD用データをダウンロードできます。
シンボル図とパターン図の両方が必要な場合は [Download Symbol and Footprint] ボタンを
パターン図だけが必要な場合は [Download Footprint] ボタンを押してください。
snapeda_4
[シンボル・パターン確認]

ログインしていないと以下のログインページが表示されますので
登録している場合はログインを登録していない場合は登録作業を行ってください。
snapeda_5[ログイン画面]

対象となるCADのリストが表示されますので、自分の使っているCADを選択すると変換・タウンロードが始まります。
snapeda_6[対象CADの選択]

以上でダウンロード終了となりますので、お使いのCADにダウンロードしたライブラリを登録すれば使えるようになります。
snapeda_7[ダウンロード終了]

マルツパーツの「マイコンレーサー2 」のプログラムをc言語で開発する方法

マルツパーツの「マイコンレーサー2 」のプログラムは
通常は専用の「ブロックコマンダー」を使って作成しますが、
姉妹品の「マイコンレーサーAdvance 」には
「より高度なプログラミングに挑戦したい方にはこちらがおすすめ。」
と言う事でHEWでビルドできるプロジェクトソースファイルが付属しています。

1500円をケチって「マイコンレーサー2」を買ってしまったけど
やっぱりc言語を使いたい。
と言う事で「マイコンレーサー2 」でHEWでの開発を試してみました。

まず
1. 「マイコンレーサー2 」で作った「ブロックコマンダー」のプログラムは「マイコンレーサーAdvance 」でも動く。
2. 使っている「ブロックコマンダー」は同じ物。
3. 回路的にも「マイコンレーサーAdvance 」で追加された操舵機能部分以外はほとんど同じ。
以上から多分「マイコンレーサー2 」でもHEWが使えると判断。

統合環境「HEW」に関して
HEWをインストールしていない場合は
https://www.renesas.com/ja-jp/products/software-tools/tools/compiler-assembler/compiler-package-for-r8c-and-m16c-families.html
ここからR8C,M16Cファミリ用C/C++コンパイラパッケージをダウンロードしてインストールしてください。
HEWをインストールしていてR8C,M16Cファミリ用C/C++コンパイラがインストールされていない場合も同じくここでダウンロードしてください。
インストールすると既存のHEW環境にコンパイラがインストールされます。

プログラムの書込みに関しては「マイコンレーサーAdvance 」の説明書にも書かれていなかったので
以下自分が調査した結果です。
Renesasは合併前の会社が提供していたままのツールが多くて
どれを使ったら良いのか、どれが使えるのか煩雑です。

フラッシュプログラマーに関して

 Renesas Flash Programmer V2.05 チップの選択一覧に無い。
 Renesas Flash Programmer V3.01 チップの選択一覧に無い。
 Renesas Flash Programmerは使えない

M16C Flash Starter
 com port の選択が 1~9までしか選択できない為使用不可
 (自分の環境ではcom18で認識されているため)

Flash Development Toolkit R(C R5F21344CNFPに設定 書込みOK
 「Error No 15024: ブートの合わせ込みに失敗しました」が発生した場合は
 接続ケーブルを差し直して、デバイスと再接続すればOKです。
 Flash Development Toolkitの使い方に関しては別途解説します。

Flash Development Toolkitは以下のページから「無性評価版をダウンロードしてください。」
https://www.renesas.com/ja-jp/products/software-tools/tools/programmer/flash-development-toolkit-programming-gui.html#

r8c_writer
 書込み可
 HEWに外部コマンドとして登録できるので便利
 
https://www2.himdx.net/mcr/product/download.html
 ルネサス統合開発環境用その他ソフト Ver.1.50 mcr_sonota_soft.zip
 をダウンロードして解凍してください。
 HEWへの登録手順は「r8c_writerの登録方法.txt」に記載されています。

今回は概要しか解説していませんが、
実際のc言語による開発手順をまとめる予定です(多分)

サクラVPSサーバーに Blynk ローカルサーバーをたててみました。

以前にもこのこのブログで何度か取り上げたことのある Blynk ですが
Serverのプログラムも配布されているので試しにサクラVPSサーバーにインストールしてみました。

プログラムのダウンロード先やインストール方法はココに書かれていますので参照してください。
http://docs.blynk.cc/#blynk-server

Adminページへのアクセスでちょっとハマってしまいました。
アクセスできるIPアドレスを設定するようになっているのですが
その設定ファイルがどこにあるのかが分かりませんでしたが

Advanced local server setup の下に書いてある
「server.properties」
で設定するようになっていました。

server.propertiesは説明ページからサンプルファイルへのリンクが有りますので
コピペして server.jar を置いたフォルダーと同じ階層に置いてください。
とりあえず
allowed.administrator.ips=0.0.0.0/0
にするとIPによるアクセス制限は外れます。

まだ Adminページへのアクセスしか確認していませんが
近日中に スマホの Blynk アプリから接続してみます。

screencapture-160-16-73-148-7443-admin-1473482596704

誰も教えてくれない「組込みC言語」 3

定数の命名ルール

#define 定義する定数名は大文字にする

これは変数と混同しない為のコーディングルールとして良く使われています。

1
2
#define		signal_max		200
#define		signal_min		100

ではなく

1
2
#define		SIGNAL_MAX		200
#define		SIGNAL_MIN		100

のように定義します。

この定数にも前回の変数の型をいれると

1
2
#define		U1_SIGNAL_MAX		200
#define		U1_SIGNAL_MIN		100

となります。

例えば

1
if(u1_port_00 > u1_signal_max)

だと u1_signal_max は 定数なのか 変数なのかパッと見わかりませんが
定数は大文字にするというルールを決めておけば
この場合の u1_signal_max は 変数だとすぐにわかります。
当然

1
if(u1_port_00 > U1_SIGNAL_MAX)

だと U1_SIGNAL_MAX は 定数だとすぐにわかります。

余談ですが
定数の読み「じょうすう」、「ていすう」どっちで読んでいますか?
自分は昔は「ていすう」と読んでいましたが、今は「じょうすう」とよんでいます。

誰も教えてくれない「組込みC言語」 2

組込みプログラムではバグを早期に発見できるように
変数名はサイズが分かるように命名します。

例えば

1
2
3
4
5
6
7
8
9
10
11
void main(void){
	unsigned char	i;
 
	while (1U)
	{
		P3.0 = 0;
		for(i=0;i<50000;i++){};
		P3.0 = 1;
		for(i=0;i<50000;i++){};
	}
}

このプログラムにはバグが有ります。
iは符号なし8bitの変数(0 ~ 255)ですが
その範囲を超えた 50000 と比較しています。
このサンプルの場合は宣言部と比較している箇所が近いために気付きやすいのですが
変数がグローバル変数で別のファイルに定義されている場合はちょっと見気付きません。

これをちょっと見でもバグだと気付くように変数名を変えてみましょう。

1
2
3
4
5
6
7
8
9
10
11
void main(void){
	unsigned char	u1_i;
 
	while (1U)
	{
		P3.0 = 0;
		for(u1_i=0;u1_i<50000;u1_i++){};
		P3.0 = 1;
		for(u1_i=0;u1_i<50000;u1_i++){};
	}
}

変数名を i から u1_i に変えました。
もうお気づきかと思いますが u1_i の u1 は この変数が符号なしの1バイトの変数を意味しています。

このように変数名に型を表すワードを明示しておけば、
u1_i<50000 この部分を見ただけで 変数が符号なしの1バイトの変数 と 1バイトの範囲を超えた値と比較しているのが一目瞭然となります。u1 s1 u2 s2 s4 f4 f8 を変数の接頭語として良く使用します。 意味は以下のようになります。 u1 符号なし1バイト s1 符号あり1バイト u2 符号なし2バイト s2 符号あり2バイト u4 符号なし4バイト s4 符号あり4バイト f4  単精度実数 f8  倍精度実数

3Dプリンターと電子工作の「博多電子工作室」 IoTの実験もやっています。