FrontPage

2019年

5/17(金)ifdlkpのユーザー追加

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

4/2(火)cuda周りのエラー

久々に使おうとしたら何故か使えなくなっていた
ドライバの更新により解決と書かれていたがかなり苦戦してしまった
以下のURLを参考に解決
定期的に更新しないとまずい

1/9(水)検索

grep:ターミナルでプログラム内の文字列を検索したいとき
less:ターミナル上でプログラムを表示

2018年

6/13(水)画像ビューア

xvをインストールしようとするも一筋縄ではいかない模様
代わりにviewniorを入れた(↓参考)

6/5(火)研究いろいろ

グラボのドライバインストール

sshの設定

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

5/30(水)git cloneできない

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インストール

usbからインストールする方法
http://yohaku6066.blog.fc2.com/blog-entry-44.html
https://qiita.com/joe_banana/items/fa5465a0e7516c935b4c

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

4/23(月)Torchのインストール

公式ページ通りに行けば途中までうまくいくがluarocks install imageでつまずく
解決方法:以下の文を追加で記入
export PATH=~/torch/bin:$PATH; export LD_LIBRARY_PATH=~/torch/lib:$LD_LIBRARY_PATH;
参照

ついでに現在使用しているシェルが知りたい時は$ echo $SHELLでわかる

1/22(月)シリアルポートの文字化け

検索して調べたら大体どのページも速度が合ってないと書かれている。
つい前日までは普通に文字が現れていたので速度なんか変えた覚えなかったが、先輩に助けてもらいながら原因を探ったところ、Arduinoのツールのボードとプロセッサが間違っていた。前日に違うArduinoを使っていて設定を変えていたことをすっかり忘れていた。ボードによって対応速度が違う。

2017年

11/6(月)EAGLE

ピンヘッダコネクタなどは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(水)基盤設計の前に

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

7/6(木)マイコンぺ3

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

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

6/28(水)マイコンぺ2

マトリクス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(火) マイコンぺ

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

4/12(水)研究室顔合わせ

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