2015年10月9日金曜日

二次元配列/Arduino

Arduinoで二次元配列を使う場合はこんな感じです。
ArduinoにArrayなんて型はありませんでした。
int LED[2][2] ={{2,3},{4,5}};

for(int i=0;i<2;i++){
  for(int j=0;j<2;j++){
    pinMode(LED[i][j], OUTPUT);
    digitalWrite(LED[i][j], HIGH);
  }
}

2015年10月8日木曜日

チャタリング防止/Arduino

オムロン(OMRON)さんのリミットスイッチでチャタリングが起きた為
一瞬(10ms以内)の切り替わりは対応しないようにしました。
もっと簡単な方法があるはず。

int LIMITSWITCH_IN = 2;
boolean limitSwitchBoo;
int CHATTERING_TIME = 10;
unsigned long chatteringTimeStamp = millis();
unsigned long nowMillis;

void setup() {
  limitSwitchBoo = digitalRead(LIMITSWITCH_IN);
  Serial.begin(9600);
  pinMode(LIMITSWITCH_IN, INPUT);
}

void loop() {
  nowMillis = millis();
  //最低10ms経っていないと受け付けない。
  if ((nowMillis - chatteringTimeStamp) > CHATTERING_TIME) {
    //【LOW】HIGHからLOWに切り替わった
    if ((limitSwitchBoo == HIGH) && (digitalRead(LIMITSWITCH_IN) == LOW)) {
      limitSwitchBoo = LOW;
      chatteringTimeStamp = nowMillis;
      limitLowAction();
      //【HIGH】LOWからHIGHに切り替わった
    } else if ((limitSwitchBoo == LOW) && (digitalRead(LIMITSWITCH_IN) == HIGH)) {
      limitSwitchBoo = HIGH;
      chatteringTimeStamp = nowMillis;
      limitHighAction();
    }
  }
}

void limitLowAction() {
  Serial.println("LOW");
}

void limitHighAction() {
  Serial.println("HIGH");
}

2015年10月7日水曜日

IP固定/Raspbian/使用準備2/RaspberryPi2

↓/etc/network/interfacesを編集
sudo nano /etc/network/interfaces
↓以下のように一部書き換え・追加
iface eth0 inet static
address 192.168.1.65
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 192.168.1.1 ※値は環境によって異なります。

2015年10月6日火曜日

IOError: [Errno 5] Input/output error/Python/Raspbian/RaspberryPi2

↓アナログ値の読み込みをしたらエラー【IOError: [Errno 5] Input/output error】
Raspberry PiのI2Cのbaudrate(クロック)が関係しているようです。
sudo python ardu_pi_i2c.py
↓/boot/config.txtに「dtparam=i2c_baudrate=10000」を追加すると動くらしいので編集します。
(ここでは10kHzにしているけど、何が正しいのだろう。。)
sudo nano /boot/config.txt
↓再起動
↓動いたー!

2015年10月1日木曜日

NOOBS/使用準備1/RaspberryPi2

注意:ここで使用するSDカードは8G以上
  1. SD Card Formatterをダウンロードしてインストール
    https://www.sdcard.org/downloads/formatter_4/
  2. SD Card Formatterでフォーマット
  3. NOOBSのダウンロード
    https://www.raspberrypi.org/downloads/noobs/

  4. Zipファイルの中身をSDカードにコピー
  5. SDカードをRaspberryPiにセットし、
    キーボード/マウス/HDMI/LANケーブルを繋ぎ最後に電源を入れる。
  6. OSを選んでインストール



2015年9月3日木曜日

Arduino digitalWriteをまとめて設定

digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
と、個別に書くのが面倒または同時に実行したい時は以下のように書く。
PORTD = B00011100;

Arduino pinModeをまとめて設定

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
と、個別に書くのが面倒または同時に実行したい時は以下のように書く。
DDRD = DDRD | B00011100;
ピン0・ピン1は通信に使用されるので変更したくないので「|」(OR)を使用している。
「|」(OR)を使用すれば1にした所だけ変更されるからだ。
ピンの番号は右から数える。※0から
  • DDRD:ピン0〜7
  • DDRB:ピン8〜13
ピン9をOUTPUTにする場合はこのようになる。
「|」(OR)を使用してもいいが不要なので取った。
DDRB = B00000010;

2015年9月1日火曜日

Arduino シリアルモニタ文字化け2

Zigbee入出力データサンプル受信通知のAPIフォーマットからデジタルサンプルとアナログサンプルを取得時
デジタルサンプルのHighとLowともに0x0の時、文字化けが発生した。

Arduino(A)のIXOとArduino(B)のIXOが繋がっていたのが原因だったらしく
外したら問題なく表示された。

Arduino シリアルモニタ文字化け

setup()内に書いた転送レートとシリアルモニタ右下の転送レートを同じにしないと文字化けがおきます。


2015年8月29日土曜日

Google スプレッドシートで別ファイルを参照

別ファイルを参照するには
IMPORTRANGE(spreadsheet_key, range_string)
を使用する。

記述例
ここでは第一引数で別ファイルのスプレッドシートキー(URLのkeyパラメータの値の事)を指定し 第二引数でシートと範囲を指定。
ImportRange("xxxxxxxxxxxx",
"Sheet 1!B2:B1163")
さらにCOUNTIF(range, criterion)と組み合わせた場合は以下のようになる
COUNTIF(ImportRange("xxxxxxxxxxxx",
"Sheet 1!B2:B1163"),A2)

2015年8月24日月曜日

processing gnu/io/SerialPortEventListener エラー

書籍「XBeeで作るワイヤレスセンサーネットワーク」
Processingによるシンプルなセンサーネットワークの表示コード
が動かない

この部分で
XBee xbee = new XBee();
以下のエラーが出てしまう。
 NoClassDefFoundError:gnu/io/SerialPortEventListener 

Rob Faludiを確認すると以下のように書いてありました。
You need to use Processing v.1.5.1 as later versions do not properly support that XBee Java library.

Processing バージョン1.5.1じゃなきゃ動かないんだって。

Mac(Parallels Desktop/Windows8.1)でPC TV with nasne

体験版をインストールし動画を再生しようとしたら以下のエラーが出た。

再生できません。お使いのコンピューター環境では、ハードウェアアクセラレーターによる再生を利用できません。
[アプリの設定]-[番組の再生]より、ハードウェアアクセラレーターによる再生をオフにしてください。

[アプリの設定]-[番組の再生]のDXVA設定でチェックを外す。
しかし、またエラーが出たのでアプリを終了させる。
アプリを再起動させたらなんとか動いたー!
Windows8.1メモリ512MB設定でもなんとか動くし、「PC TV with nasne」3,000円(税別)だし買っちゃおうかな。



2015年8月23日日曜日

アルミ板加工 穴あけ

通常ドリルで穴をあける前にセンターポンチを使用しますよね。
しかし私は下手なので錐を使用します。
先端が鋭利なので狙った場所に目打ちが出来るし、
少し力を入れながら回せば穴をあけられます。
もっと大きな穴をあける場合はその後にドリルやテーパーリーマーで穴をあけます。
サーボブラケット用に厚さ1mmのアルミ板を使用しています。

2015年8月21日金曜日

XBee PRO ZB S2Bで中継

以下の組み合わせで行った。

受信機

  • XBee-PRO ZB S2Bモジュール
  • XBP24BZ7
  • ZigBee Coordinator API
  • 21A7


中継機

  • XBee-PRO ZB S2Bモジュール
  • XBP24BZ7
  • ZigBee Router AT
  • 22A7


送信機
※エンドデバイスではなくルータでテストしました。

  • XBee-PRO ZB S2Bモジュール
  • XBP24BZ7
  • ZigBee Router AT
  • 22A7


中継で使うルータは以下の設定にしました。

  • ID:PAN IDを受信・送信と同じにする。
  • JV:Enabled[1]
  • DH:コーディネーターのアドレス(0013A200)
  • DL:コーディネーターのアドレス(????????)
  • NH:ホップ数を設定。※初期設定は0x1E(30)回。そのままで十分ですね。


実験開始
送信機に取り付けたボタンを1秒おきに押しながら受信機から徐々に離れゆく。
ある程度離れたら不安定になってきたので、不安定になる手前に中継機を設置して電源ON。
またボタンをポチポチ押しながら離れてゆく。しかし、先ほどと同じ場所で不安定に。中継機が動いてない?
調べてみたら中継機を先に接続しなければならなかったようです。
中継機の電源を入れ接続を確認してから送信機の電源を入れ直したら繋がりました!
結果、通信距離は約2倍になりました。
※直線で試していないので正確ではありません。高さも揃えていません。

2015年8月8日土曜日

HDD分解用道具

呼び名は
  • ヘクスローブ
  • トルクスドライバー
サイズはT-6とT-8があれば大丈夫。 基本的にはT-8で良いのですが、内部も分解する場合はT-6も必要になる事があるので買っておいた方が良いです。

2015年8月7日金曜日

XBee-PRO ZB S2B(ZigBee Router AT)起動時に一瞬だけD0がHIGHになる

以下の設定で使用した所、送信側の電源を入れた時に一瞬だけD0がHIGHになる。
ATJVを1にして、確実にルーターが起動時にコーディネーターに接続するようにしたのが原因なのか、デジタルサンプルで0x00 0x01が送られてる?


<受信側>
ZigBee Coordinator API 21A7

<送信側>
ZigBee Router AT 22A7

  • ATJV:1
  • ATD0:3
  • ATD1:3
  • ATIR:64


仕方ないから受信側のArduinoで最初に受け取った値は捨てる処理を入れて対応。

2015年8月6日木曜日

devicePixelRatioを調べる

devicePixelRatio コンテンツの1pxを実際のデバイス上で何pxとして描画するかを表す。

出力方法:
document.write(window.devicePixelRatio); 

あなたが使用しているデバイスの値
devicePixelRatio
screen.width
screen.height

Rでデスクトップのファイルを読み込む Mac

drag and dropでも出来ますが、書く場合こんな感じ。

dispatch <- read.csv("~/Desktop/analysis.csv",header=TRUE)

スワロー電機 R2-1203

AC200VをAC12Vへ降圧・変圧




2015年8月5日水曜日

2N6027プログラマブル・ユニジャンクション・トランジスタ(PUT)の代わり

2N6027が売ってないので調べた結果、日本ではN13T1らしい。
若松通商で発見。N13T1

TEPRA(テプラ)パソコン接続

テプラのパソコンに繋ぐタイプだとパソコンに入っているフォントが使えるようです。
そうなると気になるのは解像度ですね。
※解像度が低いと細いフォントは多分危険!

購入候補のテプラ比較
商品名画像値段解像度使えるテープメモ
SR3700P
約12,000円 270dpi 4〜24mm 省スペースで机の上に置いても違和感ないデザイン。最大24mmで良ければ値段も手頃。
SR3900P
約15,000円 360dpi 4〜36mm 値段と解像度のバランスがいい。
SR5500P
約15,000円 180dpi 4〜24mm スマートフォン対応(iPhoneのみ)で使えて電池対応しているため場所を選ばない。
※Bluetooth®対応だけどBluetooth®接続はiPhoneのみ対応との事。パソコンでBluetooth®使えない。
解像度は低めですし内容からして、お試し商品でしょうか?
SR5900P
約20,000円 360dpi 4〜36mm ちょっと大きいけど、有線LAN・無線LAN接続にも対応。
SR970
約28,000円 360dpi 4〜36mm パソコンに繋がなくても使えるし、
使用する方の年齢層が広い会社ではこれ?

こうして比べると使う環境で好みは分かれそうですね。
私の使用環境では無線LANが使えるSR5900P が良さそうです。
さっそく購入して、真っ直ぐ家に帰り、TEPRA SMA3をインストール!
そしたら画像を読み込ませる事が出来る事に気がつき
まさかのPDF対応(BMP、JPEG、PDF、PNG、TIFFが使える)
IllustratorでPDFを書き出せば小さいステッカーが作れますね!


パソコン接続出来る一部のテプラで比較をしましたが、ラベルライタは「テプラ」だけではありません。
家庭用であればもっと低価格のほうがいいですよね。
テプラは高いと思ったら他社の商品も検討してみてください。
キングジム以外だったらパソコン接続出来る商品は約2,000円からあります。
ラベルライタ一覧