[ev3×Java]   表示、音、LEDの制御

この記事はJavaでev3を操作してみたい人のための記事です。
今回はインテリジェントブロックを使ってテキストを表示したり、音を出したり、LEDを制御していきたいと思います。


#目次
0 . 用意するもの
1 . 表示
2 . 音
3 . LED
最後に



#0.用意するもの
◯ ev3(インテリジェントブロック)
◯ パソコン(VSCode)
◯ bluetooth
◯ microSD
◯ [API Documentation](http://www.lejos.org/ev3/docs/overview-summary.html)(これをみながら進めていくのがオススメです。)



#1.表示

##1-0 . 表示の基礎プログラム ① 

◯3秒間文字を表示するプログラムです。

```display00.Java
import lejos.utility.Delay;

public class Display00
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!!");
        Delay.msDelay(3000);
    }
}
```

---

##1-1 . 表示の基礎プログラム ② 

◯テキストを表示する場所やフォントを変更することができるプログラムです。


```display01.java
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;
import lejos.hardware.ev3.LocalEV3;
import lejos.utility.Delay;


public class Display01 {

    public static void main(String[] args) {

    	GraphicsLCD g = LocalEV3.get().getGraphicsLCD();
        final int SW = g.getWidth();
        final int SH = g.getHeight();
    	
		g.drawString("Hello World", 5, 0, 0);
		Delay.msDelay(3000);
		g.setFont(Font.getSmallFont());
		g.drawString("Programming is so fantastic!!", 2, 20, 0);
		Delay.msDelay(3000);
        g.drawString("Good BYE", SW/2, SH/2, 0);
		Delay.msDelay(1000);
    }
}
```
---

Point:**drawStringメソッド**
void drawString(java.lang.String str,int x,int y,boolean inverted)

---
Point:**[Font](http://www.lejos.org/ev3/docs/lejos/hardware/lcd/Font.html)**


---


Point:**[インターフェースGraphicsLCD](http://www.lejos.org/ev3/docs/lejos/hardware/lcd/GraphicsLCD.html)**

---





























##1-2 . 表示の基礎プログラム ③

◯図形などを表示するプログラムです。


```display02.java
import lejos.hardware.lcd.GraphicsLCD;
import lejos.hardware.ev3.LocalEV3;
import lejos.utility.Delay;


public class Display02 {

    public static void main(String[] args) {

    	GraphicsLCD g = LocalEV3.get().getGraphicsLCD();
        final int SW = g.getWidth();
        final int SH = g.getHeight();
  
        g.drawChar('A', 30, 30, 0);
        g.drawRect(0,0,100,100);
        g.fillRect(SW/2,SH/2,50,50);
        Delay.msDelay(3000);
    }
}
```

Point:**[getGraphicsLCD](http://www.lejos.org/ev3/docs/lejos/hardware/lcd/GraphicsLCD.html#drawChar-char-int-int-int-())**
Get graphics access to the LCD
Returns:the graphics LCD

Point:**drawRectメソッド**
void drawRect(int x,int y,int width,int height)





























---

#2.音

####2-0 . 音の基礎プログラム①

◯様々な音を出すプログラムです。

```Sound00.java
import lejos.hardware.Sound;

public class Sound00
{
    public static void main(String[] args)
    {
        Sound.beep();
        Sound.buzz();
        Sound.systemSound(true,2);
    }
}
```

---


Point:**[Soundクラスのメソッド](http://www.lejos.org/ev3/docs/lejos/hardware/Sound.html)**


---



####2-1 . 音の基礎プログラム②

◯周波数を調整して音を出すプログラムです。

```Sound01.java
import lejos.hardware.Sound;

public class Sound01
{
    public static void main(String[] args)
    {
    	Sound.playTone(262, 500);//ド
    	Sound.playTone(294, 500);//レ
    	Sound.playTone(330, 500);//ミ
    	Sound.playTone(349, 500);//ファ
    	Sound.playTone(392, 500);//ソ
    }
}
```

Point:**[音階の周波数](https://tomari.org/main/java/oto.html)**



















#3.LED

####3-0 . LEDの基礎プログラム

◯様々なパターンで色を表示することができます。

```led00.java
import lejos.hardware.Button;
import lejos.utility.Delay;

public class LED00 {

    public static void main(String[] args) {

    	for (int i = 0;i < 10;i++) {
    		System.out.println(i);
    		Button.LEDPattern(i);
    		Delay.msDelay(3000);
    	}
    }
}
```













#最後に

読んで頂きありがとうございました！！
次回はインテリジェントブロックボタンについて書いていきたいと思います！

より良い記事にしていきたいので
　◯こうした方がわかりやすい
　◯ここがわかりにくい
　◯ここが間違っている
　◯ここをもっと説明して欲しい
などの御意見、御指摘のほどよろしくお願い致します。