2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FreeBSDAdvent Calendar 2018

Day 23

FreeBSD で NanoPi Neo2

Last updated at Posted at 2018-12-23

Neo2 は64bit

NanoPi Neo2 は

で書いた NanoPi Neo と同じサイズの CPU ボードです。
P_20181223_115541.jpg

上が NanoPi Neo2、下がNanoPi Neoです。Neo2は斜めってるチップが特徴的ですね。

サイズは同じですが、NanoPi Neo が 32bit CPUなのに対して、Neo2 は Allwinner H5 を積んだ 64 bit ボードです。
メモリサイズは、512MBです。

イメージ作ってくれた人がいました

crochet には NanoPi Neo と同様に board の定義が無いし、ports にNeo2用 u-boot もありません(他のボード用のportsをコピーして作るのは簡単ですが)。ビルドは面倒です。
そんな中、FreeBSD-arm MLに「NanoPi Neo2 と NanoPi K1 Plus の12Rのイメージを作ったぜ」というポストがありました。

メール内にリンクがあるので、これを使ってみましょう。
ちなみに NanoPi K1 Plus の方のイメージのリンクはなぜか 404 になっちゃってます。落とせても実機がないので私は試せませんが。

書き込み

ダウンロードしたイメージ

FreeBSD-aarch64-12.0-RELEASE-341684M-NanoPi-NEO2.img.xz

をxzcat しつつ dd で書き込みます。SDカードは2G以上あれば起動は問題ありせん。FreeBSDから書き込む場合は /dev/da0 が SD カードとすると、

$ xzcat FreeBSD-aarch64-12.0-RELEASE-341684M-NanoPi-NEO2.img.xz | 
sudo dd of=/dev/da0 bs=2m

とします。

準備

ヘッダピンがついてないのではんだ付けしなくちゃいけないのは NanoPi Neo と同様です。

NanoPi Neo と同様に映像出力はありませんので、USB シリアル変換で接続して操作します。
ピン配置は NanoPi Neoと同様です。私の持っているバージョンは裏のシルクに書いてあるピン配置が嘘だったので注意が必要です。

起動

Micro USB で電源接続すると起動開始します。
このイメージは起動時のメニュー表示がされない設定になっているので、NanoPi Neo の記事で出てきた選択メニュー等は特に出ずログイン画面が出ます。

デフォルトのユーザーとパスワードは

ユーザー パスワード
スーパーユーザー root 無し
一般 admin admin

です。

SMP は動いている

FreeBSD は 64bit モードで動いてます。
arm64 として、SMP も動いています。

Screenshot_2018-12-23_15-08-26.png

有線LANが使える

NanoPi Neoで使えなかった有線LANが使えます。

Screenshot_2018-12-23_15-25-25.png

シリアルコンソールの代わりに、PCと有線接続してssh でコントロールということも可能になります。

#USB でWiFi接続
出荷状態から基板においてあるUSBドングルを挿してWiFiも接続できました。
手順は NanoPi Neo と同様です

#ヘッダピンのUSBも使える

一列12ピンのヘッダピンには USB コネクタを2つつなげる事ができますが、両方認識しました。

P_20181223_163602.jpg

写真はmicroSDカードリーダーをつなげてマウントなどを確認しているところです。

#ボード上のLEDを光らせる
NanoPi Neo と同様 に/dev/led 以下に LED 点灯用デバイスノードが生えます。
しかしデバイスノードの名前が違います。

led
/dev/led/nanopi:green:status (実際は青色)
/dev/led/nanopi:red:pwr (実際は緑)

となっていて、現状/dev/led/nanopi:green:status が電源 ON 時から点灯しています。たぶん現状 LED への名前の割り振りが間違っているのだと思います。

GPIO

GPIOも使用可能です。使用の仕方は NanoPi Neo と同様です。

RaspberryPi 用 の [Explorer pHat] (https://shop.pimoroni.com/products/explorer-phat)

P_20181223_180524.jpg

をモータードライバとしてつかい、aitendo の障害物センサー

P_20181223_180446.jpg

で反応があったらモーターを動かすスクリプトのデモです。

Explorer pHat は RaspberryPi の GPIO に直接挿す形での使用が想定されていますが、NanoPi Neo/Neo2 だと GPIO ピンが足りないので、必要な端子だけケーブルで接続します。

GPIO の PC1とPC2 のそれぞれの端子をExplore pHAT の 35番と38番の端子につなぎ、のON/OFFでモーターの回転を順方向/逆方向を制御します。

障害物センサーは PG11 ピンにつなぎ IN に設定します。通常 1 で、障害物があった場合 0 になるので、0 になったらコンソールに文字出力し、モーターを回転させます。

gpioスクリプト
#!/bin/sh
PIN_IN=PG11
PIN_MOTOR_P=PC1
PIN_MOTOR_M=PC2

gpioctl -c ${PIN_IN} IN
gpioctl -c ${PIN_MOTOR_P} OUT
gpioctl -c ${PIN_MOTOR_M} OUT

while true; do
	IN=$(gpioctl ${PIN_IN})
	if [ "$IN" -eq 0 ]; then
		echo "当たった"
		gpioctl ${PIN_MOTOR_P} 1
		gpioctl ${PIN_MOTOR_M} 0
		sleep 0.5
		gpioctl ${PIN_MOTOR_P} 0
		gpioctl ${PIN_MOTOR_M} 1
		sleep 0.5
		gpioctl ${PIN_MOTOR_P} 0
		gpioctl ${PIN_MOTOR_M} 0
		sleep 1
	fi
done

## I2Cはやはり駄目

i2c はやっぱり動きません。

Nano Pi Neo より色々動く

  • 有線LAN
  • ヘッダピンのUSB

など、Nano Pi Neo より動いてる部分が多い、というか NanoPi Neo のイメージもちゃんといじればここまでは動くのかもしれないというそういう話かもしれないですねぇ。NanoPi Neo は orange pi の設定をコピーしただけですからねぇ。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?