(웬만하면 이름을 영어로 만드세요)
2019년 8월 24일 토요일
윈도우 배경화면 사진 다운로드 방법
(웬만하면 이름을 영어로 만드세요)
2019년 8월 5일 월요일
[LABVIEW] 간단한 코딩으로 엔코더 측정하기 (Encoder measurement with CRIO, NI-9401)
CRIO와 NI-9401을 이용, 간단한 코딩으로 엔코더 신호측정
엔코더 스펙 : 360CPR (1회전당 360개의 펄스 출력), A, B 출력, Z(index) 없음, Encremental
장치 : CRIO-9035, NI-9401
모드환경: Real-time (No FPGA)
랩뷰 : 2018
본 글은 real-time 환경에서 crio와 ni-9401의 프로퍼티를 이용하여 복잡한 코딩없이 초보자도 쉽게 엔코더신호를 측정할 수 있는 글입니다. 엔코더측정에 관한 자세한 내용은 http://www.ni.com/tutorial/7109/ko/ 참조하세요.
요약
| NI9401 코딩 |
- 기본세팅
전반적인 세팅 작업입니다. Crio설치와 모드설정, 9401설치 관련사항은 Getting started문서를 참조하거나, 구글검색하시면 쉽게 하실 수 있습니다.
참고로, REAL-TIME을 이용하기 때문에 FPGA TARGET에서 빈 VI를 생성하여 실행버튼을 한번 눌러줍니다.
2. NI-0401 셋팅
| 캡션 추가 |
위와 같은 창이 나옵니다. 참고로 FPGA MODE에서는 specialty digital configuration
category가 안나올 수 있습니다.
Module configuration에서는 9401이 엔코더 신호를 읽어야 하기 때문에 모두 inputmode를 선택합니다. 만약 두 개의 엔코더를 쓰신다면 모든 DIO를 INPUT으로 설정합니다.
| 각 항목에대한 설명은 help를 보면 자세하게 나왔습니다. |
Quadrature란
Velocity time base란
Index mode는 0으로 reset을 한다는 것인데, Z(INDEX) 채널을 사용할 때 설정하시면 됩니다. 예를들어 b1, a1을 선택하면 Z가 1이고, A, B가 1 state 있을 때, 포지션이 0으로 reset 된다는 의미입니다.
확인을 누르면 아래와 같이 바뀌게 됩니다.
3. 선연결
| 캡션 추가 |
4. 코딩
| 코딩 |
각도로 표시하기 위해선 위 식을 사용합니다. POSITION의 RAW data는 edge_count 입니다.
- X=엔코더 자체의 CPR
- N=체배수
참조사이트
http://www.ni.com/tutorial/7109/ko/
2019년 7월 23일 화요일
[매우 간단] 부트캠프없이 맥북에서 window 사용하기 [remote control] (feat. chrome)
필요한 것
구글아이디, 크롬, 구글 데스크탑 앱
원격하는 법
2019년 7월 22일 월요일
[Labview] crio에 ni-9881 모듈 연결하여 MAX에서 연결상태 확인하기.
1. 하드웨어 소프트웨어 구성하기
- LabVIEW, LabVIEW Real-Time Module, and LabVIEW FPGA Module
- NI CompactRIO Device Drivers
- NI-Industrial Communications for CANopen
- You have connected all targets and devices to a CANopen network.
- You have inserted the NI 9881 module into the chassis slot 2.
- You have powered on the chassis.
2. Specifying the Controller and FPGA Settings to Locate the NI 9881 Module
3. 펌웨어 업데이트 하기
4. MAX에서 확인하기
5. 참고자료
2018년 11월 24일 토요일
모터와 엔코더, 간략한 개념
모터란 무엇인가?
크게 DC와 BLDC가 있다. 가장 큰 차이점은 브러쉬의 유무이다. 브러쉬는 정류자에 전류를 공급하는 장치로, 모터가 회전함에 있어 마찰이 생겨 모터 효율을 낮추는 단점이 있다.
따라서 브러쉬를 없앤 것이 BLDC이며 3상의 코일로 전자기력을 형성하여 회전하는 것이 BLDC의 특징이다. 또한, 각 코일은 홀센서로 자석의 위치를 알게 되고 이에 따라 코일의 전류가 공급되어 회전하는 것이 특징이다.
엔코더란 무엇인가?
크게 인크리멘탈과 앱솔루트 방식으로 측정이 된다.
인크리멘탈은 엔코더 슬릿이 회전함에 따라 광입자 측정을 a,b상 펄스로 만들어 내어 위치와 속도를 측정합니다. 일정한 방향으로 도는 DC모터에 자주 사용한다.
장점:회전량 제한이 없다. 단점: 절대위치 측정x, 전원이 꺼지면 초기위치 다시 검출
앱솔루트 경우, 각 지점의 절대값을 설정하여 측정 되는 해당 위치에서의 값을 전달하는 방식으로 1바퀴 이상 돌아가지 않는 특정 각도로 미세하게 움직이는 서보모터에 적합한 방식이다. 엔코더 슬릿을 통해 3개의 검출소자가 측정되며 이를 통해 특정위치를 확인한다. 회전수의 경우 구동측에 감속기어를 추가하여 횟수 측정한다.
장점: 전원 상태 무관, 절대 위치 유지. 단점 : 회전량 제한
엔코더 계산
1번 회전당 2000펄스(슬릿구멍 개수) 발생되는 것이 있다. 모터가 3000rpm으로 회전시, 분당 30002000 개의 펄스 발생한다.(어떤 위치를 기준으로 슬릿 구멍이 총 30002000 개 지나간다고 생각하면 된다) RPM 단위는 min 이기 때문에 초당으로 단위 환산할 시 나누기 60 > 초당 10만 펄스 발생하고, 100khz 로 표현하기도 한다.
한 예로, 서보앰프(모터드라이버 비슷한)가 500us 당 50개를 카운트하는 능력의 서보라면 50/500us = 10만counts(pulse)/s (100kHz)이므로 2000개 슬릿을 가진 엔코더와 3000rpm으로 회전이 가능한 모터를 서보앰프가 감당(데이터 샘플링)할 수 있다는 의미로 해석할 수 있다.
분해능
엔코더에서 전송하는 최소 측정 단계로, 회전당 얼마만큼의 펄스를 출력할 수 있는 가의 정도이다. 슬릿의 갯수로 이해하면 편하다. 위치를 매우 작은 단위까지 측정!
정밀도
지금 이 글을 적는 나 자신도 매우 헷갈리는 분해능과 정밀도의 차이… 두 용어를 혼용하여 쓰는 분도 있고, 다르다고 구분짓는 분도 있다. 필자는 구분짓지만 혼용도 가능하다고 생각한다. 따라서 정답을 잘 모르겠다… (아시는 분은 답변 부탁드립니다!)
정밀도는 쉽게 말해 측정한 위치가 실제 값과 얼마나 가까운 가의 정도이다. 엄밀히 말해 분해능과 차이가 있지만, 정밀도가 분해능과 관련이 있다고 생각할 수 있는 것이 분해능이 좋을 수록 정밀도도 좋아지기 때문이다. 필자는 쉽게 정 위치와 얼마나 가까운지로 이해한다.
모터 드라이버
모터드라이버란 쉽게 말하여 모터를 제어할 수 있는 장치이다. 여기서 단순히 모터에 +, - 연결하면 한 쪽 방향으로만 회전하여 손으로 +,- 입력단자를 바꾸지 않는 이상 회전 변환은 불가능하다. 따라서 모터드라이버가 H-브릿지회로를 사용하여 입력단자를 바꿔주고 이를 통해 회전방향을 제어하게 된다. 또한 모스펫 채널을 통해 펄스수를 제어하여 전압조절로 모터 속도를 제어하게 된다.
H-브릿지 회로란? - 스위치 제어
아래 그림을 볼 때, S1 스위치와 S4 스위치 가 연결 될 때 +는 모터 왼쪽, - 는 오른쪽에 있어 정방향 회전을 한다. 그러나 만약, S3와 S2 스위치가 닫히면 모터의 +,- 방향이 반대로 되어, 회전이 역방향으로 변함을 알 수 있다. 이러한 스위치 전환을 통해 입력단자를 전환할 수 있는 회로를 H-브릿지회로라 한다.
PWM 제어
Pulse Width Modulation의 약자로 펄스 폭을 변화시켜 전압을 조절하고, 이를 통해 모터의 속도를 제어하는 것을 의미한다.
모터 속도 공식은 아래와 같다.
N=k∗∅(V−IaRa)
V는 전압, IaRa는 역기전력, N은 분당 회전수, ∅는 계자이다.
따라서, 회전속도를 결정짓는 중요한 인자 중 하나는 전압이다. 전압 조절은 PWM 즉, 위에서 언급한 스위치를 모스펫 채널로 특정 주기마다 열고 닫고를 하면 전체 평균 전압이 변하여 전압을 조절할 수 있다. 아래 그림을 통해 이해해보자.
10V전압 인가 시, 스위치를 1초마다 on/off 하면 평균 전압이 5V가 됨을 알 수 있다. > 전체 면적(전압*시간)을 시간으로 나누면 된다. 참고로, 시간은 사이클 단위로 계산해야 한다.
마찬가지로 전압을 2초동안 주고 1초 쉬고를 반복하면 6.66V가 나옴을 알 수 있다.
이렇게 구한, 전압을 공식에 대입하고, 나머지 변수는 주어진다면, 속도를 구할 수 있고 이것이 모터드라이버가 속도를 제어하는 것이라 할 수 있다.
- 모스펫 채널은 간단하게 스위치를 주기별로 on/off 하는 것으로, 성능이 좋을수록 짧은 주기로 열고 닫을 수 있어 미세한 전압조절이 가능하다.
PID 제어
P 비례 : 오차 값의 크기에 비례한 제어작용, kp 크면 빠르게 셋포인트 도달, 그러나 불안정상태 > 진동
I 적분 : 일정한 상태로 유지되는 오차를 없애는 작용, 누적 오차에 따라 출력을 보고 바꿔야 함
오차가 클 경우 시간이 지남에 따라 오차 합이 쌓이며, 출력은 빠르게 변해 오차 제거.
Ki크면 빠르게 응답, 그러나 파형 상승부도 커짐> 그러나 점점 안정
D 미분 : 출력값의 급격한 변화에 제동을 걸어 오버슛을 줄여 안정성 향상
2018년 9월 15일 토요일
개인 컴퓨터로 웹서버 구축하기
개요
네트워크 개념
즉, 나의 컴퓨터와 미국에 있는 친구의 컴퓨터 끼리 소통하려면 공인ip가 필요하고, 나의 컴퓨터와 나의 스마트폰 끼리 소통하려면 사설ip가 필요하다.
.
웹서버 구축하기 (윈10 기준)
(컴퓨터와 공유기가 통신하기 위한 주소)
동시에 구축프로그램(자신 서버 내 프로그램)이 사용하는 포트로 연결 성립 시킴.
즉, 특정 포트로 들어오는 네트워크 데이터(외부)를 해당 IP 주소(자신)로 연결시켜주는 기능.
2018년 8월 22일 수요일
Blynk 앱을 이용하여 집 밖에서 통신하기-Blynk 앱 설치 및 예제연습
개요
Blynk 란?
Blynk 원리
시작하기
연습하기 ( 앱을 통해 nodemcu led on/off )
1. 앱 실행 회원 가입 후, 프로젝트를 만든다.
2. 내가 제어하고 싶은 하드웨어(nodemcu)를 선택, Connection은 WiFi 를 선택
3. AUTH TOKEN 에서 E-mail 버튼을 눌러 해당 토큰을 메일로 받는다. 그리고 Create 실행
4. 버튼을 끌어 들이고 클릭, OUTPUT에서 D4 를 디지털 출력핀으로 설정한다.
5. 아두이노 IDE를 실행 > 파일 > 예제 > Blynk > Board_WiFi > nodemcu 스케치 불러오기
char ssid[] 부분에서 스마트폰이 연결된 와이파이 이름 입력
char pass[] 에 와이파이 비밀번호를 입력한다.
7. 업로드 후, 앱을 통해 nodemcu에서 led가 빛나는 지 확인한다.
-
0. 개요 시리얼 통신의 정의 및 종류를 알 수 있고, UART에 대한 코딩을 알 수 있다. 1. 시리얼 통신이란? 시리얼 통신은 데이터를 주고 받을 수 있는 직렬 통신이다. 시리얼 통신은 아두이노간 통신을 할 수 있으며, 더 나...
-
개요 네트워크의 기본 개념을 이해하고, 개인 컴퓨터를 이용하여 웹서버를 구축할 수 있다. 네트워크 개념 네트워크 연결은 ip주소와 포트가 필요하다. IP는 주소이고, 공인과 사설로 나뉜다. 공인ip와 사설ip...
-
모터와 엔코더, 간략한 개념 모터란 무엇인가? 크게 DC와 BLDC가 있다. 가장 큰 차이점은 브러쉬의 유무이다. 브러쉬는 정류자에 전류를 공급하는 장치로, 모터가 회전함에 있어 마찰이 생겨 모터 효율을 낮추는 ...
-
개요. 비 전공자의 관점에서 강의를 듣고 강의를 요약한 내용이다. 이를 통해 회로의 기초와 이 회로가 LCD와 OLED에 어떻게 적용되어 있는지 이해할 수 있다. 기초 회로 이론. 전압 : +에서 저항을 만나 ...
구글 스프레드 함수를 활용한 내 입맛대로 자산(주식) 통합 관리하기!(자산분배)-(1)
흩어진 주식계좌! 내 입맛대로 실시간 통합관리하기 1. 2% 아쉬운 MY데이터 활용한 자산 통합관리 지인에게서 퀀트투자라는 생소한 투자법을 들은 후 매력을 느껴 더욱 깊이 알아보고자 강형국의 퀀트투자라는 책을 읽게 되었다. 이 책은 나의 투자 가치관...










