2016年7月25日月曜日

Arduino と GY-50 L3G4200D ジャイロセンサーモジュール 使ってみた

準備

◆Arduino IDE (PCにインストール)

◆Arduino Uno (360円 + 送料170円) 


◆USBケーブル AーBタイプ (100円+送料170円)


◆GY-50 L3G4200D ジャイロセンサーモジュール (470円 + 送料170円)
・角速度と温度の検出
・VCC電圧は5V
・SCL、SDA電圧は3.3V
・SCL、SDA端子は 10kΩでpullUpされています


◆できれば、何か電圧レベル変換するもの(N-JFETを使った)





  工作開始 
◆ 接続します
(外部抵抗不要)GY-50 L3G4200D SCL、SDA端子は 10kΩでpullUpされています 
※(外部抵抗不要)Arduino の Wire ライブラリーを利用すると、内部の抵抗を利用して プルアップしてくれます

◆接続を確認します
確認1

確認2(Arduino Uno がつながっているポート)

◆スケッチを書きます。Y軸のみ



#include <Wire.h>
int GyroAddress = 0b1101001;
void setup() {
    Serial.begin(9600);
    Wire.begin();
    Wire.beginTransmission(GyroAddress);
    Wire.write(0x20);//Adress to set output selection
    Wire.write(0b00001010);//I set output selection with only Y-axis
    Wire.endTransmission(); 
    delay(1500);
}
void loop(){
    Wire.beginTransmission(GyroAddress);
    Wire.write(0x2B); //(high)Address of Y-axis angular rate data.
    Wire.endTransmission();
    Wire.requestFrom(GyroAddress, 1); // read a byte
    while(!Wire.available()) {
        // waiting
    }
    int yH = Wire.read();
   
    Wire.beginTransmission(GyroAddress);
    Wire.write(0x2A); //(low)Address of Y-axis angular rate data.
    Wire.endTransmission();
    Wire.requestFrom(GyroAddress, 1); // read a byte
    while(!Wire.available()) {
        // waiting
    } 

    int yL = Wire.read();
   
    int y = 256 * yH + yL;
    Serial.print(" angular=");
    Serial.print(y); 

    Wire.beginTransmission(GyroAddress);
    Wire.write(0x26); //Address of temperature
    Wire.endTransmission();
    Wire.requestFrom(GyroAddress, 1); // read a byte
    while(!Wire.available()) {
        // waiting
    }
    int t = Wire.read();

    Serial.print("     temperature=");
    Serial.println(t);
    delay(100);
}


 

◆シリアルモニタで見ます




・角速度も温度も0点調整をやらないといけないようだ。
・温度が上がると数値が下がるようだ。
・割り込みはどうするのだ?
What is Interrupt ?
 Does anyone have some obvious fix / advice / a direction to try? 

 



2016年6月28日火曜日

Arduino と I2C LCDモジュール 使ってみた

準備 

AArduino IDE(PCにインストール無料) 

◆Arduino UNO (360円+送料170円)
 


◆I2C LCDモジュール (630円+送料170円) 


◆Arduino IDE(PC)と Arduino UNO をつなぐUSBケーブル(100円+送料170円) 


 工作開始
◆接続します
明るさ調整します
 

◆接続を確認します
 確認1


確認2


◆ライブラリ(NewliquidCrystal_1.3.4.zip)をダウンロードします





 ◆Arduino  IDE にダウンロードしたライブラリを追加します





◆追加されたライブラリのスケッチを開きます
ファイル>スケッチの例>NewliquidCrystal>HelloWorld_i2c


◆スケッチを変更します。購入した I2C LCD のアドレスに変更します。 
0x38

0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE

※NOTE : I2C LCD has Several types of address.You should ask seller.
※注意 : I2C LCD のアドレスはいくつか有るようです。販売者に聞いたほうがいいです。



明るさ調整がうまくないと表示されません、青色一色で文字が表示されないなど。

 3.3Vでも5Vでも表示されました

2016年6月22日水曜日

Arduino と マイクロ サーボ SG90 使ってみた

追加内容
2016/11/21
サーボMG90S
サーボMG996R
ーーーーーー

 準備 

◆Arduino IDE(PCにインストール無料)


◆Arduino Uno(ンヘッダー同梱)(360円+送料170)

Arduino IDE(PC)とArduino UnoをつなぐUSBケーブル(100円+送料170)



メタルギアサーボ MG996R    (1190円+送料170)
メタルギアマイクロ サーボ MG90S   (350円+送料170)
マイクロ サーボ SG90   (250円+送料170)



◆電源直流5V(何か用意する)

 工作開始
◆Arduino IDE(PC)とArduino Unoをつなぎましょう
◆Arduino Unoにスケッチ を書き込みましょう

 ツール > マイコンボード > Arduino Uno

ツール > シリアルポート > Arduino Unoが接続されているポート
 

スケッチを書く

 int t, t1, t2, sw,r,d;

void setup() {
  pinMode(9, OUTPUT);
  pinMode(10, INPUT_PULLUP);
  sw=1;
  t1= micros();
  digitalWrite(9, LOW);  
}

void loop() {
  t = micros();
  r =digitalRead(10);
    
     if(r== 0){
       d = 1000;
     }else{
       d = 2000;
     }
  
    if(d <= t-t1 && sw==1){    
      digitalWrite(9, LOW);
      sw = -1*sw;
      t2 = micros();
    }
 
    if(20000-d <= t-t2 && sw==-1){
      digitalWrite(9, HIGH);
      sw = -1*sw;
      t1 = micros();
    } 
}

 

◆Arduino UnoをPCから外し、下の図のようにつなぎましょう
Caution: GND---------10
 pinMode(10,INUT);     //NG
 pinMode(10, INPUT_PULLUP);   //OK


SG90

MG90S

MG996R



 
  


 

2016年6月21日火曜日

Arduino と USBシリアル変換モジュールFT232RL と AVRマイコンATMEGA328 使ってみた

 準備   

◆Arduino IDE(PCにインストール無料)


◆Arduino Uno(ンヘッダー同梱)(360円+送料170)



Arduino IDE(PC)とArduino UnoをつなぐUSBケーブル(100円+送料170)




◆USBシリアル変換モジュール( FTDI FT232RL)(580円+送料170円)
又は、( cp2102)(340円+送料170円)



Arduino IDE(PC)とUSBシリアル変換モジュールをつなぐMiniUSBケーブル(100円+送料170)


AVRマイコンATMEGA328P-PU(220円+送料170)


◆その他(100円+送料170円)
・水晶発振子16MHz
・コンデンサ(0.1uF x 2、  22pF x 2)
・抵抗(10kΩ x 1、 1kΩ x 1)

・LED



ジャンパーワイヤ + ブレッドボード  (100円+170円+送料170円)



工作開始
◆Arduinoソフト(PC)とArduinoハードをつなぎましょう.


Arduino Unoに ArduinoISP を書き込みましょう
ファイル > スケッチの例 > ArduinoISP

ツール > マイコンボード > Arduino Uno

ツール > シリアルポート > Arduino Unoがつながっているポート




◆Atmega328 と Arduino(ArduinoISP) をつなぎましょう.

◆Atmega328 に Arduino Unoのブートローダ を書き込みましょう
ツール > 書き込み装置 > Arduino as ISP

ツール > マイコンボード > Arduino Uno

ツール > シリアルポート > Arduino Uno(ArduinoISP)が接続されているポート

ツール > ブートローダ書き込む

◆Atmega328(Arduino Uno) に FT232RL 又は co2102 をつなぎましょう

Atmega328(Arduino Uno) にスケッチ を書き込みましょう

ツール > マイコンボード > Arduino Uno


ツール > シリアルポート > FTDI FT232RL  又は cp2102が接続されているポート

 スケッチを書く
int led = 9;
void setup() {       
   pinMode(led, OUTPUT);     
}
void loop() {
  digitalWrite(led, HIGH);  
  delay(1000);              
  digitalWrite(led, LOW);   
  delay(1000);               
}