2020년 1월 18일 토요일

enum을 사용하여 간단하게 switch case문 구현하기

enumeration data type(열거 데이터 유형)

enum은 아래와 같은 데이터 유형을 사용한다.

enum 열거형 이름 {원소1=1, 원소2, 원소3, 원소4, ····, 원소n} 변수1, ···, 변수n;

다음 예제는 enum을 사용하여 switch case를 구현한 예제 코드 이다.

웹컴파일러 : https://www.onlinegdb.com/

(예제코드)

#include <stdio.h>

enum xSTAGE_Filter_t {Step1_Standby=1, Step2_Calcuration, Step3_Run, Step4_Reset} xStage_Filter;

int nCount = 0;

int main()
{
    xStage_Filter = Step1_Standby;
    while(1)
    {
        nCount++;
        switch(xStage_Filter)
        {
            case Step1_Standby:
                printf("Stage = %d[%d]\n", xStage_Filter,nCount);
                xStage_Filter = Step2_Calcuration;
                break;
            case Step2_Calcuration:
                printf("Stage = %d[%d]\n", xStage_Filter,nCount);
                xStage_Filter = Step3_Run;
                break;
            case Step3_Run:
                printf("Stage = %d[%d]\n", xStage_Filter,nCount);
                xStage_Filter = Step4_Reset;
                break;
            case Step4_Reset:
                printf("Stage = %d[%d]\n", xStage_Filter,nCount);
                xStage_Filter = Step1_Standby;
                break;
        }     
    }
}

(실행결과)
Stage = 1 [1]
Stage = 2 [2]
Stage = 3 [3]
Stage = 4 [4]
Stage = 1 [5]
Stage = 2 [6]
Stage = 3 [7]
Stage = 4 [8]
Stage = 1 [9]
....
....

2016년 1월 15일 금요일

대면적 포스센서 (A Large Area Force Touch)

윈도우즈 OS 를 위한 대면적 포스터치

(LFT:A Large Area Force Touch for Windows OS)

지난해 2015년 11월 세계에서 가장 큰 '대면적 포스터치'를 개발완료 하였다. '세계 최대 포스터치'라는 타이틀을 획득한 것은 자체 개발, 생산된 메탈메쉬 터치스크린 센서 기술이 있었기에 가능했다.

금호전기의 LFT 기술은 무엇인가?

정전용량 터치스크린(PCT:Projected Capacitive Touchscreen)에 메탈메쉬 센서를 구성하는 주 전극물질인 구리(Cooper)에 물리적 특징을 활용하여 아주 미세한 커버글래스의 변형을 감지할 수 있도록 개발되었다. 커버글래스를 손가락으로 얼마만큼 누르는지에 따라 화면을 확대하고, 원하는 기능을 바로 불러올 수 있는 등 수많은 편리성을 제공할 수 있다.

LFT의 적용 대상은?

최근 스마트폰에 적용 가능한 다양한 포스터치 기술들이 등장하여 새로운 기능들을 구연하고 있다. 이들은 '애플 iOS', '구글 Android' 운영체제에 최적화 되어 개발되고 있다. 금호전기는 자체 내재화된 메탈메쉬 터치센서에 포스터치 기능을 가미하여 '마이크로소프트 Windows' 운영체제에 특화된 새로운 포스터치를 개발하였다. 현존하는 모든 올인원PC는 2D입력만 가능하여 마우스에 오른쪽 버튼 기능을 활용하지 못해 매우 불편했다. 하지만 LFT를 적용하게 되면 윈도우에서도 3D 입력이 가능해져 PC에 달린 마우스 역활을 대신할 수 있어 편리성이 매우 부가될 수 있다.

기술시연 동영상

디스플레이 크기 : 60cm (23.6인치)
LFT모듈 제조사 : 금호전기(주)


※ 기술문의 : sikim@kumho.khe.co.kr 

2015년 9월 4일 금요일

[2장] 라즈베리 파이 (Raspberry Pi)의 OS 라즈비안 설치하기

1장에서 너무나도 쉽게 라즈베리 파이를 처음 접한 일화를 소개하였다. 역시나 너무나도 쉽게 구동되어 뭔가 찜찜한 구석이 있었다. 안드로이드를 설치하려다 라즈비안에 문제가 발생해 부팅이 안되는 상태가 발생하였다. 이참에 라즈비안 설치 법에 대해 소개하고자 한다.

(1) 라즈베리 파이의 OS설치 기본개념
     - 라즈베리 파이의 OS는 Micro-SD Card에 저장되어 있다.
     - 따라서 Micro-SD Card를 컴퓨터에 연결하여 OS를 설치해야 한다.
     - Micro-SD Card를 컴퓨터에 연결하기 위해 Micro SD Reader 또는 변환 Adapter가 필요하다.
     - 라즈비안 OS 설치파일은 (https://www.raspberrypi.org/downloads/)에서 다운 받는다.
     - 설치 프로그램은 (http://sourceforge.net/projects/win32diskimager/)에서 다운 받는다.

(2) Micro-SD Card를 컴퓨터에 연결하기

 

우측 그림과 같이 가장 상단부터 SD, Mini-SD, Micro-SD 순이다. 모바일 폰에는 Micro-SD가 가장 많이 사용되고 카메라에는 SD가 많이 사용되고 있다. 일반적으로 SD는 요즘 노트북에 대부분 리더기가 장착되어 있어 쉽게 연결할 수 있다. 만약 Micro-SD를 PC에 연결해야 하는데 어뎁터도 없고 메모리 리더기도 없다면, 구입을 해야만 한다. 인터넷에서 택배배 보다 훨씬 저렴한 가격에 구입할 수 있으니 참고하기 바란다.
 
검색어
(1) 네이버 - "micro sd 리더기"


(3) 라즈비안 OS 다운받기

인터넷 익스플로러에서 라즈베리 파이 재단 사이트( https://www.raspberrypi.org/) 에 접속한다.


사이트 접속 후 사이트 좌측 상단에 DOWNLOADS  탭을 클릭한다.


라즈베리 파이 공식 OS 인 라즈비안(RASPBIAN)과 써드파티 OS인 우분투, 스누피, 윈도우10, 등 다양한 OS를 다운받을 수 있다.
우리는 라즈비안을 설치할 것이므로 상단에 RASPBIAN (빨간 골뱅이 아이콘) 을 클릭하자.


친절하게도 토렌트와 ZIP파일로 다운받을 수 있도록 준비되어 있다. 토렌트가 없다면 Download Zip 아이콘을 클릭하자.


인터넷 익스플로러 창 아래쪽에 열거나 저장하기 팝업이 뜬다. 여기서 저장하기를 누르자.
다운로드가 완료되고 나면 Zip 압축을 해제 하자.


압축이 해재되고 나면 3.2기가 상당의 디스크 이미지 파일이 생성된다.
이제부터 Win32DiskImager를 사용해 이미지를 Micro-sd에 복사를 진행할 것이다.
우선 Win32DiskImager를 다운받자. (사이트 : http://sourceforge.net/projects/win32diskimager/)



사이트 접속 후 초록색 DOWNLOADS 버튼을 클릭하자.
클릭 후 새로운 창이 뜨고 5초 지나면 아래와 같이 다운로드 팝업이 뜬다.


실행을 누르면 다운로드가 완료 되고 설치 프로그램이 실행된다.
다음만 누르고 설치를 완료하자.

Win32DiskImager는 이미지파일을 Micro-sd에 기록해주는 역활을 한다.
프로그램을 실행시키면 아래와 같다.


이미지파일을 선택해야 하는데 아까 라즈베리 파이 사이트에서 다운받고 압축을 해제한 이미지 파일을 선택하자.


파일이 선택되고난 후 Write 버튼이 활성화 된것을 확인할 수 있다. Write 버튼을 누르자.


현재 D드라이브가 Micro-sd 인데 덥어쓰기를 할것인지 물어본다. 만약 중요한 데이터(?)가 들어있다면 당연히 No를 해야겠지만 설치를 원한다면 Yes를 누르자.


Progress 게이지가 올라가면서 몇프로 완료되었는지 확인이 가능하다.
100% 완료될 때 까지 잠깐 기다리면 된다.



복사가 완료되고 나면 Write Successful 메세지를 확인할 수 있다.
이로써 모든 작업이 완료되었다.

처음 라즈베리 재단 사이트에서 확인된 서드파티 OS또한 동일한 방법으로 설치 가능하다.
기본적인 라즈베리 파이 OS 설치 방법을 설명 했으므로 이 방법만 숙지 하면 OS설치는 문제가 없을 것이다.

2014년 8월 11일 월요일

[TSP] a performance analysis report about enhanced touchscreen using a sapphire glass.

a performance analysis report about enhanced touchscreen using a sapphire glass.



◆ Introuduction

This document is results of touch performance simulation to apply sapphire glass. Recently, some of smartphone makers has announced the plan to apply sapphire glass through the web news. that reason, most of a smartphone has applied of the chemically strengthened glass to the stylish and thinner design but the customer's enviroment was easily damaged. Therefore a smartphone makers want to use the sapphire for resolve the problem.

◆ The cover glass of dielectric constant

The dielectric constant of the cover glass is used for a touchscreen.
A sapphire material has between 2 to 3 more higher values than a strengthened glass.


※ dielectric constant : relative value about the dielectric constant of vacuum (value = 1)

The experiment verify the impact from a sensitivity of touch to a dielectric constant through the simulation.

◆ Hypothesis
A touchscreen sensitivity revice significant impact to finger size(DFINGER) and cover glass thickness(TGLASS), mutual capacitance(CMUTUAL) between TX and RX.
If the dielectric constant is increased the CFINGER and CMUTUAL Will Be increase. Therefor the sensitivity of touch sensing will be reduced.
a thin glass and a wide finger(DFINGER) would be effective methods for higher sensitivity.



◆ Results

The results are shown below:

◎ Simulation configurations
- Pattern Pitch : 5.00mm x 5.00mm
- Glass Thickness : 0.70mm
- Finger Size : Dia. 4.00mm
- TSP Type : G1F, G2, GFF



(C) 2014. 김선익(tsp-engineer.blogspot.kr) all rights resered.

2014년 8월 5일 화요일

[TSP] 디스플레이 장치에 Direct bonding을 적용할 경우 광학적 개선효과 분석

디스플레이 장치에 Direct bonding을 적용할 경우 광학적 개선효과 분석

  필자는 2012년도에 국내 디스플레이 대기업인 S사와 함께 13.3”, 15.6”, 21.5”, 23.6”, 24.0” 등 다양한 개발모델을 가지고 대면적 다이렉트 본딩 기술을 개발한 경험을 가지고 있습니다. 그때의 기술은 OCA를 적용한 대면적 다이렉트 본딩기술로써 방법 자체로만 보았을 때 부착공정이 단순하고 공정속도 또한 빨라 대면적 디스플레이 장치에 최적화된 부착 방식이였습니다. 하지만 신뢰성 문제를 극복하지 못하고 상용화 되지 못하였습니다.
  최근에 다이렉트 본딩기술을 적용한 제품을 양산화 하는 프로젝트가 시작됨에 따라 다시 한번 기술을 분석하고 연구해 보려고 합니다.

◆ Direct Bonding 이란?

  터치스크린과 액정디스플레이가 하나로 결합된 장치를 제조하기 위한 접합기술의 명칭을 Direct bonding(다이렉트 본딩) 이라고 칭합니다. 동일한 의미로 Optical Bonding (옵티컬 본딩) / Full Lamination (라미네이션) / Screen Fit (스크린 ) 이라는 용어를 사용합니다.
  이 기술은 n개의 광학장치를 투명한 인덱스 매팅된 접착제로 상호 접합하는 기술로 1980년대에 CRT와 LCD 디스플레이 장치에 처음 사용된 기술입니다.  주로 고성능 제품을 요구하는 군사목적의 항공/우주 장치에 사용되었습니다. 최근에는 상업 및 공업용 장치에 적용되었고 아이폰, 겔럭시와 같은 스마트폰에도 사용되며 실생활에 다양한 용도로 사용되어 지고 있습니다.

◆ Direct Bonding 제품의 구조


  좌측 그림은 종래의 구조로 Touch Sensor와 Display Device 사이에 Air gap이 존재 하는 구조입니다. 최근에는 저가형 제품에 이러한 구조가 적용되고 있습니다.
  우측 그림은 Direct bonding된 종래의 구조에서 개선된 구조 입니다. 종래의 구조에서 Air gap 없이 OCA 또는 OCR로 Display Device와 밀착된 구조를 갖고 있습니다.
  

 ◆ Direct Bonding의 이점

- 야외 명암비 향상에 따른 시인성 향상
투과율 향상에 따른 소비전력 감소
디스플레이 장치의 강도 향상
터치센서와 디스플레이 장치 사이에 먼지 유입 방지
 

◆ Direct Bonding의 광학적 개선효과 분석

  Direct Bonding을 적용한 디스플레이 장치는 종래의 디스플레이 장치보다 광학적 특성이 개선되는 효과가 있습니다. 이는 명함비가 향상되고 투과율이 향상되는 이점 때문에 디스플레이 장치로써 매우 큰 효과라고 할 수 있습니다. 그렇다면 어떻게 광학적 특성이 개선되는지 이론적으로 설명하고 증명해 보고자 합니다.
  디스플레이 장치는 빛을 이용하여 사용자에게 정보를 전달해 주는 역활을 하는 장치 입니다. 따라서 그 장치를 이루는 여러 광학층들은 입사,반사,흡수,통과 등으로 그 특성을 나타낼 수 있습니다.

우리가 알 고 있는 매질 경계면에서 보존 법칙은 아래와 같습니다.

 ∴ ρ(Refectivity) + α(Absorptivity)+τ(Transmittivity) = 1 

  어느 투명한 Substrate에 입사된 광원은 투과되거나 반사 또는 열로 흡수되는 등 그 총양은 같다는 공식입니다. 디스플레이 장치를 가장 밝고 선명하게 만들기 위하여 투과율을 높여야 하는데 물질의 흡수율이 고정되어 있다 가정한다면 반사율을 낮출 수록 투과되는 양을 높일 수 있습니다. 반사율을 낮추는 방법으로는 Anti-reflection coat을 경계면에 형성하면 가능한데 이러한 방법은 Index matching 방법으로 정반사율을 결정하는 두 굴절율을 같게 만들면 정반사율을 0로 만들 수 있게 됩니다.

아래와 같이 Direct Bonding을 적용한 경우 광학적 개선효과에 대한 결과를 비교 계산하였다.


◆ 광학적 개선효과 분석 결과

  계산 결과를 보면 Air gap 보다 Direct Bonding이 광학적 특성이 우수하다는 것을 확인 할 수 있었다. 특히 전체 반사율 및 C/R(Contrast ratio)가 개선되는 것을 확인할 수 있다.
  여기서 또한가지 확인가능한 부분은 C/R이 화면 시인성을 가늠하는 절대적인 지표가 아니다. Air gap 상태일 때 태양광 아래에서 반사율은 1355nits이고 Direct Bonding 상태에서는 467.1nits이다. 그 차이가 분명하므로 C/R 만 보면 큰 차이가 없다. 따라서 C/R은 시인성을 판단하는 절대적 도구로 사용하면 안된다.

(C) 2014. 김선익(tsp-engineer.blogspot.kr) all rights resered.

2014년 7월 20일 일요일

[C언어] AVR MCU를 위한 비트 제어 방법 (Bit control methods for AVR MCU)

다양한 방법을 통해 MCU의 비트를 제어할 수 있습니다.
(The bit of MCU can control through many method.)

아래와 같이 간단한 정의를 통해 비트 제어를 정의하고 수행될 수 있습니다.
(As below, through the simple definitions the bit control can be defined ans executed.)

1. 하나의 비트를 "1"로 Set 하기
(1. one of bit set to "1")

#define sbi(PORTX,BITX) PORTX|=(1<<BITX)

-For Example
PORTA=0xBF; //ob10111111
sbi(PORTA,7); // PORTA|=0x40; or PORTA|=64;


만약 여러 비트를 set하고 싶다면 아래와 같은 명령어를 사용하면 된다.
(If you want to be the set of several bits, you can used like as below.)

#define sbis(PORTX,BITX) PORTX|=BITX;

-For Example
PORTA=0x0F;
sbis(PORTA,0xF0);


2. 하나의 비트를 "0"로 Clear 하기
(2. one of bit clear to "0")

#define cbi(PORTX,BITX) PORTX&=~(1<<BITX)

- For example
PORTA=0xFF; //ob11111111
cbi(PORTA,8);PORTA&=~0x80;


만약 여러 비트를 clear 하고 싶다면 아래와 같은 명령어를 사용하면 된다.
(If you want to be the clear of several bits, you can used like as below.)

#define sbis(PORTX,BITX) PORTX|=BITX;

-For Example
PORTA=0x0F;
cbis(PORTA,0x0F); //PORTA&=~0x0F;


[AVR] IIC/I2C/TWI 2004 20X4 Character Liquid Crystal Display Module / #2 TWI Communications for the hardware configuration

  8bit AVR MCU에 TWI(I2C) 통신 기능을 활용하여 20x4 LCD Display Module을 제어하려고 한다면 필수적으로 TWI(I2C)에 대해 알아야 합니다.
  TWI(Two Wire Inctertace)는 우리가 흔이 알고 있는 I2C(Inter_Integrated Circuit)와 같은 통신 방식으로 Mega128에서는 TWI라고 부릅니다. I2C는 필립스에서 개발한 직렬 컴퓨터 버스 이며 주변기기들과 저속의 통신을 위해 개발되었습니다. 통신을 위해 필요한 단자는 단 2개의 (SCL, SDA) 이며 다수의 장치를 한번에 연결하여 통신할 수 있습니다.

아래 그림은 다수의 장치가 연결된 형태입니다.
 

 
  I2C 통신 라인을 통하여 Master (MCU)에 여러 장치들(Slave)이 연결되어 있는 형태입니다. 각각의 장치들은 자신들만의 고유한 주소를 가지고 있어 Master는 주소를 지정하여 장치를 선택하고 선택된 장치와 통신을 할 수 있습니다. 만약 중복되는 주소를 갖는 장치가 있다면 Master로 부터 명령이 제대로 전달되지 않고 통신을 할 수 없는 상태가 되기 때문에 각 장치들은 중복되지 않는 주소를 갖고 있어야 합니다. 따라서 각 장치들은 별도의 Address select 기능을 갖고 있어 주소가 중복되지 않도록 설정할 수 있습니다.  ATmega128의 경우 최대 128개 까지 연결 할 수 있도록 설계되어 있습니다.

아래 회로도는 20x4 LCD를 연결한 회로도 입니다.
PCF8574T의 ADDRESS SELECT는 0x40으로 선택되어 있습니다. 따라서 TWI(I2C)통신을 할때 명령을 읽고 쓰기 위해서 주소를 0x40을 사용해야 합니다.

   I2C 통신에서 빠지지 말아야할 것은 SCL과 SDA는 항상 VDD와 저항을 통해 Pull-up 상태를 유지해야 합니다. 만약 그렇지 않는 경우 아래와 같이 SDA, SCL Signal이 정확한 구형파형을 만들지 못하여 통신 오류가 발생하게 됩니다.


  ATmega128에 최대 TWI통신 속도는 400㎑ 입니다. 따라서 400㎑ 이하의 장치는 모두 호환되며 각 장치마다 통신속도가 다르더라도 1:1 통신이기 때문에 그 속도를 가변하여 통신할 수 도 있습니다.  우리가 사용할 20x4 LCD Module에 장착된 PCF8574 I2C I/O Expander IC의 최대 통신속도는 100㎑ 이므로 통신속도를 100㎑ 이하로 설정해야만 정확한 통신이 가능합니다.

[C++] 연습문제 1-2

 /****************************************************************************** - 피트(feet)를 인치(inch)로 변환시켜주는 프로그램을 작성 - 사용자로부터 피트를 입력받아 인치로...