棘の本数が増えた!
投稿者: masahiro
Raspberry Pi 2 Model B をやっと無線 LAN 対応にした
今まで Raspbery Pi を使うときは LAN ケーブルを接続して使っていたのですが、さすがに毎回セットアップすんのも面倒になってきたので無線 LAN アダプタを付けることにしました。買ったのは動作実績がある Buffalo WLI-UC-GNM という子機です。アマゾンの販売価格 713 円なり。まよわず2個購入
とりあえずセットアップするべくシリアルコンソールに USB シリアル変換を接続して TeraTerm 立ち上げるもコンソール端末が動きません。
調査の結果
まさかの圧着不良のケーブルでございました。本体壊れてなくてよかったです。
気をとりなおして設定作業を続けます。USB のポートに無線 LAN アダプタを入れます。
kernel: [ 223.298795] usb 1-1.5: new high-speed USB device number 4 using dwc_otg kernel: [ 223.414612] usb 1-1.5: New USB device found, idVendor=0411, idProduct=01a2 kernel: [ 223.414637] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 kernel: [ 223.414654] usb 1-1.5: Product: 802.11 n WLAN kernel: [ 223.414670] usb 1-1.5: Manufacturer: Ralink kernel: [ 223.414686] usb 1-1.5: SerialNumber: 1.0 kernel: [ 223.525784] cfg80211: Calling CRDA to update world regulatory domain kernel: [ 223.708837] usb 1-1.5: reset high-speed USB device number 4 using dwc_otg kernel: [ 223.817845] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected kernel: [ 223.840939] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected kernel: [ 223.863206] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' kernel: [ 223.865320] usbcore: registered new interface driver rt2800usb ifplugd(wlan0)[2085]: ifplugd 0.28 initializing. kernel: [ 223.926606] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin' kernel: [ 223.930068] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29 ifplugd(wlan0)[2085]: Using interface wlan0/CC:E1:D5:3F:34:8A with driver <rt2800usb> (version: 3.18.7-v7+) ifplugd(wlan0)[2085]: Using detection mode: SIOCETHTOOL ifplugd(wlan0)[2085]: Initialization complete, link beat not detected.
さくっと認識します。
root@rasp2:/var/log# lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
lsusb コマンドも問題なし。使う無線 LAN が認識できるか wpa_passphrase コマンドを使って確認します
root@rasp2:/var/log# wpa_passphrase 無線LANのSSID パスフレーズ network={ ssid="無線LANのSSID" #psk="パスフレーズ" psk=70f16dae8c39c15a7f923e525edd84112bbf52525b92f6d7bb449be615b6943a }
network= というのが表示されたら通信出来るようです。ここまでで確認作業は終り。続いて設定作業です。最初に、上記 wpa_passphrase コマンドで表示された結果を /etc/wpa_supplicant/wpa_supplicant.conf ファイルに追記します。エディタでコピペして追加してもいいですし、wpa_passphrase 無線LANのSSID パスフレーズ >> /etc/wpa_supplicant/wpa_supplicant.conf のような方法でもかまいません。追加できたらいいです。
root@raspberrypi:/etc/network# cat interfaces auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.24.188 netmask 255.255.255.0 gateway 192.168.24.1 network 192.168.24.0 broadcast 192.168.24.255 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp iface default inet static address 192.168.24.186 netmask 255.255.255.0 gateway 192.168.24.1 network 192.168.24.0
/etc/network/interfaces に無線LANアダプタの設定を追加します。allow-hotplug wlan0 以下の行ですね。今回 IP アドレス固定で使う設定にしました。
dhcp 設定でもDNS 登録するようにしておいて、ホスト名で端末接続できるようにするほどでもないので設定はこれにて完了。
# ifdown wlan0 # ifup wlan0
接続確認は if コマンドでインタフェース起動か、OS reboot させてインタフェースを立ち上げます。ifconfig で wlan0 が上っていたら成功です。
ちなみに、この無線LANアダプタわりと発熱します。ケースに入れてる人は連続使用時の温度は確認したほうがいいと思います。
今週のサボテン
久しぶりに PSoC のお勉強 CapSense
出張中 PSoC4 基板を動かすことなく週末帰宅です。今日は CapSense を使ってみましょうと少しだけ実験です。PSoC4 Pioneer Kit に CapSense 基板を、ジャンプワイヤで接続します。 CapSense に使うポートはどこでもいいのですが、石から 10mm 以内の場所に 560Ω の抵抗を入れるのが推奨されています。
PSoC4 Pioneer Kit も基板のはじっこにスライド式のセンサが配置されていて、それの入力に使う I/O ピンには 560Ω がはいっています。R17から R21 までですな。この I/O ポートは P1_1, P1_2, P1_3, P1_4, P1_5 にアサインされていて、ヘッダにも接続されているので流用可能です。
ということで、別の CapSense 基板ひっぱりだしてきて使います。青い基板の中央にクルクル出来るホイールのパターンが作られています。シルク印刷には、SLD_0 から SLD-9 まで 10個パターンがありますが、基板側の入力が5個だけなので、SLD_0, 2 4 6 8 の5つ配線して使えるかやってみます。
CapSense のエレメント数 5 と API のレゾリューションを 100 。
センサーの動作モードは、本当ならマニュアル設定で追い込んで不安定な動作を取り除いたほうが良いですが今回は様子見で Auto 設定でやっています。
あとは、デバッグ用にシリアルポート追加したりして実験開始。ラジアルスライダの各エレメントというか電極を軽くクリックした状態では、SLD_0 は 0、SLD-2 は 20 と設定画面で指定したレゾリューション 100 をボタン数 5 で割った数値がわりあてられ、ピッタリの値が返ってきました。
0 20 40 60 80 40
次に、右回りにグルグルやってみます。
1 2 3 5 6 7 8 9 10 15 20 22 23 24 25 26 27 28 29 33 35 36 37 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 70 71 72 73 74 75 76 77 78 80 85 88 90 91 92 94 95 96 98 99 100
指をグルグルすることで、今触ってる電極と隣の電極の測定値が変化することをうまく処理してるようで100まで出ます。
久しぶりに PSoC のお勉強
題名のとおり、PSoC を出してきてお勉強です。液晶に文字を出す練習です。使っているボードは PSoC4 PIONEER KIT という FLASH が 32K の
小規模マイコンです。今は PSoC 4 M-Series Pioneer Kit という flash が 128k のも出ているので機会があれば購入しておきたいところです。こっちのほうのキットは capsence pad が円形なのがいいです。
今日は、久しぶりに PSoC のプラミングの仕方を思い出すための勉強タイム。まず以下2つをクリアするべく作業開始
- 秋月 I2C 液晶に文字を出す
- USB-UART ブリッジの動作確認
部品を貼って
部品が使うピンをどのポートに出すかアサイン。コードはだるかったので main.c にベタ書き。液晶への文字出力と PC の TeraTerm に文字が出ることは確認出来ました。液晶の初期化は I2C接続小型キャラクタLCDモジュール(3.3V/5V)ピッチ変換キット 用です。
/* ======================================== * * Copyright YOUR COMPANY, THE YEAR * All Rights Reserved * UNPUBLISHED, LICENSED SOFTWARE. * * CONFIDENTIAL AND PROPRIETARY INFORMATION * WHICH IS THE PROPERTY OF your company. * * ======================================== */ #include <project.h> void i2cLcdSendCommand(unsigned char); void i2cLcdSendData(unsigned char); void i2cLcdSendStr(char *); int main() { CyGlobalIntEnable; /* Enable global interrupts. */ /* Place your initialization/startup code here (e.g. MyInst_Start()) */ I2C_Start(); CyDelay(100); i2cLcdSendCommand(0x38); RLED_Write(1); CyDelay(20); i2cLcdSendCommand(0x39); CyDelay(20); i2cLcdSendCommand(0x14); CyDelay(20); i2cLcdSendCommand(0x73); CyDelay(20); i2cLcdSendCommand(0x56); CyDelay(20); i2cLcdSendCommand(0x6c); CyDelay(20); i2cLcdSendCommand(0x38); CyDelay(20); i2cLcdSendCommand(0x01); CyDelay(20); i2cLcdSendCommand(0x0c); CyDelay(20); i2cLcdSendStr("Hello World"); UART_Start(); UART_UartPutString("Terminal out\n\r"); for(;;) { /* Place your application code here. */ BLED_Write(1); CyDelay(1000); BLED_Write(0); CyDelay(1000); } } void i2cLcdSendCommand(unsigned char command) { unsigned char buf[2]; buf[0] = 0x00; buf[1] = command; I2C_I2CMasterClearStatus(); I2C_I2CMasterWriteBuf(0x3E, &buf[0], 2, I2C_I2C_MODE_COMPLETE_XFER); while(I2C_I2CMasterStatus() != I2C_I2C_MSTAT_WR_CMPLT) { ; } //CyDelay(1); } void i2cLcdSendData(unsigned char ch) { unsigned char buf[2]; buf[0] = 0x40; buf[1] = ch; I2C_I2CMasterClearStatus(); I2C_I2CMasterWriteBuf(0x3E, &buf[0], 2, I2C_I2C_MODE_COMPLETE_XFER); while(I2C_I2CMasterStatus() != I2C_I2C_MSTAT_WR_CMPLT) { ; } //CyDelay(1); ; } void i2cLcdSendStr(char *str) { while(*str) { i2cLcdSendData(*str++); } } /* [] END OF FILE */
部屋の小掃除
今週のサボテン
.png 画像ファイルで透過設定のものが見えにくい状態となっていたのでテーマ設定変更しました。
テーマ変更しておいて今さらいうのも駄目な話やったりますが、Blog の記事にアップロードしている画像のうち .png ファイルが透過設定になっている関係で今のバックグランドカラー黒では、見えないものがありました。テーマの配色を白ベースに変更しました。
IN-9 VU キット頒布再開です
IN-9 VU キットは5月中旬に10セット用意出来る予定です。
必要なパーツの通販や買い出しをしていまして、通販ショップの欠品などが無ければ5月中旬に10セット分用意出来る見込です。お待たせしてすいません。もうちょっとの間です。