可変ブログ

色々メモとか。とりあえず自分が分かるように。その後、なるべく人が見て分かるように。可変。

git 全体構造と使い方とコマンドの図解。

※2019.08.02追記
独習Git読みました。下記の記事には正しくない内容が多分に含まれていますので気をつけてください。




全然まとまってないけど。

f:id:shibafu3:20181010163606j:plain



全体的な使い方

リポジトリ等の関係の図解




・コマンドの説明とか。順番適当。

git初期化

git init

remoteのURLをoriginという名前で設定

git remote add origin hogehogeURL


remoteのoriginのURLを変更

git remote set-url origin hogehogeURL


hogeファイルを「コミットするリスト」に追加する。git add -i で対話で「コミットするリスト」を編集できる。
hogeを「.」にすればカレントディレクトリの中身すべて追加できる。

git add hoge


「コミットするリスト」の内容をhogehogeというコメントを付けてローカルの今いるブランチにコミットする。

git commit -m "hogehoge"


ローカルのmasterブランチをリモートリポジトリにマージする。

git push origin master

ここでの「origin master」は「origin/master」とは別物。origin/masterはローカルにあるリモート追跡用リポジトリのこと。
「git push origin master」はどういうことをしているかというと、origin(=リモートリポジトリ)に「ローカルのmasterブランチ」をpushするということ。
ここで大事なのはこの「git push origin master」のmasterはソース元(この場合はローカルのmasterブランチ)を指していること。
つまり、「git push origin hoge」としたときにリモートリポジトリにhogeブランチが存在しない場合、リモートリポジトリに新しくhogeブランチが作られる。
ほんとにぃ?じゃあ現在のブランチがmasterブランチの時に、「git push origin hoge」したらリモートにはローカルのhogeブランチがmergeされるの?⇒されたわ。


ブランチの一覧を表示して今どのブランチなのかを確認する。

git branch


現在のブランチからhogeという名前でブランチを切る(ブランチの切り替えはされない。)

git branch hoge


hogeブランチに切り換える。ワーキングディレクトリの内容がhogeブランチの内容に更新されます。

git checkout hoge


現在のブランチにhogeのブランチを取り込みます。

git merge hoge


hogeブランチを削除する。mergeした後に必要なくなったブランチを削除するなどに。

git branch -d hoge



あるコミットまで状態を戻す。あるコミット以降のコミットはなかったことになる。(コミットが削除される)




gitでは空のディレクトリは無視されてしまう。.gitignoreか.gitkeepを使おう。




pull = fech + merge ?





エラー




以前のコミットに戻したい時






gitの設定色々




submoduleとsubtree




適切なコミットの粒度




コミットメッセージ



Arduinoで赤外線通信

使ったもの
・受信モジュールは Pl-IRM0101-3


・送信用の赤外線LEDはこれ OSI5LA5113A


・バイポーラトランジスタ 2SC1815L-GR




参考

赤外線使ってシリアル通信


Arduino-IRremoteのライブラリを使いました。




・はまったところ
Arduino-IRremoteの送信サンプルには送信用のピンを指定するところがありません。
デフォルトで3番ピンが出力に設定されるようです。

RaspberryPiでサーボモーターをPWM制御する。

RaspberryPi3 でハードウェアPWM出力できるピンは12, 13, 18,19の4つ
そのうち、独立して制御できるのは「12と13」か「18と19」。「12と18」、「13と19」は同じ制御しかできない。




あらかじめこんな感じでピンをセットアップしておく

wiringPiSetupGpio();
pinMode(18, PWM_OUTPU);
pwmSetMode(PWM_MODE_MS);

主に使う関数はこの三つ

pwmSetMode(int mode);
pwmSetRange(unsigned int range);
pwmSetClock(int divisor);

pwmSetMode(int mode)でPWMをバランスモードかマークスペースモードか選択する。
デフォルトはバランスモードになっているらしい。
PWMの周波数はpwmSetRange(unsigned int range)とpwmSetClock(int divisor)で決める。
最後にpwmWrite(18, num)で出力。
計算方法はここを参照しました。


ちなみに、pwmSetClock()は(pwmSetRange()も?)は2つの出力ピンで共通なため注意。
たとえば、2つのプログラムを同時に動かしてPWMを同時に制御しようとして、
それぞれのプログラムでpwmSetClock()を呼ぶと、後から実行された方で上書きされてしまう。



pythonで書く場合




他参考

端末エミュレータ比較

teraterm putty Poderosa RLoginとかとか。
RLoginがよさそう。次点でteraterm




Raspberry Piのセットアップ

ここら辺を参考に




・DDwinをダウンロード


・OSイメージをダウンロード。
デスクトップとLITEの違いはデスクトップ環境が込みでインストールするかどうか。
コンソール操作だけでいい人はLITEでOK。


・DDwinでSDカードにイメージを書き込み。
管理者権限で実行すること。書き込み先を間違えないように超要注意。

・いきなりWi-Fi経由でSSH接続したい場合はSDカードのルートにsshという名前の空ファイルとwpa_supplicant.confというファイルを置いておく。
dhcpcd.confも同じようにファイルを置いて設定できた気がする。




ちなみにNOOBSを使ったインストール方法はここを参照


NOOBS無印とNOOBSLITEの違いはOSをダウンロードするタイミング
デスクトップ環境を最初からダウンロードするか、インストール時にダウンロードするか。
NOOBSはOSではなくOSのインストーラ

RaspberryPiをWi-fiのアクセスポイントにする。

RaspberryPiにルーターの機能を付ける場合はここら辺


RaspberryPiに中継(ブリッジ)機能を付ける場合はここら辺



今回は単純なアクセスポイント化(インターネット接続なし、DHCP機能なし)をやりたかったので、hostapd周辺だけの設定だったので簡単でした。
ざっくりやったこと。
・wlan0のIPを固定
・hostapdをインストール
・hostapd.confを編集
・wlan0をUP
・hostapd実行



ちなみに今回と逆のパターンで
RaspberryPiで無線を受けて、それを有線にながすのはイーサネットコンバータというらしい。

Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-



マウスキーボード共有ソフトSynergyのインストール

一つのマウスキーボードをネットワーク越しに複数PCで使いまわすソフトSynergyのインストール方法



ビルド済みのものはここらへんから




ソースはここらへんから

githubwikiコンパイル方法が書いてあります。



古いソースのビルド方法はもうgithubに載っていないのでここを参照




※2019/01/08追記
いつの間にかリポジトリのあった

sudo apt install synergy quicksynergy