2020年3月8日日曜日

rockpi-s に浮気

低消費電力==低発熱だというので、
rockpi-s に浮気しました。

注: arietta G25 も買いました。licheepi nano も買いました。後者はネットにつなげにくので、可愛いし、最初からflashにlinuxが入ってるという偉いやつなので重用してあげたいんだけども難しい。しかも詳しいwikiは中国語のまんまだし。

で、もとにもどって rockpi-s に aitendo で買った gps GE612Tをつなごうとしてなかなか繋がらなくて参りました。
よーくデータシートをみたら、GE612Tの pin4 をLowに落とさないとパワーセーブモードになってるんだって。<< よく読めよ俺

rockpi-s の初期設定

sdcard にはココから ubuntu-bionic を落として書き込みます。
シリアルのデフォルトは へんな数字になってて持ってるやつだと繋がらないので、
イーサネットに接続。DHCPです。
id/password は rock/rock です。さっさとこのパスワードと、rootパスワードを変更して自分の id を追加しておきます。
追加したユーザはvisudo で権限を与えておきましょう。
面倒なので、いつも下記の行をコピペしてからidに変えてます。

root    ALL=(ALL:ALL) ALL

つぎはお作法通りに

$ sudo apt update
$ sudo apt upgrade
ですね。
私はemacs指なので、ここが終わったら、
$ sudo apt install ng-cjk tcsh
とかとか。

さて肝心のGPIO系の設定ですが、ココの指示通りでいけますが、一応ダイジェスト版としてメモを残しておきます。

$ sudo su
#
# export DISTRO=bionic-testing
# echo "deb http://apt.radxa.com/$DISTRO/ ${DISTRO%-*} main" | sudo tee -a /etc/apt/sources.list.d/apt-radxa-com.list
# apt install wget
# apt install rockchip-overlay rockpis-dtbo libmraa-rockpis

GPIOの設定ファイルは /boot/hw_intfc.conf です。
armbian-config 見たいのはありません :-)
下記は設定サンプルです。まあまあわかりやすいですね。当然ですが、有効にするためにはrebootが必要です。
# Hardware Interface Config

# Set "on" to enable the optional hardware interfaces while set "off" to disable.

intfc:i2c0=off
intfc:i2c1=off
intfc:i2c2=off
intfc:i2c3=off

intfc:pwm1=off
intfc:pwm2=off
intfc:pwm3=off

intfc:spi0=off
intfc:spi2=off

intfc:uart0=off
intfc:uart1=on
intfc:uart2=off

# Devicetree Overlay Enable, uncomment to enable .dtbo under /boot/overlays/.

# Serial console on UART0
intfc:dtoverlay=console-on-ttyS0

# waveshare 3.5inch lcd (B v2) on SPI2. Need set:
# intfc:uart1=off intfc:uart2=off intfc:i2c0=off intfc:spi2=on
#intfc:dtoverlay=spi2-waveshare35b-v2

# waveshare 3.5inch lcd (C) on SPI2. Need set:
# intfc:uart1=off intfc:uart2=off intfc:i2c0=off intfc:spi2=on
#intfc:dtoverlay=spi2-waveshare35c

# Dummy spi device on SPI0 for test. Need set: intfc:spi0=on
#intfc:dtoverlay=devspi0

# Dummy spi device on SPI2 for test. Need set: intfc:spi2=on
#intfc:dtoverlay=devspi2

# Use /dev/ttyS0. Need set: intfc:uart0=on
#intfc:dtoverlay=rk3308-uart0

# Use /dev/ttyS1. Need set: intfc:uart1=on
intfc:dtoverlay=rk3308-uart1

# Use /dev/ttyS2. Need set: intfc:uart2=on
#intfc:dtoverlay=rk3308-uart2





2019年10月26日土曜日

NanoPi NEO2 Black

NanoPi NEO2 Black

これ出たら注文しそう。
独自形式だけど、eMMCソケットがあるのはいいね!
wiki にはあるけど、販売ページにはまだ出てない。
(毎日みてるけど)

同時に使いみちはなさそうだけど、zeropiも頼むと思われる :-)


温度湿度気圧計も作った。

nanopi大好きなのだけど、これは
ラズパイゼロです。
CPUパワーがいらないやつならこっちのほうが安いし
入手性高いので...


チップはBME280です。
チップごとに補正違うからって外部プログラムで補正
補正させなくてもいいのにね?と思うけどまあ安いしちっちゃくて
かわいいチップなので、許可許可。
ファンが付いてるのはボードの温度の影響を低下させるためです。
(全体を筒みたいなケースに入れる方がいいかなあ)

プログラムはほぼここのものを流用。

https://qiita.com/hxbdy625/items/16b16a4ac3b89add0e36

ただし、ファイルオープン時になぜかモードが "rb"になってて
動かなかったので
全部"b"を取りました。書き込み時は"b"ついてないんだけどね。
csvファイルが無いときはtouchとかしないと動かないのでそこも注意。

あと、気圧は3日分位表示させたいのでグラフプロット部分は変更しました。


表示は別のラズパイで作った食卓においてあるお天気ディスプレのなかに組み込みました。
この表示のほかに、yahooから予想降雨量をAPIでとってきて
表示するのも入ってます。


今回勉強になったのは、このあたりのグラフ表示部分をモディファイしたところ。
    plt.xticks(range(0,MAX_RANGE,steps),date[::steps])
    grid(True)
    labels=ax.set_xticklabels(date[::steps],rotation=90,fontsize="small")

リストを飛び飛びのリストにできるとは python 便利だなあ。
全体的にはテキスト処理があるとやっぱり perl はやめられない私。



2019年7月18日木曜日

nanopi neoo4だ

次のおもちゃも届いた:-)

apt upgrade でいきなりエラーになるが、

ここにかいてあるのを素直に実行してとりあえず回避。

https://www.raspberrypi.org/forums/viewtopic.php?t=235145

所感ですが、
かなり早い!
かなり熱い!
かなり可愛い!
GPIOとかあるようなないようなもんなので、もうこれはミニミニPCとして
使うしかない。
androidもほぼちゃんと動くようだし、下手なstickPCより快適な感じ。

熱すぎるのは気になるのでファンでもとりあえずつけるかなあ。
GPIOはI2Sがあって、ここにGNDとVCC出てるみたいなんで。





2019年7月16日火曜日

nanopi に SDをマウントする

(FriendlyCoreでの方法、armbianでは違うかも)
eMMCからブートするので SDカードはストレージにできる。
(寿命はともかくとして....)
/dev/sd* を探してなかったので一瞬あせった。

忘れそうなので自分用にメモ

・デバイスは /dev/mmcblk1 になる
・念の為 windows で ntfsとかできれいなパーティションにしておく
・fdisk があるので、それで、 fdisk /dev/mmcblk1
 コマンドで p と w で書き込み
・mkfs.ext4 /dev/mmcblk1
・mountポイントの作成 mkdir /mnt/mmc とか
・手動でマウントできることを確認して
・/etc/fstabに /dev/mmcblk1 /mnt/mmc ext4 default 0 0
という行を追加

2019年7月15日月曜日

自動GPXロガーだいたいできた

・電源オンで自動でログ開始
・ボタンを押すとgpxloggerにシグナルを送ってからシャットダウン
・ nanopi neo plus2 利用。(ラズパイより可愛いやつなので:-) )



あとは、LANに繋いだら自動転送が次の遊びネタ。
gpxをgarminが読めるgpxに変換するのもちょっと課題。
(なんでよめないんやぁ。google earthでは読めた。)
秋月のGPSモジュールは以外に感度が悪いので外付けアンテナのにするかな?

■GPS-HATみたいのを作った。ハサミで切れる両面スルーホール基板は便利だ。
 裏側には見えないけど、コイン電池フォルダがついてます。
 デバッグシリアルもピンで出しています。(秋月のAE-FT234Xが挿せる)

■gpsdモジュールは 3.19 を入れた。
(このヘンから拾ってきてscons で make)

■GPIOのイニシャライズ
(初期がpulldownっぽいので HIGHでセンスするならイニシャライズいらないかも?)
import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
## port 7 is GPIOG11(PG11)
GPIO.setup(channel=7, direction=GPIO.IN, pull_up_down=GPIO.PUD_UP)

■シャットダウンは位置秒おきにボタンをセンスして、押されてたら
3秒押し続けているのをカウントしてから pkill でシグナル送って落として
からシャットダウン。

#!/usr/bin/python2
import RPi.GPIO as GPIO
import time
import subprocess

wait = 1
while 1:
  time.sleep(1)
  while GPIO.input(7) == GPIO.LOW :
    time.sleep(1)
    wait += 1
    if wait >3 :
      subprocess.call('pkill gpxlogger', shell=True)
      subprocess.call('shutdown -h now', shell=True)


2019年7月13日土曜日

nanopi neo plus へ再インストール

いろいろいじっているうちに再インストールしたほうがいいような状態に
なってしまったので再インストール

nanopi-neo-plus2_eflasher_friendlycore-xenial_4.14_arm64_20190430.img

を焼いてSDbootしただけだと、書き込んでくれないので、
コマンドラインからeflasherを起動するとemmcに書き込みが始まる。
メニューは1を選択。