2016年12月7日水曜日

An installation of GCC ver.6.2 on Raspberry Pi3

緯度経度の平面直角座標系に変換するプログラムで、最適化をすると計算結果が異常値になるので、gcc 6.2でどうなるかと確かめるために、ソースからコンパイルしてインストールした。

で、手順は、、、

1.スワップファイルを1024に増やす

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=1024

そして、リブートする。

で、ビルドが終わったら、元の100に直す。


2.ソースのダウンロードとビルドの準備

cd
mkdir code
cd code
wget http://nl.mirror.babylon.network/gcc/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2
tar xvf gcc-6.2.0.tar.bz2
cd gcc-6.2.0
contrib/download_prerequisites
mkdir obj
cd obj


3.ビルドとインストール 6時間位かかる

../configure -v --enable-languages=c,c++ --prefix=/usr/local/gcc-6.2 --program-suffix=-6 --with-cpu=cortex-a53 --with-fpu=neon-fp-armv8 --with-float=hard --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

make -j5

sudo make install


4.環境設定

export PATH=/usr/local/gcc-6.2/bin:$PATH

5.スワップサイズを元に戻す

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=100

で、終わり。。。

で、最低化オプションしていしての、実行結果は、、、

cp ./gcc-6.2.0/obj/gmp/mpz/init.lo ./gcc-6.2.0/obj/gmp/mpq/init.lo
cp ./gcc-6.2.0/obj/gmp/mpz/init.lo ./gcc-6.2.0/obj/gmp/mpf/init.lo

cp  /home/pi/code/gcc-6.2.0/obj/gmp/mpz/abs.lo /home/pi/code/gcc-6.2.0/obj/gmp/mpq/abs.lo
 cp ./stage1-gmp/mpq/aors.lo ./gmp/mpq/aors.lo

cp ./stage1-gmp/mpq/canonicalize.lo ./gmp/mpq/canonicalize.lo

cp ./gmp/mpz/clear.lo ./gmp/mpq/clear.lo

cp ./gmp/mpz/cmp.lo ./gmp/mpq/cmp.lo


で、、、、エラー続出で、だめでした。。。(´;ω;`)



2016年12月6日火曜日

緯度経度を平面直角座標系に変換するプログラムと奇々怪々gcc

緯度経度(GPSデータ)から平面直角座標に変換するプログラム

とりあえずRESTで使っていたけど、

自由に使いたいので、C言語で自作。

もとは、この計算式

ちなみに、GPSのフォーマットは、$GPGGA

で、、、

奇々怪々、Raspberry Pi Jessieのgcc (Raspbian 4.9.2-10) 4.9.2

最適化オプションを付けると、計算値がおかしくなる。-O2, -O3は確認

gcc ソース -0 実行名称 -lm



2016年11月27日日曜日

ロボットとロボットクラウドのlighttpd 1.4.43 やっと一緒になった

僕のロボット関連では、Webサーバにlighttpdを使っている。

理由は、Appachのように重装備なサーバは必要ないし、

ロボット(Raspberry Pi Jessie)でも、

ロボットクラウド(CENT OS)でも動き、速度面や使い勝手がいいから。

懸案のメモリーリークのバグも今年前半に改善されて、

本格運用に耐えれる状態。

ただ、インストール時の環境設定が、Raspberry PiやCENT OSなでは微妙に

異なっていていたり、パッチワーク的に設定していたために両社の設定が

微妙に異なている。

サーバも本格的に運用をすることになり、この際、整理をする事にした。

ダサい事に、REST関連はOLD CGIで動かしているので、

はずかしい、、、

cgi.confの設定をテストしながら確かめた。

で、結論は、下(^^)

# /usr/share/doc/lighttpd/cgi.txt

server.modules += ( "mod_cgi" )

$HTTP["url"] =~ "^/cgi-bin/" {
        cgi.assign = ( "" => "" )
}

## Warning this represents a security risk, as it allow to execute any file
## with a .pl/.py even outside of /usr/lib/cgi-bin.
#
#cgi.assign      = (
#       ".pl"  => "/usr/bin/perl",
#       ".py"  => "/usr/bin/python",
#)

なぜか、Jessieでは、/etc/lighttpd/conf.d/conf-enabledに

conf.d/conf-available/10-cgi.conf のシンボリックリンクを張ればよい

けど、、、

CENT OSは、Versionが6.8なのかもしれないが、

modules.confで設定で設定(コメントアウトを外す)して、

cgi.confを上記に合わせなければならない。

ちなみに、lighttpd.confのstatic-file.exclude-extentionsは変更しない。

という事で、ロボットも、ロボットクラウドも環境が一緒になったので

とっても、、、、

PEACE!!





2016年11月10日木曜日

帯状疱疹にかかりました

神経痛の痛みを味わっています。(´-`;
免疫力が落ちて、脊髄に潜んでいる誰もが持っているウィルスが神経を伝って暴れる病気
9月に感染症になって強い抗生物質使って、
その後も体いじめ続けて、
かつ、久々の仕事ストレスmaxだったし、、、
何事も急にやってはいけません。反省。
ある年齢の方は、症状1の時にお気を付け下さい。
以下は、ご興味あれば、、、Peace!

症状は四肢の一つに現れます。
症状1
後で発症する部分の肌が、外見何も無いのに下着で擦れる時に
「ピリピリ」と痛む。この時に薬飲めば、、、
症状2
神経が痛んでくる。足の筋鈍痛が走る感じ
症状3
疱疹が肌に現れてくる
僕の場合は足の背面に出来ていたから自分では分からなかった。
症状4
神経の痛みが激痛に成る。神経ブロックなどの処置が必要
僕はここまでは行って居ない。
医者からは、暖かい部屋でゴロゴロしながら体休めなさい
薬を飲むと一週間程度治まってくる。この薬が高い。
痛みは一月位続く
場合によっては、ウィルスによって破壊された神経の痛みが後遺症となり続く。ドキドキです。


2016年11月8日火曜日

An installation of lighttpd on Raspberry Pi

Raspberry Piで稼働させるWebサーバーは、

lighttpd が良いと考えて採用している。

ポイントは、

軽量であること。。。

これに関しては、monkeyも候補なんだけど、

いろいろ試した結果、lighttpdにした。

で、

sudo apt-get install lighttpd

でインストールするとバージョンが古いので

ソースをダウンロードしてbuild

https://www.lighttpd.net/download/

ダウンロードファイルは最新を、、、この時点では、1.4.43

tar zxfv lighttpd-1.4.43.tar.gz

cd lighttpd-1.4.43

sudo apt-get install libbz2-dev

これは、./configureでbzip2のエラーが出てきた時の対応です。
予めやっておいた方が時間の短縮

./configure

make

sudo make install

sudo systemctl start lighttpd


で、アクセスしてこの画面が出てきたらOK



Peace!!

2016年10月31日月曜日

Let's Note CF-SX4 SSDに交換

も〜遅くてたまらない、、、

CF-SX4のハードディスクをSSDに交換して高速化、、、

超満足です。

ということで、ご報告。

購入したのは、2つ

Logitec HDDケース 2.5型SATA用 HDD/SSDケース LHR-PBGU2/S

https://www.amazon.co.jp/gp/product/B004D67YH4/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1

Transcend SSD 480GB 2.5インチ SATA3 6Gb/s TLC採用 3年保証 TS480GSSD220S


SSDの容量は、現在のハードディスクが500GBなのでこの容量にしました。

基本的な流れは、
(1)ハードディスクを、SDDにコピーする
これは、Logitecについてくる「HD革命/Copy Driver Ver.5 Lite」を使ってします。既にこのソフトはVer6になっています。新しい、LogitecのHDDケースがあるかもしれません。実際にする時は検索して下さい。
このVer5は、CDで提供されますが、5.0.2はソフトに不具合があるようで、5.0.8のダウンロードが必要になります。5.0.8はソフトの提供会社(アーク情報システム)のサイトでユーザ登録を行ってダウンロードします。

(2)交換する
交換は、次のように行いました。10分程度です。
・バッテリーを抜く
・ネジを外す
・HDDを引き抜く
・SDDに交換する
・元に戻す。
詳しくは書きませんが、写真の流れで解ると思います。

で結果は、爆速になりました。\(^o^)/
大満足です。
交換したHDDは、バックアップ様につかいます。

Peace!










あとは、HDDを取外した逆の順序でSSDを本体に格納します。



2016年10月27日木曜日

Raspberry Pi上での、WringPiの使い方コマンドとC言語

2つのRaspberry Piで同期をとるプログラムを作成する時に、

WiringPiを使うのはとっても便利です。

コマンドやプログラムからgpioを制御できます。

その時に、ちょっとピン指定で、コンガラガッテしまったので、

自分のメモとして書いておきます。

gpioを制御するとき


・基板上のPIN番号

・WringPiのgpio 番号

・CPUのgpio番号

の3つを意識しないとならない。

その対比表が下図。



gpio readall

とコマンドを打ては図のようなgpioの状態の一覧がでてきます。

・基板上の物理的なPIN番号35番

・WringPiの番号 GPIO.24、つまり、wPi欄の番号24

・CPUのGPIO番号は、19になります。

この時に、基本BCMと書かれたCPUのGPIO番号は無視する

例えば、基盤上の35番PINを書き込みモードにして、

値を1にする場合には、

gpio mode 24 output

gpio write 24 0

とすればよい。

WiringPiを使ったC言語のプログラムからも、

pinMode(24, INPUT);

int pV = digitalread(24);

となる。

gpioコマンドには、-g のオプションがつけれるが、

これを付けるとCPUのGPIOになる。

従って、

gpio -g mode 19 output

gpio -g write 19 0

ややっこしくなるので、-g オプションは使わない方がよいね。

Peace!

おまけ、GPIOの値を読み込むプログラム

gcc -o sample sample.c -lwiringPi

で、

違う端末画面から、

gpio write 24 1
gpio write 24 0

とかすると、
画面に、こんな感じで、表示されます。(^^)

--------------------------digitalRead (24) = 1
--------------------------digitalRead (24) = 1
--------------------------digitalRead (24) = 0
--------------------------digitalRead (24) = 0
--------------------------digitalRead (24) = 0
--------------------------digitalRead (24) = 0



/***********************************************************
** Function : Sample program of wiringPi.
** File Name: sample.c
** Library  :
** Author   : Naoki Kabaya
** create   : 10/02/2016 version 1
** modify   :
***********************************************************/
//----------------------------------------------------------
// Includes
//----------------------------------------------------------
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

//Prototype
int main (void);

int main (void)
{
        int pV = 0;

        if (wiringPiSetup () == -1){
                exit(1);
        }

        //GPIO Setup
        pinMode (24, INPUT);
        printf("----------------------GPIO Setup\n");

        //Loop
        for (;;) {
                pV = 0;
                pV = digitalRead (24);
                printf("--------------------------digitalRead (24) = %d\n", pV);
                delay(500);
        }
        return 0 ;
}

2016年10月21日金曜日

Sony Camera module on Raspberry Pi ZERO.

久しぶりに、Raspberry Pi ネタ(^^)

別に新しいネタでは無いけど、、、

あるアイディアを確かめたくて、、、

まだテスト中、いい感じ

パラメータは、こんな感じ

raspistill -o images.jpg -w 820 -h 616 -t 200

-tを付けないと、5秒の待ち時間が発生する。

これから、いろいろテスト(^^)

Peace!!

Raspberry Pi CAMERA 画像

こんな感じでカメラセット

テスト全景
この後は、外で、、、(^^)

2016年10月20日木曜日

登山靴 モンベル アルパインクルーザー2500

登山において、靴は最も重要なギア
自分の足は、日本時特有の横幅の広く、甲の高さはそれほど高くない。
どうも、欧米系の靴は合いそうにない。
また、沢シューズはモンベル製でピッタリなので、
まずは、モンベルの日本人向けの足型を試す事にした。

選ぶに当たっては、3つの視点で考えた
・厳寒期の登山靴には使わない
 履く靴下が全く違うので、サイズも必然的に変わるため
・残雪期(アイゼン10〜6本)ー春―夏ー秋
・縦走も可能

まず、アルパインクルーザー2500で試す。
手にとって、外側、内側をよく確認して履いてみる。
”まったくピッタリ”
他にも、Asoloとも比べた。
Asoloも良かったけど、縦サイズが1大きくなった。
縦が長くなるのは、歩く時にちょっと不安。

再び、アルパインクルーザーを履いて確認。
足の指の余裕も問題なく
紐をシメてもあたる所なし、
30分位いろいろ動いてみたけど違和感なし
ということで、購入。
Webでは、15足以上履いて確認などのアドバイスがあるけど、
僕は、サッカーをしていたので、自分の足の特徴は熟知している。
例えば、運動のしすぎで骨が、変形している部所など、、、
それらの事から、この靴で充分だと判断した。
家では、2日間、30分ほど履いて家の周りをグルグルして、、、

モンベル アルパインクルーザ2500
典型的な日本人足型
山行後なので、靴紐外して乾燥中

沢シューズ
僕の足にピッタリ!
だからモンベルを最初に試す事にした。

そして、前穂高岳へ
結果、何の問題もなく、登山できた。
下山時に、紐をきつめに締め直すのと忘れたために、
途中で、親指の擦れが気になった。
すぐに締め直して、事なきを得た。

この靴も長く付き合う靴になりそう(^^)

Peace!!

ザック OSPREY VARIANT 52

ザック選びもいろいろ大変でした。

メーカも沢山あり、かつ登山の種類に応じて有るわけで、、、
そんなか、先輩の意見を聞くと、OSPREY(オスプレー)が軽くて、性能と価格のコストパフォマンスが高いと、、、
従って、OSPREYに絞って探すことにしました。

僕的には、次の2点を重点にし、調査や近くのお店で背負ってみたりと、、、
・背負心地
・冬山にも使える
・2,3泊の山行可能な容量
実は、欲張りな要求なのですが、、、

OSPREY VARIANT 52を選びました。
購入は、通販で、こちらから。。。
http://www.chamonix-web.com/
このお店、おすすめです。(^^)v


で、結論でいいうと、大正解!
今回の山行でも、10Kgの荷物を背負っていても
背中にピッタリクッツイているような感覚で、
登山道、岩場、ガレ場でも違和感を感じる事はなかった。


背中のパッドの形状も、自分の背中に合っていた。


アイゼンを入れるための部分(手袋が入っている)には、水を入れたPlatypus(プラティプス)などを入れられて便利。

個人差がありますが、私にとっては長く付き合えるザックとなりそうです。

PEACE!

春・秋用の登山パンツ選択(モンベル:クリフパンツ)

前穂高岳登山にあたっての準備は結構悩みました。
大学時代は、体力もあり何も考えずに、Gパンで登っていましたが、
今は、綿の衣服で山に登る事は考えられないわけで、、、
一番評判が良いのは、ファイントラックだと思いますが、値段が高すぎるので、、、

結局、大阪梅田のモンベルに行って実物見ながら購入する事にしました。
しかし、品数が多く、店員さんに聞いても、的を得ない回答が多くて

最近のモンベルの店員は、勉強不足の人が多いです。
また、自分のわからない事でも、中途半端に回答する人が多いと感じています。

次の視点で選択をしました。
・春と秋用の、中厚手のパンツ(若干の保温性)
・ストレッチ性(体の動きを妨げない)
何着か、試着して選んだのが
「クリフパンツ」サイズS 7600円(税別)を選びました。
結論から言えば、この選択は正解で、今回の山行で何の着心地の違和感もなく、冷えることもなく、蒸れることもなく、そしてそれなりの撥水性もあり、まったく満足できる結果を得られました。
日常でも充分に使えます。
農作業にはもったいないですが、、、


Peace!!

僕が前穂高岳に登った理由など、、、(^^)

昨年からの大規模ロボット実証を3月に終えて、その残務も7月終わったとたん、
「何もしたくない」状態!
2015年4月から実施体制をつくり、開発を行い、実証先を回って実証!
実施体制も、結局、会社2つ作ったし、人も雇用したりと、、、
目まぐるしく、時が回った。
同時に、委託研究もしていたので、も〜って感じで、
ただ、走っていただけ
ひたすら走った。
良いとか、悪いとかではなくて、決まった事業をするために、
馬車馬の様に走った

大規模ロボット実証に関しては、
正直、やってよかったのか?
やらないほうがよかったのか?
わからない状態だったし、、、
もちろん、経験といいう意味では良かったし、
自分でも言うのは何だけど、これだけのプロジェクトマネジメントできるって、
まだ、僕も落ちぶれていないと思った。
自分じゃできないような人間が、いろいろ言うのだけど、
言うのだったら、自分でやってみればいいじゃん!
まぁ、僕は、何を言われてもいいですが、、、

でも、体力は、限界状態になり、階段登るだけも苦しかった。
7月に、最終のドキュメントを提出して、
慌てて、Kayakに戻ろうとしたけど、、、
この年齢になると失った体力はなかなか戻ってこない、、、
そんななかで、沢登りに出会い、登山などに出会い、、、
少しづつ、精神の落ち着きも取り戻したし、
体力も徐々に回復してきた。

そんな時、急に前穂高岳に登りたくなり、、、
本当にポコッと、行く!っって感じ。
選択肢はなくて、行く!!

まだ、精神的に引きずっている
大規模ロボット実証や、いろいろな事を、一度リセットできるのではと考えた。
とにかく、3,000m級の山に登って、全てをリセットしたかった。
気持ちよく次に進みたい。。。

そんな時に、師匠が奥又経由の前穂高を提案して下さって
そのコースで登ることになった。



10月15日から16日の1泊2日で行きました。
今、お世話になっている「わらし会」の師匠と、酒豪と3人で行きました。
2日間、快晴本当に素晴らしい景色を堪能できました。
もともとは、私が37年ブリに前穂高岳に重太郎新道で登る予定でしたが、師匠が良いコースがあるという事で、標題のコースで行くことになりました。
ところで、調べるとA沢というガレ沢があり、かなり危険なコースとの事、、、
やはり、重太郎新道経由という事も考えましたが、結局、標題のコースでいきました。

結論から言えば、そのコースは大変良くて、とても思い出になるコースでした。
一般登山道ではない、バリエーションルートです。従って、素人の私が行けるコースではないのですが、エキスパートの師匠のお陰で行くことができました。
この山行を、A沢中心にまとめましたので、こちらの動画を見て頂ければと思います。

https://www.youtube.com/watch?v=_Venl2X70Ig

15日は、宿泊地である奥又白池を目指して、上高地ー徳沢ー中畠新道ー奥又白池のコースを取りました。
特に、中畠新道は、急な尾根の登りで、途中、熊笹を掴みながら登りました。
この中畠新道で、私は、両足とも足が痛くなり、またつりそうになり、
ひょっとしたら、このまま引き返したほうが良いのでは、、、
そんな事も考えるような状態になりました。
同行者の方には、迷惑をかけて、申し訳ありませんでしたが、とにかくだましだまし登りました。スティックで自重(体重+荷物)をできるだけ支え足に荷重が掛からないようにゆっくり登りました。いつ、肉離れなど起こすかわからない状態でした。
今、考えれば無謀な挑戦をしていたのかもしれません。
本格的な、山登りはこの10年しておらず、かつ重たい荷物(13.5Kg)を背負ってという状況では当たり前に発生する身体の異常です。
今更ですが、やはり訓練が必要だと、痛切に反省しています。
また、荷物に関しても、Kayakキャンプの感覚で、不要なモノも多く、自宅に返ってから師匠のアドバイスで荷物を見直すと、なんと5Kgも余計に持っていました。
山には、
・無くては困るもの
これだけを持っていくことが大切である事を身をもって体験しました。
その上で、体力に応じて、楽しむものを持って行くと言うことだと思います。

ザックの左側は、余分な荷物でした。(笑)
奥又池は、標高2,740mにある直径20m位の池です。
森林限界を超えて、岩ばかりの山道を登ると、これまでの景色とはまったく異なる池がポット現れてきます。そのギャップがとても大きくて、とても驚きました。


池の水場の近くにテント張り宿泊しました。
その日の事は、動画を御覧ください。

16日、4時に起床し、6時10分に出発をしました。
ここからは、登山道として整備はされておらず、ガレ場の登山となります。
慎重に足場を選んで登ります。
特に、気をつけなければならないのは、A沢と呼ばれる大きな石もある、崩れやすいガレ場です。ほぼ、安息角、、、土質工学の用語ですが、まさにそのものです。
とても怖いはずなのですが、一歩一歩に集中しなければならないので、怖さはあまり感じませんでした。まぁ、怖さを感じる余裕が無いということでしょうか?(笑)
登りきれば、別天地で素晴らしい景色が広がります。
登ったところから、前穂高岳は標高差100m程度です。
ここも一般登山道でありませんが、道らしき踏み固めがあります。
多分、充分に危険な道だと思いますが、A沢を経験した後は
気持ちに余裕を持って進めます。
景色も、数カ所で楽しむことができました。

山頂では、楽しく風景を眺め、登頂の喜びを噛み締めました。

帰りは、一般登山道の重太郎新道を下りました。
しかし、かなりの急な道です。途中に鎖場もあれば、はしごもあります。
それなりに整備されているので、迷わず降りることができます。

僕は、運動すると、大汗をかくために、水分補給が欠かせませんが、
登頂で水を全て飲んでしまった為に、下山時にはちょっと脱水状態になり
体に力が入らなくなりました。僕は1.5Lから2Lの水を携帯する必要がありそうです。
岳沢小屋から前穂高岳を望む
いろいろな、事がありましたが、とっても思い出に残る登山でした。
来年は、アルプスに通いそうです。
もちろん、Kayak持って、見つけた激流も下りたいと思います。

今回は、1人では絶対に行けないコースを連れて行って頂いた師匠に心から感謝いたします。

で、リセットできたのか?
結局、できなかった、、、
僕のなかでは「大規模ロボット実証」は、からまり過ぎている、、、
くやしいけど、まだ時間がかかる。。。


Peace!!

2016年6月15日水曜日

RESTをcurlコマンドで、、、メモ

自分勝手なRESTシステム開発してるわけで、、、

写真は、関係ない。現実逃避したいので、、、

Parc Güell
ただ、、、物忘れが早いよ〜

って、ことでまた、curlのコマンドラインの忘備録

しかし、辛いなぁ、、、

$ curl  http://xxx.yyy.zzz.qqq:2000/user -X POST -d "namae="ahoaho" -d "jusho=jyuusyofutei1-1-1"

因みに、

lighttpdです。

Peace!




2016年6月14日火曜日

Jessie さんで、毎日決まった時間に仕事する(systemd timer)

cronで、定期的に処理を、systemdでするための技術メモ

systemd timer で、定期的な処理をするちゃ

Catedral de Santa María de Toledo
手順は、
(1)定期的に処理するプログラムを作成する(いままで通り)

(2)(1)のプログラムのsystemdのserviceを作成する

(3)(2)を対象にした、systemdのtimerを作成する

(4)systemctlを使って有効にする。serviceは有効にしない。
   だから、serviceには、[Install]を書かない

$ vi sysd-reboot.sh
#!/bin/bash

sudo /sbin/reboot

$vi sysd-reboot.service
[Unit]
Description=reboot

[Service]
Type=simple
ExecStart=/home/pi/bin/sysd-reboot.sh

$vi sysd-reboot.timer
[Unit]
Description=Run LDAP dump monthly

[Timer]
OnCalendar=*-*-* 04:00:00
Unit=sysd-reboot.service

[Install]
WantedBy=basic.target

$ sudo cp sysd-* /etc/systemd/system

$ sudo systemctl enable sysd-reboot.timer

Created symlink from /etc/systemd/system/basic.target.wants/sysd-reboot.timer to /etc/systemd/system/sysd-reboot.timer.

$ sudo systemctl start sysd-reboot.timer

(5)確認する
$ sudo systemctl list-unit-files --type=timer | grep sysd- 
sysd-reboot.timer            enabled

指定例)
[Unit]
Description=Run foo weekly and on boot
[Timer]
OnBootSec=15min
OnUnitActiveSec=1w
[Install]
WantedBy=timers.target

[Unit]
Description=Run foo weekly
[Timer]
OnCalendar=weekly
Persistent=true  
[Install]
WantedBy=timers.target

usec, us
msec, ms
seconds, second, sec, s
minutes, minute, min, m
hours, hour, hr, h
days, day, d
weeks, week, w
months, month, M (defined as 30.44 days)
years, year, y (define as 365.25 days)

2 h
2hours
48hr
1y 12month
55s500ms
300ms20s 5day

Fri 2012-11-23 11:12:13 → Fri 2012-11-23 11:12:13
2012-11-23 11:12:13 → Fri 2012-11-23 11:12:13
2012-11-23 11:12:13 UTC → Fri 2012-11-23 19:12:13
2012-11-23 → Fri 2012-11-23 00:00:00
12-11-23 → Fri 2012-11-23 00:00:00
11:12:13 → Fri 2012-11-23 11:12:13
11:12:13.9900009 → Fri 2012-11-23 11:12:13
format_timestamp_us: Fri 2012-11-23 11:12:13.990000
11:12 → Fri 2012-11-23 11:12:00

now → Fri 2012-11-23 18:15:22
today → Fri 2012-11-23 00:00:00
today UTC → Fri 2012-11-23 16:00:00
yesterday → Fri 2012-11-22 00:00:00
tomorrow → Fri 2012-11-24 00:00:00
+3h30min → Fri 2012-11-23 21:45:22
+3h30min UTC → -EINVAL
-5s → Fri 2012-11-23 18:15:17
11min ago → Fri 2012-11-23 18:04:22
11min ago UTC → -EINVAL
@1395716396 → Tue 2014-03-25 03:59:56

参考)
systemd.time

2016年6月12日日曜日

なってこった max_usb_current=1

農場のセンサが、調子が悪く、、、

こんなエラーで、うんともすんとも (泣)

うーーーーーーと (泣)状態



Jessie にしてからというもの、、、

この前も、Google先生に聞いて見たけど、どうも〜〜

で、再度、落ち着いて、先生にお願い

う、、、イギリスのある方と同じ状態

で、、、原因は、USB給電が足りないかもと、、、

お、、、頭の中をーーーーー

max_usb_current=1

/boot/config.txt に書き加えて、、、

一件落着

Jessieにした時に、オマジナイ追加していなかった。(泣)

Peace!!

Raspberry Pi Jessie 起動時の高速化

はじめに、下記の内容はRaspberry Pi ZERO、2016-05-27-raspbian-jessie-lite.imgで

実行した内容です。(^^)

サービスを止めた後

wheezyの時は、いろいろなサービスが起ち上げ時に起動されていて、

僕の用途ではパフォーマンスを少しでもよくしたいので、それらを止める必要があった。

Debianもversion7 から、Version8のJessieに変わった。

僕にとって、一番大きな変更点は、initシステムがsystemdに変わった事。

もともと、ArchLinuxを技術選択していたので、systemdは知っていたのだけど

長年使っている、inittab, rc.local系の方が馴染みが深くちょっと戸惑っている。

ただ、システム的に考えるなら、init系でシェルで自由に書くよりは、

スクリプト化して抽象度と汎用性を高める方が良いとは思う。

ということで、jessieを使う以上、やはり起動時の高速化が必要なわけで、

そのチャレンジ。。。

まず、何もしない状態では、

$ systemctl | grep running とすると、、、

avahi-daemon.service    loaded active running   Avahi mDNS/DNS-SD Stack
cron.service  loaded active running   Regular background program processing daemon
dbus.service   loaded active running   D-Bus System Message Bus
dhcpcd.service   loaded active running   dhcpcd on all interfaces
getty@tty1.service  loaded active running   Getty on tty1
ntp.service   loaded active running   LSB: Start NTP daemon
rsyslog.service  loaded active running   System Logging Service
ssh.service   loaded active running   OpenBSD Secure Shell server
systemd-journald.service  loaded active running   Journal Service
systemd-logind.service  loaded active running   Login Service
systemd-udevd.service  loaded active running   udev Kernel Device Manager
triggerhappy.service    loaded active running   LSB: triggerhappy hotkey daemon
avahi-daemon.socket   loaded active running   Avahi mDNS/DNS-SD Stack Activation Socket
dbus.socket    loaded active running   D-Bus System Message Bus Socket
syslog.socket   loaded active running   Syslog Socket
systemd-journald-dev-log.socket       loaded active running   Journal Socket (/dev/log)
systemd-journald.socket          loaded active running   Journal Socket
systemd-udevd-control.socket     loaded active running   udev Control Socket
systemd-udevd-kernel.socket     loaded active running   udev Kernel Socket

以外にも、起動されてるモノが少ない。

自分の用途で不要なのは、以下の2つ
avashi ホスト名で検索するためのサービス
triggerhappy キーボードのショートカットキーを使うためのサービス
       raspi-configで使っているという説明もあったが特に影響無いみたい

dbus Wheezyの時は、X11が使ってるだけだったので削除できたが、systemdが使用

ということで、
$ sudo systemctl disable avahi-daemon
$ sudo systemctl disable triggerhappy

メモリーの状況は、
停止前

$ free
             total       used       free     shared    buffers     cached
Mem:        380152      74400     305752       4480       7360      39228
-/+ buffers/cache:      27812     352340
Swap:       102396          0     102396

             total       used       free     shared    buffers     cached

停止後
$free
             total       used       free     shared    buffers     cached
Mem:        380152     106872     273280       4472      10888      64684
-/+ buffers/cache:      31300     348852

Swap:       102396          0     102396

本当は、起動時に、いろいろもたもたする可能性があるntpも止めたいけど、

systemdのスクリプトを書くのが面倒なので、対処法

$ sudo vi /etc/ntp.conf

#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst

で、ちゃんとみているか?

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
=====================================================
+ntp-b3.nict.go. .NICT.           1 u    1   64    1   14.464    0.508   0.127
+ntp-b2.nict.go. .NICT.           1 u    1   64    1   14.089    0.250   0.357
 ntp-a2.nict.go. .STEP.          16 u   44   64    0    0.000    0.000   0.000
*ntp-a3.nict.go. .NICT.           1 u   30   64    1   13.623    0.428   1.628
 ntp-a3.nict.go. .STEP.          16 -    -   64    0    0.000    0.000   0.000
 ntp-a2.nict.go. .STEP.          16 -    -   64    0    0.000    0.000   0.000

OKです。

とりあえず、Peace !

2016年6月11日土曜日

連動するって、何が、、、

趣味のラジコン飛行機、製作中(^^)





はい、決して、地上のロボットや、センサーとは連携しません。(笑)

 ウヒヒ、、、

Peace!!

2016年6月5日日曜日

センサは、評価して使わないと、、、いろいろ大変

照度センサ(TSL2591)のテスト

テストしながら、JIS C 1609:1993に準拠した照度計との値の対比も、、、

TSL2591の傾向は大体つかめた(^^)



2014年7月から稼働している、Raspberry Pi B+ を使ったセンサボックス。

Raspberry Piは、何の問題もなく、この2年動いている。

最高温度は60度位時もあったし、最低は零下の時も、、、

Raspberry Piは、凄いね。(^^)v

今度は、中のセンサの検定ですね。どれくらい性能が変わっているか?


Peace!!

Raspberry Pi (jessie) + L-03D + OCN one = グローバルアドレス (^^)

簡単に、、、

$ sudo apt-get -y install eject wvdial usb_modeswtich pppconfig

$ sudo pppconfig

こんな画面がでてcreateする


で、順番にデータを入れていく。終わったら保存をする。手順は、こちらを参照

https://www.ammlab.org/labo/RPi_LTE/

$ sudo vi /etc/chatscripts/ocn

ATHを追加する。下図参照


dongleは、CD-ROMとし認識されているのでejectして、modprobeする

$ eject sr0

$ sudo sudo modprobe usbserial vendor=0x1004 product=0x6326

この値は、dongleにdocomo L-03Dを使った時。

usb_modeswitchに定義されていないdongleを使うときには、

/etc/udevに登録する。

$ ls /dev/ttyU*


$ sudo pon ocn

エラーがなければつながっているので、以下は確認

$ ifconfig ppp0

はい、出来上がり\(^o^)/


で、グローバルアドレスなので、pingと、sshでインターネット経由でlogin



で、reboot毎に、

$ eject sr0 からなので、後でsystmedに設定する

Peace!

追加

下記のように、設定ファイルを置いておくくと, ejectやmodprobeをしなくても良いカモ

$ sudo vi /etc/udev/rules.d/99-foma_l-03d.rules

# for FOMA L-03D
# USB Storage (Zero Installation)
KERNEL=="sr[0-9]*", ENV{ID_VENDOR_ID}=="1004", ENV{ID_MODEL_ID}=="6327", RUN+="/usr/bin/eject /dev/$kernel"

# USB Modem (ttyUSB)

SUBSYSTEM=="usb", ATTR{idVendor}=="1004", ATTR{idProduct}=="6326", RUN+="/sbin/modprobe usbserial vendor=0x$attr{idVendor} product=0x$attr{idProduct}"

Peace !!

2016年6月3日金曜日

An installation of a new version fswebcam on wheezy.

https://github.com/fsphil/fswebcam

sudo apt-get install libgd2-xpm-dev
./configure --prefix=/usr
make
sudo make install

fswebcam --version
fswebcam 20140113

if a configure process fails:
sudo apt-get autoremove

2016年5月30日月曜日

2本足、4本足ロボット(自律型)は、どうなるんでしょうね〜

トヨタが、ボストン・ダイナミクスをGoogleから買収するらしいけど、、、
http://www.techinsider.io/toyota-in-talks-to-acquire-boston-dynamics-from-google-2016-5

原文を読むと、Googleが2020年に向けて、コンシューマ向けのロボット開発に向けた事業整理が背景
Googleは、資金にまかせていろいろなロボット企業を買収して、言い方が悪いけど吟味したわけで、、、
それである事業期間に於ける結論を出したのだと思う。

Googleは、ITでスケールアウトした会社だから、そのベースから考えると、政府、軍、企業向けのビジネスにはそもそもドメインでは無いわけだし、私自身、この数年間、ロボットにちょっとだけ関わり試行し多くの人と議論したけど、ロボット分野は産業ロボット以外は、ある複数のイノベーションが起こらない限りブレイクしないと思う。
このイノベーションは、ロボット工学的なイノベーションもあれば、社会認識の変革など、幾つかの分野が必要だと思う。
「いいものと、売れるものは違う」
と、30年前に、言われたけど、、、
自律型のロボットは、いいもののレベルにはまだまだ達しない。
この記事にあるビデオを見ても解るように、
ロボットの認識は、ARマーカを使っている。
最も最先端と言われているボストン・ダイナミクスのロボットにしても、認識については、そのレベルなのだ、、、
勝手な推測だけど、、、
では、なぜ、トヨタが買収したかと、
・出来立ての研究所であり、その人脈継り
 すでに、主要なメンバーが移籍している
・車に乗っけるAI関連技術が必要かも、、
この当たりになわけで、、、
社会で活躍する「はたらくロボット」は、いろいろな形が見えてきた。あるイノベーションにより再来年当たりから、いろいろ実現されてくると思う。しかし、それは私達が知っているアトムとは程遠い地味に「はたらくをロボット」だと思う。。。

2016年5月18日水曜日

Raspberry Pi Jesseiでsystemd/UserがXなのでArchLinuxで検証(^^)

Archlinuxで出来たんでメモ

# cd /etc/systemd/user
# vi hello.service
# cat hello.service

[Unit]
Description=Hello service

[Service]
Type=simple
ExecStart=/bin/sh -c "echo Hello"

[Install]
WantedBy=default.target

# systemctl --user daemon-reload
これが本当に必要かは確認できていない。
いきなり、下のコマンドをしてもでてきます。

# systemctl --user list-unit-files --type=service
UNIT FILE                  STATE
dbus.service               indirect
hello.service              disabled
systemd-bus-proxyd.service static
systemd-exit.service       static



# systemctl --user start hello
このstartは、有効ではないみたい

# systemctl --user list-unit-files --type=service
UNIT FILE                  STATE
dbus.service               indirect
hello.service              disabled
systemd-bus-proxyd.service static
systemd-exit.service       static

4 unit files listed.

disableになっているので、enableにしてみたら、、、いった
# systemctl --user enable hello
Created symlink from /root/.config/systemd/user/default.target.wants/hello.service to /etc/systemd/user/hello.service.

# systemctl --user list-unit-files --type=service
UNIT FILE                  STATE
dbus.service               indirect
hello.service              enabled
systemd-bus-proxyd.service static
systemd-exit.service       static

4 unit files listed.


では、終了
# systemctl --user disable hello
Removed symlink /root/.config/systemd/user/default.target.wants/hello.service.

# systemctl --user disable hello
Removed symlink /root/.config/systemd/user/default.target.wants/hello.service.
[root@rbtwww user]# systemctl --user list-unit-files --type=service
UNIT FILE                  STATE
dbus.service               indirect
hello.service              disabled
systemd-bus-proxyd.service static
systemd-exit.service       static

4 unit files listed.

では、削除
# rm /etc/systemd/user/hello.service

# systemctl --user list-unit-files --type=service
UNIT FILE                  STATE
dbus.service               indirect
systemd-bus-proxyd.service static
systemd-exit.service       static

これで、一連の整合性の検証ができた。

Peace!!



2016年5月17日火曜日

Debian Jessie に移行中で、、、systemd のマニュアルが(´;ω;`)

ロボット系のプラットフォームを、Jesseiに変更中。

systemd の処理系に代わっているので、、、

その対応を、、、で、、、

一発で、うまくいかない訳で、、、D-Busえっらー(´;ω;`)

Jessieのsystemdバージョンは、215

マニュアルを探すと、systemd 206からは、D-bus対応よと、、、、???

で、一生懸命4時間、あーでもない、こーでもない、、、

で、英語のマニュアルをみたら、、、、226

はい、やっぱり、英語をちゃんと確認します。

という、泣きのオチ

Peace!!








2016年5月6日金曜日

Windows10 で、X Window Systemを動かす

Raspberry Piのソフトの開発は、通常Macでしているのですが、Windows10のPCからも

できるようにしました。

いろいろ調べるとXorgの開発しているX WindowはWindows用にCygwinで提供しているとの事。

で、Cygwinでサクッと使えるようにしました。


1.Cygwin インストール

https://cygwin.com/index.html から、setup-x86_64.exe を選択して行います。

大事なのは、途中のオプション指定。

僕は、下記のオプションを、ハードディスクの容量もあるので指定して全部入れました。

Devel, Net, Python, X11


2. 環境設定
.bashrcに次の設定をする。

export DISPLAY=:0.0
alias runx='run xwin -multiwindow -noclipboard'
alias h='history 100'

3. 実行

スタートメニューのCygwin84 Terminal を選択する。

スタート画面へのピン止めは、自分でしました。


次に、立ち上がったターミナル画面から、runx と入力します。(した画面参考)


これでエラーがなければ、タスクバーに "Cygwin/X Server:0.0"のアイコンが出ていればOK.



これで、初期完了です。

xtermと入力すれば、下図のように、xtermウィンドウが開きます。



しかし、Windowsマシンは使いにくいね。

Peace!