わがロボットの譜

千葉工業大学、総合工学研究会所属の者です。とりあえず、二足歩行ロボット作成日誌です。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

引っ越します


引っ越します.

新しいブログ : http://taki4416.com/wordpress/

スポンサーサイト

PageTop

c.vimですって


現実逃避がてらvimをいじっていた.

で,長らく倒せなかったclang_completeによる補完が倒せた.

vim使うのがたのしくなってきた.


で,今はeclipseでいろいろ書くことが多く,あれないかなーこの機能ないかなーと調べてるうちに,

c.vimというC/C++を書くのに特化したプラグインが有る模様.


しかし,日本語でいろいろ書いてあるところがない.
深い悲しみにつつまれる.



しょうがないので,本気のマニュアルを見ながら,ここにメモっておく.




コメントについて

なんかいきなりこれから始まった.ちなみにgvimの場合のお話はしないのであしからず.


docにあるc-hotkeys.pdfにキーのまとめがある.



\cl
行末に /* */というコメントを追加.追加後はコメントの中にフォーカス.挿入モードになった.
let g:C_LineEndCommColDefault = 先頭までの文字数 でコメントを出す位置を設定可

\cs
\clのコメントが出る位置を変更.↑のコメントは何文字目にでるってのが決まっているのでそれの変更.
現在のカーソル位置がある場所になる.

\cj
\csでコメント位置の設定を変えたり,なにかしらでコメント位置が動いたあとにコレを使うと,
カーソル行の/*hoge*/を設定されている位置に移動させる.
先頭とかだしと違う挙動.とにかくいいカンジにしてくれる.

\c*
指定行を複数行コメントアウト(/**/)


\cc
指定行を単一行コメントアウト(//)
ぶっちゃけこれがあれば自分としては十分

\co
コメントアウト解除

↑ここへんフツーに数字+コマンドで複数行に適用可


\cfr
フレームコメント作成
/*-----------------------------------------------------------------------------
*
*-----------------------------------------------------------------------------*/
↑こういうやつが作成できる.

\cfu
関数コメント作成
/*
* === FUNCTION ====================================================
* Name: hoge
* Description:
* ===============================================================
*/
↑こういうカンジのものが作成された.

↑ってカンジのが続いていく.でここら辺はテンプレートファイルとやらで変更可能な模様?
試しにdoxygenで当たりを付けてみたが,ごちゃごちゃしてたから後で見る.

ってことで以下

\cme
メソッドコメント

\ccl
クラスコメント

\cfdi
ファイルのコメント
ファイルの先頭にあるようなやつ.日時,ファイル名,作者は補完してくれた.

\cfdh
ヘッダのコメント
\cfdiのヘッダ版

\ccs
/* ##### HEADER FILE INCLUDES ###################### */
こういう区切るのに使うようなものがでてくる.
タブで選択すると良い.

\chs
\ccsのヘッダ版な模様.

\ckc
キーワードコメント.これも選ぶので,タブで.
TODO選ぶと
/* :TODO:2013年02月01日 01時00分33秒:: */
こんなのが挿入された

\csc
スペシャルコマンド?
\ckcの選択肢違う版じゃねコレ.
こっちはコードを補足するカンジのラインナップな模様

\cd
日付挿入 2013年02月01日

\ct
日付&時刻挿入 2013年02月01日 01時04分56秒

\cx
Cスタイル(/* hoge */)とC++スタイル(// hoge)のコメントアウトを相互にチェンジ


…へぇ.

コメントだけでこんなに.

こういうのがイディオムとかいろいろ有る模様.


…便利なのか?
ぶっちゃけインサートモードでこれらのコマンド使えないし,
辞書登録していろいろ…とかできないのか?

と疑問に思って終わった.


そのうち深入りするかもしれないし,しないかもしれない.

\ccでコメントアウトできるぜひゃっほーって思っとく


PageTop

そろそろstm32f4と戦おうと思って


Discoveryボードはあるんだが,使いたいのは小さいパッケージのやつ.

ターゲットはLQFP64パッケージのstm32f405.


実は,随分前に買ってあって,変換基板へのはんだもしてあったりする.





で,そろそろ回路図でも引くかなーと思って,
てっっっっっっっっっっきとーーーーーーーーーにデータシートに目を通した.

だって英語なんですもの.



てことで該当パッケージの上ををちょっとだけ纏めてみた.


が,特に珍しいことはなんもなかった!

ピンの機能が,Additional functionsとAlternate functionsと2項目に分かれてて,なんだろうと思ったら,
前者は各機能事のペリフェラルレジスタで利用するか否かの選択をして,後者はピンの機能選択で選ぶだけってゆー話でした.割と親切?


まぁ一応,表にまとめたんで置いておく.

https://docs.google.com/file/d/0B4D-z8bgWgT-ZWZGRTI1WTZENE0/edit


注でいろいろ補完しようと思ったらクソ微妙な形になった.反省はしている.



機能がどうとうか実際なとこ,まだ全然見てない.



まだまだこれからだけれども,日曜日は終わってしまったのです.

PageTop

makeが終わったらプログラムが出来上がった感を出す


makeの過程を,いつもはサブディスプレイで垂れ流しつつ横目で見てたわけですけれども,他の作業と並行する以上,サブディスプレイも作業用として使いたい.make終了を通知して欲しいと思った次第です.


まず思い当たるのはビープ音.適当にググる.ツイッタで教えてもらう.やってみる.

…鳴らない.


あまり重要ではないので深入りしてませんが,きっとシェルの設定とかそんなとこじゃないかとテキトーに考えてます.


そんなこんなで,じゃぁ折角だし音楽を再生するかと.


いい感じの効果音とかないかなーとググる.

どうせなら出来あがった感を出したい.じゃぁアレしかないな.



「電子レンジ 効果音」



効果音源に行き着く.




mp3 mpg321とかいうので再生できるらしい.


ということでコマンドをmakefileにぶち込んで完成.



makeが終わると レンジの「チーーーーン……」って音でお知らせしてくれます.


いやコレ結構テンション上がりますよ.みんなやるべき.回りの人も面白れーとか言って見てくれますあといい加減にしろよお前って顔してくれます


で,ここで気づく.これは何にでも使えると.



例えば長い転送が終わったかも


転送コマンド; mpg321 hoge


とかやっとけばいいわけです.素晴らしい.


これでいろんな処理が終わった時にまわりをイライラさせられる音でお知らせしてくれるようになります.


ちなみにmpg321コマンドはなんかいろいろメッセージが出ますが,-qオプションで抑制可能です.



あ,おわりです.


コンパイルエラーが出たらどうするかはまぁそのうち考えます.



あとこれは完全に余談ですが,電子レンジの音にすると飯テロに近い効果ということがわかりました.飯時にやると色々と効果的です.

PageTop

研究室で年を越してしまった



久々の更新.
息してるかどうかは若干怪しい.


喪中なんでおめでとうとかは言わない.


まぁ研究ではない研究で,サークルの延長みたいなカンジで二足と戯れてるんで,書くネタが無いわけではないのですけれども.

とりあえず,今年どうなるかは知りらないが,去年やっていたお仕事は年明けと共に終了..
去年は,いろいろと専念したり自分が暇じゃなければ困るので自重してきのだけれども,まぁそれも終わりなので,今年ブログのネタになるようなことをやってなかったら自分の怠慢.


備忘録的な意味で,こんなことやりたいなーってのでも書き連ねとく.

・ 新型機開発
一年以上止まってる.サーボはある.構想もある.途中まで引いた図面(根本的に作り直したい)と,テスト用パーツの設計もしてた.

・ 新しいボードの開発
研究やってて確信している.もう1000円台のマイコンでそこそこ計算しながらいろいろやれる時代が来てる.
じゃぁやらない理由はないだろ.基本的な歩行のアルゴリズムぐらい..

・ C++のお勉強
やらないともうこの先に進めない感が凄い.そして自分の力不足感を一番強く感じる.
まぁどれもクズみたいなレベルだけれども.

・ mbedをGUI化したカンジのものを作りたい
ぶっちゃけコレが一番やりたいかもしれない.そろそろGUIでそれなりにプログラムできてもいいだろうと思う.

・ 高機能なキーボードフックツールが欲しい
窓使いの憂鬱のlinux衣装版は,windowsののどかと比べて随分機能が少ない.

・ kicad使えるように
結局夏からなにもできてない.かなり苦労しないと習得が大変そうってのはある.
優先度低めか.

・ stm32使えるように
ボード開発に必須じゃないか.これじゃなくともarm全般はやらないとヤバイ.

・ なんか工作
電子工作的なことしたい.
stm32の勉強用に進めたい.
何かをやっていた気がするが,もう卒業近いので年度内にやらんとイカン…




とにかく,一年頭を冷やしてもやっぱり新型機が作りたいので作るんじゃないでしょうか.
色々書いたけど,まとめると新型機作りてぇの一言につきます.

二足用のオープンなボードとライブラリ作って公開したいなーー



PageTop

scrotを使う


すっっっごい小さい話だけれども手こずったので書いておく。
久々にkicadではなくubuntuのお話です。

最近みんな大好きのunityの環境にも飽きてきたので、xmonadなる(タイル型ウィンドウマネージャっていうのかな?)を入れました。
大変便利です。

が、スクリーンショットを取ろうとすると、保存先のディリクトリの選択が表示されなくなっている。
どうやら勝手にピクチャフォルダに保存される模様。
しかし自分としては、どうせ呟いたりブログに載せたりしたら消すようなスクリーンショットの保存先は、ramディスクの方が望ましいのです。

てことで、なにか代わりに使えそうなものがないかと探す。
コマンドラインから「きれいな」スクリーンショットを撮る @ おおにしあきらの日記 がヒット。scrotなるものが使えそう。

てことでインストール。
さっそく使う。テキトーに sudo scrot -s /mnt/ramdisk/ と打つと、
giblib error: Saving to file /mnt/ramdisk/ failed
範囲選択はできるものの怒られる。

とりあえずgiblibなるものが入ってないので入れてみる。
giblibをconfigureしたところでエラー。
imlib-configがねぇよみたいなことを言われる。
これは apt-get install libimlib2-dev でなんとかなった。

で、これで入れたから文句ねぇだろと再実行。

iblib error: Saving to file /mnt/ramdisk/ failed

…orz


これまでで何度も man scrot 内の scrot [options] [file] という記述をみているが事の本質に気づけず、
ググる。


scrot: giblib error を発見。

なるほどー、scrot -e 'mv $f /mnt/ramdisk' でいいのk…いや良くねぇよ!

なんでこいつらありがとうとか言ってるんだマジで…という感じ。いや直下にとりあえず作ってから目標場所に移動とかもうramディスクに保存する意味がないし。


で再度 man scrot 。
ようやくミスに気づく。
scrot [options] [file] … 俺はファイルというところにディレクトリを指定してるではないかorz

下の方にstrftimeも使えるよーとそれを使った例も書いてあるじゃないか。何してるんだよ。

てなわけで scrot -s /mnt/ramdisk/%F-%T.png でok。




書くほどのことでもないのだけれども、危うく騙されそうになったので書いておく。

しかしなぜもって早くきづk(

PageTop

KiCad使用記録 - EAGLEからライブラリを持ってくる (2)

夏休みが終わってしまったのでなかなか更新進みません。いやそんな忙しいわけでもないんですけどね…

前回、EAGLEからkicadにライブラリを持っていくためにいろいろやっていましたが、使い心地が至って微妙。
で、いろいろ調べて見たもののよくわからずじまい。面倒なので自分で改造することにます。

文字が回路記号にかぶってくるのは、Eeschema上でも直せるのでまぁ放置。
これは、>VALUEと>NAMEの位置を自前ライブラリで指定していないのが問題の模様。
指定していないと原点になり、場所がかぶってしまう模様。ちゃんと指定されていればかぶることはない。
とりあえずは、モジュール名のフィルタを自動で作ってくれるように。

初めてEAGLEのulpのマニュアルを見ましたよ。いや、ユーザーガイドか。とにかくこれです。
しかし俺はkicadの勉強をしてるんじゃなかったのか。

モジュールのフィルタはFPLISTなるリストで指定するようだったので、そこのところを追記。
なぜかEAGLEでいうデバイスとパッケージが1対1対応だったのでそこら辺もなんとかしてみた。
同じシンボルが複数定義されるし、回路図書いてからパッケージを変更しにくいのがこれでマシになる…ハズ。

結構滅茶苦茶なことやってますがこれはしょうがなかったんだ…
UL_DEVICELISTだけでゲートの定義を呼び出すと、エラーがでる。
マニュアルにもその旨は記載されてるので、デバイス一つからシンボルデータを作ってそこからbreakという…
なんかCじゃねこれ?ってかんじでマニュアルはろくに読まずにフツーにC言語を書く感じで書きました。

まぁやりたいことができたんでなんでもいいです。
とりあえず元のeagle2kicad-0.9b.ulpも当然GPLライセンスなので、置いときます。
eagle_library2kicad.ulp

億万が一程度でどなたかのお役に立てば…(投げやり


PageTop

KiCad使用記録 - EAGLEからライブラリを持ってくる


あ、どうも。今日は祖母の家に一泊しますがいつもどおりやっていきます。

さて、昨日はライブラリの持ってきかたをざっくりとやったものの、お目当てのものは無かった。
まぁここら辺は想定の範囲内ではある。がしかし、やっぱりどこからか持ってこれるものなら持ってきたい。
だってねぇ、いろんなツールをお勉強するのはラクをするためではないですか。

で、昨日から気になっていたもの。

kicad.jpのwikiにEagleからの移行についてという項目が。
なにやらEagleのライブラリをKiCadのライブラリに変換する方法がある様子。

とりあえずEAGLEからの移行についてページに移動。
華麗に 自作したEagleライブラリからKiCadライブラリへの変換スクリプト をクリックして飛びます。

で、とんだ先から eagle2kicad-0.9b を選択。バージョン0.9だったりベータだったりすることに不安を覚えながらもダウンロードします。
もの自体はEAGLEのulpなので、まぁ自分は最終的に /usr/share/eagle/ulp にぶち込みました。

で、EAGLEを起動。kicad用にコンバートしたいライブラリを開きます。
ulpulpをクリック、出てきたウィンドウで eagle2kicad-0.9b を選択。

kicad6
今回は保存先は↑のような感じで、直接 kicad/share/library ではなく、自分用ライブラリフォルダにいれておくことにしました。
このウィンドウ、Pckageタブの方で.modデータの保存先の指定もあるので忘れないように。

両方設定したらOKを選択。
認識できないプレフィックスは??に置き換えといたぜ!詳しくはテキストエディタで確認したくれよな!
みたいなことを言われます。

無視すると可哀想なので、一応テキストエディタで見てみます。
どいつもこいつも DEF "hoge" ?? と、定義された始めの項目が??になっているご様子。
まぁ後々どこかわかるだろうからとりあえずスルー。

で、できたライブラリは前回の手順と同様に追加します。
前回同様Eeshameを開いて 設定 → ライブラリ を選択。

今回は出てきたウィンドウでまずはユーザー定義の検索パスで、
kicad/mylbr/library を通しておきます。

で、一番上の追加ボタンをクリック。
1つ1つ追加しているのでは時間がかかってしょうがないので、Ctrl+Aで mylbr/library 下の.libファイルをすべて選択。この状態で開くを押せば、すべてが追加されます。
このぐらいならばフォルダごとに目的に合わせて、回路図書き始めるときに用途に合わせて読み込むなんてことをしても苦にはならなそう。

とりあえず部品を設置。

buhin
大夫愉快な感じになっているので、とりあえずライブラリを編集しておく。

??を付けられているのは、コンポーネント識別子のようなので??をXに編集
crystal
しかしAは一体どこからでてきたんだ…

で配置して配線ーとか思ってたら、なんかグリッドの位置とずれてて端子を選択できない…orz
が、しかしこれはライブラリの編集で少し動かせば解決。

とりあえずクリスタルの端と端をつないだ物体をつくり先をテスト。
アノテーション、ERCのテスト、ネットリストの作成は何事もなく終了。

続いてはCvPCB。.mod ファイルも読み込みの指定をしなければいけないようなので、先ほど同様の指定してみる…も、予期しないファイル終端文字 などというエラーが。
改行コードとかのあれかと思い修正したものの違い…とりあえず無視しました(

で、いざ対応付けタイム。あれ、なんかすべてのパッケージが選択肢にあるんですけれど…
何か定義するものが有るはず。
とりあえずEeschemaに戻って ライブラリエディタを起動。それらしきものを探してみる。あった。

kicad7コンポーネント プロパティの編集をクリック。

そこからフットプリントフィルタータブを選択。
kicad8

このフィルター、完全一致ではなければダメなよう…
しかもモジュールを選択するとかそういうのでもない。
というかulpさんやってくれないのかよ…
次のステップはulpの改造に決定ですね。もう。

そして一度追加したワードの編集はできないという残念仕様。
いやきっとまだ俺が使い方を把握してないだけでもっと簡単にできるんだそうなんだ…
どこかでライブラリの新規作成はラクって見たし…


設定はネットリスト作成を再度作成しないと適用されないのかな?
というわけで再びCvPcbに。

CvPcb

できたー!

ちなみにiconこのアイコンを選択して、フィルタをONにしないといけないので要注意。


このあとは、ボードの方を開いて、ネットリスト読み込み、無事仕様可能なところまで確認しました。


がしかし、EAGLEのライブラリはまだ簡単に引っ張ってこれるとは言えない状況…


どなたか良い方法を教えてくださいm(_ _)m






PageTop

kicad使用記録 - ライブラリと仲良くしたい


とりあえず作る上で、無いとハナシにならないのがライブラリ。

ここはすでに有るのが少ないと聞いていたので覚悟済み。
結局EAGLEでも結構無かったりするので関係なかったり。


とりあえずまずは、既存のライブラリにないかのチェック。
Eeschema上でコンポーネントの配置を選択する。
名前内にコンポーネント名を入れれば絞り込む。
前と後ろの他のワードがあってもヒットするように下のように検索する。


kicad1

これで、Enter入力 or OKをクリックする。
キーワードで検索なるものがあるのだけれども、こいつはコンポーネント名を検索するものではなく、
ライブラリに付けられたキーワード、まぁタグみたいなものを検索できるもののよう。
後々ライブラリを作るときあたりにおいおい見ることにします。

で、OKを押すとこんな感じに。
kicad2


まぁここであったらお終い。

相変わらず部品の追加で検索なのかなーと思ったり。探したけど他の方法がなかった。
今後/kicad/share/library あたりで grep かけて検索するとかそんなことは避けたいところ。


とりあえずまぁなかったので、次、本家のライブラリページに挙げられてるのから拾ってくるとう試み。
本家のライブラリページはなかなかに思い。

早々にブラウザの検索かけて、ないやと思わないで少し気長に待ちます。

You have not found your component? とかでてるのが一番したです。
まぁブラウザの検索機能を使って探すのがフツー…ですよね?

ただ、カオスに置かれているわけではなく、
このアイコンkicad3の下の項目がカテゴリになっているのでそこで見てもいい感じ。ものすごい量があるわけでもないし。


そいで、なにか目玉マークというかアイコンとフロッアイコンがある。フロッピーの方はクリックするとダウンロードのダイアログが開くのでわかるのだけれども、目玉アイコンはなにかテキストが開くだけ。どう仲良くしたら良いのかがわからない。
と思ったら、下の方にダウンロードページへのリンクが。目玉アイコンはプレビューだったり、ライブラリ内容紹介+ダウンロードページヘのリンクだったりする模様。

お目当てのものはなかったのだが、折角なのでテキトーにダウンロードして試してみる。

ということでLM4674のライブラリをダウンロード。
とりあえず.mod,.dcm,.libがあったので、/kicad/share/module に .mod を、/kicad/share/library に.dcm, .lib を放り込んでみる。
で、これだけではダメな模様。Eeshemaでライブラリを登録するとか。

さっそくEeshemaを起動。ここでトップバーの 設定 → ライブラリ を選択。
kicad4

ここで一番上の追加ボタンをクリックするのだけれども、下にある 現在の検索パスのリスト で開かれるディレクトリの位置が変わるようなので、/kicad/share/library を選んでおく。
で、後は lm4674.lib を選択してOKをクリック。

これで、コンポーネントの配置でライブラリの部品を選ぶことが可能に。

がしかし、これって現在のプロジェクトにしか追加されないんじゃないかという疑問が。
試しに新しいプロジェクトを作って試してみると案の定ダメだった。

ここはどうしたものかと調べたんだけれども、答えという答えには出会えなかった…
で、たまたまこの前にいろいろあって出ていたエラーで、新規プロジェクトは kicad.pro の情報をベースに作られているということは把握していた。そこで、直接 kicad.pro に追加してみる。

kicad 起動後の画面から、kicad5 既存のプロジェクトを読み込むを選択。
kicad/share/templete/kicad.pro を開く。これを上と同様に編集する。
この後に確認したところ、新しく作成したプロジェクトは LM4672 を認識していた。

が、既存のプロジェクトに対してはダメ。当たり前ですけどね…
本当はなにかしら方法があるはず。


今日はこのくらい。明日もライブラリの作成かなぁ。


とりあえず今日使っていて気づいたところを。

・ 単位系のmmとinchの切り替えボタンが常に表示されている
・ 既存のライブラリを元に新しいライブラリを作りやすいようになっている

こんな感じかなぁ。特にmmとinchがすぐに切り替えられるのはかなりイイ。



まぁあいかわらずちまちまやっていきます。

あ、図がまた出てきたのは、以前と同じような環境にプリントスクリーンのカスタムをしたからです(







PageTop

Kicadに挑戦


使おうと思った理由は特にないです。なんとなく最近良く見るし、良さそうだなぁ程度。


てことで、なんだか日本語版もあるみたいなのでここは日本語版をダウンロード。
make しなくてもてテキトーに kicad とかいかにもな名前の奴らに chmod +x で実行権限与えただけで使えた。


あとは、淡々とチュートリアルをやる。
ちと古いのか、いくつか表示が違い困った。

特に基板完成後のトップメニューの 3D Display をクリックして、3Dを表示して下さいというところ。
実際はトップメニュー(一番上にでる愉快な仲間たち)の 表示 → 3D表示 で見れます。

そしてその後のガーバデータ作成の ファイル → 出図 というのは ファイル → プロット。



感想としてはうーん…という感じ。

EAGLEと比べて、
・ キー1つでコマンドを選べる
ぐらいしかいいところが見つからなかった…


これは微妙という点は、
・ 回路図と配線図の同期をとるのが面倒
・ いちいちいろんな部品が同じ場所にでてくるので、どける作業が必要
・ 拡大縮小時に、カーソル位置を中央に合わせるので少し気持ち悪い
こんな感じですかね…


正直、EAGLEより使いづらいかどうかと言われればただただなんとも言えない。
これないのかな?という機能はまだ自分が把握していないだけなハズ。

とりあえず基板一枚作ってみます。

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。