2019年1月24日木曜日

Set up CAN device and software on Raspberry Pi 3B+

自分なりの忘備録です。

まずは、こんな感じ

とっても参考になったのは、こちらで、ありがとうございました。

OBD2(CAN)で自動車と通信(ソフト編)
Raspberry Pi で CAN通信(準備)

でも結局、大本のこちらで確認した。
上記のURLもここを見ている。
[quick-guide] CAN bus on raspberry pi with MCP2515



こんな感じで、CAN コントローラMCP2515との通信もOK




まず、ネットで購入したRaspberry Piを対象のCANシステムに接続するためのモジュールは、写真上のモジュール
USB接続の数万円のモノから、このモジュールのように$2のモノまでいろいろ、、、
中国製だから、本当にMCP2515は怪しいけど、、、
もう、昔のような状態ではないと思うので、、、

このモジュールは、Amazonでもいろいろあり、、、どれが本物?
そもそも、本物があるのか?
そんな感じで、同じようなものがたくさんある。

ただ、いずれにせよ、このモジュールのややっこしいのは、

[quick-guide] CAN bus on raspberry pi with MCP2515

に書いてあるように、回路を切らないとならないこと
あと、V5の電源を基盤に接続する事



ただ、切らなくても、CANのソフトは動いたのだぁ、、、
テストは、これでする。

手間取ったのは、5Vの電源を基板上にはんだ付けする事
直径の小さな穴をあけてRaspberry Piの5V GPIOをつなげる加工をする。



この加工は、穴あけ、半田の乗りが悪いなど、意外と大変で手間取った。

これができれば、GPIO 25番を INTとした下の配線をすればよい。
INT の番号は、config.txtに設定する時に必要なので決めてする。
まぁ、いろいろな例もGPIO25だから25で良いとおもう。


配線は、以下の様に接続

Module    Pin No

INT              22
SCK            23
SI                19
SO               21
CS               24
GND            25
VCC(3.3)     17

VCC(5V)        2

CAN GND      6

ソフトは、いろいろな所に書いてあるように

sudo vi /boot/config.txt

dtparm=spi=on

dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25
dtoverlay=spi-bcm2835

この25番が、moduleのINT

CANのソフトをインストール

git clone https://github.com/linux-can/can-utils.git
cd can-utils
./autogen.sh
./configure
make
sudo make install
reboot

立ち上がってcan0があればOK

 /sys/class/net/can0

こんな感じでも確認できる
dmesg
[    4.160946] CAN device driver interface

[    4.201788] mcp251x spi0.0 can0: MCP2515 successfully initialized.


で、CANのおまじない

sudo ip link set can0 type can bitrate 500000 loopback on
sudo ifconfig can0 can0: flags=128<NOARP> mtu 16 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

candump can0 read: Network is down


もういっちょおまじない,,,というか最初にこうすればよい(笑)

sudo ifconfig can0 up

つまり、下記ような簡単なシェル。ネットの起動は最終的にはserviceにする
loopback on は自己チェックの時だけなのでCANに接続する場合

#!/bin/bash
sudo ip link set can0 type can bitrate 500000
sudo ifconfig can0 up

Raspberry PiとMCP2515との間での通信テスト

candump can0

さらにもう一つターミナルを開いて入力する

cansend can0 00001234#FFAA00CC22DD33FF

と、入力すると、candumpを入力したターミナルに2枚目の写真のように現れる。

Peace!

2019年1月20日日曜日

An Installation of OpenCV4 on Raspberry Pi 3B+

OpenCV4に本格的に移行する為に、Buldする

真っ新のRaspiにインストールする。
これは僕のやり方なのでディレクトリーは読み替えて下さい。

cd
time sudo apt install -y \
    build-essential cmake pkg-config \
    libjpeg-dev libtiff5-dev libpng-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev \
    libgtk2.0-dev libgtk-3-dev \
    libcanberra-gtk* \
    gfortran \
    python2.7-dev python3-dev \
    libavresample-dev libtesseract-dev libleptonica-dev \
    libgstreamer1.0-dev  libgstreamer-plugins-base1.0-dev libhdf5-dev \
    libatlas-base-dev liblapacke-dev \
    python3-numpy python-numpy libjasper-dev

大体、7~8分。3B+は早い (^^)

mkdir prj
cd prj

wget https://github.com/opencv/opencv/archive/4.0.1.zip -O opencv-4.0.1.zip
wget https://github.com/opencv/opencv_contrib/archive/4.0.1.zip -O opencv_contrib-4.0.1.zip
unzip opencv-4.0.1.zip
unzip opencv_contrib-4.0.1.zip

cd opencv-4.0.1
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.0.1/modules \
    -D ENABLE_VFPV3=ON \
    -D ENABLE_NEON=ON \
    -D BUILD_TESTS=OFF \
    -D WITH_TBB=OFF \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_SKIP_PYTHON_LOADER=ON \
    -D OPENCV_PYTHON2_INSTALL_PATH=/usr/local/lib/python2.7/dist-packages \
    -D OPENCV_PYTHON3_INSTALL_PATH=/usr/local/lib/python3.5/dist-packages \
    -D OPENCV_GENERATE_PKGCONFIG=ON \

    -D BUILD_EXAMPLES=OFF ..
make -j4
sudo make install
sudo ldconfig

cd ../samples/cpp
g++ `pkg-config opencv4 --cflags --libs` facedetect.cpp -o facedetect -std=c++11

./facedetect  --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 ../data/lena.jp

お久しぶりです Lenaさん

Peace!!



2019年1月14日月曜日

これからの生産の自動化

生産の自動化は、どの業種でも、これから大事な事であり、僕もその分野にだんだん足を突っ込んでいる。

まだ、いろいろ自分の考えをまとめている途中だけど、こんな感じで考えている。

・機械が定められた動作を繰り返す

・機械が能力範囲の仕事を自律制御する。つまり、人が制御プログラムを書き換える事がない。かつ、最適解を求めて学習する。

・生産プロセスにおけるバッファ―を人が制御する。

・生産プロセスにおける工程管理を自律的に制御する。

つまり、個の機能とプロセスの機能だけど、この協調が最も必要なのだろうと、、、

これって、実は人の組織と同じで、人が自律的に動き、そして彼らが協調する組織ってやはり、パフォーマンスが高いわけで、、、

このように考えた時、必要になる事がいろいろ見えてくる。

それを、一つ一つ作って、実現するのが今の仕事、、、

世界中に工場を持つグローバル企業と共同研究をする事になった。

また未踏の世界に、足を突っ込んでしまった。

その時のデータ集めに、このロボットが役立つとは、考えてもみなかった。


Peace!!

2019年1月7日月曜日

Memo: /var のram化

lighttpdが立ち上がらなくなり、、、

原因を調べると

立ち上がり時に、/var/log/lighttpd    が無い

ムムム、、、

$ cat /etc/rc.local
............
............
#
# create folder on ram disk
#
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
mkdir -p /tmp/motion
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

setterm -blank 0
exit 0

あれ?
こんな事、誰がしたのかしら、、、???
忘れている

$ cat /etc/fstab
proc            /proc           proc    defaults          0       0
PARTUUID=ec1fea93-01  /boot           vfat    defaults          0       2
PARTUUID=ec1fea93-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
tmpfs     /tmp            tmpfs    defaults,size=84m,noatime,mode=1777      0       0
tmpfs     /var/tmp        tmpfs    defaults,size=16m,noatime,mode=1777      0       0
tmpfs     /var/log        tmpfs    defaults,size=32m,noatime,mode=0755      0       0

で、、、/etc/rc.local に2行を付け加えて一件落着

mkdir -p /var/log/lighttpd
chown www-data:www-data /var/log/lighttpd

しかし、自分でいつしたのかしら、、、思い出せない(泣)

Peace!!

2019年1月6日日曜日

Memo: `PNG12_0' not found

何故か、突然、、、

動いてソフトが、簡単に

[1]+  Segmentation fault

詳細確認すると、、、

$ js_main: /usr/lib/arm-linux-gnueabihf/libpng12.so.0: version `PNG12_0' not found (required by /usr/local/lib/libopencv_imgcodecs.so.3.4)

に対して、、、

sudo apt install libpng12-0

一件落着

Peace!!

脱サラして10年目、2019年初頭に、、、

このブログは、2012年7月から始めたけど、ちょうど農業初めて丸々2年。

脱サラして、農業初めて、事業的にもそれなりに、、、

で、ひょんな事で、ロボットの世界に入り、そして製造業サービス、AIと

結局、元の製造業に戻ったわけで、、、

人生って解りません。

ただ、農業には未練もないし、やはり「文化」が違う世界は

しんどいなぁ~と、、、ただ、経験できた事はとっても良かった。

2009年に脱サラしたわけだけど、

で、この10年どうだったのだろうかと振り返ると

・「気張らなくても、自由に、それなりに生きていけるんだぁ」という実感

・「誰もやっていない領域の匂いを嗅ぐ力」これは、本当に大事だと再認識

・対象を分析・構造化し、それをシステムに置き換える力こそ、大事

・大手企業を辞めて .....     やめて自由に生きれた10年最高!!!

でも、誰にも勧められる事はでないなぁとも、、、

まず、会社や、農業もそうだけど、毎日同じ事をする事に、満足している人

ダメですね。

そもそも、会社やルーチンをやめる事は、他に自立できる能力が無いと難しい。

例えば、会社で成功していても、自立したらどうなるというと、、、

日本という社会では難しい

自立できる能力とは、実は答えは上段に書いたのだけど、、、

社会で、0から自立するって、かなり難しい。

これからは、より難しくなると思う。

今年、最初の投稿で、なんか中途半端だけど、、、

自分の思うままに、健康に自由に生きてこれた、この10年本当に幸せだったと思う。

また、続きは改めて、、、

全ては、Raspberry Piからはじまった


現在位置、これから進化・真価へ 

Peace!!