可変ブログ

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

記事一覧

Ubuntu設定超個人用メモ。

# setting
LanguageSupport
install
Text Entry
switci to next source using
Anty
hankaku
zenkaku hankaku
Power
KeyBoard
Appearance
Time & Data
Unlock from Launcher
cd->ls

# Terminal transparent

# Brightness and Wifi enable

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

# Change CapsLock Key to Ctrl

sudo gedit /etc/default/keyboard
XKBOPTIONS="ctrl:nocaps"

sudo apt-get update
sudo apt-get upgrade

#timeshift
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift

#gparted
sudo apt-get install gparted

#git
sudo apt-get install git

# Firefox add-on
Tree Tabs
Sinple Translate
S3.Translator

# gedit setting
Display line numbers
Enable text wrapping
Do not split words over two lines
Highlight current line
Highlight matching brackets
Tab width : 4
Insert space instead of tabs
Enable automatic indentation
Color Scheme : Oblivion
Plugins : snippets

# Vim
sudo apt-get install vim

# Atom
sudo add-apt-repository ppa:webupd8team/atom
sudo apt-get update
sudo apt-get install atom


# ROS indigo

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ros-indigo-desktop-full
sudo apt-get install ros-indigo-rqt*
sudo rosdep init
rosdep update
sudo apt-get install python-rosinstall
gedit ~/.bashrc
source /opt/ros/indigo/setup.bash
source ~/.bashrc
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
gedit ~/.bashrc
source ~/catkin_ws/devel/setup.bash
export ROS_HOSTNAME=127.0.0.1
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
source ~/.bashrc
roscore

# minicom
sudo apt-get install minicom


# g++5

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5
# to set first priority to gcc-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 1






#setting
Power
Display
Time&Date
Keboard
Appearance
TextEntry
Terminal transparent
StartUp
UnlockFromLauncher
cd->ls

# change capslock to ctrl

sudo gedit /etc/default/keyboard
XKBOPTIONS="ctrl:nocaps"

# gedit setting
Display line number
Display overview map
Display gird pattern
Highlight currentline
highlight matching brackets
Tab width: 4
Insert spaces instead of tabs
Enable automatic indentation
Color Scheme : Oblivion
Plugins : Snippets

sudo apt-get update
sudo apt-get upgrade


#timeshift install built

sudo apt-get install libgtk-3-dev valac libgee-0.8-dev libvte-2.91-dev libjson-glib-dev
make
sudo make install

# synergy 1.7.6

sudo apt-get update
sudo apt-get upgrade
sudo dpkg -i libssl1.0.0_1.0.2g-1ubuntu4.2_arm64.deb
sudo apt-get install git cmake make g++ xorg-dev libqt4-dev libcurl4-openssl-dev libavahi-compat-libdnssd-dev libssl-dev libx11-dev
./hm.sh conf -g1
./hm.sh build
startup
screen name
hide on startup


# Anthy
sudo apt-get install fcitx-anthy
Language Support
Keybord input method system :fcitx
Install Language :Japanese
Primary 1 :Japanese
reboot
Text Entry
Anthy
Language Support
Primary 1 :English
reboot

# XRDP

sudo apt-get install xrdp
sudo apt-get install lxde
sudo apt-get install lxde-common
sudo apt-get install lxsession-logout
echo "lxsession -s LXDE -e LXDE" > ~/.xsession
cd /etc/xrdp
sudo wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini
sudo mv km-e0010411.ini km-0411.ini
sudo chmod 644 km-0411.ini
sudo ln -s km-0411.ini km-e0010411.ini
sudo ln -s km-0411.ini km-e0200411.ini
sudo ln -s km-0411.ini km-e0210411.ini
sudo service xrdp restart

# IP setting
sudo gedit /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth0:0
iface eth0:0 inet static
address 192.168.0.111
netmask 255.255.255.0

/etc/init.d/networking restart

# Terminator

sudo apt-get install terminator
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/bin/terminator 30
# sudo update-alternatives --auto x-terminal-emulator
# sudo update-alternatives --config x-terminal-emulator
transparent background

# Geany
sudo apt-get install geany
sudo apt-get install geany-plugins
git clone https://github.com/codebrainz/geany-themes
mv ./geany-themes/colorschemes ~/.config/geany/
rm -r ./geany-themes

# video
sudo apt-get install kazam
sudo apt-get install vlc

# alias can command
gedit ~/.bashrc
alias canup="sudo ip link set can0 type can bitrate 500000 && sudo ip link set can0 up"

###############################################################

# autoware

export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/
sudo gedit /usr/local/cuda/include/crt/common_functions.h
comment out follow line
// #define __CUDACC_VER__ "__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."
source /opt/ros/kinetic/setup.bash
sudo apt-get install -y openssh-server libnlopt-dev freeglut3-dev qtbase5-dev libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev git
sudo apt-get install -y libnlopt-dev freeglut3-dev qt5-default libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev libglew-dev gksu
sudo apt-get install -y libxmu-dev python-wxgtk3.0 python-wxgtk3.0-dev
sudo ln -s /usr/include/aarch64-linux-gnu/qt5 /usr/include/qt5
cd ~/
git clone https://github.com/CPFL/Autoware.git
cd Autoware
cd ros
./catkin_make_release -j1

# Editor
atom
VS code

# NFS


# g++ down grade
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.9

Dockerメモ。

使い方



インストール



WSL上でのdocker



image作成



コマンド概念図



公式ドキュメント

GUIアプリ表示


GUI

GPU


WSL


cmakeとかg++とか

g++で外部のライブラリを使うときとかに指定しなきゃいけないもの。
・ソース(.c .cpp)
・ヘッダ(.h .hpp)の入っているディレクトリ(-Iで指定)
・ライブラリの入っているディレクトリ(-Lで指定)
・ライブラリ(.a .o等)(-lで指定)


・ヘッダファイル自体はソースコードの中で指定するものだからコンパイラオプションでは指定しない。
・また、#include "hoge.h" のように""で囲まれている場合は、最初にカレントディレクトリを探してくれるので、
この時対象のヘッダがカレントディレクトリある場合は「-I」指定はいらない。
・LD_LIBRARY_PATHにパスが通っているライブラリなら「-L」の指定はいらない。
・ちなみに実行時には.so等のダイナミックリンクライブラリがPATHに追加されている必要がある場合がある。
・pkg-configは、登録されているライブラリなら自動でこの「-I」「-L」「-l」指定をやってくれる。
`pkg-config --cflags hoge` `pkg-config --libs hoge`




cmakeのバージョン指定。

cmake_minimumrequired(VERSION 2.8.3)


add_definitionsでg++のオプションを追加できる。

add_definitions("-std=c++11")


CMAKE_BUILD_TYPEにsetでビルドタイプを指定できる。

set(CMAKE_BUILD_TYPE Release)


cmakeでpkg-configを使いたい時はfind_pkgで。

find_pkg(PkgConfig)
pkg_config_modules(OPENCV REQUIRED opencv)

これで、ヘッダディレクトリはOPENCV_INCLUDE_DIRSの変数に、
ライブラリディレクトリはOPENCV_LIBRARY_DIRSの変数に、
ライブラリはOPENCV_LIBRARIESの変数に入る。

インクルードディレクトリの指定。

include_directories(/hoge/fuga)


ライブラリのディレクトリの指定。

link_directories(/hoge/piyo)


コンパイルするソースの指定。

add_executable(hoge hoge.cpp)


リンクするライブラリの指定。

target_link_libraries(hoge fugelib)



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というコメントを付けてoriginの該当するブランチにコミットする。

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 ?





エラー




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



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で書く場合




他参考