[[FrontPage]]
*2019年 [#v82a0e95]
**11/14(木)標準出力、標準エラー出力 [#me541d1c]
コマンドの出力結果をファイルに落とすとき~
1. > a.txt 上書き~
2. >> a.txt 追記~
3. &>> a.txt 標準エラー出力~
https://qiita.com/r_plus/items/41fb31285fb64fb4be85~

for文で回したときに出力が連続で出されてしまう~
→echo \(バックスラッシュ)を書くことで解決~
あるいはhttps://qiita.com/fault/items/11e45d4bce233f493b95~
for文で回したときにファイル中で出力が連続で出されてしまう~
→echo >> a.txt を書くことで解決~


**5/21(火)ライブラリ [#tda580e4]
.soファイルに新しく作った関数が反映されず困っていたが、ライブラリのサーチパスを追加したらできたのでメモ~
1.vimとかで/etc/ld.so.conf に/usr/local/libを追記~
2.root権限に入りldconfig を実行~
-https://blog.goo.ne.jp/nobody123/e/714dbbd6550ee9bb8c1a4fa6148b1c21~

あと./configureのときに--enable-shared=yesをつける~

**5/17(金)ifdlkpのユーザー追加 [#t70a8dbd]
前にもやったが忘れていて再度調べる羽目になったためメモ~
1.ルート権限に入る(sudo su -)~
2.adduser ユーザー名~
その後は画面の指示に従えばok~
ユーザーの追加方法にuseraddというコマンドもあるが、これで追加するとうまくいかないのでadduser使うべき~

**4/2(火)cuda周りのエラー [#fbf6facc]
久々に使おうとしたら何故か使えなくなっていた~
ドライバの更新により解決と書かれていたがかなり苦戦してしまった~
以下のURLを参考に解決~
定期的に更新しないとまずい~
-http://swytel.hatenablog.com/entry/2018/05/08/174943~
-https://qiita.com/krhe/items/ab17346c747b393fa3db~
-http://ultraist.hatenablog.com/entry/2015/01/30/221102~

**1/9(水)検索 [#jc2b24fb]
grep:ターミナルでプログラム内の文字列を検索したいとき~
less:ターミナル上でプログラムを表示~

*2018年 [#xa6643d6]
**6/13(水)画像ビューア [#f66a82b2]
xvをインストールしようとするも一筋縄ではいかない模様~
代わりにviewniorを入れた(↓参考)~
-http://baker-street.jugem.jp/?eid=212~

**6/5(火)研究いろいろ [#dac4f897]
グラボのドライバインストール
-http://gihyo.jp/admin/serial/01/ubuntu-recipe/0454?page=1~

sshの設定
-http://chee-s.net/ubuntu14-04にsshサーバを導入~
-https://qiita.com/pg_naoyuki/items/3602c41f143c08fadb1a~

scp : ssh接続でファイルをコピーする~
○○ > hoge.log : 実行内容をログファイルに保存する~
nslookup : DNSサーバー接続確認~
1KiB = 1024B~

**5/30(水)git cloneできない [#i3e54803]
git cloneを実行しようとしたらCould not resolve host: github.comというエラーが出る。~

対処法~
git config --global --unset http.proxy~
git config --global --unset https.proxy~
の2つを実行後再起動してからもう一度git cloneしたらできるようになった。~


**5/23(水)ubuntuインストール [#f1836f81]
usbからインストールする方法~
http://yohaku6066.blog.fc2.com/blog-entry-44.html~
https://qiita.com/joe_banana/items/fa5465a0e7516c935b4c~

インストールし終えたら再起動するが、その時にusbを外し忘れないようにする。でないとまたインストールする画面になる。

**4/23(月)Torchのインストール [#sae6ea8f]
公式ページ通りに行けば途中までうまくいくがluarocks install imageでつまずく~
解決方法:以下の文を追加で記入~
export PATH=~/torch/bin:$PATH; export LD_LIBRARY_PATH=~/torch/lib:$LD_LIBRARY_PATH; ~
[[参照:http://nonbiri-tereka.hatenablog.com/entry/2015/01/21/083351]]

ついでに現在使用しているシェルが知りたい時は$ echo $SHELLでわかる~
**1/22(月)シリアルポートの文字化け[#qcb4bc29]
検索して調べたら大体どのページも速度が合ってないと書かれている。~
つい前日までは普通に文字が現れていたので速度なんか変えた覚えなかったが、先輩に助けてもらいながら原因を探ったところ、Arduinoのツールのボードとプロセッサが間違っていた。前日に違うArduinoを使っていて設定を変えていたことをすっかり忘れていた。ボードによって対応速度が違う。

*2017年 [#xa6643d6]
**11/6(月)EAGLE[#qcb4bc29]
ピンヘッダコネクタなどは2.54mm(0.1inch)だから、その1/4の0.635mm(0.025inch)をグリッドとして部品を配置する~
マイコンなどの部品は裏面にやったほうが効率が良い~
送受信は4方向別々にTx/Rx作らなければならない。そうでないと一つ一つを制御できない~
配線はまず電源とGNDを繋いでいき(0.6096くらい)、そのあとに他の線を繋ぐ(0.254くらい)~
線は水平垂直の他は45度になるように~
線を繋ぐときに尖らせない~
無駄に線が遠回りしないように表と裏をうまく使ったり、空いたスペースに線を持っていってみたりする~
ショートカットキーはOption/Assignから変更・追加できる~
Cmd+D Ripup, Cmd+E Move, Cmd+W Route(Cmd+1 表, Cmd+2 裏)はよく使う~
部品の名前(R1とか)は部品を選択してSmashしてからMoveすると動かせる~
表と裏をごちゃごちゃさせずにまとめられるところはまとめておいたほうが他の複雑な線を繋ぐときに楽~
頻繁にDRC(Design Rule Check)を行うと良い~

**11/1(水)基盤設計の前に [#qcb4bc29]
Arduino-PCの接続はUSBシリアルを使う。どうやってリセットしているかというと、リセットボタンもあるが実際はそのボタンはあまり使われずにCOMを開くとDTRをLに、COMを閉じるとDTRをHにすることでリセットをかけている。~
ATmega-DTR間に1μのコンデンサと10kの抵抗を挟む。~

**7/6(木)マイコンぺ3 [#qcb4bc29]
トランジスタ使い方(STA472A)~
1 or 10はVCCにつなぐ~
2,4,6,8はArduino側、3,5,7,9はLED側につなぐが、このトランジスタにはベース抵抗が入っていないのでArduino側に1kΩの抵抗を挟む~

半田付けについて~
まず半田付けをする前に回路図を紙に書くなり、ブレッドボードの写真を撮っておくなりすること~


**6/28(水)マイコンぺ2 [#qcb4bc29]
マトリクスLEDを使うにあたって、libraryを作成した~
まず、マトリクスLEDのpin番号とArduinoの番号を対応させる(なるべくわかりやすく)~
pixelは配列で考えた方がわかりやすいのでpixcel[8][8]というのを作って、pixelの色は0-7で表す~
RGBを二進数で表現することで考えやすくなる~
  color 0 1 2 3 4 5 6 7
     R    0 1 0 1 0 1 0 1
     G    0 0 1 1 0 0 1 1
     B    0 0 0 0 1 1 1 1

マトリクスLEDを制御するのにDisplayMatorixという関数を定義する~
0(LOW)のとき光って、1(HIGH)のとき消える~
例えばpixel[0][0]が光っていたとする。~
pixel[1][1]を光らせたいとなった時に、まず2行目を全て1にする(PinRow[1]をHIGH)~
次に1列目から8列目まで順番に見ていく。~
pixel[1][1]と001の論理積が1ならPinColR[1]をLOW、0ならPinColR[1]をHIGH~
pixel[1][1]と010の論理積が1ならPinColG[1]をLOW、0ならPinColG[1]をHIGH~
pixel[1][1]と100の論理積が1ならPinColB[1]をLOW、0ならPinColB[1]をHIGH~
そしてPinRow[1]をLOWにする~
最後にrowに1足して同じことを繰り返す。~
このDisplayMatorix関数はMsTimer2を使って5msごとに呼び出す~


 #include "MsTimer2.h"
 ArduinoMega Pin Assignments
         1  2  3  4  5  6  7  8
 Row     20 21 22 23 24 25 26 27
 Col(R)  28 29 30 31 32 33 34 35
 Col(G)  36 37 38 39 40 41 42 43
 Col(B)  44 45 46 47 48 49 50 51
 int PinRow[] = {20, 21, 22, 23, 24, 25, 26, 27};
 int PinColR[] = {28, 29, 30, 31, 32, 33, 34, 35};
 int PinColG[] = {36, 37, 38, 39, 40, 41, 42, 43};
 int PinColB[] = {44, 45, 46, 47, 48, 49, 50, 51};
 char pixel[8][8]; // each pixel's color (0-7)
 color 0 1 2 3 4 5 6 7
   R   0 1 0 1 0 1 0 1
   G   0 0 1 1 0 0 1 1
   B   0 0 0 0 1 1 1 1
 int row;
 void setup() {                
  int i;
  for (i = 20; i <= 51; i++) pinMode(i, OUTPUT); 
  row = 0;
  pixel[0][0] = 7;
  pixel[3][3] = 4;
  MsTimer2::set(5, DisplayMatrix);
  MsTimer2::start();
 }
 void loop()
 {
 //  DisplayMatrix();
 //  delay(5);
 }
 // function for controling matrix LED, called every 5ms
 void DisplayMatrix()
 {
   int x, y;
   for (y = 0; y < 8; y++) digitalWrite(PinRow[y], HIGH);
   // digitalWrite(PinRow[row], LOW); // will make illusion
  for (x = 0; x < 8; x++){
    if (pixel[x][row] & 0x01) digitalWrite(PinColR[x], LOW); else digitalWrite(PinColR[x], HIGH);
    if (pixel[x][row] & 0x02) digitalWrite(PinColG[x], LOW); else digitalWrite(PinColG[x], HIGH);
    if (pixel[x][row] & 0x04) digitalWrite(PinColB[x], LOW); else digitalWrite(PinColB[x], HIGH);
  }
  digitalWrite(PinRow[row], LOW);
  //  row = row + 1; if (row == 8) row = 0;
  row = (row + 1) % 8;
 }



-

**6/27(火) マイコンぺ [#qcb4bc29]
フルカラーマトリクスLEDを使用~
(COL)1-8R,9-16G,21-28B (ROW)17-20,29-32~
ROW側はたくさん電流(1列にRGB 8×3 )を流さなければいけないのでトランジスタアレイ(ダーリントン)を入れる。~
入れないと壊れる可能性あり。~
COL側は24個の抵抗を入れる。~
ピン番号は左下から反時計回りに数える~
トランジスタアレイは内部抵抗をもつので、トランジスタアレイを入れたところすなわちROW側には抵抗を入れなくて良い~

-

**4/12(水)研究室顔合わせ [#qcb4bc29]
研究室初めての顔合わせでした~
研究室内の配線をごちゃごちゃ動かしました~
まさか床下があんなことになっているとは~
先輩方も先生もとてもいい人たちなので、これからの研究室生活楽しみです~

-