2017年12月6日水曜日

An installation bcm2835 library in Raspberry Pi and testing spi program

Adafruit PiTFT3.5を間違えて購入してしまった。



もったいないので、ロボットの簡易的なディスプレーにしようと思い、サイトに書いてあるGPIOをつないだけど動かない。もちろん直付けすると動くけど、他のGPIOが使えなので、、、

<追記>
初稿を書いた後に、Pin1の3.3Vを接続したら、ディスプレーとして動きました。SPIの件は、変わらずですが、、、
ディスプレーとして動いたので良しとします。
デバイスファイルは、/dev/input/touchscreen以外にもあると思うけど、、、
いつかちゃんと確認するという事で、、、
</追記>

ということで、写真のように接続した時に、SPIちゃんと動いているのかしら
その為にSPIのテスト

(2) bcm2835 libraryのインストール(最新バージョンは都度確認)

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz
./configure
make
sudo make install

(2) SPIのテスト

ls /dev/spi*
ls: cannot access /dev/spi*: No such file or directory

なぬ?

lsmod
.
.
snd                    68784  5 snd_timer,snd_bcm2835,snd_pcm
i2c_bcm2835             6433  0
spi_bcm2835             7424  0
bcm2835_gpiomem         3791  0
uio_pdrv_genirq         3718  0
.
.

cat t1.c

#include <bcm2835.h>
#include <stdio.h>
int main(int argc, char **argv)
{
    if (!bcm2835_init())
        return 1;
    bcm2835_spi_begin();
    bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST);      // The default
    bcm2835_spi_setDataMode(BCM2835_SPI_MODE0);                   // The default
    bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_65536); // The default
    bcm2835_spi_chipSelect(BCM2835_SPI_CS0);                      // The default
    bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW);      // the default
    uint8_t send_data = 0x23;
    uint8_t read_data = bcm2835_spi_transfer(send_data);
    printf("Sent to SPI: 0x%02X. Read back from SPI: 0x%02X.\n", send_data, read_data);
    if (send_data != read_data)
      printf("Do you have the loopback from MOSI to MISO connected?\n");
    bcm2835_spi_end();
    bcm2835_close();
    return 0;
}

gcc -o t1 t1i.c -l bcm2835

./t1
Segmentation fault

だめだぁ、、、

(3) 直付け


ls /dev/spi*
ls: cannot access /dev/spi*: No such file or directory

あれ?
でも、PiTFT動いているし、、、???

./t1
Segmentation fault

ダメだぁ、、、

(4) SPI Off


sudo reboot

ハングアップしするので、電源Off-Onで再起動、、、

ところが、UIでるんだなぁ、、、(笑)

どうなっているのでしょうか?
何で、接続されているのかしら、、、
SPIではないのかしら、、、、

とっても、Peaceではない。

2017年12月4日月曜日

lighttpd 1.4.48 インストール

ロボットコントローラーには、lighttpdを使って

RDCSのRESTモドキや、ロボットのコントロールに活用している。

最新が、1.4.48 になっていたのでインストール

./configure
make
sudo make install

確認すると、

$ lighttpd -v
lighttpd/1.4.48 - a light and fast webserver

めでたし、めでたし、

Peace!!

2017年11月30日木曜日

OpenCV3.3.0 installation script

Movidius のインストールスクリプトの中にある
OpenCV3.3.0のスクリプト

このスクリプトは、便利なので自己メモとして、記録

Peace!!


#! /bin/bash

#test for python already installed for opencv
python3 -c "import cv2" > /dev/null 2>&1
if [ $? -eq 0 ] ;
then
        echo "";
        echo "OpenCV already setup for python";
        echo "";
        exit 0
fi;

## Install OpenCV
if [[ `lsb_release -d` =~ .*Raspbian.* ]]
then
        echo ""
        echo "************************ Please confirm *******************************"
        echo " Installing OpenCV on Raspberry Pi may take a long time. "
        echo " You may skip this part of the installation in which case some examples "
        echo " may not work without modifications but the rest of the SDK will still "
        echo " be functional. Select n to skip OpenCV installation or y to install it."
        read -p " Continue installing OpenCV (y/n) ? " CONTINUE
        if [[ "$CONTINUE" == "y" || "$CONTINUE" == "Y" ]]; then
                echo "";
                echo "Installing OpenCV";
                echo "";
                sudo apt-get update -y && sudo apt-get upgrade -y
                sudo apt-get install -y build-essential cmake pkg-config
                sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
                sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
                sudo apt-get install -y libxvidcore-dev libx264-dev
                sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
                sudo apt-get install -y libatlas-base-dev gfortran
                sudo apt-get install -y python2.7-dev python3-dev

                cd ~
                wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
                unzip opencv.zip
                wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
                unzip opencv_contrib.zip
                cd ~/opencv-3.3.0/
                mkdir build
                cd build
                cmake -D CMAKE_BUILD_TYPE=RELEASE \
                      -D CMAKE_INSTALL_PREFIX=/usr/local \
                      -D INSTALL_PYTHON_EXAMPLES=OFF \
                      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
                      -D BUILD_EXAMPLES=OFF ..
                make
                sudo make install
                sudo ldconfig
        else
                echo "";
                echo "Skipping OpenCV installation";
                echo "";
        fi
else
        echo "Installing opencv python for non-Raspbian";
        sudo -H pip3 install opencv-python
        sudo -H pip3 install opencv-contrib-python
fi

Nara

ちょっと、接待で、、、

いにしえの奈良

大神神社、長谷寺

疲れた。。。でも綺麗。

最後の写真が、日本らしいかも、、、(^^)/

Peace!








Upgrade Jessie to Stretch

今更感、満載だけど、、、

ロボットのOSを、アップグレードするメモ

apt-get でアップグレードするので、apt関連のファイル設定を変更して実行

(1) バックアップ
僕の場合は、~/prj 以下に全部あるので、、、

tar cvf 171129_prj.tar

history > 171129_history.txt


(2) Jessieを最新版にする

sudo apt-get update && sudo apt-get upgrade -y

(3) 設定ファイルの変更部分を探す

grep jessie /etc/apt/ -R

/etc/apt/sources.list:deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
/etc/apt/sources.list:#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
/etc/apt/sources.list.d/raspi.list:deb http://archive.raspberrypi.org/debian/ jessie main ui
/etc/apt/sources.list.d/raspi.list:#deb-src http://archive.raspberrypi.org/debian/ jessie main ui

sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/raspi.list

変更の確認
sudo grep stretch /etc/apt/  -R

/etc/apt/sources.list:deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
/etc/apt/sources.list:#deb-src http://archive.raspbian.org/raspbian/ stretch main contrib non-free rpi
/etc/apt/sources.list.d/raspi.list:deb http://archive.raspberrypi.org/debian/ stretch main ui
/etc/apt/sources.list.d/raspi.list:#deb-src http://archive.raspberrypi.org/debian/ stretch main ui

(4) 更新
sudo apt update

sudo apt dist-upgrade

途中で、2回、聞いてくるので、y
で、、、小一時間

確認

cat /etc/debian_version
9.1

sudo reboot


最後に、
sudo apt-get -y autoremove


Peace!!

2017年11月25日土曜日

Movidius and PiTF3.5 on Raspberry Pi

MovidiusとAdafruitのPiTFT3.5 をセットアップ

しかし、問題がある。

Movidiusは、Stretchが推奨
PiTFT3.5は、Jessieがサポート対象

という事で、
PiTFT3.5 は、AdafruitのこのURLのEasy Installでインストール
このパッケージは、Jessie

https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/easy-install

実は、Stretchで、下のURLの通りに処理したら、逝ってしまった。

https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/detailed-install

kernelをdownloadして、そのページある設定をする。

最後に、rpi-upgradeしちゃだめって、出たけどやっちゃた。

で、こんな感じ


まずは、問題なくPiTFT3.5 の設定完了


Movidiusですが、

手順1 TesorFlowをインストールする
手順2 Movidiusのライブラリーインストール
         OpenCV3.3もインストールするけど、途中でY/N聞いてくる

TesorFlowは、ここからdownload

wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.4.0/tensorflow-1.4.0-cp35-none-linux_armv7l.whl

sudo pip3 install tensorflow-1.4.0-cp35-none-linux_armv7l.whl

ここで問題が発生する。
Jessieは、python3.4、よってpip3でエラー発生。
このwhlは、3.5じゃないとダメと怒られる

で、python3.5のbuild&install

sudo apt-get remove python3 python3-dev

wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz

tar xvf Python-3.5.4.tar.xz

cd Python-3.5.4

./configure

make -j4

sudo make install

sudo cp /usr/local/bin/pip3 /usr/bin

sudo ln -s /usr/local/bin/python3.5 /usr/bin/python3

再度

sudo pip3 install tensorflow-1.4.0-cp35-none-linux_armv7l.whl

なんかやっている、、、、OK!

次は、MovidiusのSDK

git clone http://github.com/Movidius/ncsdk && cd ncsdk && make install && make examples

OSは、Jessieではダメだそうです。。。

Movidiusは、Stretch

PiTFT3.5は、Jessie

当面組み合わせられない。。。

Peace!!

2017年9月19日火曜日

An installation of openCV 3.3.0 on raspberry ZERO W stretch

初めての組み合わせ、、、10時間(笑)

OSはStretchにするのが良いのかの議論はありますが、、、

基本、これまでのインストールの手順です。

でも、いろいろあったわけで、


(1) 依存ファイルのインストール

以前
sudo apt-get install -y build-essential git cmake pkg-config cmake-qt-gui mesa-utils  libgl1-mesa-dri libjpeg-dev libtiff5-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libgtk2.0-dev libprotobuf-dev protobuf-compiler libvtk5-dev libvtk5-qt4-dev python-vtk tcl-vtk  libatlas-base-dev gfortran libeigen3-dev libv4l-dev libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev sphinx-common doxygen



今回、最小限です。かつ、Raspberry Piをセットアップして、


最初の、update, upgrade, raspi-update して、reboot した直後の状態

sudo apt-get -y install build-essential cmake pkg-config cmake-qt-gui git libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get -y install libxvidcore-dev libx264-dev
sudo apt-get -y install  libqtgui4 libqt4-test libqt4-opengl-dev


(2)cmakeは、こんな感じ

cd ~
cd opencv-3.3.0
mkdir build
cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D PLANTUML_JAR=/usr/share/java/plantuml.jar \ -D ENABLE_NEON=OFF \ -D WITH_TBB=OFF -D BUILD_TBB=OFF \ -D WITH_QT=ON -D WITH_OPENGL=OFF \ -D BUILD_opencv_freetype=OFF \ -D BUILD_EXAMPLES=OFF \ -D INSTALL_C_EXAMPLES=OFF ..



(3) makeとインストール

make

10時間待ちます。。。(^^)


sudo make install

sudo ldconfig


(4)確認

cd ~/opencv-3.3.0/samples/cpp

cd ~/opencv-3.3.0/samples/cpp


g++ `pkg-config opencv --cflags --libs` facedetect.cpp -o facedetect

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

どーーん、peace!!