2016年5月29日日曜日

Arduino と 超音波測距センサモジュール 使ってみた

 準備   

◆Arduinoのソフト(PCにインストール無料)

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



◆Arduinoのソフト(PC)とArduinoのハードをつなぐUSBケーブル(100円+送料170円



 
超音波測距センサモジュール(US-015) (150円+送料170)

 工作開始
◆全てつなぎましょう.




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

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


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


スケッチを書く
    int interval = 0;
    double distance = 0;

    void setup() {
        pinMode( 2, OUTPUT );
        pinMode( 3, INPUT );
        Serial.begin( 9600 );
    }
    void loop() {     
            digitalWrite( 2, HIGH );
            delayMicroseconds( 100 );
            digitalWrite( 2, LOW );

            interval = pulseIn( 3, HIGH );
            distance = interval * 0.017;       
            Serial.println( distance, 1 );
        delay(3000);  
    }

 →

◆シリアルモニタで見てみましょう
 単位はcm


実測:3cm~450cm測れました。正確さは抜きにして、反応しました。




2016年5月27日金曜日

ブレッドボード用電源モジュール いいかも

いいかも


ブレッドボードに刺して使います


ブレッドボード用電源モジュール130円+送料170円)

2016年4月3日日曜日

Arduino と Ethernet Shield (micro SD, Wiznet W5100) 使ってみた

準備   
 ◆Arduinoソフト (PCにインストール無料)


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

◆Arduinoソフト(PC)と Arduinoハード をつなぐUSBケーブル(100円+送料170円)
  

Ethernet  Shield(870円+送料170円)





LANケーブル



Micro SD


工作開始

    Ethernet

(; ̄Д ̄)   Non-printed  MAC address (MACアドレス印刷されていない)
 local network ok, But  no internet(LANで使う分には問題ない、しかしWANで使うには登録必要と思う)

(; ̄Д ̄)
 (︶︹︺)
<( ̄ ﹌  ̄)>

全てつなぎましょう


  
◆Arduinoソフトにスケッチを書きましょう
 
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
EthernetClient client;

void setup() {
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    for(;;)
      ;  // 永遠に何もしない
  }
  Serial.println(Ethernet.localIP());  // IPアドレスを表示
}

void loop() {

◆Arduinoハード(マイコンボード)にスケッチを書き込みましょう


◆シリアルモニタで見てみましょう
  
  
   micro SD

全てつなぎましょう
  
◆Arduinoソフトにスケッチを書きましょう



/*
  SD card test
  
 This example shows how use the utility libraries on which the'
 SD library is based in order to get info about your SD card.
 Very useful for testing a card when you're not sure whether its working or not.
    
 The circuit:
  * SD card attached to SPI bus as follows:
 ** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila
 ** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila
 ** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila
 ** CS - depends on your SD card shield or module.
         Pin 4 used here for consistency with other Arduino examples


 created  28 Mar 2011
 by Limor Fried
 modified 9 Apr 2012
 by Tom Igoe
 */
 // include the SD library:
#include <SD.h>

// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;

// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
const int chipSelect = 4;   

void setup()
{
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("\nInitializing SD card...");
  // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
  // Note that even if it's not used as the CS pin, the hardware SS pin
  // (10 on most Arduino boards, 53 on the Mega) must be left as an output
  // or the SD library functions will not work.
  pinMode(10, OUTPUT);     // change this to 53 on a mega


  // we'll use the initialization code from the utility libraries
  // since we're just testing if the card is working!
  if (!card.init(SPI_HALF_SPEED, chipSelect)) {
    Serial.println("initialization failed. Things to check:");
    Serial.println("* is a card is inserted?");
    Serial.println("* Is your wiring correct?");
    Serial.println("* did you change the chipSelect pin to match your shield or module?");
    return;
  } else {
   Serial.println("Wiring is correct and a card is present.");
  }

  // print the type of card
  Serial.print("\nCard type: ");
  switch(card.type()) {
    case SD_CARD_TYPE_SD1:
      Serial.println("SD1");
      break;
    case SD_CARD_TYPE_SD2:
      Serial.println("SD2");
      break;
    case SD_CARD_TYPE_SDHC:
      Serial.println("SDHC");
      break;
    default:
      Serial.println("Unknown");
  }

  // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
  if (!volume.init(card)) {
    Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
    return;
  }


  // print the type and size of the first FAT-type volume
  uint32_t volumesize;
  Serial.print("\nVolume type is FAT");
  Serial.println(volume.fatType(), DEC);
  Serial.println();
 
  volumesize = volume.blocksPerCluster();    // clusters are collections of blocks
  volumesize *= volume.clusterCount();       // we'll have a lot of clusters
  volumesize *= 512;                            // SD card blocks are always 512 bytes
  Serial.print("Volume size (bytes): ");
  Serial.println(volumesize);
  Serial.print("Volume size (Kbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.print("Volume size (Mbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);

 
  Serial.println("\nFiles found on the card (name, date and size in bytes): ");
  root.openRoot(volume);
 
  // list all files in the card with date and size
  root.ls(LS_R | LS_DATE | LS_SIZE);
}

void loop(void) {
 
}

 ◆Arduinoハード(マイコンボード)にスケッチを書き込みましょう

◆シリアルモニタで見てみましょう

2016年3月22日火曜日

Arduino と HMC5883L 3軸磁気センサー 使ってみた

準備   
 ◆Arduinoソフト (PCにインストール無料)


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


◆Arduinoソフト(PC)と Arduinoハード をつなぐUSBケーブル(100円+送料170円)


GY-271 HMC5883L 3軸磁気センサー(380円+送料170円)



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



工作開始
全てつなぎましょう

 ◆ハード(マイコンボード)に Arduino Uno を選びましょう


◆Arduinoソフトにスケッチを書きましょう


 /*
An Arduino code example for interfacing with the HMC5883

by: Jordan McConnell
 SparkFun Electronics
 created on: 6/30/11
 license: OSHW 1.0, http://freedomdefined.org/OSHW

Analog input 4 I2C SDA
Analog input 5 I2C SCL
*/

#include <Wire.h> //I2C Arduino Library

#define address 0x1E //0011110b, I2C 7bit address of HMC5883

void setup(){
  //Initialize Serial and I2C communications
  Serial.begin(9600);
  Wire.begin();
  
  //Put the HMC5883 IC into the correct operating mode
  Wire.beginTransmission(address); //open communication with HMC5883
  Wire.write(0x02); //select mode register
  Wire.write(0x00); //continuous measurement mode
  Wire.endTransmission();
}

void loop(){
  
  int x,y,z; //triple axis data

  //Tell the HMC5883 where to begin reading data
  Wire.beginTransmission(address);
  Wire.write(0x03); //select register 3, X MSB register
  Wire.endTransmission();
  
 
 //Read data from each axis, 2 registers per axis
  Wire.requestFrom(address, 6);
  if(6<=Wire.available()){
    x = Wire.read()<<8; //X msb
    x |= Wire.read(); //X lsb
    z = Wire.read()<<8; //Z msb
    z |= Wire.read(); //Z lsb
    y = Wire.read()<<8; //Y msb
    y |= Wire.read(); //Y lsb
  }
  
  //Print out values of each axis
  Serial.print("x: ");
  Serial.print(x);
  Serial.print("  y: ");
  Serial.print(y);
  Serial.print("  z: ");
  Serial.println(z);
  
  delay(250);
}


◆Arduinoハード(マイコンボード)にスケッチを書き込みましょう


◆シリアルモニタで見てみましょう



別のソフトを使って出力されたX,Y,Zをプロットしてみると(Plot  value)