PCBGOGOで基板を作ってみた
http://www.pcbgogo.jp/:Title=PCBGOGOというプリント基板製造サイトで基板を作ってみました。ブログを書くと割引券がもらえるというメールを前にもらったので、もう遅いかもしれませんがブログを書いてみます。
割引券を期待するということは、また、頼んでみようかなと思っているところですので、決して基板の品質が悪いということは無くて、全然、良かったです。
基板が届く
基板は何故かPCBWayの箱に入って、メモ帳とペンと一緒に届きました。得した気分です。基板は真空パックされているわけではなく、袋に入っていただけでした。
[:W480]
発注した基板は
発注した基板は10枚。
約40x50mmの二層基板で、板厚み1.6mmの有鉛はんだ、青レジストで注文して、だいたい注文後 1週間で届きました。FusionPCBに比べて早いです。これで値段が1181円。送料が同じくらいだったかな、ちょっと忘れました。
以下が届いた基板です。
[:W480]
ちょっと、写真がピンボケていますが、シルクもきれいに仕上がっています。FusionPCBよりもきれいだと思います。
とりあえず、割引券をもらう前に頼んでしまうと思いますが、今回頼んだ基板が来るのが楽しみです。
何に使うの
この基板は、http://wakayamarb.org/:Title=Wakayama.rbコミュニティで作っているRubyボード基板http://gadget.renesas.com/ja/product/citrus.html:Title=GR-CITRUS用のモーター制御基板です。現在、Wakayama.rbではこの基板を用いて下に紹介するような動くものを作っています。はんだ付けが苦手な方でも動くものが作れるように、はんだ付けをすることなく、Rubyのプログラムを書くだけで動かせるようなものつくりを目指しています。
Ruby和歌山勉強会
月に一回、和歌山市内でRuby和歌山勉強会を開催しています。https://wakayamarb.doorkeeper.jp/events/59413:Title=次の開催は2/29です。ご興味のある方は、是非参加してください。
以上です。
Android Studioを日本語化する
Android Studioを日本語化するのに、なかなか時間がかかったので、備忘録として書いておきます。
Android Studioのバージョンは1.5.1、OSはWindows7 64bitです。
Android Studioの表示フォントを変更する
Android StudioのFile - Settings を選んで、Settings画面を出します。
Appearance & BehaviorのAppearanceを選んで、Override default fonts by (not recommended):にチェックを入れます。
これで、フォントにメイリオが設定されるので、日本語が化けずに表示されると思います。
日本語ライブラリをダウンロードする
GitHubにあるyuunaさんのIDEA_resources_jpからZIPファイルをダウンロードします。ダウンロードはDownload ZIPボタンです。ダウンロードしてZIPを解凍すると、resources_jp.jarが入っているので、これをAndroid Studioのlibフォルダにコピーします。
Android Studioのlibフォルダ
Android Studioのlibフォルダがどこにあるのか探しました。一番簡単に見つける方法は、WindowsのスタートメニューにあるAndroid Studioのアイコンのプロパティを見ると、そこに「リンク先」ファイルのパスが書かれているので、そのファイルがあるbinフォルダと同じところに、libフォルダもあります。
上の場合は、
C:\Program Files\Android\Android Studio\bin\studio64.exe
となっているので、libフォルダは、ここですね。
C:\Program Files\Android\Android Studio\lib
libフォルダにresources_jp.jarをコピーする
libフォルダにresources_jp.jarをコピーして、Android Studioを再起動します。
完全ではないですが、これで少しはAndroid Studioが日本語化されたと思います。
mruby1.2.0をrx63nようにmakeしてみる
今年はブログもがんばって書いていこうかなと思っています。
新年早々、最新のmrubyをビルドしてみました。
とりあえず、makeできました。
build_config.rb
build_config.rb にrx用のクロスビルド環境を追記して、
# Cross build for Renesas RX63N MRuby::CrossBuild.new('rx63n') do |conf| toolchain :rx63n # conf.cc.flags << "-m32" # conf.linker.flags << "-m32" # # conf.build_mrbtest_lib_only # #conf.gem "#{root}/mrbgems/mruby-array-ext" ##conf.gem "#{root}/mrbgems/mruby-bin-debugger ##conf.gem "#{root}/mrbgems/mruby-bin-mirb" ##conf.gem "#{root}/mrbgems/mruby-bin-mrbc" ##conf.gem "#{root}/mrbgems/mruby-bin-mruby" ##conf.gem "#{root}/mrbgems/mruby-bin-mruby-config" #conf.gem "#{root}/mrbgems/mruby-bin-strip" #conf.gem "#{root}/mrbgems/mruby-compiler" #conf.gem "#{root}/mrbgems/mruby-enumerator" #conf.gem "#{root}/mrbgems/mruby-enum-ext" #conf.gem "#{root}/mrbgems/mruby-enum-lazy" #conf.gem "#{root}/mrbgems/mruby-error" #conf.gem "#{root}/mrbgems/mruby-eval" #conf.gem "#{root}/mrbgems/mruby-exit" #conf.gem "#{root}/mrbgems/mruby-fiber" #conf.gem "#{root}/mrbgems/mruby-hash-ext" #conf.gem "#{root}/mrbgems/mruby-kernel-ext" #conf.gem "#{root}/mrbgems/mruby-math" conf.gem "#{root}/mrbgems/mruby-numeric-ext" #10.chr #conf.gem "#{root}/mrbgems/mruby-object-ext" #conf.gem "#{root}/mrbgems/mruby-objectspace" #conf.gem "#{root}/mrbgems/mruby-print" #conf.gem "#{root}/mrbgems/mruby-proc-ext" conf.gem "#{root}/mrbgems/mruby-random" #conf.gem "#{root}/mrbgems/mruby-range-ext" #conf.gem "#{root}/mrbgems/mruby-sprintf" #conf.gem "#{root}/mrbgems/mruby-string-ext" #str.split(",") #conf.gem "#{root}/mrbgems/mruby-struct" #conf.gem "#{root}/mrbgems/mruby-symbol-ext" #conf.gem "#{root}/mrbgems/mruby-test" #conf.gem "#{root}/mrbgems/mruby-time" #conf.gem "#{root}/mrbgems/mruby-toplevel-ext" # end
rx63n.rake
rx63n.rake を作って、
MRuby::Toolchain.new(:rx63n) do |conf| toolchain :gcc TOOL_PATH = "/usr/local/tkdn-20110720/rx-elf/bin" conf.cc do |cc| cc.command="#{TOOL_PATH}/rx-elf-gcc" cc.flags << "-Wall -g -O2" cc.defines << "__CYGWIN32__" cc.compile_options = "%{flags} -o %{outfile} -c %{infile}" conf.linker do |linker| linker.command="#{TOOL_PATH}/rx-elf-ld" end conf.archiver do |archiver| archiver.command = "#{TOOL_PATH}/rx-elf-ar" archiver.archive_options = 'rcs %{outfile} %{objs}' end end conf.bins = [] end
mrbconf.h
mrbconf.h を書き換えて
/* ** mrbconf.h - mruby core configuration ** ** See Copyright Notice in mruby.h */ #ifndef MRUBYCONF_H #define MRUBYCONF_H /* configuration options: */ /* add -DMRB_USE_FLOAT to use float instead of double for floating point numbers */ #define MRB_USE_FLOAT /* add -DMRB_INT16 to use 16bit integer for mrb_int; conflict with MRB_INT64 */ //#define MRB_INT16 /* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with MRB_INT16 */ //#define MRB_INT64 /* represent mrb_value in boxed double; conflict with MRB_USE_FLOAT */ //#define MRB_NAN_BOXING /* define on big endian machines; used by MRB_NAN_BOXING */ //#define MRB_ENDIAN_BIG /* represent mrb_value as a word (natural unit of data for the processor) */ //#define MRB_WORD_BOXING /* string class to handle UTF-8 encoding */ //#define MRB_UTF8_STRING /* argv max size in mrb_funcall */ #define MRB_FUNCALL_ARGC_MAX 6 /* number of object per heap page */ #define MRB_HEAP_PAGE_SIZE 24 /* use segmented list for IV table */ #define MRB_USE_IV_SEGLIST /* initial size for IV khash; ignored when MRB_USE_IV_SEGLIST is set */ #define MRB_IVHASH_INIT_SIZE 3 /* if _etext and _edata available, mruby can reduce memory used by symbols */ //#define MRB_USE_ETEXT_EDATA /* do not use __init_array_start to determine readonly data section; effective only when MRB_USE_ETEXT_EDATA is defined */ //#define MRB_NO_INIT_ARRAY_START /* turn off generational GC by default */ //#define MRB_GC_TURN_OFF_GENERATIONAL /* default size of khash table bucket */ #define KHASH_DEFAULT_SIZE 2 /* allocated memory address alignment */ //#define POOL_ALIGNMENT 4 /* page size of memory pool */ #define POOL_PAGE_SIZE 256 /* initial minimum size for string buffer */ //#define MRB_STR_BUF_MIN_SIZE 128 /* arena size */ //#define MRB_GC_ARENA_SIZE 100 /* fixed size GC arena */ //#define MRB_GC_FIXED_ARENA /* state atexit stack size */ //#define MRB_FIXED_STATE_ATEXIT_STACK_SIZE 5 /* fixed size state atexit stack */ //#define MRB_FIXED_STATE_ATEXIT_STACK /* -DMRB_DISABLE_XXXX to drop following features */ //#define MRB_DISABLE_STDIO /* use of stdio */ /* -DMRB_ENABLE_XXXX to enable following features */ //#define MRB_ENABLE_DEBUG_HOOK /* hooks for debugger */ /* end of configuration */ /* define MRB_DISABLE_XXXX from DISABLE_XXX (for compatibility) */ #ifdef DISABLE_STDIO #define MRB_DISABLE_STDIO #endif /* define MRB_ENABLE_XXXX from ENABLE_XXX (for compatibility) */ #ifdef ENABLE_DEBUG #define MRB_ENABLE_DEBUG_HOOK #endif #ifndef MRB_DISABLE_STDIO # include <stdio.h> #endif #ifndef FALSE # define FALSE 0 #endif #ifndef TRUE # define TRUE 1 #endif #endif /* MRUBYCONF_H */
make
makeしました。できたようです。あとで、githubに上げたいと思います。
================================================ Config Name: test Output Directory: build/test Binaries: mrbtest Included Gems: mruby-sprintf - standard Kernel#sprintf method mruby-print - standard print/puts/p mruby-math - standard Math module mruby-time - standard Time class mruby-struct - standard Struct class mruby-enum-ext - Enumerable module extension mruby-string-ext - String class extension mruby-numeric-ext - Numeric class extension mruby-array-ext - Array class extension mruby-hash-ext - Hash class extension mruby-range-ext - Range class extension mruby-proc-ext - Proc class extension mruby-symbol-ext - Symbol class extension mruby-random - Random class mruby-object-ext - Object class extension mruby-objectspace - ObjectSpace class mruby-fiber - Fiber class mruby-enumerator - Enumerator class mruby-enum-lazy - Enumerable::Lazy class mruby-toplevel-ext - toplevel object (main) methods extension mruby-compiler - mruby compiler library mruby-bin-mirb - mirb command - Binaries: mirb mruby-bin-mruby - mruby command - Binaries: mruby mruby-bin-strip - irep dump debug section remover command - Binaries: mruby-strip mruby-kernel-ext - Kernel module extension mruby-test - mruby test ================================================ ================================================ Config Name: rx63n Output Directory: build/rx63n Included Gems: mruby-numeric-ext - Numeric class extension mruby-random - Random class ================================================
Wakayama.rbボードにmotファイルを書き込む方法
Wakayama.rbで開発しているmrubyを実装したRubyボード(Wakayama.rbボード)のRubyシステムを書き換える方法を説明します。
motファイルは、githubに公開されているWakayama-mruby-boardリポジトリのWRBB*フォルダ以下にwrbb.motという名前で保存されています。
自分が欲しいmotファイルが見つからない場合は、各自でソースをmakeしてmotファイルを作成してください。make方法はSlideShareのRuby関西勉強会発表資料 に書いています。
FDT(Flash Development Toolkit)のダウンロード
FDT(フラッシュ開発ツールキット)の無償評価版をルネサスのサイトからダウンロードします。2015/11/24現在では「フラッシュ開発ツールキット V.4.09 Release 02」が最新でした。
FDT無償版をダウンロードするには、My Renesasにユーザ登録しておく必要があります。
ユーザ登録したら、FDT無償評価版のダウンロード画面から「無償評価版フラッシュ開発ツールキット V.4.09 Release 02」を選択します。
「同意」を求められるので同意します。
ダウンロードボタンを押します。
My Renesasにログインすると、自動的にダウンロードが開始します。
FDTのインストール
fdtv409r02.exeを実行してFDTをインストールします。
実行すると聞いてくるので、OKします。
Nextを押します。
Asia (Japanese)を選んでNestを押します。
acceptを選んでNextを押します。
USB Driversだけでいいと思うのですが、とりあえずこのままNextを押します。
Nextを押します。
Nextを押します。
Installを押します。
Installが始まります。
インストールが終了すると、この画面になります。
Finishを押すと、インストールは終了です。
motファイルの書き込み準備
まずは、ブレッドボードなどの接続に使用するジャンパ線を用意します。
これをWakayama.rbボード(WRBボード)の下記の部分に差し込みます。MDと書いています。JP1とも書いています。
拡大した写真がこれです。
ジャンパ線を差し込んだらリセットボタンを押します。
FDT Basicの起動
FDT Basicを起動する前に、ジャンパ線を差し込んだらWRBボードのリセットボタンを押しておいてください。
FDT Basicを起動して「新規設定」を選びます。初めての場合は、自動的に新規設定画面になるかもしれません。
デバイスとカーネルの選択は、一番下の「Generic BOOT Device」を選びます。「次へ」を押します。
通信ポートの選択は「USB Direct」を選びます。「次へ」を押します。
WRBボードと接続している場合は下のメッセージが出るかもしれませんが、出たときは「OK」を押します。
VID等が表示されるので「OK」を押します。
デバイスを聞いてくるので、RX600シリーズのLittieEndianで「OK」を押します。
そうすると、汎用デバイスの確認がすべて通ります。
OKするとクロックの設定画面が出ます。12MHzで「次へ」を押します。
書き込みオプションはこのままで「完了」を押します。
設定が終わって、USB接続が完了します。
USB接続で書き込む
「File Selection」の 「User / Data Area」にチェックして右向き黒三角ボタンを押し、「参照」を選び、書き込むmotファイルを指定します。今回書き込むのは「wrbb.mot」です。
スタートを押すと書き込みが始まり、あっという間に終了します。
あとは、「デバイスとの切断」を押すと下の画面が出て「OK」を押すとUSB接続が切れます。
これで、Wakayama.rbボードへのmotファイルの書き込みは終了です。
DesignSpark Mechanicalでミラー反転したいとき
いつも、3D-CADはDesignSpark Mechanicalを用いて描いているのですが、書き上げたパーツを左右ミラー反転したい場合、どうも、DesignSpark Mechanicalにはその機能が無いようなので、何とかミラー反転させる方法を考えてみました。備忘録として書いておきます。
答えは簡単でOpenSTLを使うだけです。OpenSTLはインストールする必要も無いとってもお手軽なソフトです。
---内容の修正をしました。OpenSTLで縮小処理をしなくても良くなりました。---
OpenSTLのダウンロード
以下のサイトからOpenSTLをダウンロードします。緑色のDownloadボタンを押します。
http://sourceforge.net/projects/openstl/
OpenSTLの実行
OpenSTLをダウンロードすると、OpenSTL.exe がダウンロードされます。これが OpenSTL 本体です。インストールも何も必要ありません。
OpenSTL.exe を実行します。
部品の縮小 OpenSTLでの縮小処理を行うは必要ありません。
OpenSTLはメートル単位のようで、DesignSpark MechanicalのSTLデータを読み込むと1000倍されてしまうようです。そこで1/1000にサイズを縮小します。
部品のスケール変換 OpenSTLで部品のスケール変換を行うは必要ありません。
Editメニューの Scale Selected Parts... を選びます。
ここであわてずに、Closeしたあと、ViewメニューのDefault ViewsのIsometricを選びます。
そうすると、1/1000になって見えなくなっていた部品が出てきます。
OpenSTLで部品のスケール変換を行うは必要ありません。
STLファイル保存
Fileメニューの Save Partを選んで保存します。Save Part Asを選ぶと「名前を付けて保存」となります。
Save Part を選んだので上書き確認が出ています。
DesignSpark Mechanicalでの読み込み
DesignSpark Mechanicalに保存した反転部品STLデータを読み込みます。
読み込み時にもSTLの単位は保存時の単位にあわせます。ここではミリメーターにしています。
STLを読み込みました。
ソリッドに変換
STLファイルを読み込むだけではDesign Mesh になっているので、ソリッドに変換します。ソリッドに変換するときに、「面をマージ」をかければ、ほぼ反転前の部品ソリッドの面と同様に変換されると思います。面が多い場合は面マージ処理に時間がかかるので、処理が遅いときには「面をマージしない」を選べばいいと思います。
ソリッドに変換されました。
コピーして元図面に持っていく。
変換したソリッドを選択して、クリップボードにコピーします。
元の部品図面に貼り付けたら、すごく遠いところに貼り付いてしまいました。
これで、部品のミラー反転は終了です。
3Dプリンタ ダヴィンチのリフィルフィラメントを交換した
3Dプリンタのダヴィンチの専用ABSリフィラメントを交換してみたので、備忘録として書いておきます。
最近のダヴィンチのフィラメントは、交換用のロールと制御用のICのセットを売り始めたようです。
3Dプリンター ダヴィンチ 専用 ABSリフィルフィラメント
- ジャンル: パソコン・周辺機器 > アクセサリー > その他
- ショップ: XYZプリンティング 楽天市場店
- 価格: 3,542円
IchogoJamKeyBoardをバージョンアップしました
IchigoJamKeyBoardをバージョンアップしました。IchigoJamKeyBoardと書くと長いので、IJKBと省略することにします。
IJKBがVer 1.0.1になりました。ダウンロードはgithubのhttps://github.com/tarosay/IchigoJamKeyBoardからお願いします。
プログラムのダウンロード
IJKBにプログラムをダウンロードする機能をつけました。フォームの下のところに「プログラム保存」というボタンを追加しました。
ここをマウスでクリックすると、「ファイルに保存」フォームが開きます。
保存したいSAVE番号を入力した後、「ファイル保存」ボタンを押すと保存ファイル名を入力するダイアログが開きます。保存ファイル名を指定すると自動的にプログラムの保存がスタートします。
プログレスバーが消えるとプログラムの保存が終了しています。
この機能の特徴はプログラムに特殊なバイナリコードが含まれていてもそのまま保存する点です。IchigoJamは特殊なキャラクタコードを特殊なバイナリコードに割り当てているので、PRINTデータに特殊なキャラクタコードが含まれていると、うまく取得できないことがあるのですが、IJKBのプログラム保存機能はバイナリコードのまま保存するので、プログラムが化けることはありません。