2018年05月19日

Nano Pi Neo2 拡張ボード

今回は最近設計したNano Pi Neo/Neo2拡張ボードを紹介します。


Nano Pi Neo/Neo2は4cm角の大きさで小さく安いのが売りです。

ただ、USBコネクタが1つしかなく、無線LANでポートを使ってしまうと他に何も接続できない状況です。



ピンヘッダにはUSBが2つあるため、I2Cポートと合わせて

拡張ボードを作成しました。


  

 設計イメージはこんな感じです。


nanopi_extb.jpg



IMG_1.JPG


IMG_2.JPG

↑microUSBのコネクタを挿すと2つの内、1つのUSBポートと

若干干渉するので、ピンヘッダ、ソケットは長めの方がよさそう。

IMG_3.JPG


仕様は下記の通りです。



  • USB2ポート(フルサイズtypeA、USB1、USB2)搭載

  • I2Cポート(Groveコネクタ、I2C0)搭載

  • RTC(リアルタイムクロック、DS1307、CR1220バッテリ、I2C0内部接続)搭載

  • I2Cは10kでプルアップ抵抗を基板回路に搭載


既知の注意点は下記の通りです。



  • NanoPi GPIO1、GPIO2に接続するためのピンヘッダは別売り

  • 取付するピンヘッダの長さが標準的な10mmの場合、

  • 電源供給用microUSBと拡張ボードのUSBが干渉してどちらかが使用できない。
    この場合は長いピンヘッダやピンコネクタを使用して干渉を回避するか、
    microUSBを使用せずにDebugUARTピンをヒートシンク横から取り出して5V電源を供給する。

  • RTC DS1307は電池なしで電源に接続した場合、破損する可能性があります。必ず電池を入れて使用する。





基板のガーバーや使用方法等はこちらで紹介しています。

また、近々1個1500円前後で販売開始予定です。

販売先決定次第、また、こちらで告知します。


これでNanoPiの小さいメリットを生かしたデバイスがいろいろ作れそうです。

posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年05月05日

I2C Bus Accelarator

今回はGrove等で使用されるI2Cを延長する方法について紹介します。


I2Cはマイコン周辺の機器との通信を想定しているため、
数メートルといった距離の通信を想定していません。


Grove規格ではハブやケーブルを接続して、
数mまで伸ばしたいということも多々あると思います。

その際に便利な部品、バスアクセラレータLTC4311を紹介します。


バスアクセラレータLTC4311は、400pFのI2C仕様を上回るバス負荷条件で
データ伝送速度と信頼性を向上させるアクティブ・プルアップです。

機能と利点
• I2Cバス立ち上がり遷移時間を改善
• I2Cバス上に複数のデバイスを接続する場合にデータの完全性を保証
• 広い電源電圧範囲:1.6V〜5.5V
• “L”状態のノイズマージンを改善
• 最大400kHz動作


簡単に言えば、
配線が長くなってクロックや信号が鈍ってしまうところを
High、Lowをバシッと決めてくれるデバイスです。

バスアクセラレータLTC4311を接続することによって
複数のデバイス接続や長距離で大容量の相互接続ができるようになります。

簡単にGroveで使えるようにバスアクセラレータアダプタを設計してみました。


I2C_Bus_Acc.jpg

Groveコネクタのラインに繋げることで
I2Cの信号の鈍りを除くことができます。

近々、バスアクセラレータLTC4311の有無で
どれくらい長くできるか検証してみたいと思います。
ラベル:部品 電子部品
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年04月28日

TinkerBoard S 試食

Tinker Board Sを入手したので、
ちょっと試食してみました。

今回はマルツで購入しましたが、
他にもPhysical Computing Labでも在庫ありの様です。

これまでRaspberryPIやBeagleboneを使ったことがありましたが、
TinkerBoard Sに興味が湧いてきました。


RaspberryPIやnano pi等の問題として
個人使いでは問題ないものの、
本格的に使うようになるとSDカードは
セキュリティー的観点や寿命の面で不安が残る。
本当はeMMC内蔵が好ましい


一方、BeagleboneはeMMC内蔵なのは良いが
CPUがTiのため長期供給できるものの、
依然としてシングルコア。
最近のdebianでは動作が重い...


Tinker Board Sは初代のTinker BoardにeMMCが内蔵となり、
かつ、CPU1.8GHz、メモリ2GBのモリモリ仕様です。
ただ、Beagleboneの様にUSBネットワーク機能はないようです。
欲を言えば、USBネットワーク機能、
スーパーキャパシタでRTC内蔵してくれるとさらに良かったのですが...



早速、OSをダウンロードして起動っと思ったのですが。
ASUSのサイトからTinkerOS_Debian V2.0.5をダウンロードして
SDに書き込んで起動したものの....
CUIで起動後、GUIを起動させると文字化け。
更にtinker-configコマンドのタイムゾーン設定等もおかしい。
なにやらV2.0.5はバグがあるようです。
Zipからの解凍ミスと判明しました。。。

仕方なく、ASUSのサイトからShowAllをクリックして、
1つ前のTinkerOS_Debian V2.0.4をダウンロードしました。


残念ながらTinkerOSにはデフォルトでNode-Red、Nodejsが入っていませんでした。

sudo apt-get install nodejsではnpmが入らないため、
下記のコマンドでnpm含めてインストールします。

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g --unsafe-perm node-red

すんなりインストールできました。

tinkers_nodered.JPG

ChromiumブラウザやNode-Redが一瞬で起動しました。
OS自体の起動も爆速です。
Beagleboneでは処理が重く諦めていたことも
Tinker Boardならできそうです。
時間を見つけて色々試してみたいと思います。

posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年04月14日

3Dプリンタ反り防止その2

3Dプリンタで大きなサイズを印刷する際に
悩ましい反りをなくすツールについて、

5回程度同じ場所に印刷すると跡が残ってしまい、
一部、印刷中に剥がれて軽く反ってしまうことがありました。

今回はプラットフォームシートを使用せずに
別の方法で反らずに何度も再利用可能な方法を紹介します。


ホウケイ酸ガラス+ケープ(ヘアスプレー)です。


plate3D.jpg

3Dプリンター ヒートベッド用ホウケイ酸ガラスがamazon等で売られています。

使用方法としては下記の通りです。

@ヒートベッドにガラスをクリップ等で固定
Aケープを3Dプリント面に2回ほどまんべんなく塗布
B印刷開始しつつヒートベッドの高さを微調整
C出力中に必要に応じて端にケープを塗布して剥がれ防止
D出力終了後はヘラで剥がさず、温度低下で自然に剥がれるまで待つ
 ※無理に剥がすとホウケイ酸ガラスが割れます
E自然に剥がれない箇所を必要に応じてヘラで剥がす
F出力物にケープが付着している場合は水で洗い流す
Gプレートに残ったケープや樹脂は水やお湯に数分浸けて洗い流す


ホウケイ酸ガラスを使用した際のポイントは
ヒートベッドの高さ調整です。

テープやプリンタープラットフォームシートに比べて、
ガラスは変形しないため、かなり調整がシビアです。

ノズル先端からガラスまでがちょうどノズル径程度でないと
それより近くても遠くても出力ができません。
調整の際のイメージは下図の通りです。
現象を見ながらヒートベッドの高さを適切な位置まで調整します。

printimage.jpg



ホウケイ酸ガラス+ケープ(ヘアスプレー)の場合、
ヒートベッドの高さ調整は難しくなりますが、
剥がれによる反りがなくなり、
汚れを水で洗い流せば何度も使用できるので非常に便利でお勧めです。
posted by Crescent at 10:39| Comment(0) | TrackBack(0) | 3Dプリンタ | このブログの読者になる | 更新情報をチェックする

2018年03月24日

I2C/SPIプロトコルブリッジIC その2

先日、紹介したI2C/SPIプロトコルブリッジICの
SC18IS602BIPW/S8HP でちょっと引っかかった点について紹介します。

SC18IS602BIPW/S8HP はSPI接続のデバイスを
I2Cデバイス化する変換ICです。

GPIOの出力や入力はすんなり動いたのですが、
SPIの転送がなかなかできない問題が発生しました。

原因を調査するとI2CでSPI転送をしているにも関わらず、
SPIのクロック、信号が出ていない感じでした。


原因はGPIOの設定にありました。
4つGPIOがある中ですべてGPIOモードにするとSPI転送できないようです。
もう少し厳密に言うとSPI転送時は自動的にCSのIOが制御されるため、
SPI転送時で使用するCSはGPIO Enableにしてはいけないということです。


GPIOの設定はGPIO Enable (Function ID F6h)で行います。
SPI転送時にCSとして使用するGPIOは無効にして
SlaveSelectとして使用します。
SPI転送時のアドレスがSlaveSelectとして機能します。



普段のマイコンの感覚ではSPIのCSはGPIOで別途制御するのが一般的なので
I2C/SPIプロトコルブリッジICでもGPIOモードで全部制御する
ということを考えてしまいました...


ということでI2Cなので画面書き換え速度がSPIの約4倍以上要しますが、
WaveShare製の電子ペーパーをI2C化成功しました。

IMG_0015-2.jpg

IMG_0016-2.jpg

書き換え速度は遅いですが、I2C(Grove)接続で
簡単に制御できるのは魅力的です。
WaveShare製の電子ペーパーはSPIの配線の他に
Cmd/Data線、Reset線、Busy線の3つの配線が必要です。
SC18IS602BIPW/S8HP にはGPIOが4つあるため、
CS含めてすべてソフトで制御できます。

完全にI2C(Grove)接続のみで電子ペーパーを制御できます。
近日中にライブラリの公開とI2C電子ペーパーモジュールの販売を開始したいと思います。

ラベル:部品
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする