2013년 12월 29일 일요일

아두이노 LCD

12월 22일 일요일 [아두이노 강좌] 11. LCD 디스플레이 연결하기 character LCD 디스플레이를 결선하고 사용하는 방법
사용되는 디스플레이는 LED 백라이트가 있으며, 두개열에 16개의 문자를 표시할 수 있다 LCD 라이브러리를 사용하는 아두이노 예제 프로그램을 실행하여 센서를 이용하여 온도나 조도를 LCD에 표시하여 보도록 한다. 브레드보드 레이아웃LCD 디스플레이는 동작을 위해서 6개의 아두이노 핀이 필요하며 6개의 핀은 모두 디지털 출력으로 셋팅되어야 한다. 5v와 GND 연결
위의 그림과 같이 결선 한다. 포텐셔미터가 하나 연결되어 이 포텐셔미터는 LCD의 constrast를 조절하는데 사용이 된다. 아두이노 코드아두이노 IDE는 LCD 라이브러리를 사용한 IDE에서 Examples --> Liquid Crystal --> HelloWorld 를 찾아 우리가 사용하는 핀과 다른 핀을 LCD용으로 사용하므로 코드를 수정 이 부분은 사용하고자 하는 LCD의 종류에 따라 다를 수 있으므로 LCD 데이터 쉬트를 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 아래와 같이 변경한다. LiquidCrystal lcd(7, 8, 9, 10, 11, 12); 코드를 아두이노에 업로드하면, 다음과 같이 'hello, world'가 디스플레이 되는 것을 볼 수 있다. #include 이 코드는 아두이노에 LCD라이브러리를 사용할 것이라고 알려주는 코드이다. 다음에 나오는 코드는 우리가 수정한 코드로 아두이노와 LCD가 어떤 핀으로 연결되었는지를 알려주는 역활을 한다. LiquidCrystal lcd(7, 8, 9, 10, 11, 12); 함수에 넘겨주는 파라메터는 다음과 같다. 디스플레이 핀이름 디스플레이 핀번호 아두이노 핀 RS 4 7 E 6 8 D4 11 9 D5 12 10 D6 13 11 D7 14 12 setup함수에서는 다음의 두개의 명령이 있다. lcd.begin(16, 2); lcd.print("hello, world!"); 첫번째 줄은 디스플레이가 가진 행과 열 정보를 LCD라이브러리에 알려주는 코드이며, 두번째 줄은 "hello, world"를 LCD에 디스플레이하라는 코드 이다. loop함수에는 두개의 명령이 있다. lcd.setCursor(0, 1); lcd.print(millis()/1000); 첫번째 명령은 다음 텍스트가 위치할 커서를 설정하는 명령 이다. 여기서는 행이 0, 열이 1 두번째 줄은 밀리세컨드의 숫자를 출력 한다.
(결과는 출력을 못했습니다..)

2013년 12월 21일 토요일

라즈베리파이 아두이노 통신 (UART,I²C SPI,SCSI)


12월21일
UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter)는 병렬 및 직렬 방식으로 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. UART는 일반적으로 EIA RS-232, RS-422, RS-485와 같은 통신 표준과 함께 사용한다. UARTU는 범용을 가리키는데 이는 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식(이를테면 차분 신호)이 일반적으로 UART 바깥의 특정한 드라이버 회로를 통해 관리를 받는다는 뜻이다.
 
I²C 는 풀업 저항이 연결된 직렬 데이터(SDA)와 직렬 클럭(SCL)이라는 두 개의 양 방향 오픈 컬렉터 라인을 사용한다. 최대 전압은 +5 V 이며, 일반적으로 +3.3V 시스템이 사용되지만 다른 전압도 가능하다.
I2C는 오직 시그널 커넥션 2개를 여러 장치들에 아주 쉽게 아두이노를 연결할 수 있다. 그리고 2개의 커넥션을 통해 시그널 통신을 한다. 그러나 SPI에 비해 데이터 속도가 느리고 오직 데이터는 한번에 한 방향으로만 이동하며 만약 양방향 통신을 한다면 단 방향에 비해 속도가 더 느려진다는 단점이 있다.
SPI의 장점은 inputoutput 커넥션이 분리되어 있어 동시에 읽고 쓰기를 할 수 있으므로 데이터 속도가 높다.
그러나 액티브한 장치를 선택한 장치별로 연결라인이 필요하다.대부분의 아두이노 프로젝트들은 하나의 장치와
연결할 수 있는 이더넷과 메모리 카드와 같은 높은 데이터 속도의 SPI 장치들을 사용하고 I2C는 많은 양의 데이터를
전송할 필요가 없는 센서들에 많이 사용한다.
 
SPI(Serial Peripheral Interface) 통신은 4개의 통신 신호
(/SS, SCK, MISO, MOSI)를 사용하여 클럭에 동기를 맞
추어 보다 고속으로 데이터 통신을 합니다.
주로 MCU와 주변 장치간에 통신을 하는데, MCU 끼리 도
통신이 가능합니다.
 
직렬 주변기기 인터페이스 버스(Serial Peripheral Interface Bus)
 
직렬 주변기기 인터페이스 버스(Serial Peripheral Interface Bus) 또는 SPI 버스는 아키텍처 전이중 통신 모드로 동작하는 모토로라 아키텍처에 이름을 딴 동기화 직렬 데이터 연결 표준이다.
SCSI 병렬 인터페이스 (SCSI Parallel Interface)
 
SCSI (스커지/스카시, Small Computer System Interface, 문화어: 스카지, 소형콤퓨터체계대면부, 콤퓨터체계결합장치)는 컴퓨터에 주변기기를 연결할 때 직렬 방식으로 연결하기 위한 표준을 일컫는다. 다시 말해, 컴퓨터에서 주변기기를 연결하기 위한 직렬 표준 인터페이스로 입출력 버스를 접속하는 데에 필요한 기계적, 전기적인 요구 사항과 모든 주변 기기 장치를 중심으로 명령어 집합에 대한 규격을 말한다.
 
 
 
 
 

버튼 이미지

이미지 찾기
 





 

 

아두이노 소스

(LED 소스)
void setup(){
pinMode(13,OUTPUT);
}
void loop(){
digitalWrite(13,HUGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
}
(LED 4개)
void setup(){
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop(){
digitalWrite(13,HUGH);
digitalWrite(12,HUGH);
digitalWrite(11,HUGH);
digitalWrite(10,HUGH);
delay(100);
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(100);
}
(pushbuttons 소스) 
int =13;
int =2;
int val =0;
}
void setup(){
pin Mode(13,OUTPUT)
pin Mode(2,INPUT);
}
void loop(){
val=digitalRead(inputpin);
if(val==HIGH){
digitalWrite(13,LOW);
}else{
digitalWrite(13,HIGH);
}
 
}
(servos소스)
 
#include<servo.h>
servo myservo;
int pos=0;
void setup(){
myservo.attach(9);
}
void loop(){
for(pos =0; pos <180; pos +=1){
myservo.write(pos);
delay(15);
}
for(pos =180; pos >=180; pos -=1){
myservo.write(pos);
delay(15);
}
}
(RGB LED소스)
int red=13;
int green=12;
int blue=11;
void setup(){
}
void loop(){
for (green=0;
green<=255;
green+=5){
red=255-green;
analogWrite(GREEN_LED_PIN,green);
analogWrite(RED_LED_PIN,red);
delay(DISPALY_TIME);
}
for(blue=0;
blue<=255;
blue+=5){
green=255-blue;
analogWrite(BLUE_LED_PIN,blue);
analogWrite(GREEN_SED_PIN,green);
delay(DISPALY_TIME);
}
for(red=0;
red<=255;
red+=5){
blue=255-red;
analogWrite(RED_LED_PIN,red);
analogWrite(BLUE_SED_PIN.blue);
delay(DISPALY_TIME);
}
}

(piezo Elements 소스)
int speakerpin=9;
int length=15;
char noter[] = "ccggaagffeeddc";
int beats[] ={1,1,1,1,1,1,2,1,1,1,1,1,1,2,4};
int tempo=300;
 
void playTone(int tone, inr duration){
for(long I=0;i<duration * 1000L;i+=tone *2){
digitalwrite(speakerpin,HIGH);
delayMicroseconds(tone);
digitalwrite(speakerpin,LOW);
delayMicroseconds(tone);
}
}
void playNote(char,note,int,duration){
char names[] = {'c','d','e','f','g','a','b','c'};
int tones[]={1915,1700,1519,1432,1275,1136,1014,956};
for(int I =0; i<8; i++){
if(names[i]==note){
playTone(tones[i],duration);
}
}
}
void setup(){
pinMode(13,OUTPUT);
}
void loop(){
for(int I =0; i<lengh i++){
if(notes[i]==' '){
dealy(beats[i] *tempo);
}else{
playNote(notes[i],beats[i]*tempo);
}
dealy(tem/2);}
}
 

 
 
 

 
 

11월6일 아두이노 실험 사진

D(LED)

(버튼)


(4개 LED)

디바이스에 대해


12월 6일

Android Device ID란 사용자의 모바일 기기와 관련된 고유 문자-숫자 식별 코드입니다. 고객 지원팀이 특정 문제의 해결을 도울 때 Android Device ID가 필요할 수 있습니다.
 
자신의 Android Device ID를 모른다면, 2가지 방법으로 확인할 수 있습니다.
휴대폰 통신사에 문의하여 전화기의 어느 곳에 저장되어 있는지 확인하는 방법을 권장합니다.
또한 Android Device ID를 확인하기 위해 다운로드할 수 있는 다양한 앱이 있습니다. Play 스토어에서 "Device ID"를 검색하세요. 많은 플레이어들이 게시자 Redphx의 앱으로 "Device ID"를 찾는데 성공했으며 다른 앱도 이용할 수 있습니다. 당사는 사용자가 최선의 판단과 주의를 기울여 자신의 모바일 기기에 다운로드할 앱을 선택할 것을 권장합니다.
 
 
 
디바이스 ID(DID)
Sun Cluster는 디바이스 ID(DID) 의사 드라이버로 알려진 구성을 통해 글로벌 디바이스를 관리합니다. 이 드라이버는 멀티호스트 디스크, 테이프 드라이브 및 CD-ROM과 같은 클러스터 내의 모든 디바이스에 자동으로 고유 ID를 할당하는 데 사용됩니다.
 
디바이스 ID(DID) 의사 드라이버는 클러스터의 글로벌 액세스 기능의 통합 일부분입니다. DID 드라이버는 클러스터의 모든 노드를 규명하고 고유한 디스크 디바이스 목록을 만들어, 클러스터의 모든 노드에서 일관되는 고유한 메이저 번호와 마이너 번호를 각각에 할당합니다. 글로벌 디바이스에 대한 액세스가 수행되어 디스크에 대한 c0t0d0과 같은 기존 Solaris 디바이스 ID 대신 DID 드라이버에 의해 할당된 고유 디바이스 ID를 이용합니다.
 
이러한 방법을 사용하면 디스크 디바이스를 이용하는 응용프로그램(원래 디바이스를 사용하는 볼륨 관리자나 응용프로그램)이 일관된 경로를 사용하여 디바이스에 액세스할 수 있게 합니다. 이러한 일관성은 멀티호스트 디스크에 대해 특히 유용합니다. 각 디바이스의 로컬 주 번호 및 부 번호는 노드마다 다를 수 있으므로 Solaris 디바이스 이름지정 규칙도 변경될 수 있기 때문입니다. 예를 들어, node1c1t2d0처럼 멀티호스트 디스크로 보이고, node2c3t2d0처럼 완전히 다른 동일한 디스크로 볼 수 있습니다. DID 드라이버는 글로벌 이름을 할당하여, d10처럼 각 노드에 멀티호스트 디스크에 대해 일관된 맵핑을 제공합니다.