반응형 전체 글4356 C# 주석 색깔 변경 C#에서 주석 색깔은 도구-옵션 메뉴을 선택하면 나오는 다음과 같은 창에서 수정한다. 2022. 5. 4. C# unsafe 컴파일 옵션 unsafe 키워드를 사용하여 컴파일하면 다음과 같은 에러가 뜬다. error CS0227: 안전하지 않은 코드는 /unsafe를 사용하여 컴파일하는 경우에만 나타날 수 있습니다. 이 때는 프로젝트-속성 메뉴에서 안전하지 않은 코드 허용을 체크하면 된다. 2022. 5. 4. STMicroelectronics 반도체 개요 STMicroelectronics는 프랑스와 이탈리아의 합작 반도체 회사로 본사는 스위스 제네바에 있다. 보통 줄여서 ST라고 부른다. 전자 회로 설계 엔지니어들에게는 익숙한 회사이다. ST는 1987년 이탈리아의 SGS와 프랑스의 Thomson이 합병되어 만들어졌고 처음에는 SGS-Thomson이라고 불렸지만 1998년 ST로 이름을 바꾸었다. ST는 SGS와 Thomson의 첫 글자이다. 2017년 기준 약 9조의 매출을 올리고 45,500명의 직원이 있다. 유럽에서 가장 큰 반도체 회사는 NXP이고 그 다음이 ST이다. 세계 시장에서 NXP는 10위 정도이고 ST는 13위 정도 이다. ☞ 홈페이지 바로가기 2022. 5. 4. STM32L1 시리즈 STM32L1 시리즈는 Cortex-M3 코어를 사용하는 저전력 MCU이다. 클럭은 32MHz이다. STM32L1 시리즈에는 STM32L100, STM32L151, STM32L152, STM32L162가 있다. STM32L100 시리즈는 다음과 같다. STM32L151/152 시리즈는 다음과 같다. STM32L1 시리즈는 STM32F 시리즈와 핀이 호환된다. 2022. 5. 3. 마그네틱 엔코더 AM4096 RLS의 마그네틱 엔코더 AM4096은 서보모터에 사용된다. AM4096은 12비트 마그네틱 엔코더이다. AM4096은 다음 사진과 같이 PCB에 조립되어 있다. 자석은 다음 사진과 같이 모터 축에 설치되어 있다. AM4096의 중앙과 자석의 중심이 근접하도록 AM4096 보드가 설치되어 있다. ☞ 마그네틱 엔코더 2022. 5. 3. [C#] Marshal 클래스 의미 Marshal 클래스는 Unmanage Memory 처리 관련 메소드들이 모여있는 클래스이다. 일반적인 Manage 코드는 CLR에서 관리하지만 Unmanage 코드는 CLR에서 관리하지 않는다. CLR (Common Language Runtime)는 .NET이 실행되는 가상머신이다. Marshal은 데이터를 저장이나 전송에 적합하도록 변환하는 것을 의미한다. 바이트 스트림으로 변환하는 것을 의미하는 Serialize와 비슷하다. 2022. 5. 3. C# var 키워드 사용법 C#에서 var으로 선언된 변수는 컴파일러가 자동으로 데이터 타입을 지정한다. 아래 2개는 완전히 동일하다. var로 선언된 i는 초기화값 10을 보고 i를 int 형으로 사용한다. var i = 10; int i = 10; 아래 2개도 동일하다. var s = "123"; string s = "123"; var는 배열을 선언할때 데이터 형을 중복해서 입력하지 않아도 되는 편리함이 있다. var a = new int[10]; 2022. 5. 2. C 언어 goto 문 일반적으로 goto 문을 사용하지 않는 것이 좋지만 일부 예외적인 경우에는 goto 문을 사용하는 것이 좋을 때도 있다. [1] 다중 루프에서 중간에서 빠져 나올 때 goto 문을 사용하면 코드가 더 간단하고 가독성도 높다. for (i=0; i 2022. 5. 2. C 문자열 포맷 printf 또는 sprintf 등에 사용되는 문자열 포맷은 다음과 같다. 변수의 형식을 나타내는 지정자(Specifier)는 다음과 같다. d or i signed decimal integer u unsigned decimal integer x / X unsigned hex integer / 대문자 f floating point e / E mantissa-exponent / 대문자 c char s string 변수의 길이 지정자는 다음과 같고 형식을 나타내는 지정 앞에 붙여서 사용한다. hh signed char h short int l long int ll long long int z size_t 사용예 결과 printf("%d", i=-10) "-10" 부호 있는 십진수 정수 printf("%ld".. 2022. 5. 2. memcmp와 strcmp와 strncmp의 차이 strcmp와 strncmp는 데이터의 문자열 부분만 비교한다. 즉, 문자열의 끝을 나타내는 0 까지만 비교한다. 이에 비해, memcmp는 문자열이던 바이너리든 상관없이 지정된 개수만큼 비교한다. memcpy와 strcpy와 strncpy도 동일한 규칙이 적용된다. 문자열이 아닌 바이너리 데이터에 strncmp이나 strncpy를 사용하는 실수를 하는 경우가 많다. void * memcpy ( void * destination, const void * source, size_t num ) char * strcpy ( char * destination, const char * source ) char * strncpy ( char * destination, const char * source, size_.. 2022. 5. 2. C 구조체 struct는 사용하는 기본 문법은 다음과 같다. 선언 (Declaration)을 한 후 정의 (Definition)를 한다. struct STNAME { int i; int j; }; struct STNAME name1; struct STNAME name2; 다음과 같이 선언과 정의를 동시에 할 수도 있다. struct STNAME { int i; int j; }name1; 다음과 같이 정의을 바로 할수도 있다. struct { int i; int j; }name1; typedef 문을 사용하여 정의할 때 struct를 뺄수 있다. typedef struct STNAME { int i; int j; }; STNAME name1; STNAME name2; typedef 문을 사용하여 선언과 정의를 동시에.. 2022. 5. 2. C 변수 선언명 변경하기 char, short, int 등의 변수 선언명을 typedef을 사용하여 다음과 같이 변경할 수 있다. typedef signed char s08; typedef unsigned char u08; typedef signed short s16; typedef unsigned short u16; typedef signed int s32; typedef unsigned int u32; typedef signed long s64; typedef unsigned long u64; typedef float f32; typedef double f64; 임베디드 시스템에서 MCU 마다 변수의 크기가 다를 때 변수 선언명을 위와 같이 정의하여 사용하면 다른 MCU로 쉽게 포팅할 수 있다. 또한, 변수 선언명의 글자가 .. 2022. 5. 2. [C#] unsafe 키워드와 포인터 C#에서는 기본적으로 포인터를 사용하지 않는다. 하지만, unsafe 키워드를 사용하면 포인터, 함수 포인터, 메모리 할당, Fixed 버퍼 등을 사용할수 있다. 2022. 5. 2. [C#] typedef 사용하기 C#에서는 typedef을 지원하지 않는다. 대신 using을 사용하면 typedef 기능을 구현할 수 있다. using s08 = SByte; using u08 = Byte; using s16 = Int16; using u16 = UInt16; using s32 = Int32; using u32 = UInt32; 2022. 5. 2. 에어부산 모바일 체크인 오류 에어부산에서 모바일로 체크인을 하는 도중 오류가 났다. 다시 체크인을 하려고 하니 예약 조회가 되지 않았다. 예약 조회가 되지 않아 모바일에서는 체크인하지 못하고 키오스크에서 하니 체크인이 되었다. 키오스크에서는 예약번호 없이 주민등록번호를 입력하면 된다. ☞ 키오스크 2022. 5. 1. C# 구조체 사용하기 C#에서 구조체는 다음과 같이 사용한다. struct TEST { public byte a; } TEST test; test.a = 1; C# 구조체에서 C와 비슷한 배열을 사용하기 위해서는 다음과 같이 unsafe와 fixed을 사용해야 한다. unsafe struct TEST { public fixed byte a[8]; } 2022. 5. 1. C# 소스 코드 파일로 나누기 C#에서 소스 코드를 여러 파일로 나누기 위해서는 다음과 같이 partial을 사용한다. namespace TEST { public partial class Form1 : Form { partial로 파일을 나누면 디자인에서 컨트롤을 더블클릭했을 때 각 컨트롤에 해당하는 메소드가 아닌 향상 Form1.cs로 이동하는 불편함이 있다. 2022. 5. 1. 모터 위치 제어기 모터 위치 제어기의 블록다이어그램은 다음과 같다. 전류, 속도, 위치 제어기가 멀티루프로 구성된다. 위 제어기에서 속도 제어기를 생략하고 다음과 같이 사용할 수도 있다. 간단하게는 다음과 같이 전류와 속도 제어기를 생략하고 다음과 같이 구성할 수도 있다. 2022. 5. 1. 발전용 가스터빈 기술 가스터빈에는 제트엔진, APU 가스터빈, 발전용 가스터빈 등이 있고 탱크, 자동차, 배, 발전소 등에 사용된다. 발전용 가스터빈은 가스를 이용하여 전기를 생산하는 발전소에 사용된다. 발전용 가스터빈은 세계에서 미국의 GE(58%), 독일의 지멘스(27%), 일본의 미쓰비시(11%), 이탈리아의 안살도(4%) 등 일부 업체에서만 만들 수 있는 매우 어려운 기술이다. 현재 가장 효율이 높은 발전용 가스터빈은 GE의 62%이다. 일본은 발전용 가스터빈을 2011년에 개발하여 단기간에 크게 성장하였다. 한국은 두산중공업에서 국책과제로 최근에 발전용 가스터빈을 개발하였다. 2022년부터 김포열병합발전소에서 운영할 계획이다. 개발한 가스터빈은 단순효율 40%, 복합효율 60%으로 GE나 지멘스와 비슷하다. 2022. 5. 1. 무료 기계 CAD 프로그램 FreeCAD FreeCAD는 무료 3D CAD 프로그램이다. 무료 CAD 프로그램 중 가장 강력한 기능의 CAD이다. FreeCAD 바로가기 LibreCAD LibreCAD는 무료 2D CAD 프로그램이다. LibreCAD 바로가기 2022. 5. 1. 3590 포텐셔미터 Bourns의 3590는 비교적 저렴한 멀티턴 포텐셔미터(Potentiometer)이다. 터미널 모양에 따라 3590S와 3590P가 있다. P는 PCB에 조립할 수 있고 S는 전선에 연결할 수 있는 모델이다. 보통 3590S을 많이 사용한다. 3590은 권선형 저항이며 최대 10턴이고 저항은 200Ω~100kΩ이 있다. 회전 수명은 1백만번이다. 2022. 4. 30. 속도 이동거리 계산 다음과 같이 초기속도 V0과 최종속도 V1이고 이동시간이 T이다. 이 때 속도의 방정식은 다음과 같다. 이동거리 S는 다음과 같다. 2022. 4. 30. Encoder 발음 Encoder는 '인코더' 또는 '엔코더'라고 발음한다. Encode는 '인코드'라고 발음한다. 네이버 사전 바로가기 2022. 4. 30. 모터 전류 속도 방정식 모터의 전류 속도 방정식은 다음과 같다. 여기서, J는 관성 모멘트, b는 마찰계수, KT는 토크상수이다. 위 식을 라플라스 변환을 한 전달함수는 다음과 같다. 이 식은 1차 시스템이다. 블록 다이어그램으로 나타내면 다음과 같다. 위 전달함수의 스텝응답은 다음과 같다. 토크를 적분하면 속도가 되기 때문에 속도는 계속 증가해야 하지만 마찰이 있으면 최대 속도가 제한된다. ☞ 1차 시스템 특성 ☞ DC 모터 방정식 2022. 4. 30. 라이젠 마스터 (Ryzen Master) 설치 방법 라이젠 마스터를 설치하려고 하면 이미 설치되어 있다는 메세지가 뜨면서 설치가 안되는 현상이 있다. 이러한 문제는 다음과 같이 해결할 수 있다. (1) 윈도우+R를 누른 후 regedit을 입력하고 엔터를 누른다. (2) 레지스트리 편집기에서 아래 위치로 이동하여 Uninstall에 우클릭한후 내보내기를 선택하여 바탕화면에 uninstall.reg으로 저장한다. (3) Uninstall에 우클릭한후 삭제를 선택하여 Uninstall을 삭제한다. (4) 라이제 마스터를 다운로드 받아 설치한다. ☞ 라이젠 마스터 다운로드 바로가기 (5) 설치를 하고 아래와 같이 Launch RYZEN MASTER를 클릭하면 실행된다. (6) 시작 메뉴에 Ryzen Master가 추가되고 바탕화면에도 추가된다. (7) 바탕화면.. 2022. 4. 30. PID 제어기 게인 설정 방법 PID 제어기의 게인 설정 방법에는 Ziegler-Nichols 방법과 Tyreus Luyben 방법 등이 있다. 경험적인 방법으로는 다음과 같이 설정할 수도 있다. (1) I와 D 게인을 0으로 설정한 후 스텝응답 특성이 진동할 때까지 P 게인을 조금씩 증가시킨다. (2) 스텝응답이 진동하기 직전의 P 게인의 절반을 P 게인으로 설정한다. (3) I 게인을 0에서 조금씩 증가시켜 offset error를 줄인다. (4) D 게인을 0에서 조금씩 증가시켜 응답시간을 줄인다. Ziegler-Nichols 방법도 진동할때까지 P 게인을 증가시킨 후 절반을 P 게인으로 설정한다. ☞ Ziegler-Nichols 방법 2022. 4. 30. 노트북 느려짐 갑자기 노트북이 느려질 때 작업관리자의 프로세스에서는 가끔씩 System Interupts 프로세스가 십 몇프로 정도 뜨는 것 외에는 그렇게 많은 CPU를 사용하지도 않음 노트북을 껐다 켜도 동일함 그렇게 사용 중 갑자기 노트북이 꺼짐 노트북을 만져보니 매우 뜨거움. 프로그램을 실행시키지도 않아도 컴퓨터가 이상하게 뜨거움 노트북 아래에 받침대를 깔아 공기가 잘 통하도록 하니 이러한 증상이 사라짐 기온이 올라가면서 노트북 온도가 올라가서 CPU 리소스를 많이 사용하지 않아도 노트북이 느려진 것 같음 PS 몇일 사용하다보니 또 느려지는 현상이 발생했다. 노트북 온도가 너무 높아서 다시 보니 노트북의 팬이 안돌아가고 있었다. 노트북을 꼈다 켜도 팬이 안 돌아갔는데 3번 정도 꼇다 껴니 팬이 돌아 갔다. ☞ 노.. 2022. 4. 30. 이동평균 필터의 주파수 응답특성 이동평균 필터는 LPF (Low Pass Filter)이다. 샘플링 주파수가 1kHz이고 이동평균 윈도우의 크기(L)가 2~8개일 때 주파수 응답특성은 다음과 같다. L이 2일 때 LPF 차단주파수는 샘플링 주파수 1kH의 대략 1/4인 약 250Hz이다. L이 2에서 4로 증가하면 LPF 차단주파수는 L이 2개일 때의 대략 1/2(약 125Hz)이 되고 L=6이면 대략 1/3이 되고 L=8이면 대략 1/4가 된다. ☞ 이동평균 필터 코딩 ☞ 이동평균 필터 특성 2022. 4. 29. Matlab plot 함수 빨강색 선 두께 2는 다음과 같이 설정한다. plot(x, y, 'r', 'LineWidth',2); 2022. 4. 29. 모터 속도 제어기 모터 속도 제어기의 구조는 다음과 같다. 전류 전류기와 속도 제어기가 멀티 루프 구조를 가진다. 2022. 4. 29. 이전 1 ··· 32 33 34 35 36 37 38 ··· 146 다음 반응형