Attic or Garret

Raspberry Pi を使ってみる

Introduction

Raspberry Pi を使ってロボットを作ってます!
ロボットの解説は後半からRaspberry Pi を使ったロボットの制作
備忘録も兼ねています。機種やバージョンなどの違いによって使い方が変わっている可能性もあるのでご注意ください。

Raspberry Pi Zero

ちっちゃな5$のコンピュータRaspberry Pi Zero まだ、ちょっと入手難なのが残念なところ…

"Raspberry Pi Zero" in FRISK! case (2015/12/11)

Raspberry Pi Zeroはフリスクケースにちょうどのサイズです。 下側のケースを基板の厚み分削ればちょうと入ります。 赤丸の部分だけは慎重に削らないと外から基板が見えちゃいます。

ピンヘッダを付けました。 (2016/01/17)

Raspberry Pi Zeroにピンヘッダを付けました。 裏を平らにしたかったので、ロープロタイプのピンヘッダを使って 黒いプラスチックの部分を下にずらしています。

オーディオ端子の追加 (2016/01/23〜)

Raspberry Pi Zeroにはオーディオ端子がないのですが…GPIO端子からステレオ出力を行うオーバーレイモジュールがインストールされています。

こちらのサイト従ってステレオで音楽を再生することが出来ました!
Tuto:Get analog audio(3.5mm Audio Jack) in Raspberry Pi Zero

@ WiringPi(ワイヤリング・パイ)のインストール (Raspbian[Jessie]ではインストール済み)

(コンパイル出来なければビルド済みパッケージを入手してください。)
sudo apt-get update
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

A PWMの割り当て変更

(root権限は不要です)
gpio -g mode 18 ALT5 (GPIO18をPWM0に割り当てます)
(GPIO13かGPIO19のいずれか選択)
gpio -g mode 13 ALT0 (GPIO13をPWM1に割り当てます)
or
gpio -g mode 19 ALT5 (GPIO19をPWM1に割り当てます)
それだけです!(起動後に毎回実行が必要)

gpio readall (割り当ての確認)
機能の詳細はこちらBCM2835-ARM-Peripherals(102ページ〜)

B mp3ファイルの再生

wget https://goo.gl/XJuOUW -O example.mp3 --no-check-certificate (テストファイルが無いときは入手)
omxplayer example.mp3

(音量指定)
alsamixer (alsamixerの設定はomxplayerでは無効のようです。--volオプションで音量を指定します。)
omxplayer --vol -800 example.mp3 (ボリュームはdBで指定 x100)

Raspberry Pi Zero W (Raspberry Pi 3) のBluetoothとシリアルポート

・ Bluetoothとシリアルポートを同時に使う場合 /boot/config.txt に下記を追加

enable_uart=1
core_freq=250
  • ※ デフォルトのシリアルポートURAT0(ttyAMA0)はBluetoothに割り当てられます。シリアルポートのアクセスはUART1(ttyS0)から行う必要があります。コアクロックが固定されるのでパフォーマンスが少し落ちます。

・ Bluetoothは使わずにシリアルポートだけ使う場合 /boot/config.txt に下記を追加

dtoverlay=pi3-miniuart-bt
  • ※ シリアルポートのアクセスはURAT0(ttyAMA0)から行う必要があります。

・ Bluetoothとシリアルポートのいずれも使わない場合 /boot/config.txt に下記を追加

dtoverlay=pi3-disable-bt

Raspberry Pi Zero W のWiFi無効化

/etc/modprobe.d/raspi-blacklist.conf に下記を追加
blacklist brcmfmac
blacklist brcmutil

Raspberry Pi Zero W と技適(工事設計認証の表示) (2017/07/21)

Raspberry Pi Zero Wireless(Raspberry Pi Zero W)はZeroの性能とサイズはそのままで、WiFiとBluetooth(BLE)が実装された期待の新機種です。2017/02/28に発表され海外からは入手が可能な状態だったのですが、 国内では技適の関係で電波暗室以外では使用出来ない状況が続いていて、2017/7/18にやっと国内販売が開始されました。

2017/07/21日現在:SWITCHSCIENCEで購入したZero Wは基板裏面に認証シールが貼られていました。(下の写真参照)KSYで購入した場合は基板ではなく絶縁チャック袋に認証シールが貼られています。購入の際は確認が必要です。

SWITCHSCIENCE 工事設計認証の表示について

2017年製造版は工事設計認証がシルクでプリントされました。このバージョンであれば海外で購入しても日本で適法となり使用可能です。(PIMORONIの販売サイトで確認) → PIMORONI (在庫ありました。2017/07/21)
※ 届いた商品にマークが無くても責任とれません… 注文は自己責任で、またはショップに確認してから購入してください。

Raspberry Pi Howto

Jessie以降のRaspbianについて!

1.4.2以降のRaspbianはJessieベースに変更されているので注意が必要です。→ jessie で知っておくべき問題点

Jessie以降はinitプログラムもsystemdに変更されています。

デーモン(サービス)の自動起動の設定/解除 systemd

sudo systemctl enable デーモン名(サービス名).service .serviceは省略可能
sudo systemctl disable デーモン名(サービス名).service .serviceは省略可能

デーモン(サービス)の自動起動の設定/解除 SysV init

sudo update-rc.d デーモン名(サービス名) defaults
sudo update-rc.d -f デーモン名(サービス名) remove
jessie以降でもSysV initの関連ファイルは残されています。一部コマンドは使用可能ですが非推奨になります。

シリアルからのオートログイン設定 (2016/01/18)

ラズパイ ゼロにてシリアル経由でログイン。 ほぼ最小構成ですね。(^_^) Jessie以降になってシリアルからのオートログイン設定も変更になっています。

@ /etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf の編集

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin pi -s %I 115200,38400,9600 vt102
※ Raspberry Pi Zero WでBluetoothを有効にした場合は ttyAMA0 の部分が ttyS0 になります。

A /boot/cmdline.txt の編集 (通信速度の変更)

console=ttyAMA0,19200
※ Raspberry Pi Zero WでBluetoothを有効にした場合は ttyAMA0 の部分が serial0 になります。

Raspberry Pi 無線LANアクセスポイント化

@ パッケージのインストール

sudo apt-get -y install hostapd isc-dhcp-server

A /etc/network/interfaces の編集 (アドレスは環境に合わせて変更して下さい)

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.11.81
netmask 255.255.255.0
#iface wlan0 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

B /etc/dhcpcd.conf に下記を追加

denyinterfaces wlan0

C /etc/dhcp/dhcpd.conf に下記を追加 (アドレスは環境に合わせて変更して下さい)

subnet 192.168.11.0 netmask 255.255.255.0 {
range 192.168.11.100 192.168.11.120;
option broadcast-address 192.168.11.255;
default-lease-time 600;
max-lease-time 7200;
option routers 192.168.11.81; ルーターの設定
option domain-name "local"; ルーターの設定
option domain-name-servers 8.8.8.8, 8.8.4.4; ルーターの設定
}

D /etc/default/isc-dhcp-server の編集

INTERFACES="wlan0"

E /etc/hostapd/hostapd.conf の編集(抜粋)

サンプルからコピー /usr/share/doc/hostapd/examples/hostapd.conf.gz
interface=wlan0
driver=nl80211
ssid=myssid 任意の名前
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberry 任意のパスワード

F /etc/sysctl.conf の編集

net.ipv4.ip_forward=1 コメントアウト
net.ipv6.conf.all.disable_ipv6 = 1 コメントアウト

G iptablesの設定

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

H /etc/network/if-pre-up.d/iptables の編集

#!/bin/sh
iptables-restore < /etc/iptables.ipv4.nat
exit 0

I パーミッション変更

sudo chmod 755 /etc/network/if-pre-up.d/iptables

lircで赤外線を送受信する (2017/09/01)

@ パッケージのインストール

sudo apt-get install lirc

A /etc/lirc/hardware.conf の編集 (通信速度の変更)

LIRCD_ARGS="--uinput" 変更前 LIRCD_ARGS=""
LOAD_MODULES=true
DRIVER="default" 変更前 DRIVER="UNCONFIGURED"
DEVICE="/dev/lirc0" 変更前DEVICE=""
MODULES="lirc_rpi" 変更前MODULES=""

B /etc/lirc/hardware.conf に下記を追加

dtoverlay=lirc-rpi
dtparam=gpio_in_pin=20 任意のピン番号
dtparam=gpio_out_pin=21 任意のピン番号
dtparam=gpio_in_pull=down

C 赤外線テスト受信(赤外線モジュールの接続後)

mode2 -d /dev/lirc0 受信パルスを表示

D リモコンコードの学習

sudo /etc/init.d/lirc stop サービスを停止
sudo irrecord -n -d /dev/lirc0 test.conf 任意のファイル名
※ やり直すときはファイルを削除すること。

E /etc/lirc/lircd.conf にリモコンコードを追加

irrecordで作ったファイルから begin remote 〜 end remote までを切り取ってlircd.confに追加する
サンプル→lircd.conf (以下のリモコンコードが入っています)
  • ・ HiLetgo 赤外線IRワイヤレスリモコンキット
  • ・ 秋月電子 オプトサプライ赤外線リモコン OE13KIR
  • ・ LEGO MINDSTORMS 純正リモコン (9378)
  • ・ carrozzeria CXC3512 (Hard OFFで購入)

F サービスを自動起動に設定

sudo /etc/init.d/lirc start 起動
sudo update-rc.d lirc defaults 自動起動に追加

G 学習したリモコンコードの受信確認

irw 受信したリモコンコードに対応した名前が表示される

H 学習したリモコンコードの送信

% irsend SEND_ONCE リモコン名 コード名

samba のインストール

@ パッケージのインストール

sudo apt-get install samba

A /etc/samba/smb.conf に下記を追加

[share]
path=/home/pi/share
read only=no
browsable=yes
guest ok = yes
force user = pi

B サービス停止(起動が遅くなるため)

sudo systemctl disable smbd
sudo systemctl disable nmbd

C フォルダ作成

cd
mkdir share
mkdir bin

D bin/smb の編集

#!/bin/bash
sudo systemctl start smbd
sudo systemctl start nmbd sudo systemctl disable samba-ad-dc.service systemd-analyze blame

E パーミッション変更

sudo chmod 755 bin/smb
  • ※ 再起動後 smbの実行でサービスが開始します。binディレクトリを追加すると .profileによりパスが追加されます。

外部RTCを搭載した場合のサービス停止

sudo systemctl disable fake-hwclock
sudo systemctl disable systemd-timesyncd ntpサーバーとの同期が不要の場合

Raspberry Pi のパワーパック[PiPower:8188] 製作

  • ・ Raspberry Pi側でのプログラムの追加/修正が不要!
  • ・ 入手しやすい部品でつくる。
  • ・ プッシュスイッチONで、バッテリーから電源供給してRaspberry Piを起動。
  • ・ プッシュスイッチの長押し(2秒)でシャットダウン処理を開始、完了後に電源供給を停止。
  • ・ Raspberry Piからshutdownを実行してもシャットダウン処理を開始、完了後に電源供給を停止。
  • ・ 起動時にマイコン側の時計を使ってRaspberry Piの時刻をセット
  • ・ 終了時にRaspberry Piの時計を使ってマイコン側の時刻をセット
  • ・ 待機中はDeepSleep
  • ・ プログラムによりWakeUp設定可能 (自力起動/定期動作可能)
  • ・ リアルタイムクロック内蔵でRaspberry Piの起動時に時計を更新
  • ・ 電池残量が規定値になったら強制切断してバッテリープロテクトモードに移行。
  • ・ 以下、設定ファイルの修正箇所

製作開始 (2015/04/17)

1400mAのバッテリーも含めてラズパイの基板内に納めました!
  • ・ 電源供給を合わせてもRaspberry Piとの接続に使用する線の数は4本。
  • ・ Raspberry PiとPICマイコンの通信はシリアル経由(VT100、通信速度は19200Bps)
    シリアルを監視してloginとpower downを検知。
  • ・ PICマイコン使用
  • ・ 時計はPICとクリスタルで構成
  • ・ 1セルリポOK
  • ・ 電源は1.8V〜5.5V
  • ・ 同時充電可

Raspberry Pi Zero でテスト (2016/01/31)

Raspberry Pi Zero + 有線LAN搭載3ポートUSBハブ(RUH-OTGU3E+C) + 無線LAN(GW-USNano2)に電源供給して動作中。

LiPo電池の保護回路 (2017/07/20)

レゴRCXのケースに納めることを前提にLiPo電池はSPYDERS UT-004 2000mAh(70mm×41mm×8mm)を選択。
基板には二つのIC、DW018205Aがあって それぞれ調べると、DW01はセイコーインスツル S-8200Aシリーズの互換IC、8205AはDual N-ChannelのFETでした、回路図は下記。過電流を検知すると保護モードに入り電力の供給を停止するので要注意。 保護ICモジュールバッテリースペース

昇圧IC (2017/07/20)

Raspberry Piは5Vの電源が必要なので1セルのLiPo電池(3.7V)から5Vに昇圧するためにtps63000を使ったモジュールを使用します。 これで最大5V/1A程度の電力が得られます。 さらに電力が必要な場合はtps63020を使ったモジュールであれば、最大5V/2A程度の電力が得られます。 ただしLiPo電池から急激に電力を取り出すと保護回路が働くので要注意。

Raspberry Piのケース製作

"Raspberry Pi" と PiTFT 2.8inch 用のケース (2015/03/10)

Raspberry Pi 2 Model B と PiTFT 2.8inch 用のケースです。端子位置が合わないので調整しています。
(新バージョンのPiTFT 2.8inchはA+/B+/Pi2に対応しています)

"Raspberry Pi" in LEGO-RCX case (2015/04/04〜)

LEGO-RCXのケースにラズパイを納めました!コネクタ、ボタンなどインターフェースは可能な限りオリジナルを踏襲します。

LEGOマインドストームはMITのシーモア・パパート教授の構築主義の理論を基に生み出された傑作なのです。 LOGO(タートル)を作った人としても有名ですね。 そして、パパート教授はOLPCの登場にも寄与しているので、その潮流を汲むRaspberry Piとの合体は 尾道3部作におけるBoy Meets Girlなんです。
※ OLPC→One Laptop per Child 世界中の子供達にPCを届けるプロジェクト

  • ※ ラズパイの換装はレゴの改造になります。

内部フレームは再設計して3Dプリンタで作り直しています。

モータードライバモジュールの中身は(SEEED Grove-I2C Motor Driver) コネクタは接続はマインドストームRCX準拠

"Raspberry Pi" in National JR-100 (2018/01〜)

37年前のパソコンにRaspberry Piを入れました。貴重なパソコンなのでケースの加工はせずにアダプタを作って対応しています。
  • ・ キーボードはArduino Microを使ってHID化
  • ・ 1セルリポ6000mA/h搭載、PiPower:8188(PICマイコン使用)を使った電源制御
  • ・ マイクロSDも含めて各コネクタはバックパネルからアクセス可能
  • ・ RTC実装

Raspberry Pi を使ったロボットの制作

LEGO WALL-Eをロボット化しました。
元としたWALL-Eのキット(21303)にはモーター等が含まれないのでそのままでは動きません。このキットを元にして段階的にロボット化を進めていきます。
ロボット化には駆動系を含めてLEGO純正パーツを使います。ただしサーボ関連と制御系、センサーは新造になります。この構成でLEGO Technicシリーズの可能性を探ります。
まずは下の動画でフォーチュンクッキーのダンスを見てください!

恋するフォーチュンクッキーを踊らせてみました。(with 猫)

Version.1 (2016/12/31)

上で紹介している"Raspberry Pi" in LEGO-RCX caseを使ってキャタピラ走行とリモコン操縦を出来るようにしました。
  • ・ 1セルリポ2000mAh搭載、PiPower:8188(PICマイコン使用)を使った電源制御
  • ・ 走行用のモーターは旧RCXに付属していた9V Mini-Motor(71427/42g)、Max5Vで使います。
  • ・ モータコントローラDrv8830を2ch実装
  • ・ 操作は赤外線リモコン使用(lirc)
  • ・ プログラムはPython
  • ・ RTC実装

Version.2 (2017/01/05)

走行性能の向上を目指してキャタピラを交換 & レーザー距離計(VL53L0X)を実装
  • ・ キャタピラを含む走行系を再設計、キャタピラはリンクトレッド(LEGO 3873)を片側2列で構成(1列38個)、精度の高い走行が可能になりました。平坦であれば野外でも走行できます。
  • ・ レーザー距離計(VL53L0X)は6ポッチのブロックの中に仕込んでいます。

Version.3 (2017/01/13)

ヘッドが左右に動くようにサーボを追加 & 持ち歩き用のケースを用意
  • ・ PCA9685 16ch PWMサーボドライバ
  • ・ サーボ Tower Pro SG90 (Umemoto LLP 2014年版)
  • ・ Oculus Rift のケース(何故かぴったり)

Version.4 (2017/03/19)

両腕をサーボ化
  • ・ サーボ Tower Pro SG90 (Umemoto LLP 2014年版)
  • ・ 一部3Dプリンタパーツ使用

Version.5 (2017/03/19)

SONY DualShock3コントローラに対応

  • ・ Bluetoothドングル PLANEX BT-Micro4
  • ・ コントローラのイベントは25msごとにチェック、ダイレクト&滑らかに動かす事が出来ます。
コントローラかドングルを変更した後の手順(必要なモジュールはインストール済み)
sudo sixad -stop (実行中なら停止)
DualShock3をUSBケーブルで繋ぐ
cd ./sixpair
sudo ./sixpair
DualShock3を外す
sudo bluetoothctl
discoverable on
agent on
DualShock3のPSボタンを押す
[NEW] Device xx:xx:xx:xx:xx:xx PLAYSTATION(R)3 Controller デバイス番号をメモ
DualShock3のPSボタンを押す
connect xx:xx:xx:xx:xx:xx エラーが出ても無視?
trust xx:xx:xx:xx:xx:xx 必須
CTRL-d

設定に関してはこちらを参考にしました。→ PlayStation 3 controller help sheet

Version.6 (2017/05/10)

光学センサー実装、床面をセンスして移動距離、回転角度を取得できるようになりました。
  • ・ 市販のマウスを改造しています。
  • ・ ブルーLEDタイプはサンワサプライのマウス(MA-BL3UPBK)から光学系も含めて移植したので床面とのギャップは2.5mm、多様な床面でセンス可能です。
  • ・ ブルーLEDのセンサーIC(PAW3522DK-TJZE)は優秀なので、ほとんどIC単体で使えます。
  • ・ WEALL.Eのセンサー系はI2Cで統一したいのでI2Cとマウスとの変換モジュールをPICで製作、青色LEDタイプはPS/2インターフェース、赤色LEDタイプはパルスインターフェースで接続します。
  • ・ プロトタイプは赤色LEDセンサータイプ、光学系をジャンクのデジカメから確保したレンズと換装して床面とのギャップを6.5mmまで確保しています。赤色LEDタイプが苦手な床面ではセンス不能になります。

直進時は正確に移動距離が測定できます。ただし回転角度の取得には苦労しました。 回転時は、床の摩擦係数、テーブルの傾き、速度による遠心力、キャタピラの状態などでロボットが外側か内側に斜行します。 マウスは最短でも3〜4ms程度のサイクルでしか位置情報を取得できないので(人間が使う限り十分に早いスピードですが) マウスの位置情報を使ってロボットにかかる重力等による影響をアクティブに制御してモーターに補正指示を出すには遅いのです。 さらに、今回使っているレゴ純正のモーターは単純なDCモーターが使われているので正確な回転速度の指示も難しいです。 そのため、今回は理論上想定される動作と実際の測定値との誤差を常に計算で算出して、誤差が発生したらモーターの直接制御を行うのではなく移動データの補正を行うことで対応しました。 一応レゴの部品で構成したロボットでも正確に動く事が検証できました。 オムニホイールのロボットであればここまでしなくてもマウスのセンサーを使って移動距離の測定が出来るはずです。

Version.7 (2017/07/9)

手で掴めるようにハンドグリップ用のサーボを追加
ウルトラマイクロサーボ HK 5320Sを使いました。 このサーボは指定位置に行くまで動作し続けます。そのため手で何か掴んでいる状態では内部のモーターが回り続けて加熱してしまいます。これでは耐久性が落ちるので、指定位置の移動指示から一定の時間が過ぎたら電源の供給を止めるようにしています。

Version.8 (2017/08/25)

ハンドグリップ用のサーボを見えにくくするためアームの裏側に移動。 レゴのキャノン発射装置(純正)を追加。
コントローラから射出角度を調整して発射できます。キャノンの射出角度はアームのサーボから動力を伝達して調整していたのですが4連装ではパワー不足となるので、射出角度の変更用のサーボを追加しています。

Version.9 (2017/11/03)

ヘッドが上下に動くようにサーボを追加
サーボを収めるスペースが狭いので部品を新規に設計することで対応しました。 3Dプリンタで部品をつくります。
レゴ互換設計をしているので3Dプリンタで作った部品もレゴ部品で固定します。
サーボからの動力伝達はクラウンギアを使って90度向きを変えています。
ヘッドの重量をサーボで支える事になるのでサーボはメタルギアのTower Pro MG90D(改)を使っています。 ヘッドを取り付けて完成。
3Dプリンタで作った平ギアでも動作したのですが耐久性が心配なので射出成形のギアに交換しました。
  • ※ 頭を上下左右するサーボは重力の影響を受けています(頭が重いため)。通電状態のサーボはストールトルクによって重量を支えることができますが、WALL-Eは電源消費を減らすため動作していないサーボには停止指示を出しています。そのためモーター停止状態でも十分に保持トルクがあるサーボが必要になります。

モニター セレクション

SHARP 7インチ高細密 IGZO LCD接続キット LQ070M1SX01

  • ・ 解像度:1920×1200
  • ・ ケースを3Dプリンタを使って作成。
  • ・ 液晶本体はアクリル板のはめ込みで固定、ネジは使っていません。
  • ・ 台とは分離できます。
ラズパイと相性ばっちりのモニターですが、現在入手難…

Lilliput 7インチワイド小型USB液晶モニター タッチパネル搭載 UM-70/C/T

解像度:800×480、USB接続(Displaylink)

@ パッケージのインストール

sudo apt-get install xserver-xorg-input-evdev
sudo apt-get install xinput-calibrator

A /etc/X11/xorg.conf の編集

サンプル xorg.conf

カメラ

adafruit スパイカメラ

adafruitのスパイカメラ、Zero用もありますがケーブルが短いです。純正のラズパイカメラと互換性があります。 adafruit Spy Camera for Raspberry Pi

純正カメラモジュールを使う

@ /boot/config.txt に下記を追加

start_x=1
gpu_mem=128

とりあえずのテスト (CSI-2経由カメラモジュール)

@ 静止画テスト

raspistill -o photo.jpg

A ストリーミングテスト

raspivid -o - -t 9999999 -w 640 -h 480 -fps 30 --hflip | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264

mjpg-streamer (CSI-2経由カメラモジュール)

@ ビルド

sudo apt install libjpeg8-dev cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
cd mjpg-streamer/mjpg-streamer-experimental
make

A ストリーミング開始

./mjpg_streamer -o "./output_http.so -w ./www -p 8080" -i "./input_raspicam.so -fps 15 -q 10 -x 320 -y 240 -vf -hf"
-q はJPEGのクオリティ -vf は上下反転 -hf は左右反転

B スマホから見るとき

SimpleMjpegViewなど
  • ※ Raspberry Pi Zero Wでの注意
    内蔵WiFiを無線LANのアクセスポイントに使用してストリーミングをWiFi経由で受信する場合、SONY DualShock3を内蔵Bluetooth経由で接続すると、無線LANアクセスポイントがハングします。ストリーミングの転送量が多いと発生するようです。(上記設定では発生しにくいです)
    内蔵Bluetoothを使わずにUSB接続のBluetoothドングルを使った場合は無線LANアクセスポイントがハングすることはありませんでした。

サーボいろいろ (2017/03/19)

Tower Pro MG90D

  • ・ SG90のメタルギア版。ボディも一部メタル、出力軸にはベアリング使用、各部の工作精度も高い。
  • ・ Digitalサーボ、制御チップ FZMOS-2(仕様不明)、高負荷時にハンチングを起こしやすい
    パルスの停止でモーターの電源断(Waitあり)
  • ・ モーターオフ状態でも十分な保持トルクがある
  • ※ WALL-Eの首の前後の傾き駆動に使用。ハンチングを起こし振動が止まらなくなる。Kuman KY61の制御基板と交換するとハンチングが起きにくくなりなり安定する。

Tower Pro SG90 (Umemoto LLP 2014年版)

  • ・ 制御チップ KC5188(仕様公開、仕様書
    SG90(新)、SG92R (秋月購入版)と違いハンチングが起きにくく省電力で動作
    パルスの停止でモーターの電源断(Waitなし、プログラムでの自由度が高い、起動時はパルス停止でもモータが回転する)
  • ※ 現行商品はSG92R (秋月購入版)と同じ内部構造。モーターとギアはSG92Rから相互移植可能。

Tower Pro SG92R(秋月購入版)

  • ・ Digitalサーボ、制御チップ FZMOS-2(仕様不明)、高負荷時にハンチングを起こしやすい
    パルスの停止でモーターの電源断(Waitあり)
  • ・ ギアはカーボン入りの強化品
  • ・ 取付軸部分の刻みが浅い

HK 5320S (2017/7/6)

  • ・ ウルトラマイクロサーボ!小さくても、とっても高性能!
  • ・ 0.075kg / 0.05sec / 1.7g
  • ・ Digitalサーボ、制御チップ CR0810-A
    一度でもパルスを送るとパルスを停止しても電源断にはならない

小型キャラクタLCDにまつわるエトセトラ (2016/02/13〜)

小型キャラクタLCD AQM0802A-RN-GBWがRaspberry Piに直接接続出来ない事が判明しました。
問題が判明するまで、だいぶ時間を無駄にしました…(泣)
厳密に言うと、接続出来るロットも存在します。(1年以上前の購入分は問題なく接続できました)
また今後のロットで解決される可能性もあります。

バックライト付き含め10枚程度確認しましたが、2016/02/13以降に店頭購入した分は全て直接接続出来ませんでした。

2016/02/17に公式に対応方法がアップされました。
I2Cレベル変換モジュールを挟んで下さいとのこと…(追確認していません!)
2016/02/18 対応方法が記述されていたQ&Aが削除されました。ここに直リンクを置くのも判断に迷うところですが…
この問題で悩んでる方も多いと思いますので当面そのままとします。


実はレベル変換モジュール不要で直接接続できるシンプルな解決方法があります!!
Strawberry LinuxのSB0802GNが互換品として使えます。
見た目では同一仕様にみえます。
Raspberry Piに直接LCDを繋ぎたいときは現状こちらを使うのがベストです。

2017/04/19に秋月電子からRaspberry Piに対応したキャラクタ液晶ディスプレイモジュールキットが発売されました。
I2C接続小型キャラクタLCD(AQM0802A)をRaspberryPiで使用する為にバスリピーターIC(PCA9515)を実装したRaspberryPi用変換モジュールです。ピンの配列はRaspberryPi共通ピンヘッダに合わせてあるため、6ピンのピンソケットをハンダ付けする事でRaspberryPiに直接差し込むことができます。


各種改造は個人の責任のもとに行って下さい。改造により発生した事故,故障などに対し Attic or Garret では一切の責任を持ちません。また各種改造を施した製品は,各種保険及び保証を受ける権利を失う可能性があります。
Attic or Garret 中の各記事,写真及び改造内容を著者に無断で転載あるいは商業目的で利用することを禁じます。

Copyright © 1996-2021 Itoi.All Rights Reserved.