반응형
SMALL

안녕하세요! Choi GPT 입니다.

오늘은 릴리패드 여러 장치들의 소개를 하고자 합니다.


[릴리패드의 메인보드(MCU)]

출처 : learn.sparkfun.com

이렇게 다양한 MCU 보드가 있습니다.
이 MCU 보드는 사람으로 비교하자면 두뇌와 동일한 기능을 합니다.
우리가 작성한 프로그래밍을 통한 여러 장치를 조작(제어) 명령을 내리는 기능을 갖고 있습니다.

그 중에 저는 릴리패드 아두이노 USB 버전을 추천 드립니다.

그 이유는 별도의 장치 없이 곧바로 PC와 연결하고 드라이버를 설정한 후에 사용이 가능합니다.
단, 사용할 수 있는 핀이 상대적으로 제한된 버전이기에 많은 핀 사용이 필요할 경우

아래의 릴리패드 아두이노 328 메인보드 를 사용해야 합니다.

그리고 또 하나 릴리패드 아두이노 USB 버전을 보시면 다음과 같은 토글 스위치가 있습니다.

출처 : 메카솔루션

한쪽은 "ON" 다른 한쪽은 "CHG" 인데요.

ON은 말 그대로 전원을 켠다 라고 보시면 됩니다.
즉, 릴리패드에 전원을 공급할때 사용하는 기능이고요.

다른 한쪽인 CHG는 외부 전원(배터리)를 연결 후 충전하기 위한 기능 입니다.
단, CHG를 설정하면 릴리패드 전원은 켜지지 않습니다.(통신이 안됨)


[릴리패드의 주변장치 - LED]

우리 주변에서 불빛을 내는 장치를 많이 볼 수 있는데요. 그 부품을 LED라고 부릅니다.

LED의 큰 특징 극성이 있다는 것입니다. 다리가 긴쪽을 +(Anode) / 다리가 짧은쪽을 -(Cathode) 라고 부릅니다.

릴리패드 전용 LED는 다음과 같이 제작됩니다.

릴리패드 MCU와 연결은 다음과 같이 할 수 있습니다.


[릴리패드의 주변장치 - 부저(Buzzer)]

다음으로 소개해드릴 장치는 부저 입니다.

부저는 소리를 내는 장치 입니다.(삐삐삑~)
또한 부저 역시 LED와 마찬가지로 극성(+,-)이 있습니다.

부저 역시 LED와 동일한 방법으로 연결할 수 있습니다.


[릴리패드의 주변장치 - 네오픽셀]

다음으로 소개해드릴 장치는 네오픽셀 입니다.



네오픽셀은 Adafruit에서 개발한 스마트 RGB LED로, 각 LED가 개별적으로 색상과 밝기를 조절할 수 있는 
기능을 가지고 있습니다. 이 LED는 데이터 신호를 통해 제어되며, 
여러 개를 직렬로 연결하여 사용할 수 있습니다. 
릴리패드와 결합하면 패션 및 텍스타일 프로젝트에서 더욱 화려한 효과를 연출할 수 있습니다.

네오픽셀의 특징은 다음과 같습니다.

  1. 데이터 전송 : 네오픽셀은 단일 데이터 핀을 통해 제어됩니다. 이 핀을 통해 색상 정보가 전송되며, 각 LED는 수신한 데이터를 바탕으로 독립적으로 색상을 조절합니다.
  2. RGB 색상 혼합 : 네오픽셀은 빨강(R), 초록(G), 파랑(B) LED가 결합되어 각 색상을 혼합하여 다양한 색상을 만들어냅니다. 사용자는 각 색상의 밝기를 조절하여 원하는 색상을 생성할 수 있습니다.
  3. 직렬 연결 : 여러 개의 네오픽셀을 직렬로 연결할 수 있어, 하나의 데이터 핀으로 여러 개의 LED를 제어할 수 있습니다. 이로 인해 복잡한 회로를 간단하게 구성할 수 있습니다.

 

네오픽셀 연결 방법은 다음과 같습니다.


여기서 네오픽셀은 다중의 갯수를 직렬로 연결 가능합니다.(확장성)


[릴리패드의 주변장치 - 조도센서]

다음으로 소개해드릴  장치는 조도센서 입니다.

조도센서는 빛의 세기를 감지하여 전기 신호로 변환하는 센서 입니다.
일반적으로 LDR(빛 의존 저항) 또는 포토트랜지스터와 같은 부품을 사용하여 
빛의 양에 따라 저항이 변하는 원리를 이용합니다. 릴리패드와 결합하면, 
환경의 조도를 감지하여 다양한 반응을 구현할 수 있습니다.

조도센서의 연결 방법은 다음과 같습니다.


[릴리패드의 주변장치 - 온도센서]

다음으로 소개해드릴 장치는 온도센서 입니다.

온도센서는 주위의 온도를 감지하여 전기 신호로 변환하는 장치입니다. 
일반적으로 LM35와 같은 아날로그 온도센서가 많이 사용되며, 
이 센서는 온도에 따라 출력 전압이 변하는 원리를 이용합니다. 
릴리패드와 결합하면, 환경의 온도를 감지하여 다양한 반응을 구현할 수 있습니다.
참고로 릴리패드 온도센서는 MCP9700으로 생산되었습니다.

온도센서의 연결방법은 다음과 같습니다.


[릴리패드의 주변장치 - 코인형 건전지 모듈]

다음으로 소개해드릴 장치는 코인셀 배터리 연결용 건전지 모듈 입니다.

이세상 어떤 전기, 전자 장치도 전원없이 동작하는 장치는 없습니다.
만약 있다면 꼭 연락 주세요! 제가 투자하겠습니다.

코인형 건전지 모듈은 CR2032와 같은 코인형 배터리를 장착할 수 있는 모듈로, 
소형 전자 회로에 전원을 공급하는 데 사용됩니다. 
이 모듈은 작고 경량으로, 특히 패션 디자인이나 휴대용 전자 기기에서 많이 활용됩니다.

연결방법은 다음과 같습니다.


이상으로 기본적인 릴리패드 구성장치에 대한 소개를 마치겠습니다.

감사합니다.

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

3D 프린터 개발 산업기사 - 미래를 만드는 직업!


오늘은 미래 기술의 선두주자, 바로 3D프린터 개발 산업기사에 대해 알아보려고 합니다.
3D 프린터는 이제 우리의 일상과 산업 전반에 걸쳐 큰 변화를 가져오고 있는데요.


3D 프린터란 무엇인가요?

먼저, 3D 프린터가 무엇인지 간단히 짚고 넘어가볼까요?

3D 프린터는 디지털 설계도를 바탕으로 물체를 층층이
쌓아올려 실제 물체를 만들어내는 장치입니다.
말 그대로 '프린트'를 하는데, 잉크 대신
플라스틱, 금속, 세라믹 등을 사용해 입체적인 물체를 만들어내죠.


3D프린터개발산업기사란?

3D프린터개발산업기사는 3D 프린터 기술을 연구하고 개발하는 전문가입니다.
이들은 3D 프린터의 하드웨어와 소프트웨어를 설계하고,
새로운 재료를 테스트하며, 프린터의 성능을 최적화하는 역할을 합니다.


쉽게 말해, 3D 프린터를 더욱 똑똑하고 강력하게 만드는 사람들이죠!


3D프린터개발산업기사 자격증 과정

필기시험
3D프린터개발산업기사 자격증을 취득하기 위해서는 먼저 필기 시험을 통과해야 합니다.
필기 시험은 다음과 같은 과목들로 구성되어 있습니다.
  • 3D 프린터 개론: 3D 프린터의 기본 원리와 역사, 다양한 프린팅 기술에 대해 배우게 됩니다.
  • 재료 공학: 3D 프린터에서 사용되는 다양한 재료의 특성과 활용 방법을 학습합니다.
  • 프린터 설계 및 제작: 프린터의 하드웨어와 소프트웨어 설계, 제작 방법에 대해 공부합니다.
  • 프린팅 프로세스: 3D 프린팅 과정 전반에 대해 이해하고, 각 단계에서 발생할 수 있는 문제를 해결하는 방법을 배웁니다.

실기시험
필기 시험을 통과하면 실기 시험을 치르게 됩니다.
실기 시험에서는 실제 3D 프린터에서 사용하는 재료를 활용하여 과제를 수행해야 합니다.
주어진 Datasheet를 바탕으로 회로를 연결하고, 단위 과제를 완성 후 최종 연동을 완료해야 합니다.
실기 시험은 여러분의 실전 능력을 평가하는 중요한 단계입니다.

그럼 과년도 실기시험을 확인하는 방법을 설명하겠습니다.
아래 링크를 접속하시면 한국산업인력공단 Q-NET 사이트 자료실에 접속이 가능합니다.

https://www.q-net.or.kr/cst006.do?id=cst00602&gSite=Q&gId=&artlSeq=5207567&brdId=Q006

 

자료실 상세 | Q-net

BODY { FONT-SIZE: 10pt; FONT-FAMILY: Malgun Gothic; COLOR: #000000; MARGIN: 0px } P { MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px; LINE-HEIGHT: 1.2 } LI { MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px; LINE-HEIGHT: 1.2 } - 2020년 기사4회부터 시행하는 3D프린터

www.q-net.or.kr


출처 : 한국산업인력공단(Q-NET)


다음 시간에는 실기시험 관련 기출문제 소개 및 관련 모듈에 대한 사용법에 대한 소개도 드리겠습니다.

감사합니다.

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

이번 시간에는 아두이노 기초과정 중 디지털 입력에 대해 설명드리고자 합니다.

아두이노에서 디지털 입력(Digital Input)이라 함은,

아두이노 보드의 디지털 핀을 통해
외부 신호의 디지털 값(HIGH or LOW)을 읽어들이는 것을 말합니다.

주로 스위치, 센서와 같은 입력 장치의 신호를 읽어오는 데 사용합니다.


다음 예제파일을 테스트 해보도록 하겠습니다.

먼저 하드웨어 연결에 대한 정보 입니다.

장치 아두이노 핀맵
스위치 D7
LED D13
(내장 LED 사용-따로 연결하지 않음)


다음으로 동작 소스 입니다.

const int switchPin = 7; // 스위치 연결핀 
const int ledPin = 13; // LED 연결핀

void setup() {
  pinMode(switchPin, INPUT); // 스위치핀을 입력으로 
  pinMode(ledPin, OUTPUT); // LED핀을 출력으로
  Serial.begin(9600);
}

void loop() {
  int switchState = digitalRead(switchPin); // 스위치핀 읽기
  Serial.println(switchState);
  if (switchState == HIGH) {  
    digitalWrite(ledPin, HIGH); // 스위치 ON시 LED 켜기 
  }
  else {
    digitalWrite(ledPin, LOW); // 스위치 OFF시 LED 끄기
  }
}

 

digitalRead() 명령어의 정의
https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/
 

digitalRead() - Arduino Reference

Description Reads the value from a specified digital pin, either HIGH or LOW. Syntax Parameters pin: the Arduino pin number you want to read Returns

www.arduino.cc

 

위의 함수는 아두이노에서 디지털 핀의 입력값을 설정하는 함수입니다.

val = digitalRead(핀번호);
  • val: 읽어온 입력값이 저장되는 변수
  • 핀번호: 입력값을 읽어올 디지털 입력핀 번호

보통의 아두이노의 입력 카테고리(디지털, 아날로그)는 변수를 생성해 읽어드린 값을 저장해 줍니다. 

또한, digitalRead() 함수는 지정한 디지털 입력핀의 값을 읽어옵니다.
읽어온 입력값은 HIGH(1) 또는 LOW(0) 두 가지 중 하나의 값입니다.
입력핀은 앞서 pinMode() 함수를 사용하여 입력모드로 설정되어 있어야합니다.


위에 제공한 예시 소스를 구성하고 업로드 후에 동작사항을 확인해 보세요.

내장 LED (LED_BUILTIN) 에 불이 들어오나요?

정상동작이 되지 않습니다. 이유는 바로 스위치의 특성 때문인데요.

채터링 [chattering] 특성 파형

채터링 [chattering]

스위치의 하드웨어 특성 중 하나인 채터링은 스위치를 눌렀을 때 스위치 연결 핀에
불안정한 신호가 발생하는 현상을 의미합니다.
이 채터링 현상은 스위치의 접촉이 닫히는 과정에서 발생할 수 있으며,
짧은 시간 동안 스위치 연결 핀이 빠르게 ON과 OFF를 반복하여 신호를 보낼 수 있습니다.


그럼 이러한 현상을 해결할 수 있는 방법은 무엇이 있을까요?

크게 2가지가 있습니다.

1. 디바운스[debounce] : 짧은 시간에 여러번 스위치의 상태를 확인하는 방법을 의미합니다.
2. 하드웨어 혹은 소프트웨어의 풀업[PULLUP] & 풀다운[PULLDOWN] 셋팅


우선 디바운스 설정 방법 입니다.

아두이노 스케치 프로그램에서
파일 -> 예제 -> 02.Digital -> Debounce 선택하시면 됩니다.

const int buttonPin = 2;      // 버튼 핀 번호
const int ledPin = 13;        // LED 핀 번호

boolean ledState = HIGH;      // 현재 LED 상태를 초기 설정합니다. (켜진 상태)
boolean buttonState;          // 현재 버튼 상태를 저장합니다. (기본적으로 LOW)
boolean lastButtonState = LOW;// 이전 버튼 상태를 저장합니다.

unsigned long lastDebounceTime = 0; // 버튼 디바운스를 위한 시간 변수
unsigned long debounceDelay = 50;   // 디바운스 지연 시간 (50ms)

void setup() {
  pinMode(buttonPin, INPUT);   // 버튼 핀을 입력으로 설정합니다.
  pinMode(ledPin, OUTPUT);     // LED 핀을 출력으로 설정합니다.

  digitalWrite(ledPin, ledState);  // 초기 LED 상태를 설정합니다. (켜진 상태)
}

void loop() {
  int reading = digitalRead(buttonPin);  // 버튼 핀의 상태를 읽어옵니다.

  if (reading != lastButtonState) {  // 버튼 상태가 이전 상태와 다를 경우
    lastDebounceTime = millis();     // 현재 시간을 기록합니다.
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {  // 디바운스 지연 시간이 경과한 경우
    if (reading != buttonState) {   // 버튼 상태가 이전 상태와 다를 경우
      buttonState = reading;        // 버튼 상태를 업데이트합니다.

      if (buttonState == HIGH) {    // 버튼이 눌린 상태일 경우
        ledState = !ledState;       // LED 상태를 반전시킵니다. (ON <-> OFF)
      }
    }
  }

  digitalWrite(ledPin, ledState);  // LED 상태를 출력합니다.

  lastButtonState = reading;  // 이전 버튼 상태를 업데이트합니다.
}

다음으로 풀업 저항 설정 방법 입니다.

풀업 저항 설정 방법은 크게 2가지가 있습니다.

1. 하드웨어 셋팅

1. 스위치 입력단자(D7)번에 저항(10K ohm) 연결 후
2. 저항의 반대쪽은 5V 전압을 연결해주면 됩니다.

시연영상

 

2. 소프트웨어 셋팅

 

const int switchPin = 7; // 스위치 연결핀 
const int ledPin = 13; // LED 연결핀

void setup() {
  pinMode(switchPin, INPUT_PULLUP); // 스위치핀을 입력으로 
  pinMode(ledPin, OUTPUT); // LED핀을 출력으로
  Serial.begin(9600);
}

void loop() {
  int switchState = digitalRead(switchPin); // 스위치핀 읽기
  Serial.println(switchState);
  if (switchState == HIGH) {  
    digitalWrite(ledPin, HIGH); // 스위치 ON시 LED 켜기 
  }
  else {
    digitalWrite(ledPin, LOW); // 스위치 OFF시 LED 끄기
  }
}

 

감사합니다.

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

오늘 소개해드릴 내용은 아두이노 기초과정 중 디지털 출력에 대해 설명드리고자 합니다.

아두이노에서 디지털 출력(Digital Output)이라 함은,

아두이노 보드의 디지털 핀을 통해 0또는 1의 두 가지 디지털 신호 수준을 출력하는 것을 말합니다.

즉 5V나 3.3V와 같은 고전압 또는 0V의 저전압을 핀에서 출력할 수 있습니다. 

이를 이용하여 LED, 모터, 릴레이 등과 같은 다양한 장치를 ON/OFF 제어할 수 있습니다.

디지털 출력을 사용하기 위해서는 먼저 pinMode() 함수를 사용하여 해당 핀을 출력으로 설정해야 합니다. 

그리고 나서 digitalWrite() 함수를 사용하여 HIGH(고전압)나 LOW(저전압)를 출력할 수 있습니다.


다음은 예제파일 소스 입니다.

int ledPin = 13; 

void setup() {
   pinMode(ledPin, OUTPUT); // 핀 13번을 출력으로 설정
}

void loop() {
   digitalWrite(ledPin, HIGH); // 고전압 출력
   delay(1000);  
   digitalWrite(ledPin, LOW); // 저전압 출력 
   delay(1000);
}

아두이노의 내장된 LED를 출력신호를 통해 제어하는 가장 기본적인 Blink 소스 입니다.


또한 위 내용에 대한 자세한 정의는 아두이노 공식 사이트에서 확인 가능 합니다.

 

pinMode() 명령어의 정의

https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/

 

pinMode() - Arduino Reference

Example Code The code makes the digital pin 13 OUTPUT and Toggles it HIGH and LOW void setup() { pinMode(13, OUTPUT); // sets the digital pin 13 as output } void loop() { digitalWrite(13, HIGH); // sets the digital pin 13 on delay(1000); // waits for a sec

www.arduino.cc

pinMode() 함수는 아두이노에서 디지털 핀의 동작 모드를 설정하는 함수입니다.

pinMode()의 사용법은 다음과 같습니다.

pinMode(핀번호, 모드);

여기서 핀번호에는 설정하고자 하는 디지털 핀의 번호를 입력합니다.
쉽게 장치를 연결한 핀번호를 작성하시면 됩니다.

다음으로 모드 파라미터에는 다음과 같은 설정 값을 사용할 수 있습니다.

  • INPUT: 해당 핀을 입력모드로 설정합니다. 스위치, 센서등 입력 장치를 연결할 때 사용합니다.
  • OUTPUT: 해당 핀을 출력모드로 설정합니다. LED, 모터, 릴레이 등 출력장치를 제어할 때 사용합니다.
  • INPUT_PULLUP: 해당 핀에 내부 풀업 저항을 연결한 입력모드입니다.


예를들어 다음과 같이 13번 핀을 출력으로 설정할 수 있습니다.

pinMode(13, OUTPUT);

pinMode()는 설정하고자 하는 핀의 기능을 지정하기 위한 필수 함수이므로 
디지털 입출력 기능을 사용하기 전에 반드시 호출하여 사용해야 합니다.

 

digitalWrite() 명령어의 정의

https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/

 

digitalWrite() - Arduino Reference

Example Code The code makes the digital pin 13 an OUTPUT and toggles it by alternating between HIGH and LOW at one second pace. void setup() { pinMode(13, OUTPUT); // sets the digital pin 13 as output } void loop() { digitalWrite(13, HIGH); // sets the dig

www.arduino.cc

아두이노에서 디지털 핀의 출력값을 설정하는 함수입니다.

digitalWrite(핀번호, 값);

 

  • 핀번호: 출력값을 설정하고자 하는 디지털 핀 번호
  • : 설정하고자 하는 출력 값
       - HIGH: 고전압 출력(5V 또는 3.3V)
       - LOW: 저전압 출력(0V)

이상입니다.

다음 시간에는 디지털 입력에 대한 설명을 드리도록 하겠습니다.

감사합니다.

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

오늘은 아두이노 응용모듈 중에서 많이 사용하는 라이브러리에 대한 정보 입니다.

 

< 아두이노 16X2 I2C LCD >

https://blog.naver.com/boilmint7/221895866337<

 

아두이노 1602 캐릭터 LCD(I2C) 사용 예제

이번에 함께 다룰 아두이노 부품은 1602 CLCD (I2C) 입니다. (캐릭터 LCD = CLCD) 아두...

blog.naver.com

 

* LCD Address 주소 찾기(소스 다운로드 후 압축해제 후 수정없이 사용)

LCD_Adress_Finder_r1.zip
0.00MB

* LCD 기본 테스트 소스

LCD_Basic_Test_r1.zip
0.00MB

 

< 아두이노 DHT11 온습도모듈 >

https://blog.naver.com/hma778/222285869823

 

아두이노 온습도센서모듈 다루기

안녕하세요. 지난 시간에는 조도센서를 다뤄 피에조 스피커와 LED를 제어해보았습니다. 오늘은 온습도센...

blog.naver.com

* DHT11 온습도 모듈 예제 소스파일

DHTtester.zip
0.00MB


< 네오픽셀 라이브러리>

Adafruit_NeoPixel-master.zip
0.06MB

 

감사합니다.

 

반응형
LIST

+ Recent posts