Quantcast
Channel: 秋月電子 –ともの技術メモ
Viewing all 43 articles
Browse latest View live

NanoPi NEO2のデバッグシリアルに苦労した話

$
0
0

Gigabit Ethernet環境でtcpdumpをひたすら放置で動かしておきたくて、NanoPi NEO2に手を出してました。

ファイルシステムのイメージファイルは違いますが、NanoPi NEOと同じ手順で環境構築できて、一度はシリアルコンソールが動いているUART0(デバッグシリアル)も動いていたのですが、しばらくシリアルコンソール無しで運用した後、再びシリアルコンソール経由で操作をしたくなった時に苦労しました。

公式サイトにある端子説明がこちらで、実物を半田面から写真を取ったのが以下です。

わかりますでしょうか??

実は写真に写っているNanoPi-NEO2の実物のデバッグシリアルの端子表記は間違っているので、シルク印刷の端子表記を信用すると動かない、という罠に陥ります。本当は、写真の上から、GND、5V、TX、RXの順で逆順になっています。

・・・ということで、最初に動かした時は公式サイトの端子説明をみて配線したので無事動いたのですが、今日改めて動かそうとした時には基板のシルク印刷をみて動かそうとしたので、動かなかった、というオチでした。悩んだ数時間を返してくれ、という感じです。


NanoPi NEO2のNASキットを動かしてみました

$
0
0

秋月で NanoPi NEO/NEO2 用のNASキットが売っていたので、買ってみました。

秋月の説明書きにはヒートシンクが同梱されているとは書いてない(写真には写っていますが・・・)ので、思わずヒートシンクも余計に買ってしまいましたが、これから買う方はキットにヒートシンクが同梱されているので気をつけて下さい。

このNASキット以外に、

  • NanoPi-NEO2 (または NanoPi-NEO)
  • 2.5インチのHDDまたはSDD(まずは余り物の160GBをつけてみました)
  • CR2032コイン型リチウム電池
  • 起動用のMicroSDカード(手持ちの16GBを使いました)
  • 12VのACアダプタ(秋月で標準的なDCプラグがついているもの)

の準備が必要です。

組み立てにあたっては、

  • ハンダゴテ一式(NanoPi-NEO2の端子はハンダ付けが必要)
  • プラスドライバ(たぶん+1のもの)

も必要です。

とりあえず、端子をハンダ付けしました。ランド径が小さいので、ハンダ付けしにくいです。

この状態で、別のNanoPi-NEO2 から持ってきた MicroSD カードを挿して Ubuntu-Core で起動して ssh でログイン、適当に /dev/sda1 を mount してやると、中身を見ることができましたので、動作は問題ないようです。

ヒートシンクを付けてみました。

この後、Official ROMのイメージを

https://www.mediafire.com/folder/ah4i6w029912b/NanoPi-NEO2

の下の Official ROMs から nanopi-neo2_debian-nas-jessie_4.11.2_20171103.img.zip をダウンロードして、これを展開、USBイメージライタでMicroSDに書き込んで電源投入します。

ブラウザで、 http://friendlyelec.local/ にアクセスすると、

として画面が出ました。

ユーザー名: admin
パスワード: openmediavault

でログインすることができました。

とりあえず、

  • Web管理者パスワードの設定
  • タイムゾーンの設定、NTPの有効化
  • ホスト名を NanoPi-NAS に変更
  • アップデートの確認&インストール
  • ディスクのワイプ、ファイルシステム作成
  • ユーザーの作成

をしてみました。

この後、プラグインを見てみると、「openmediavault-flashmemory」というのがあり、これを使うと MicroSD への書き込みを減らせるようです。・・・が、インストールを試みたところエラーになりました・・・。

あと、デフォルトで root での ssh ログインが有効になっています

$ ssh root@nanopi-nas.local (変更していない場合はfriendlyelec.local)
root@nanopi-nas.local’s password: (デフォルトパスワードは fa )
root@nanopi-nas:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@nanopi-nas:~# passwd pi
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@nanopi-nas:~# passwd fa
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@nanopi-nas:~#

として、ログインパスワードは変更しておく必要があります。(もしくは、SSHを無効化したほうがよいかも)

・・・と思ったのですが、/etc/ssh/sshd_config の AllowGroups の項目には root と ssh しかいないので、実際にログインできるのは root だけのようです。

NanoPi NEO2のUbuntu CoreでWiFi有効化

$
0
0

NanoPi NEO2 の Ubuntu Core で WiFi を有効化したので、その際のメモです。

使用可能なUSBアダプタは

  • RTL8188CUS 802.11n WLAN Adapter
  • RT2070 Wireless Adapter
  • RT2870/RT3070 Wireless Adapter
  • RTL8192CU Wireless Adapter
  • NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]

ということらしいですが、きっと Raspberry Pi で動作可能なものは動くのでしょう^^;

USBコネクタにWiFiアダプタは挿しておきます。

 

1.使用可能なデバイスのリストアップ

$ sudo nmcli dev
DEVICE           TYPE      STATE          CONNECTION 
eth0             ethernet  connected      Wired connection 1 
wlx106f3fxxxxxx  wifi      disconnected   -- 
lo               loopback  unmanaged      --

という感じで、wlxに続いてMACアドレスという形でデバイスが表示されました。

2.WiFi起動

$ sudo nmcli r wifi on

3.アクセスポイントのスキャン

$ sudo nmcli dev wifi
*   SSID             MODE   CHAN  RATE       SIGNAL  BARS    SECURITY 
    xxxxxxxxxxxxxxx  Infra  2     54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
    Mxxxxxxxx        Infra  11    54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
    axxxxxxxxxxx     Infra  11    54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
    Gxxxxxxxx        Infra  5     54 Mbit/s  82      ▂▄▆█  WPA1 WPA2 
    Nxxxxxxxx        Infra  5     54 Mbit/s  82      ▂▄▆█  WPA1 WPA2 
    sxxxxxxxxxxx     Infra  8     54 Mbit/s  52      ▂▄__   WPA1 WPA2 
    Bxxxxxxxxxxxxx   Infra  1     54 Mbit/s  42      ▂▄__   WPA2 
    axxxxxxxxxxxxxx  Infra  8     54 Mbit/s  22      ▂___    WEP 
    axxxxxxxxxxxxx   Infra  11    54 Mbit/s  22      ▂___    WPA1 WPA2

という感じでグラフィカルに表示されます。

4.アクセスポイントに接続

$ sudo nmcli dev wifi connect " (SSID) " password "パスワード" 
Device 'wlx106f3fxxxxxx' successfully activated with 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.

5.接続されているか確認

$ ifconfig
wlx106f3fxxxxxx Link encap:Ethernet HWaddr 10:6f:3f:xx:xx:xx 
 inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.252.0
 inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:595 errors:0 dropped:0 overruns:0 frame:0
 TX packets:372 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:86952 (86.9 KB) TX bytes:82940 (82.9 KB)

という感じで無事に接続。再起動しても大丈夫です。

ESP32を動かしてみた

$
0
0

ふと秋月のWebサイトをみていたら、ESP-WROOM-32が発売になっていました。早速、秋月へ行ってゲットしてきました。

で、とにかく動かしてみます。すでに先達もいるようなので、参考にさせてもらいながら、なるべく手抜きして動かします。開発環境はESP-WROOM-02の時と同様にArduinoで動かします。

使用した部品

使用した部品は以下の通りです。

  • ESP-WROOM-32
    まずこれがないと、ですね。
  • FT-232RQ USBシリアル変換キット
    最近のお気に入りのUSBシリアル変換基板です。Linuxでも安定して動作するのでGoodです。
  • NJU7223DL1
    3.3Vのレギュレータです。データシートの回路図だと入出力のコンデンサが小さくて済みそうなので、選びました。
  • 0.1uF 1608 チップコンデンサ✕3
    三端子レギュレータの入出力に各1個、USBシリアルのRTS端子とEN端子の間に1個
  • 22uF 1608 チップコンデンサ✕1
    ESP-WROOM-32の資料では電源入力に10uFが付いているので、手持ちの22uFのチップコンを使用
  • 10kΩ 1608 チップ抵抗✕2
    1個はEN端子のプルアップ、もう1個はIO0端子のプルアップ
  • 0.022uF 1608 チップコンデンサ✕1
    EN端子の入力とGND間に接続
  • 適当なタクトSW✕1
    IO0端子をGNDに落としてダウンロードモードに移行させるのに使います
  • ユニバーサルプリント基板
    これを使いました。最近は軽量化を目指して薄めの基板を使ってます。この基板は両面なのですが、内面がスルーホール処理されていないので表裏の接続ができていない箇所があってハマリました。
  • その他
    適当なピンヘッダ・ピンソケット、ポリウレタン被覆線、スズメッキ線

ハードウェアの組み立て

こちらの回路を参考に手抜きして作りました。

  • GND端子はUSBシリアル基板のGNDに接続
  • 3V3端子は三端子レギュレータの出力端子に接続
  • EN端子は10kΩでプルアップ、GNDとの間に0.022uF、USBシリアル基板のRTS端子との間に0.1uFを接続。この0.1uFによりPC側でRTSを制御するとESP-WROOM-32側にリセットがかかります。
  • IO0端子はプルアップ、および、タクトスイッチを接続して、ボタン押下でGNDに落ちるようにします。ボタンを押しながらArduino IDEで書き込み操作をすることで、書き込みモードへ移行できます。
    (注:IO0のプルアップは不要らしい。タクトスイッチによるIO0のコントロールがうまく行かなかった際につけたが、外してOKかは試していない。ちなみに、タクトスイッチでIO0がコントロールできなかった原因はノンスルーホール基板を使ったので基板の表裏で接続ができてなかったため。)
  • TXD0端子はUSBシリアル基板のRXDへ接続
  • RXD0端子はUSBシリアル基板のTXDへ接続

回路図はこんな感じです。15ピンのGNDは手抜きで接続していませんが、動いています。

 

こんな感じになりました。

ESP-WROOM-32は裏返しに両面テープで基板に貼り付けてあります。基板を作りなおす時も多分無事に剥がせると思います。

無計画に作ったので、裏側は汚いですw。左上のレギュレータ周りがどうしようもないですね。

まずはハードウェアの動作確認

Arduinoで書き込みをする前に、ハードウェアの動作確認をしておきます。
といっても、よくよく結線を確認した後、電源を投入(USBケーブルで接続)するだけです。
電源を投入したら、スマートフォンのWiFiアナライザなどアプリケーションで、「ESP-xxxxxx」というSSIDが見えることを確認しておきます。SSIDが見えればとりあえずESP-WROOM-32はアクセスポイントとして動作しているはずです。(注:Arduino環境の構築ができていれば、Arduinoのシリアルモニタで /dev/ttyUSB* を115200bpsでモニタすればブートローダなどの表示も確認できます)

Arduino開発環境の構築

PCはLinux Mint 18の64bit版です。

まず、arduino IDE をインストールします。その前に、古いバージョンをアンインストール。

$ cd arduino-1.6.12
$ ./uninstall.sh 
Removing desktop shortcut and menu item for Arduino IDE... done!

arduino.cc から最新版の arduino-IDE をダウンロード。今回ダウンロードしたファイルは arduino-1.8.1-linux64.tar.xz です。

$ cd ~
$  xzcat ダウンロード/arduino-1.8.1-linux64.tar.xz | tar xvf -
$ cd arduino-1.8.1/
$ ./install.sh
Adding desktop shortcut, menu item and file associations for Arduino IDE... done!

次に、arduino-esp32 をインストール。このページのコマンドをコピペ。

$ sudo usermod -a -G dialout $USER && \
> sudo apt-get install git && \
> mkdir -p ~/Arduino/hardware/espressif && \
> cd ~/Arduino/hardware/espressif && \
> git clone https://github.com/espressif/arduino-esp32.git esp32 && \
> cd esp32/tools/ && \
> python get.py
[sudo] xxx のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています 
状態情報を読み取っています... 完了
git はすでに最新バージョン (1:2.7.4-0ubuntu1) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 39 個。
Cloning into 'esp32'...
remote: Counting objects: 2799, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 2799 (delta 1), reused 0 (delta 0), pack-reused 2785
Receiving objects: 100% (2799/2799), 54.67 MiB | 3.44 MiB/s, done.
Resolving deltas: 100% (1152/1152), done.
Checking connectivity... done.
Checking out files: 100% (903/903), done.
System: Linux, Info: Linux-4.4.0-45-generic-x86_64-with-LinuxMint-18-sarah
Platform: x86_64-pc-linux-gnu
Downloading xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
Done
Extracting xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
Downloading esptool-fe69994-linux64.tar.gz
Done
Extracting esptool-fe69994-linux64.tar.gz
Done
~/Arduino/hardware/espressif/esp32/tools $

いよいよ起動します。デスクトップ上のArduino IDEのアイコンをダブルクリックして、Arduino IDEを起動。
起動したら、「ツール」→「ボード:xxx」→「ESP32 Dev Module」を選択でESP32モジュールを選択します。

サンプルを動かしてみる

次にサンプルを動かしてみます。シリアルに結果が表示されるものが良いと思うので、WiFiScanを動かしてみます。
「ファイル」→「スケッチ例」→ESP32 Dev Module用のスケッチ例の下の「WiFi」→「WiFiScan」選択すると、サンプルプログラムが表示されます。「ツール」⇒「シリアルポート」⇒「/dev/ttyUSB0(環境によって変わります)」でシリアルポートを選択した後、「ツール」⇒「シリアルモニタ」でシリアルモニタを起動しておきます。

準備ができたら「⇒」ボタンをクリックして、書き込んでみます。「⇒」をクリックする際にはIO0に接続したタクトスイッチを押しながらクリックすることでダウンローダを起動します。「Wrting … 」という表示が出たら、タクトスイッチのボタンを離します。

書き込み完了後はこんな感じ。

書き込みが終わると、シリアルモニタの方に表示が始まります。

 

こんな感じでSSIDのリストが表示されれば成功です。

ESP32でNTP Clientを動かしてみた

$
0
0

一昨日のESP-WROOM-32(ESP32)をArduino IDEで動かしてみた続きです。

Arduino IDEにはWiFi関連のサンプルプログラムがあるので、動かしてみました。

「ファイル」⇒「スケッチ例」⇒「あらゆるボードのスケッチ例」⇒「WiFi」の下にいくつかサンプルが有りますが、こちらはESP32環境ではビルドできませんでした。Espressif社提供のライブラリとArduino IDEに初めから付いているWiFiライブラリでは完全に互換ではないようです。(確か、バージョン情報を取得するようなライブラリでコケてたような気がします)

「ファイル」⇒「スケッチ例」⇒「ESP32 Dev Module用のスケッチ例」⇒「WiFi」の下の「WiFiIPv6」というのを開いてみると、NTPクライアントプログラムのように見えますので、これを動かしてみることにします。
スケッチ例を開いて、冒頭にある

#define STA_SSID "xxxxxxxxxxxxxxxxx"
#define STA_PASS "xxxxxxxxx"

の部分にSSIDとパスワードをセットして名前を付けて保存、シリアルポートを /dev/ttyUSB* に設定した後、シリアルモニタを起動して、次に基板上のタクトスイッチを押しながら、「マイコンボードに書き込む」としてやると、ビルドと書き込みが行われます。タクトスイッチは「Writing at 0x00010000… (5 %) 」という表示が出たところで離してもOK。

書き込みが終わると、ESP-WROOM-32モジュールは勝手にリブートして起動します。

 

シリアルモニタ側には IPv6 でのステーションとしての動作、アクセスポイントとしての動作状況の表示、IPv4のステーションとしての動作状況が表示され、IPv4のIPアドレス取得ができると、その後NTPクライアントが動作している状況が表示されました。

また、同時にアクセスポイントとしても動作しているので、スマートフォンのWiFiアナライザなどのツールでみると「esp32-v6」というSSIDでのアクセスポイント動作が確認できました。

Pine64を買ってみた

$
0
0

秋月に Pine64 A+ 1GB が入っていたので、買ってみました。価格はRaspberry Pi 3よりも安い2,980円。といっても、Pine64 A+はBluetoohもWiFiもないのでちょっと価格差的には微妙かもしれない。一緒に長さ15cmのmicroUSBケーブルとHDMIケーブルを購入。

早速、秋月のページにある公式サイトへのリンクからUbuntu Mateのイメージをダウンロードして、ddコマンドで適当な8GBのMicroUSBに書き込んでMicroUSBコネクタに挿入、HDMIケーブルでディスプレイに接続、マウスとキーボードを接続、イーサケーブルをルータに接続して、MicroUSBコネクタを挿して電源投入。・・・が、電源LEDは点くものの、うんともすんとも言わない。
MicroUSBケーブルを1.5mの長いものから購入した15cmの短いものに変更したら起動した。結構電流を食うので電圧降下しているのかもしれない。

起動すると、グラフィカルログイン画面になるので、ユーザー名: ubuntu 、パスワード: ubuntu でログインする。当然かもしれないけど、英語モードで起動。ターミナルを開いたりしてみたが結構軽快に動くようである・・・が、やっぱりストレージがMicroSDなのでストレージアクセスを伴うものはちょっともたつく。

とりあえず、アップデートをかけてみる。

$ sudo apt-get update
$ sudo apt-get upgrade

を試してみるが、何かパッケージの不整合を起こしているみたいで、追加でコマンドが要る模様。指示に従って、以下の通り試してみた。

$ sudo dpkg --configure -a
$ sudo apt-get install -f
$ sudo apt-get upgrade

でとりあえず一通りはアップデートができた模様。

System ⇒ Preferences ⇒ Hardware ⇒ Keyboard ⇒ Layout で Add を押して、キーボードレイアウトで Country で Japan を選んで Add を押す。レイアウトの順位を Japanese を一番上にして Close を押したら、キーボードレイアウトが日本語になった。

System ⇒ Preferences ⇒ Personal ⇒ Language Support を選択すると、The language support is not installed completely と出るので、Install を押す。パスワードが聞かれるので入力すると、language support をインストールし始めた。しばらく待つと、インストール完了。
この状態だと英語のみなので、 Install/Remove Languages … を押して、Japaneseにチェックを入れてApplyを押すと、フォントやfcitx、libreofficeのモジュールなどをダウンロード&インストールし始めた。
完了したら、Language for menus and windows のリストの一番下にある日本語を一番上にドラッグ&ドロップ、Keyboard input method system を fcitx に設定して、Apply System-Wide をクリック、再度パスワードを聞かれるので入力。
次に Regional Formats タブを選んでこちらも日本語を選択して Apply System-Wide をクリック。完了したら Close を押して、一旦ログアウトしてログインし直すと、日本語化が完了している。

これだけだと、日本語入力で漢字キーが使えなかった。キーボードの選択で言語別で日本語を選択しておく必要があったようで、設定を修正。右上のキーボードのアイコンを右クリックして「設定」を選択すると、キーボードが英語になっているので、「+」を押して日本語キーボードを追加、順番を一番上に持ってくる・・・が、日本語入力はできない。

とりあえず、

$ sudo apt-get install synaptic

で手慣れた Synaptic をインストール。

Synaptic パッケージマネージャから ibus-anthy をインストールして、システム⇒設定⇒ユーザ向け⇒言語サポートで、キーボード入力に使うシステムとして IBus を選択して再起動後、右上のキーボードアイコンから日本語−Anthyを選択したところ、日本語入力ができるようになった。

とりあえず、使えるようになった。

秋月のLPC11U35マイコンボードを動かしてみた

$
0
0

久しぶりに秋月へ行ったら、「USBメモリにファイルを書き込むのとほぼ同様の手軽さでプログラムを書き込むことができます」という触れ込みのマイコンボードが安く売っていたので、買ってみました。

で、動かしてみるべく、Linuxマシン(環境はいつものLinux Mintです)へ接続すると、確かにマスストレージデバイスとして認識します。で、秋月のWebサイトにある動作確認用ファームウェアを書き込んで、リセットしてみても、再びマスストレージデバイスとして認識されて、LEDが点滅する気配がありません。

mbedとしても動作する、というのでサンプルプログラムを作って同様に書き込んでみてもサッパリです。linuxではドラッグアンドドロップでの書き込みはうまく行かないのかと思って、コマンドラインで cp コマンドでコピーしてみてもダメです。

で、ぐぐってみたら、どうやら linux ではそもそもファイル書き込みではうまくいかないようで、こちらの情報によると先頭の4ブロック(2キロバイト?)を削ってddで書き込むとうまく行くようです。

ただ、デバイスファイルなんていろんな要因で変わってしまうので、毎回やるのは面倒ですし、事故のもとなので、pythonのスクリプト化しました。

lsblkコマンドで見た時に、転送方法が usb で、モデルが’LPC1XXX IFLASH  ‘となっているデバイスファイルを探して、そのデバイスファイルをアンマウントして、ddコマンドで書き込むだけです。スクリプトファイル⇒mbedにlinuxから書き込むためのスクリプト

ルート権限が必要なのは変わらないので、sudo 付きで python スクリプトを実行します。

$ sudo python ./write_mbed.py firmware.bin 
mbed device is /dev/sdc
umount /dev/sdc
dd if=firmware.bin of=/dev/sdc seek=4
16+1 レコード入力
16+1 レコード出力
8456 bytes (8.5 kB, 8.3 KiB) copied, 0.387457 s, 21.8 kB/s

みたいな感じで使います。(途中の umount とか dd コマンドの行はこのスクリプトの処理内容を表示しているだけで、書き込みに必要な操作は最初の1行目だけです)

 

NanoPi NEOを動かしてみた

$
0
0

秋月にまた安価なLinux板が出ていたので、つい買ってしまいました。

今回買ったのは、Nano Pi NEO 512MB で、価格は1,680円。本家本元?のFRIENDLY ELECでは512MB版は$9.99のようなのですが、思い立ったら買えるということを考えると、高くはないかと思います。併せて、専用のヒートシンクも買ってきました。こちらは400円ですが、本家本元では$2.97。本家では、その他のオプションとして3Dプリントされたハウジングがあるようなのですが、こちらは残念ながら秋月にはありません。

とりあえず、秋月の商品のところにあるリンクを辿って、official-ROMsからUbuntu-Core 4.11 をダウンロード、Linux Mint 16のUSBイメージライタで8GBのMicroSDに書き込みます。シリアルコンソールとして、手持ちのUSBシリアル変換ケーブルをNano Pi NEOの基板上のシリアル端子に接続してGtkTermで115200bpsのN81で接続、Ethernetは適当にDHCP環境のルータに接続して、MicroUSBにて電源供給すると、U-BOOTのメッセージに続いてLinuxの起動メッセージがつらつらと出てきて、そのうち勝手にログインしてくれます。シリアルコンソールの場合には自動的にログイン状態になるようです。初めから DHCPクライアントも動いているので、シリアルコンソールにIPアドレスも表示されます。

コンソールのみですが、基本はUbuntuなので難しいことはありません。秋月からもリンクされているサポートページの「6 Work with Ubuntu-Core with Qt-Embedded」あたりに従っていけばOKです。とりあえず、お約束?の、

$ sudo apt-get update
$ sudo apt-get upgrade

あたりと、

$ sudo npi-config

でパスワードの変更あたりを実施。

$ sudo apt-get install avahi-daemon

とやると、別の linux マシンから

$ ssh pi@NanoPi-NEO.local

とやってログインできるようになります。(NanoPi-NEOはデフォルトのホスト名。npi-config で設定変更できます)

初めから avahi-daemon が入っていれば、イメージをMicroSDに書き込んで、とにかく起動して、しばらく待ってから

$ ssh pi@NanoPi-NEO.local

でログインできそうなのがちょっと残念かも。まあ、IPアドレス調べればいいだけなんですけどね。


Pine A64+ 2GBにarmbianをインストール

$
0
0

Pine A64+ であるが公式サイトのUbuntu Mateはアップデートを行っていくと /boot パーティションの容量不足でアップデートができなくなってしまいました。これを機会に、armbianを試してみました。(ちなみに、以前の記事では1GB版でしたが、その後、秋月で2GB版が出ていたので買ってしまいました・・・)

1.イメージを書き込み

Ubuntu Desktopをこちらから bit torrent 経由でダウンロードして、ファイル展開、Linux Mint のUSBイメージライタで16GBのMicroSDカードに書き込みます。

2.起動

HDMIで液晶モニタに接続、USBでキーボードとマウスを接続してMicroUSB経由で電源供給してしばらくすると、CLIのログイン画面が表示されます。ここで、ユーザー名:root、パスワード:1234でログインすると、rootのパスワード変更が求められますので、パスワード設定を行います。引き続き、一般ユーザーの作成が求められますので、ユーザー名とパスワードとその他のログイン情報(空欄のままで大丈夫)を設定していきます。設定が終わると、GUIが起動します。

3.アップデートの適用

DHCPサーバーのある環境なので、何もしなくてもネットワークに接続できるようになっています。termnialを開いて、

$ sudo apt-get update
$ sudo apt-get install

でアップデートをすべて適用します。

4.日本語サポートの追加

左上の「Application」から「Setting」を選択、その下の「Language Support」を選択すると、「The language support is not installed competely」と表示されるので「Install」をクリックして不足部分のインストールを行います。この処理はかなり時間がかかります。途中、パスワード入力を求められるので、適宜入力してやります。
インストール直後だとサポート言語はEnglishのみなので、下の方の「Install/Remove Languages…」をクリックして、Japaneseにチェックを入れて「Apply」をクリック。
再起動してログオンし直すと、メニューなどが日本語化されます。

5.時計表示の修正

時計表示を右クリックしてプロパティを選択、タイムゾーンが空白になっているので、Japanに修正すると時刻表示が正しくなります。

6.ArmbianのConfig

デスクトップ上のConfigのアイコンをダブルクリックすると、uxtermが開いてその中でUbuntu16.04のconfiguration utilityが起動します。とりあえず必要な設定項目はないようですが、ここに設定があることを忘れないために備忘録としてメモしておきます。

7.ToDo

残っていること

  • 解像度が1280×720になっているので、1920×1080に変更したい。
  • 日本語入力の設定

ROCK64/4GBを買ってみた

$
0
0

秋月にROCK64が売られていたので買ってみました。ROCK64はRaspberry Piと似たような形状のボードコンピュータですが、ギガビットイーサネットとUSB3.0を搭載し、搭載RAM容量別に3モデルあって、この手のボードとしては大容量の4GBのRAMが搭載されているモデルがあるので手を出してみました。秋月のページでは電源供給には何やら工作しないと電源供給できないような面倒くさいことが書いてありますが、秋月で売っている内径2.1mmの5V3A出力のACアダプタと、2.1mmメス⇔1.3mmオスの変換プラグ(たぶんこれ)で基板上のDCジャックから電源供給できました。

次に、ソフトウェアというか、Linuxのイメージですが、こちらに掲載されているものをいくつか試してみましたが、まだどれも今ひとつな感じです。UARTコンソール経由で制御したかったのですが、シリアルコンソールは通信パラメータがわかりません。速度をいろいろ変えても、ubootも正しく表示できないです。(オシロスコープで直接見れば良いのですが・・・)
また、USB HUBを噛ませているからかもしれないですが、USBキーボードとUSBマウスで入力しようとすると、時々キーイベント(キー押下、キー放す)を取りこぼすようです。

もうしばらくいろいろいじってみる必要がありそうです。

NanoPi NEO2のデバッグシリアルに苦労した話

$
0
0

Gigabit Ethernet環境でtcpdumpをひたすら放置で動かしておきたくて、NanoPi NEO2に手を出してました。

ファイルシステムのイメージファイルは違いますが、NanoPi NEOと同じ手順で環境構築できて、一度はシリアルコンソールが動いているUART0(デバッグシリアル)も動いていたのですが、しばらくシリアルコンソール無しで運用した後、再びシリアルコンソール経由で操作をしたくなった時に苦労しました。

公式サイトにある端子説明がこちらで、実物を半田面から写真を取ったのが以下です。

わかりますでしょうか??

実は写真に写っているNanoPi-NEO2の実物のデバッグシリアルの端子表記は間違っているので、シルク印刷の端子表記を信用すると動かない、という罠に陥ります。本当は、写真の上から、GND、5V、TX、RXの順で逆順になっています。

・・・ということで、最初に動かした時は公式サイトの端子説明をみて配線したので無事動いたのですが、今日改めて動かそうとした時には基板のシルク印刷をみて動かそうとしたので、動かなかった、というオチでした。悩んだ数時間を返してくれ、という感じです。

NanoPi NEO2のNASキットを動かしてみました

$
0
0

秋月で NanoPi NEO/NEO2 用のNASキットが売っていたので、買ってみました。

秋月の説明書きにはヒートシンクが同梱されているとは書いてない(写真には写っていますが・・・)ので、思わずヒートシンクも余計に買ってしまいましたが、これから買う方はキットにヒートシンクが同梱されているので気をつけて下さい。

このNASキット以外に、

  • NanoPi-NEO2 (または NanoPi-NEO)
  • 2.5インチのHDDまたはSDD(まずは余り物の160GBをつけてみました)
  • CR2032コイン型リチウム電池
  • 起動用のMicroSDカード(手持ちの16GBを使いました)
  • 12VのACアダプタ(秋月で標準的なDCプラグがついているもの)

の準備が必要です。

組み立てにあたっては、

  • ハンダゴテ一式(NanoPi-NEO2の端子はハンダ付けが必要)
  • プラスドライバ(たぶん+1のもの)

も必要です。

とりあえず、端子をハンダ付けしました。ランド径が小さいので、ハンダ付けしにくいです。

この状態で、別のNanoPi-NEO2 から持ってきた MicroSD カードを挿して Ubuntu-Core で起動して ssh でログイン、適当に /dev/sda1 を mount してやると、中身を見ることができましたので、動作は問題ないようです。

ヒートシンクを付けてみました。

この後、Official ROMのイメージを

https://www.mediafire.com/folder/ah4i6w029912b/NanoPi-NEO2

の下の Official ROMs から nanopi-neo2_debian-nas-jessie_4.11.2_20171103.img.zip をダウンロードして、これを展開、USBイメージライタでMicroSDに書き込んで電源投入します。

ブラウザで、 http://friendlyelec.local/ にアクセスすると、

として画面が出ました。

ユーザー名: admin
パスワード: openmediavault

でログインすることができました。

とりあえず、

  • Web管理者パスワードの設定
  • タイムゾーンの設定、NTPの有効化
  • ホスト名を NanoPi-NAS に変更
  • アップデートの確認&インストール
  • ディスクのワイプ、ファイルシステム作成
  • ユーザーの作成

をしてみました。

この後、プラグインを見てみると、「openmediavault-flashmemory」というのがあり、これを使うと MicroSD への書き込みを減らせるようです。・・・が、インストールを試みたところエラーになりました・・・。

あと、デフォルトで root での ssh ログインが有効になっています

$ ssh root@nanopi-nas.local (変更していない場合はfriendlyelec.local)
root@nanopi-nas.local’s password: (デフォルトパスワードは fa )
root@nanopi-nas:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@nanopi-nas:~# passwd pi
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@nanopi-nas:~# passwd fa
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@nanopi-nas:~#

として、ログインパスワードは変更しておく必要があります。(もしくは、SSHを無効化したほうがよいかも)

・・・と思ったのですが、/etc/ssh/sshd_config の AllowGroups の項目には root と ssh しかいないので、実際にログインできるのは root だけのようです。

NanoPi NEO2のUbuntu CoreでWiFi有効化

$
0
0

NanoPi NEO2 の Ubuntu Core で WiFi を有効化したので、その際のメモです。

使用可能なUSBアダプタは

  • RTL8188CUS 802.11n WLAN Adapter
  • RT2070 Wireless Adapter
  • RT2870/RT3070 Wireless Adapter
  • RTL8192CU Wireless Adapter
  • NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]

ということらしいですが、きっと Raspberry Pi で動作可能なものは動くのでしょう^^;

USBコネクタにWiFiアダプタは挿しておきます。

 

1.使用可能なデバイスのリストアップ

$ sudo nmcli dev
DEVICE           TYPE      STATE          CONNECTION 
eth0             ethernet  connected      Wired connection 1 
wlx106f3fxxxxxx  wifi      disconnected   -- 
lo               loopback  unmanaged      --

という感じで、wlxに続いてMACアドレスという形でデバイスが表示されました。

2.WiFi起動

$ sudo nmcli r wifi on

3.アクセスポイントのスキャン

$ sudo nmcli dev wifi
*   SSID             MODE   CHAN  RATE       SIGNAL  BARS    SECURITY 
    xxxxxxxxxxxxxxx  Infra  2     54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
    Mxxxxxxxx        Infra  11    54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
    axxxxxxxxxxx     Infra  11    54 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
    Gxxxxxxxx        Infra  5     54 Mbit/s  82      ▂▄▆█  WPA1 WPA2 
    Nxxxxxxxx        Infra  5     54 Mbit/s  82      ▂▄▆█  WPA1 WPA2 
    sxxxxxxxxxxx     Infra  8     54 Mbit/s  52      ▂▄__   WPA1 WPA2 
    Bxxxxxxxxxxxxx   Infra  1     54 Mbit/s  42      ▂▄__   WPA2 
    axxxxxxxxxxxxxx  Infra  8     54 Mbit/s  22      ▂___    WEP 
    axxxxxxxxxxxxx   Infra  11    54 Mbit/s  22      ▂___    WPA1 WPA2

という感じでグラフィカルに表示されます。

4.アクセスポイントに接続

$ sudo nmcli dev wifi connect " (SSID) " password "パスワード" 
Device 'wlx106f3fxxxxxx' successfully activated with 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.

5.接続されているか確認

$ ifconfig
wlx106f3fxxxxxx Link encap:Ethernet HWaddr 10:6f:3f:xx:xx:xx 
 inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.252.0
 inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:595 errors:0 dropped:0 overruns:0 frame:0
 TX packets:372 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:86952 (86.9 KB) TX bytes:82940 (82.9 KB)

という感じで無事に接続。再起動しても大丈夫です。

NanoPi NEO2セットアップ(Armbian編)

$
0
0

一旦は公式ディストリビューション?であるFriendlyCoreをインストールしたのですが、できるだけオープン系ということでArmbianをインストールし直しました。

OSイメージは Armbian の NanoPi NEO2 のページから Armbiean Stretch をダウンロードしました。ダウンロードしたイメージファイルを展開して、USBイメージライタでMicroSDカードに書き込むのは同じです。

書き込んだMicroSDカードをNanoPi NEO2に挿入します。ローカルPCで

$ fping -a -g 192.168.xxx.0/24 2> /dev/null

を電源投入前後で実行、増えたIPアドレスを調べます。(注:電源投入後の実行はしばらく待ってから行います)
調べたIPアドレスに対して、

$ ssh root@192.168.xxx.xxx

として、パスワード「1234」でログインします。ログインすると、rootのパスワードの設定変更を求められ、引き続きユーザーアカウントの作成を求められますので、適当に作成します。作成完了後、そのまま、

# apt-get update
# apt-get upgrade
# apt-get avahi-daemon
# reboot

としてアップデートとavahi-daemonのインストール、カーネルバージョンアップ後の再起動を行います。以降は

$ ssh (ユーザー名)@nanopineo2.local

でリモートログインできます。リモートログイン後、

$ sudo armbian-config

として、Personalの項目内の Timezone、Locale、Hostname を適当に設定しておしまいです。

秋月ドップラセンサキット用ケースを作成

$
0
0

ずっと前に秋月で購入したNJR4265J1を使用したドップラーセンサキットがあったのですが、基板を裸で動かすのもイマイチかと思い、放置してありました。
で、部屋を整理していたら出てきたので、Fusion360の練習を兼ねて3Dプリンタでケースを作ってみました。

できるだけネジなどを使わずに作れないかということで、基板の固定は取り付け穴に嵌まる凸の形状を作り、そこに嵌めた基板を反対側からも棒で抑える形状としました。分割したケース同士はスナップフィットを使って結合することにしました。

出力はPLAを使って、Infillは100%としました。スナップフィットの柱が薄かったせいか、Infill率が低いと柱が折れてしまいます。

で、最終的な形態がこちら。USB端子しかないのでシンプルです。発熱がよくわかりませんが、とりあえず放熱用の穴は付けていません。(ソフトウェアでの制御はまだしていませんが、熱くなる気配はなさそうなので)
基板上についているLEDがかなり明るく、出力に使用したグレーのPLAだと中のLEDが光っているのが透けて見える状況です。状況によっては黒のPLAで出力し直したいと思いますが、とりあえず思った以上にうまくいきました。


秋月ドップラーセンサーキットをテストしました

$
0
0

3Dプリンタでケースを作った秋月ドップラーキットですが、テストしてみました。

環境はLinuxMint19です。

1.準備

  • システム管理の「ユーザーとグループ」でdialoutグループに自分のユーザーを追加
  • synapticでmoserialをインストール
  • 一旦再起動(実際にはログアウト/再ログインでいいはず)

2.通信ソフトのセットアップ

  • アクセサリの下のmoserialを起動
  • 「ポートの設定」で、デバイスを/dev/ttyUSB0(環境による)、ボーレートを9600、データのビットを8、ストップビットを1、パリティをodd、ハンドシェイクは両方共チェックなし、アクセスモードはRead and Write、ローカルエコーはチェックありに設定

3.接続

で、「接続」を押して接続・・・・すると、そこは USB-UARTチップがFT234Xなので、見事にデスクトップがハングアップしました。正確には、moserialは動いていて、@ERと@EOが繰り返し送られてきて表示されるのですが、何も操作できません。で、一旦、USBケーブルを抜いて、再度刺したらデスクトップが復活しました。

うーむ、相変わらずですね、FT234X。どうにかならないんですかねー??
でも、ぐぐっても、FT234XとLinuxの組み合わせでダメという情報は少ない。うまくいったという情報も少ないのだけど。(もっと正確に書くと、うまくいったという情報はポツポツあるのだけど、本当にFT234Xのままでうまく行っているのか、他のFT232R系のものに変えてうまく行っているのか曖昧なものが多いような気がする)

うまく行かないのは自分だけなんだろうか??

Raspberry Piにつないでドップラーセンサーをテスト

$
0
0

LinuxMintにつないで(たぶんFT234Xのせいで)うまくいかなかった秋月のドップラーセンサーキット。こんどはRaspberry Piにつないでテストしてみました。

Raspberry Piにつないで電源投入後、SSHで接続。dialoutグループにユーザー pi がいるのを確認して、screenをインストール。おもむろに、

$ screen /dev/ttyUSB0 9600,cs8,parenb,parodd,-cstob,-crtscts

としてみた。
センサーに手を近づけると反応するので、何か送ってきているのだけど、附属のマニュアルとは異なり、文字化けしているように見える。うーむ。

・・・・まじめにシリアルの波形見るか・・・。

ROCK64リモートデスクトップ環境

$
0
0

1年位前に買ったROCK64 4GBにArmbian Ubuntu18.04を入れてみました。別の端末からリモートデスクトップで接続できる環境が容易に構築できました。RAMが4GBあるので、目的によっては非常に便利に使えそうです。

1.Armbian Bionic for ROCK64のダウンロードとMicroSDへの書き込み

Armbianからダウンロードします。MicroSDへの書き込みはいつものようにディスクイメージライタで行いました。

2.初回電源投入

MicroSDを取り付け、LANに接続します。
接続先のIPアドレス確認のため電源投入の前に、fping でセグメント内で現在使われているIPアドレスを確認します。

$ fping -g 192.168.1.0/24

ROCK64の電源を投入し、しばらく待って、再度fpingコマンドを実行、差分のところがROCK64のIPアドレスなので、そのアドレスに対して

$ ssh root@192.168.1.x

としてログインします。初期パスワードは 1234 です。

※どうも、avahi-daemonが初めから動いているっぽいので、

$ ssh root@rock64.local

で行けそうな気がします。

ログインに成功すると、現在のパスワード、新しいパスワードを確認してくるので入力します。
さらに、通常ユーザーの作成に移るので、適当に通常ユーザーを作成します。

一旦ログアウトして、再度作成したユーザーでログインし直します。

3.初期設定

$ sudo armbian-config

で適当に初期設定を行います。

Systemの項目から以下のソフトウェアをインストールします。

  • Minimal Desktop
  • Default(ブラウザその他のインストール)
  • Lightdm(ログインマネージャ)

引き続きPersonalの項目から以下の項目を設定します。

  • TimezoneをAsia/Tokyoに設定
  • Languageはja_JP(UTF-8)

さらに、Softwareの項目からRDPを設定します。

4.リモートデスクトップクライアントから接続する

設定が終わると、別のマシンから Remmina(RDPクライアント)で接続するとリモートアクセスが可能となっています。すでに部分的ですが日本語化もされています。

「アプリケーション」⇒「Settings」⇒「言語サポート」で言語の設定を行いますが、この状態では英語のみインストールされていますので、「言語のインストールと削除」から日本語にチェックを入れて適用、キーボード入力に使うIMシステムにfcitxを選択します。その後、メニューとウインドウの言語で日本語を一番上に持ってきてから、「システム全体に適用」をクリックします。

地域フォーマットも同様に日本語を選択し、システム全体に適用します。

一旦ログアウトして、再度ログインして概ね完了です。
初めから Chromium ブラウザも入っているので、

5.ルートファイルシステムをUSBメモリに移動する

USBメモリを挿入した状態でarmbian-configを起動して、System settings で Install(Install on SATA, eMMC, NAND or USB)を選択、Boot from SDを実行すると、USBメモリにルートファイルシステムを移動してくれます。(実行する際にUSBメモリのパーティションを削除しておくと、自動でパーティション作成ツールが起動します)

USBメモリはこの記事で使ったSandisk UltraFit 3.1を使いましたが、システム移動後に

$ dd if=/dev/zero of=aaa.tmp bs=1M count=1024

として1GBのファイルを作成してみたところ、所要時間は約10秒、107MB/sの速度が出ました。
まだ挙動がよくわからないところもありますが、速度面でも優位なのではないかと思います。

※Boot from SPIを実行するとSPIフラッシュにブートローダを書き込んで、SDカード無しで起動できるようになるのだと思いますが、戻し方を確認していないのでとりあえずbootはSDカードのままとしました。また、この作業は今回は最後にやりましたが、本来は最初にやっておいたほうがトータルの構築時間は短くて済むような気がします。

NanoPi NEO用ケースを設計してみました

$
0
0

手元に使っていないNanoPi NEO(NEO2ではない)があるのですが、これにあわせたケースを設計してみました。(NanoPi NEO2用のケースのデータはThingiverseにあるんですが、NEO用のケースのデータってみつからないんですよね・・・)

前回、秋月電子のドップラーセンサー用ケースを設計した際には、基板図面だけ見て何もないところからFusion360で設計しましたが、今回はGrabCADにあったNanoPi NEO自体のIGS形式のデータをFusion360に取り込んで、これに合わせて設計してみました。

で、設計したのがこちらです。

NanoPi NEO2用のケースとかだと、ネジで締結するのが一般的ですが、今回もスナップフィットでいけないか狙ってみています。1回目に出力した際には、積層ピッチが0.2mmで荒かったからか、何箇所か折れてしまいました。

上記のデータは折れてしまったところ、実物と寸法がずれているところなどを修正した2回目出力中のものです。今回は積層ピッチ0.1mmにしたので、出力に4時間半もかかってしまいます。

余談ですが、今回は新たに入手したPRILINE製の黒のPLAで出力してみています。Ender 3を買ったときに一緒に買ったサインスマートブランドの黒のPLAフィラメント(3,500円位ですが、本体とセットだと半額になった)と比べると価格が半分くらいの1,800円位です。まず、サインスマートブランドの黒のPLAフィラメントと比べると、やはり多少扱いにくい感じがします。0.2mmピッチで出力したときの強度が弱いことと、細部の造形が何故かイマイチ(パラメータ詰めればいいのかもですが)なところはありますが、普段使いには十分かなと言う気がします。(普段使いだけに0.2mmに難があるのがつらいですが)
難点はプラットフォームシートにガッツリとついてしまって剥がすのが大変なことです。このくらいガッツリついてしまうのであれば、耐熱ガラスにして何も付けなくても定着するのかもしれません。

あと、PRILINEのグレーとの比較ですが、自分はグレーの方が扱いやすいと感じました。上記のケースもグレーだったら問題なく0.2mmピッチで出力されるのではないかと思っています。

NanoPi NEO用ケースを設計してみました(2)

$
0
0

引き続きNanoPi NEO用ケースの続きです。

昨日のデータを0.1mmピッチで夜間に出力してみると・・・・

という衝撃的な結果になっていました。やはり、PRILINEの黒のPLAフィラメントは脆いようで、造形中にあちこち折れてしまったようです。で、放熱用のスリットの部分の柱などを太くして再度出力していたのですが・・・・

・・・・よく見ると、フィラメントが送られていない時があります。さらによく観察すると、フィラメントを巻いてあるスプールの回転がかなり渋いのと、フィラメント自体の表面に光沢があって滑りやすいようです。そのため、フィラメントが送られておらず、結果として樹脂の供給不良で層間で割れやすく(脆く)なっているのかもしれません。
スプールをよく見ると、成形品質が今ひとつのような感じで、ヒケによる歪みがあります。そのため、Ender 3のような簡易なスプールのホルダーではスプールの回転の抵抗になっているように思えます。とりあえず、スプールのホルダーを移設して様子を見ながら出力しました。

で、今度は修正したものを0.2mmで出力してみましたが、

というような感じでした。だいぶいい感じにはなってきたのですが、LANとUSBの間の柱が太ってしまって、かなりきついことになってしまい、無理に挿入するとまたスナップフィットが写真の通り、折れてしまいました。

再度修正して、以下のようにして改めて0.1mmピッチで夜間に出力してみます。

Viewing all 43 articles
Browse latest View live