2015年12月20日日曜日

raspberryにbruetooth キーボード&マウスの接続

机の上がすっきり
raspberryPI2
bruetoothを設定するにあたり、RaspberryPi のバージョン8 (Jessie) から bluez-utils というパッケージがなくなったようで bluez-simple-agent, bluez-test-device, bluez-test-input 等のコマンドが使えません。bruetooth設定に、chitoolsも使えない。
ので、 bruetoothctlを用いて設定を行う。

接続方法は参考サイトの手順でペアリング成功。
しかし、再起動するとペアリングが切れる。trustしても起動するたびに設定がいるようだ。現状、原因は不明。面倒だ。。。


参考サイト
RaspberryPi の bluetoothctl で無線キーボードに接続

2015年12月15日火曜日

はじめてのRaspberry PI 2 

Raspberry Pi 2 スターターキット(無線版)
Raspberry PI 2 スタータキット(無線版)

Raspberry PI2をスイッチサイエンスで購入しました(RASPBIAN JESSIE Release data: 2015-09-24).



その初期設定の備忘録について


<RaspberryPI2の初期設定>

・注意点
1. 電源コネクタは最後に接続すること
2. ID:    PI
   pass: raspberry

参考サイト
ラズベリーパイのOSインストール


無線版のwifi設定について参考サイト
Raspberry PiスターターキットのWi-Fi設定




<日本語化の設定>

1.画面上のMenuのところにある LXTerminal をクリック。

2.sudo apt-get install ibus-anthy

    と入力してエンター.

    黒い画面にコマンドが流れて、

    Do you want to continue [Y/n]?

    と表示が出ますので Y と入力してエンター.

3.再起動


・注意点
ネット環境が必要

参考サイト
Raspberry Pi 2 Model B 日本語入力とシステム日時の修正をする




<ズベリーパイ2の日本語キーボードでそのまま出てこない文字>

♯ → む
= → へ
- → ほ
_ → ほ+シフトキー
日本語入力 → Ctrl+スペース

⇒キーボード設定で直すことが出来る.
1.画面上のMenuのところにある LXTerminal を起動
2.sudo raspi-config を入力
3.4 Internationalization Options を選択
4.I3 Chabge Keyboard Layout を選択
5.標準105キー(国際)PC を選択
6.日本語 -日本語(OADG 109A)を選択
7.キーボード配置のデフォルト を選択
8.コンポーズキーなし を選択
9.はい を選択

参考サイト
ラズベリーパイのOSインストール


2015年12月14日月曜日

モーター部分の接続完了

充電には iMAXRC X150 を使用しました.

LiPoバッテリー,ESC,モーターの3つを,コネクタを取り付けて接続.
Arduinoを使って動作テストをしましたが,上手くモーターが動作しないので原因を調べました.

 一つ目の原因として考えられるのはモーターとESCをつなぐ部分の配線,もう一つはプログラムの問題です.配線に関しては,線の色が全て黒の被覆で覆われておりよく分からないので,写真のようにビニールテープでそれぞれのコネクタに印をつけ差し替え,組み合わせを試しています.
 プログラムについてですが,
この質問が関係していそうなので,サーボライブラリを使ったプログラムを利用すると解決するかもしれないです.

プロペラが鋭利過ぎて怖いので,モーターの動作テストをするにあたってビニールテープで殺傷力を抑えることにしました.

早くプロペラ回したい.

2015年12月11日金曜日

3端子レギュレータ

三端子レギュレータ(さんたんしレギュレータ、 3-Terminal regulator)とは、電気製品の電源部に使用される半導体を含む電子部品である。シリーズレギュレータの1種であり、名前の通り3本の端子を備えて、定電圧回路を簡単に構成できる。リニアレギュレータとも呼ばれる。
入力端子 (IN)、出力端子 (OUT)、グラウンド (GND) 又は共通端子 (COM) の3端子から構成され、出力電圧固定型と出力電圧可変型がある。
出力電圧固定型では、入力端子と出力端子に発振防止用のコンデンサを2個を接続するだけで脈流を安定化する回路が構成でき、電圧可変型ではそれらに電圧設定用の抵抗器が加わる。
代表的な製品に、正電圧用の7800シリーズと負電圧用の7900シリーズがある[1]。型番末尾の数字2桁が出力電圧を表しており、おおむね、5・6・7・8・9・10・12・15・18・20・24Vの品種があり、最近では3.3Vのタイプも出回ってきている。単電源回路では正電圧型が用いられ、負電圧型はオペアンプを用いた回路等で正負2電源を作るときに重用される。
電力の変換効率や発熱の少なさではスイッチング電源が優れるため、製品の電源回路に採用されるのは比較的少ないが、シリーズレギュレータは、スイッチングノイズがなくて、外付け部品が少なく回路が簡素である、低価格であるというメリットがあるため、使用されている。

実際の使用方法や説明等は次の動画が理解しやすい.
三端子レギュレータ前編
三端子レギュレータ後編


参考:https://ja.wikipedia.org/wiki/三端子レギュレータ#/media/File:3-Terminal_regulator_7805_7905.jpg

MPU-6050三軸加速度三軸ジャイロセンサーモジュール

MPU-6050_V2.jpg
MPU-6050三軸加速度三軸ジャイロセンサモジュール

製品ウィキページに記載されていたTeaPotを使用し動作確認をしようとしたのですが,INVENSENSEでアカウントを作成しソフトを探したのですが,ページ内でTeaPotが見つからなかったため断念しました.
ですが,Arduinoのplayground(ここ)のshort example sketchを利用することでデータの取得には成功しました.

  1. // MPU-6050 Short Example Sketch
  2. // By Arduino User JohnChi
  3. // August 17, 2014
  4. // Public Domain
  5. #include<Wire.h>
  6. const int MPU_addr=0x68;  // I2C address of the MPU-6050
  7. int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
  8. void setup(){
  9.   Wire.begin();
  10.   Wire.beginTransmission(MPU_addr);
  11.   Wire.write(0x6B);  // PWR_MGMT_1 register
  12.   Wire.write(0);     // set to zero (wakes up the MPU-6050)
  13.   Wire.endTransmission(true);
  14.   Serial.begin(9600);
  15. }
  16. void loop(){
  17.   Wire.beginTransmission(MPU_addr);
  18.   Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
  19.   Wire.endTransmission(false);
  20.   Wire.requestFrom(MPU_addr,14,true);  // request a total of 14 registers
  21.   AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)    
  22.   AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  23.   AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
  24.   Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
  25.   GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
  26.   GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
  27.   GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
  28.   Serial.print("AcX = "); Serial.print(AcX);
  29.   Serial.print(" | AcY = "); Serial.print(AcY);
  30.   Serial.print(" | AcZ = "); Serial.print(AcZ);
  31.   Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53);  //equation for temperature in degrees C from datasheet
  32.   Serial.print(" | GyX = "); Serial.print(GyX);
  33.   Serial.print(" | GyY = "); Serial.print(GyY);
  34.   Serial.print(" | GyZ = "); Serial.println(GyZ);
  35.   delay(333);
  36. }


MPU-6050はI2C通信なのでVCC,GND,SCL,SDAの4つの端子を使用することで,6軸と温度センサの役割を果たします.
電源にはレギュレータが乗っているので5Vをそのまま接続できます.

Arduinoの使用端子はアナログ入力端子A4(SDA),A5(SCL),VCC5V,GND



2015年12月9日水曜日

iphoneアプリのレイアウト

レイアウトは、storrybord右下の[All views in view controller]の[Add missing Constraints]から、デバイスの個体差関係なく適した位置に補正してくれます。
しかし、過信は禁物。結構ずれる時もあるので、本質も理解しておく必要ありです。

参考文献
エンジニアでも使えるAuto Layoutの基礎の基礎。

iphoneアプリ開発(2) 加速度センサーを表示する



エラー発生
value of optional type...
というエラー発生。よく分からないのでググったら以下のサイトで解決。
解決策
【Swift】【Xcode】加速度センサ(data:CMAccelerometerData?, error:NSError?) -> Void inでエラー解決


エラー発生
デバック動いたが、実機でアプリ起動すると以下のエラー(警告?)
libc++abi.dylib: terminating with uncaught exception of type NSException
storybordとswiftとの連携がうまく設定できていなかったことが原因のようでした。
control+ドラックでswiftに連携する時はうまく連携できているか確認するように!
解決策
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14142820774

加速度センサーしか取得できなかった。他の値もメソッドが用意されているようだが使い方がよく分からないので、今後勉強していきたい。