본문 바로가기

반응형

Embedded System

(24)
[Arduino] Packet 통신: Comportmaster를 활용한 Packet 송신(18) 안녕하세요.지난 포스팅에서는 아두이노와 Comport Master를 활용해서 패킷을 수신하는 작업을 진행하여 보았습니다.이번 포스팅에선 아두이노에서 Header와 Tailer를 갖춘 6바이트 패킷을 송신하는 작업을 진행하여 보겠습니다.0. ComportMaster 설치 및 다운 & ComportMaster란?https://semicircuit.tistory.com/entry/%EC%8B%9C%EB%A6%AC%EC%96%BC-%ED%86%B5%EC%8B%A0-Comport-Master%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95-%EB%B0%8F-%EB%8B%A4  1. 패킷에 대한 이론적인 내용은 아래..
[Arduino] Packet 통신: Comportmaster를 활용한 Packet 수신(17) 안녕하세요. 아두이노를 이용해 외부 장치와 통신을 하거나 데이터를 수신할 때, 패킷 구조를 잘 이해하고 데이터를 처리하는 방법이 중요합니다. 이번 포스트에서는 아두이노에서 6바이트 패킷을 수신하고, 헤더와 체크섬을 통해 데이터의 유효성을 확인하는 방법을 소개하겠습니다. 0. ComportMaster 설치 및 다운 & ComportMaster란?https://semicircuit.tistory.com/entry/%EC%8B%9C%EB%A6%AC%EC%96%BC-%ED%86%B5%EC%8B%A0-Comport-Master%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95-%EB%B0%8F-%EB%8B%A4 1...
[Arduino] Arduino IDE 단축키 총정리 안녕하세요. Arduino IDE를 사용하다 보면 반복적으로 사용하는 작업이 많습니다. 이때 단축키를 활용하면 생산성을 크게 향상시킬 수 있습니다. 아래는 알아두면 좋은 단축키와 그 설명을 정리한 목록입니다. ※1. 기본 파일 작업Ctrl + N새 파일 생성Ctrl + O파일 열기Ctrl + S파일 저장Ctrl + Shift + S다른 이름으로 저장Ctrl + W파일 닫기   ※2. 코드 편집Ctrl + Z실행 취소 (Undo)Ctrl + Y다시 실행 (Redo)Ctrl + X잘라내기Ctrl + C복사Ctrl + V붙여넣기Ctrl + F찾기Ctrl + H찾기 및 바꾸기Ctrl + A전체 선택Ctrl + /선택한 줄을 주석 처리 (토글)    ※3. 코드 컴파일 및 업로드Ctrl + R코드 확인 (컴파일)..
[Arduino] MCP4725 DAC 사용법: I2C 통신으로 아날로그 출력 제어하기(16) 안녕하세요.MCP4725는 I2C 인터페이스를 통해 제어할 수 있는 12비트 디지털-아날로그 변환기(DAC)입니다. 아두이노를 사용하여 이 칩을 제어하면 정밀한 아날로그 출력을 생성할 수 있습니다. 이 글에서는 MCP4725를 아두이노와 연결하고, I2C 통신을 통해 아날로그 신호를 출력하는 방법을 알아보겠습니다.  ※1.  MCP4725 제어MCP4725는 12비트 DAC로, 0~4095의 디지털 값을 아날로그 전압으로 변환할 수 있습니다. 기본적으로 I2C 통신을 사용하여 아두이노와 데이터를 주고받으며, 최대 5V까지의 아날로그 출력을 제공할 수 있습니다. 이 칩을 사용하면 오디오 신호 생성, 센서 보정, 파형 출력 등 다양한 프로젝트에 활용할 수 있습니다.     ※2. Wiring (배선 연결)E..
[Arduino] 아두이노 가변저항[Potentiometer] (볼륨 저항) 사용하기 (14) 안녕하세요.이번 포스트에서는 가변저항(볼륨저항)을 돌림에 따라 입력받는 크기를 읽어 들이는 방법에 대해 알아보겠습니다.  이것을 방식을 통해 외부에서 볼륨을 돌림으로써 다양한 제어가 가능한 장치들을 만들수 있습니다.가변 저항(Potentiometer)은 저항 값을 조정할 수 있는 전자 부품으로, 주로 전압 분배기, 조정 가능한 전위차, 센서 입력 등의 목적으로 사용됩니다. 가변 저항은 세 개의 핀을 가지고 있으며, 두 개의 고정된 저항과 한 개의 이동 가능한 저항을 포함합니다. 이를 통해 사용자는 저항 값을 조절할 수 있습니다.   ※1.  가변 저항 ▶1. 가변 저항의 구조와 작동 원리가변 저항은 내부에 저항체를 가지고 있으며, 저항체 위를 이동할 수 있는 접점(슬라이더)이 있습니다. 가변 저항에는 세..
[Arduino] 아두이노 LCD 1602 - GPIO, I2C ( HC-SR04 ) 사용하기 (14) 안녕하세요.이번 포스팅에서는 LCD DISPLAY를 사용해보겠습니다. LCD DISPLAY의 제어 방식은 Parallel(병렬) 방식의GPIO와 Serial(직렬) 방식의 I2C가 있습니다. 둘다 다뤄 볼겠습니다.!!  LCD 1602는 16x2 캐릭터 LCD 모듈로, 한 줄에 16개의 문자, 총 2줄에 32개의 문자를 표시할 수 있습니다. 이 모듈은 다양한 프로젝트에서 널리 사용되며, 마이크로컨트롤러와 쉽게 통신할 수 있습니다. 다음은 LCD 1602의 주요 특징, 핀 구성, 그리고 Arduino와의 연결 방법에 대한 설명입니다.  LCD는 BackLight는 디스플레이의 광원이고 자체 발광하는 OLED에 비해 LCD는 자페 발광을 하지 못해 BackLight는 필수입니다.   ※1.  2가지 모듈LC..
[Arduino] 아두이노 초음파 거리센서 ( HC-SR04 ) 사용하기 (13) 안녕하세요.이번 포스트에서는 거리를 측정하는 센서중 초음파를 통해 거리를 측정하는 초음파거리센서 HC-SR04에 대해 알아보겠습니다.거리를 측정하기 위해 사용하는 센서는 크게 초음파센서와 레이더 센서로 나뉘어집니다. 이번 포스팅에서는 초음파거리센서에 대해 알아보겠습니다.초음파 거리 센서는 초음파를 사용하여 물체까지의 거리를 측정하는 장치입니다. 초음파 거리 센서는 다양한 응용 분야에서 사용되며, 특히 로봇 공학, 자동화 시스템, 거리 측정 등에 널리 활용됩니다. 가장 일반적으로 사용되는 초음파 거리 센서 중 하나는 HC-SR04입니다.※1.  초음파 거리센서의 원리과 특징초음파 거리 센서는 초음파 펄스를 방출하고, 이 펄스가 물체에 반사되어 돌아오는 시간을 측정합니다. 소리가 공기 중을 이동하는 속도(약..
[Arduino] 아두이노 온도센서 ( LM35, DS18B20 ) 사용하기 (12) 안녕하세요.이번 포스트에서는 외부 온도를 받아들이는 온도센서(LM35, DS18B20)에 대해 알아보겠습니다.LM35와  DS18B20은 교육용으로 가장 많이 사용하는 온도센서입니다. LM35는 섭씨 온도(Celsius)를 측정하는 정밀 온도 센서로, 다양한 전자 프로젝트와 산업 응용 분야에서 사용됩니다. 이 센서는 온도에 비례하는 아날로그 전압 출력을 제공하여 쉽게 온도를 측정할 수 있습니다. LM35는 다른 온도 센서와 비교하여 높은 정확도와 선형 출력을 제공하는 것이 특징입니다.생긴것(Package Type)은 우리가 흔히 생각하는 트랜지스터의 형태와 동일합니다.※1.  온도센서 ( LM35, DS18B20 ) 제어1. LM35의 원리LM35는 아날로그 온도 센서로, 온도 변화에 따라 전압 출력을 ..
[Arduino] 아두이노 포토레지스터 ( CDS ) 사용하기 (11) 안녕하세요.이번 포스트에서는 아두이노에서 밝기에 대한 정보를 입력 받아 밝기를 조건으로 LED를 켜보는 내용에 대해 알아보겠습니다.포토레지스터(Photoresistor)는 빛의 강도에 따라 저항값이 변하는 빛 감지 센서입니다. 주로 조도(밝기)를 측정하거나 빛의 존재 여부를 감지하는 데 사용됩니다. 포토레지스터는 저항값이 빛의 강도에 반비례하여 작동합니다. 즉, 빛이 강해지면 저항값이 낮아지고, 빛이 약해지면 저항값이 높아집니다.※1.  포토레지스터의 기본 원리 포토레지스터는 빛을 감지하는 재료로 구성되어 있으며, 이 재료는 일반적으로 **황화카드뮴(CdS)**을 사용합니다. CdS는 반도체 특성을 가지며, 빛을 받으면 전도도가 증가합니다. 이로 인해 저항값이 낮아집니다.주요 특성감도: 포토레지스터의 저..
[Arduino] 아두이노 슬라이드 스위치로 LED제어 (10) 안녕하세요.저번시간에 택트스위치에 대해서 다룬것에 이어서 슬라이드 스위치를 소개하겠습니다.슬라이드 스위치(Slide Switch)는 물리적으로 슬라이드 메커니즘을 통해 전기 회로를 연결하거나 차단하는 스위치입니다. 주로 다양한 전자기기에서 모드 전환, 전원 제어 등의 용도로 사용됩니다. 슬라이드 스위치는 조작이 간편하고 직관적이어서 사용자가 쉽게 상태를 확인하고 제어할 수 있습니다.※1. 슬라이드 스위치의 구조 및 작동 원리 슬라이드 스위치의 구조 및 작동 원리구조슬라이더(Slider): 손가락으로 밀거나 당기는 부분으로, 슬라이더를 이동시켜 전기적 연결을 변경합니다.터미널(Terminal): 슬라이드 스위치의 핀으로, 주로 3개의 핀이 있습니다.공통 핀(Common Pin): 보통 가운데 위치한 핀으로..
[Arduino] 아두이노 택트 스위치로 LED제어 (9) 안녕하세요.이번 포스팅에서는 택트 스위치에 대해 알아보고 택트 스위치를 통해 스위치를 켜도 끄는 방식을 알아보겠습니다.개요~택트 스위치(Tactile switch)는 일반적으로 전자 프로젝트에서 많이 사용되는 소형의 푸시 버튼 스위치입니다. 주로 사용자가 스위치를 누르면 회로가 연결되고, 손을 떼면 회로가 끊어지는 형태로 작동합니다. 아두이노 프로젝트에서 LED를 켜고 끄는 데 자주 사용됩니다. 택트 스위치의 구조와 동작 원리, 그리고 아두이노와의 연결 방법에 대해 자세히 설명드리겠습니다. ※1.  택트 스위치의 구조와 동작 원리  구조:핀: 택트 스위치는 일반적으로 4개의 핀이 있습니다. 이 중 두 핀은 내부적으로 연결되어 있으며, 다른 두 핀도 마찬가지로 연결되어 있습니다.내부 메커니즘: 스위치를 누..
[Arduino] 아두이노 3색 LED 제어하기(빨 초 파 흰)_Common Cathode (8) 안녕하세요.이번 포스트에서는 하나의 LED에서 3가지 RGB 색을 나타낼 수 있어 이들을 조합으로 모든 색을 출력할 수 있는 3색 LED에 대해 알아보겠습니다.3색 LED는 일반적으로 빨간색, 초록색, 파란색의 세 가지 색을 낼 수 있는 LED를 말합니다. 이 LED는 하나의 패키지 안에 RGB(빨강, 초록, 파랑) 세 가지 색상의 LED 칩을 포함하고 있습니다. 이러한 LED는 다양한 색상을 만들기 위해 사용되며, 세 가지 기본 색상의 조합을 통해 다양한 색을 표현할 수 있습니다. ※1.  3색 LED 제어 구성 및 동작 원리RGB LED: 3색 LED는 RGB LED라고도 불리며, 각각의 LED 칩은 독립적으로 제어할 수 있습니다. 이를 통해 다양한 색을 조합할 수 있습니다.빨간색 LED (Red)초..
[Arduino] 아두이노 8x8 Matrix Dot LED(1088BS)제어하기 (7) 안녕하세요.이번 포스팅에서는 8개의 열과 8의 행으로 이루어져 총 64개의 LED로 구성된 가로8 세로8 배열의 LED에 대해 알아보고 아두이노를 통해 동작시켜 보겠습니다. 8x8 매트릭스 LED는 8개의 행과 8개의 열로 구성된 총 64개의 LED가 배열된 디스플레이 모듈입니다. 각 LED는 행과 열의 교차점에 위치하며, 이를 통해 다양한 문자, 도형 및 애니메이션을 표시할 수 있습니다. 이 매트릭스 LED는 아두이노와 같은 마이크로컨트롤러와 쉽게 연동할 수 있습니다. ※1.  8X8 Dot Matrix LED 구조 및 제어[ 8x8 매트릭스 LED 구조] 행과 열:8x8 매트릭스 LED는 8개의 행(Row)과 8개의 열(Column)로 구성됩니다.각 행과 열은 개별적으로 제어할 수 있으며, 이를 통해..
[Arduino] 아두이노 4Digit 7Segment(4자리 FND)제어하기 (6) 안녕하세요.이번 포스팅에서는 4자리 7 Segment(FND)를 다루는 방법에 대해 알아보겠습니다.  아두이노(Arduino)와 4자리 FND(Four-Digit Seven-Segment Display)를 함께 사용하면 숫자나 문자를 표시할 수 있는 간단한 디지털 디스플레이를 만들 수 있습니다. 4자리 FND는 보통 7개의 세그먼트와 1개의 소수점(Dot)으로 구성된 4개의 디지털 디스플레이가 하나로 결합된 형태입니다. 이를 통해 최대 4자리 숫자를 표시할 수 있습니다. 이제 4자리 FND의 작동 원리와 아두이노와의 연결 방법을 설명해드리겠습니다. ※1.  4Digit 7 Segment 구조4자리 FND의 구조세그먼트: 각 자리에는 7개의 LED 세그먼트(A, B, C, D, E, F, G)와 소수점이 ..
[Arduino] 아두이노 Common Anode 7Segment(FND) 제어하기 (5) 안녕하세요.이번 포스팅에서 여러개의 Seven Segment를 Common Anode Type를 동시에 제어하는 방식에 대해 알아보겠습니다. ※1.  7-Segment FND (Common Anode Type)제어7-Segment FND (Field's Numeric Display)는 일종의 숫자 표시 장치로, 일반적으로 디지털 시계, 계산기, 디지털 계측기 등에서 사용됩니다. "FND"는 "Field's Numeric Display"의 약자이며, 7개의 LED 세그먼트로 구성되어 있습니다. 이 7개의 세그먼트는 각각 숫자를 표시하는 데 사용됩니다.Common Anode (공통 양극) 타입의 7-Segment FND에서는 모든 LED 세그먼트의 양극이 공통으로 연결되어 있습니다. 이는 모든 세그먼트의 양..
[Arduino] 아두이노 Common Cathode 7 Segment(FND) 제어하기 (4) 안녕하세요.이번 포스팅에서 여러개의 Seven Segment를 Common Cathode Type를 동시에 제어하는 방식에 대해 알아보겠습니다.  ※1.  7-Segment FND (Common Cathode Type)제어7-Segment FND (Field's Numeric Display)는 일종의 숫자 표시 장치로, 일반적으로 디지털 시계, 계산기, 디지털 계측기 등에서 사용됩니다. "FND"는 "Field's Numeric Display"의 약자이며, 7개의 LED 세그먼트로 구성되어 있습니다. 이 7개의 세그먼트는 각각 숫자를 표시하는 데 사용됩니다. Common Cathode (공통 음극) 타입의 7-Segment FND에서는 모든 LED 세그먼트의 음극이 공통으로 연결되어 있습니다. 이는 모든..
[Arduino] 아두이노 핀맵 & 아두이노 사양 모음 안녕하세요.이번 포스팅에서는 아두이노 사용시 필히 알아야하는 보드의 핀 넘버, 즉 핀맵을 한번에 모아두었습니다. 필요할 때 볼 수 있겠금 즐겨차기 해주시는 것도 좋을 것 같아요.  ※1. 아두이노 우노 [ Arduino Uno ] ▶1. Pin Map [핀맵]  ▶2. 스펙 [Spec]    ※2. 아두이노 나노 [ Arduino Nano ] ▶1. Pin Map [핀맵] ▶2. 스펙 [Spec]    ※3. 아두이노 마이크로 [Arduino Micro] ▶1. Pin Map [핀맵]  ▶2. 스펙 [Spec]   ※4. 아두이노 메가 ▶1. Pin Map [핀맵]  ▶2. 스펙 [Spec]    ※5. 아두이노 D1R2 (호환) ▶1. Pin Map [핀맵]  ▶2. 스펙 [Spec]    ※6. 아..
[임베디드] 아두이노 VS 라즈베리파이 안녕하세요.임베디드 개발 보드에는 마이크로비트, ESP, ARM 보드 등 다양하게 있고 아두이노와 라즈베리 파이 또한 이러한 개발 보드에 포함됩니다.    아두이노(Arduino)와 라즈베리 파이(Raspberry Pi)는 둘 다 임베디드 시스템 및 IoT 프로젝트에 널리 사용되는 인기 있는 플랫폼입니다. 그러나 이들은 목적과 기능에서 상당한 차이가 있습니다. 동일하게 어떤 제품이나 프로젝트에서 타겟을 개발하기 위한 초기 프로토타입 설계 하드웨어로써 사용되지만 용도에 따른 목적에 따라 이 둘을 구분할 필요가 있습니다.     ※1. 아두이노 (Arduino) ▶1. 시리즈 Meaga, Uno, Nano, Micro, Leonardo, MKR, Pro, tiny 등. ▶2. 목적   아두이노는 주로 간단한..
[MCP23017] 임베디드 디지털 입출력 확장 안녕하세요.이번 포스트에서는 아두이노나 라즈베리 등 다양한 개발 보드에서 입출력 핀이 부족할 때 보드를 더 사용할 수도 없고 당황할 때 해결 방법으로 좋은 IC Chip을 설명드립니다. 예시 코드도 제공해 드릴 것이지만 꼭 이해하고 사용해 보세요~  ※ 디지털 입출력 확장 : 충분하지 않은 핀의 개수를 하드웨어적으로 확장시켜 문제를 해결하는 방법을 설명한다. ▶1. 키 매트릭스 : 예를 들어 2X2 크기의 LED 매트릭스의 경우 4개의 LED를 제어하기 위해 8개의 핀을 사 용하였다. LED 매트릭스의 경우 LED 들을 행과 열로 배열하고 행 또는 열 단위로 제어함으로써 필요한 핀의 개수를 줄일 수 있다. Col1에 HIGH가 가해 지고 Col2에는 LOW가 가해졌다고 가 정해 보자. 1열에 연결된..
통신 프로토콜(I2C, SPI, ISP, UART) 안녕하세요.이번 게시글에서는 임베디드, FPGA등 다양한 개발 보드와 환경에서 가장 많이 사용하는 통신 프로토콜 4개에 대해 알아보겠습니다.   ※ 통신 프로토콜 (Comunication Protocol) : 마이크로컨트롤러와 주변장치 사이에 디지털 정보를 간편하게 전송할 수 있는 방법을 제공하기 위해 만들어진 통신 프로토콜을 말한다.  ▶1. I2C [Inter-Integrated Circuit] : 여러 개의 장치를 연결하는 경우에도 신호선 두 개(SDA-Serial Data, SCL-Serial Clock)만을 연결하여 사용할 수 있다. 적은 신호선을 사용하는 장점이 있는 반면 SPI에 비해 속도가 느리며 동시 양방향 통신이 불가능하여 양방향 통신이 필요한 경우에는 전송 속도가 더 느려진다. ..
[Arduino] 아두이노 LED 여러개 제어하기 (3) 안녕하세요.이번 포스팅에서 여러개의 LED를 동시에 제어하는 방식에 대해 알아보겠습니다. ※1.  LED 제어아두이노에서 여러 개의 LED를 동작시키는 것은 기본적으로 단일 LED를 동작시키는 것과 유사합니다. 다만, 각 LED에 대해 해당하는 디지털 핀을 설정하고, 이를 제어하는 방식으로 확장됩니다.여러 개의 LED를 동작시키는 원리는 아래와 같습니다.각 LED에 대한 디지털 핀을 아두이노에 연결합니다. 이때, 각 핀은 LED의 양극(긴 다리)에 연결되어야 합니다.각 LED에 대한 디지털 핀을 출력으로 설정합니다. 이는 pinMode() 함수를 사용하여 수행됩니다.각 LED에 대해 digitalWrite() 함수를 사용하여 해당 디지털 핀에 HIGH 또는 LOW 값을 설정하여 LED를 켜고 끌 수 있습..
[임베디드] 부트로더란? 안녕하세요.부트로더(Bootloader)는 컴퓨터나 임베디드 시스템의 기본적인 부팅 프로세스를 관리하는 프로그램입니다. 주된 역할은 시스템이 부팅될 때 초기화되고, 운영 체제 또는 다른 응용 프로그램을 로드하고 실행하는 것입니다.이러한 부트로더는 가장 먼저 실행되는 것이지만 직접 느껴보기에는 어려움이 있습니다. (아두이노 보드와 같은 경우는 이미 install이 되어 있어요..) 하지만 필수적인 작업인 만큼 한번 알아봅시다.  ※ 부트로더 (Boot Loader) ▶ 부트로더 : 마이크로컨트롤러에 프로그램을 다운로드하기 위해서는 일반적으로 ISP 방식을 사용한다. 하지만 아두이노에서는 부트로더를 이용하여 UART 시리얼 방식을 통해 프로그램을 다운로드하는 것이 일반적이다. ​ 양산된 아두이노 보드는 스..
[Arduino] 아두이노 LED On/Off (2) 안녕하세요.이번 포스팅에서는 간단하게 Arduino Board 에서 LED를 On / Off 하는 기능을 수행 해보겠습니다.  ※1.  LED 제어아두이노를 사용하여 LED를 제어하는 것은 비교적 간단합니다. LED는 Light Emitting Diode의 약자로, 전류가 흐르면서 빛을 내는 반도체 소자입니다. 아두이노를 사용하여 LED를 제어하는 것은 LED에 전류를 흐르게 하거나 그렇지 않게 함으로써 LED의 켜짐/꺼짐을 조절하는 것입니다.아두이노에서 LED를 제어하기 위해서는 보통 디지털 핀을 사용합니다. 디지털 핀은 HIGH(전압이 가해진 상태) 또는 LOW(전압이 가해지지 않은 상태) 두 가지 상태 중 하나로 설정될 수 있습니다. 이것을 이용하여 LED를 제어할 수 있습니다.  ※2. Wirin..
[Arduino] 아두이노 기본, 아두이노 시작_SW 설치 및 보드 연결(1) 안녕하세요.지금 포스팅부터 연속적으로 아두이노의 기본 모듈을 다뤄보겠습니다. 우선 기본적인 설치와 보드와 PC의 연결부터 진행해서 차츰 여러가지 모듈을 사용해 보는 방향으로 진행하겠습니다.   ※1. Arduino IDE아두이노(Arduino) IDE(Integrated Development Environment)는 아두이노 마이크로컨트롤러를 프로그래밍하고 관리하기 위한 통합 개발 환경입니다. 이 IDE는 프로그래밍 언어로 C와 C++을 사용하며, 아두이노 보드에 프로그램을 업로드하고 디버깅하는 데 사용됩니다.아두이노 IDE는 사용하기 쉬운 사용자 인터페이스를 제공하여 프로그래밍 경험이 적은 사람들도 쉽게 아두이노 프로젝트를 시작할 수 있습니다. 또한, 다양한 라이브러리와 예제 코드를 포함하고 있어 다양..

반응형