센서 종류

- 누름 버튼 스위치 : 사용자 입력 학인하는 기본적인 장치. a접점(NO normally open), b접점(NC)

- 빛감지 센서 : 적외선 센서, 조도 센서, 포토다이오드

- 회전각 센서 : 모터 축에 연결되어 모터 회전각도 검출. 절대형 엔코더, 증분형 엔코더(상의 변화로 회전방향과 각도파악)

누름버튼 스위치 적외선 센서 조도센서 포토다이오드

 

절대 엔코더와 증분 엔코더 증분 엔코더의 상

- 회전속도 센서 : 타코 제네레이터는 모터축에 연결되 회전속도에 비례하는 전압 출력. 각 검출은 안됨. 작은전압이라 노이즈영향, 아날로그 입력으로 연결해 씀

- 압력센서 : 가해지는 힘 측정. 압력 크기에 따라 아날로그 신호 처리->신호크기가 작아 op앰프나 트랜지스터로 증폭해 아날로그로 입력.

- 힘/토크 센서: 스트레인 게이지, 비틀림각 방식으로 힘과 토크 측정. 아날로그, 디지털 등 다양하게 출력

타코제네레이터 압력센서 토크 센서 온도, 습도센서

- 거리 센서 : 적외선(30cm 내외 근거리), 초음파(수 m 거리 측정, 되돌아오는시간계산), 레이저(넓은범위, 반사된 레이저 수신각, 위상으로 측정) 등. 

- 기울기, 가속도, 자이로 센서 : 각축방향으로 기울어진 정도, 속도를 출력. 자이로는 회전각속도 측정에 사용. 

- GPS  : 4개 이상 위성 신호로 지구 좌표계에서 센서 위치 알려줌. 규정된 통신 프레임에 경도, 위도, 속도, 높이 등 정보를 RS-232/422, CAN 통신으로 출력.

- 비전 센서 : CCD or CMOS 소자로 만든 이미지 센서에 렌즈 + 회로로 만든 센서. 단안 비전 센서와 여러 카메라를 쓴 스테레오 비전 센서로 분류

적외선, 초음파, 레이저 센서 관성센서 GPS 수신기 단안, 양안카메라

 

 

 

센서 출력 신호

1. 디지털 출력

- 0V(off), 5V(on) 출력. 전압 크기에 따라서 3.3V를 출력하기도. 전선이 길수록 감쇄되므로 리피터쓰기도함.

2. 아날로그 츨력

- 0~5V 사이 전압 or 4 ~ 20mA 전류로 출력. 전류출력의 경우 250옴 저항 연결해 전압신호를 MCU에 전달.

3. 통신프레임 출력

- 센서 출력값이 여러개가 있거나 ADC 변환 시 발생하는 오차를 없애기 위해 문자열로 전달하는 경우 통신 프로토콜과 프레임으로 결과 출력.

- 레이저 처럼 정밀한 측정값이 필요한 겨우 센서 내부 CPU가 계산한 최종 출력을 통신 프레임 문자열으로 출력

- RS-232/422, SPI, I2C(TWI) 등 통신 프로토콜 사용.

 

 

 

 

아날로그 출력 센서 수동 필터

- 센서 출력이 아날로그인 경우 MCU는 ADC를 통해 신호 수신

- ADC는 0~ 5(3.3)V 전압을 받으나 센서 출력신호가 작은경우 증폭기를, 너무큰경우 분배기를 써 MCU가 받을수있는 전압범위로 변환

 + 센서 출력의 노이즈 제거를 위해 필터 사용

- 수동 필터 : 저항, 코일, 캐패시터 RLC 소자로만 구성된 필터

 <-> 능동 필터 : OP 앰프를 포함시켜, 입력전압보다 추력 전압을 키우는 필터.

 

1. 전압분배기

- 입력 전압을 분배, 축소시키는 회로. 입력 전압을 두 저항 R1, R2를 두어 R2에 걸리는 전압 Vi를 보냄.

2. 고역통과필터 HPF

- 센서 신호에 포함된 오프셋 전압(기본 고정전압) 혹은 드리프트 전압(주변 온도 변화에 의해 변하는 오프셋전압)을 제거하기위함. 

-  캐패시터 임피던스 Zc= 1/wC = 1/(2 pi f C) 

 =>  고주파일수록 임피던스가 작고, 저주파일수록 임피던스가 커진다 => 고주파만 지나간다.

 

3. 저역통과필터 LPF

- 신호에 포함된 고주파 잡음 제거에 사용

4. 대역통과필터 BPF

- 저주파, 고주파 사이 특정 대역 신호뫈 수신할때 사용. 고역통과필터에 코일 추가

5. 대역통과필터 2

- 코일은 무겁고, 부피가크며, 비용이 크다. => 고역통과필터와 저역통과필터를 직렬로 연결해 만들수 있다.

 

6. 대역차단필터 BSF BRF(Band Stop, Band Reject Filter)

- 저주파와 고주파사이 특정 대역 제거

7. 특정주파수 차단 필터 notch filter

- 대역차단필터의 한종류로 특정 주파수에서 급격히 감소

 

 

 

통신데이터 오류 확인

- 디지털 데이터는 아날로그 데이터에 비해 노이즈가 강하나 통신선이나 PCB패턴에 의해 노이즈가 추가되기도 함

   -> 패리티 체크, 체크섬 사용.   오류 확인 + 수신데이터 정정하는 방법으로 CRC 있음

- 패리티 체크 : 홀수 페리티, 짝수 페리티 방법이 존재. 페리티 비트를 추가해 1의 개수가 홀수 혹은 짝수개가 되도록 함.

   -> 수신후 정한 패리티 방식과 일치하는 데이터만 사용

- 체크섬 : 글자 하나 하나 오류 체크를 위해 패리티 비트를쓴것과 달리 여러 글자로 이뤄진 패킷에 대한 오류 확인

   1.  "#NCS" 송신 시 패킷 데이터 16진수 총합의 하위 8비트를 체크섬으로 뒤에 덧붙임.

    2. 센서 데이터를 수신 후 체크섬 다시 계산하여 받은 체크섬과 계산한 체크섬이 일치하는지 비교.

 

 

 

샘플링과 주파수

- 샘플링 :  MCU가 센서 신호를 수신하기위해 일정 시간마다 확인하는것

- 나이퀴스트 주파수 : 신호 내 최고 주파수의 2배 이상 주파수로 샘플링해야 원래대로 복원 가능.  f_s >= 2f_m

=> MCU의 샘플링 주파수가 100kHz인 경우, 최대 50kHz 신호 복원 가능. 50kHz 이상 고주파가 없도록 LPF 설계

산업용 로봇 시스템 기본 구조

- 구성 : 매니퓰레이터(관절로 이뤄진 로봇팔), 엔드 이펙터(그리퍼 등), 파워 서플라이, 컨트롤러(제어, 인터페이스입출력)

- 매니퓰레이터 : 자유도(각축은 1개의 자유도)에 따라 관절(조인트) 운동으로 팔끝을 이동시킴.산업용로봇은 4~6개자유도

- 엔드 이팩터 : 매니퓰레이터에 부착되어 작업 수행. 기계적으로 열리고 닫히는식이면 그리퍼, 공구/부착물은 공정공구

- 파워 서플라이 : 로봇 제어에 필요한 에너지 공급. 전기, 유압, 공압 등

- 제어기 로봇 운동, 시퀀스를 제어하도록 통신, 정보 처리함.

로봇 기본구조 매니퓰레이터

 

로봇 기구부 구조

- 링크 : 로봇의 형상에 따라 다양. 철강, 알루미늄, 듀랄류민 등으로 제작

- 조인트 : 링크와 링크를 연결하는 부품. 직교 좌표 로봇에서는 리니어 모터, 스칼라/다관절 로봇에선 서보모터 사용

- 로봇 기구부 : 구동을 위한 구동계와 구동계를 지지하는 구조물로 구성. 정밀 감속기(볼스크루, 하모닉드라이브 등)과 기계요소(기어, 타이밍벨트, 핀, 키 등)로 이뤄짐

- 정밀 감속기 : 볼 스크루(회전운동 -> 직선운동), 하모닉 드라이브(단순,작음,가벼우나 강성이 약해 소형로봇 팔, 손목 구동에 사용) , RV 감속기(강성이 크고, 정밀한 운동에 사용)

- 기계 요소 : 로봇 팔-손, 감속기와 모터 연결. 핀(감속기-모터축 연결, 작은동력전달), 키(감속기-모터축연결, 핀보다큰동력), 스플라인(키보다 큰동력 전달), 타이밍벨트(양쪽 풀리에 연결, 빠른 동작 작업), 기어(강성이커, 큰동력 전달), 베어링(로봇 팔, 손과 모터축 지지, 회전운도 원할하게함)

 

 

로봇 입출력 인터페이스

- RS232 : 시리얼 통신을 위한 인터페이스 표준. A,B,C 세 버전중 C버전 RS232C가 많이씀.

  * -3~-12V는 1, +3~+12V 0으로 인식, 20Kbps, 전송거리 15m 이내

- RS422와 RS485 : 2개의 전송매체의 전압차로 0, 1인식(차동 인코딩) -> 두 장치간 GND 전압이 바뀌어도 영향x

   * RS422 : 4회선(전이중), +-7V

   * RS485 : 2회선(반이중),  +-12V로 전압범위가 커짐

- SPI : MOSI, MISO, SCK, SS 4선으로 이뤄짐. 전이중. 고속 직렬 데이터 송수신. 슬레이브가 많으면 복잡해져서비추

 

로봇 통신 네트워크 CAN

- 차량내 센서, 엑추에이터, ECU간 통신을 위해 개발.

- 메시지 내용과 우선순위에 따라 ID를 할당해 구분하는 주소지정방식. 

- 한 노드가 메시지 보내면 다른 노드가 관련있는지 보고 판단하여 받음.

- 모든 노드가 버스 마스터, 버스가 비었을때 보냄. 

- non-destructive bitwise arbitration을 이용한 메시지 충돌방지 : 메시지 ID 비트를 비교(비트와이즈 비교). 버스 레벨 비트와 가장 가까운 노드 2의 메시지가 우선적으로 보내짐

 

 

서보기구

- 위치, 자세 뿐만아니라 속도를 제어하는 기구. 로봇과 NC를 가능하게함.

 

서보 드라이버 시스템

- 자동 제어 : 레이다로 응용. 주파수 응답을 이용해 제어 설계에 활용

- 피드백 제어 이론 활용

- 전자 계산기 발전으로 신뢰성 향상.

- 직류 서보 구동기보다 뛰어는 AC 서보 구동기 활용

 

서보 종류

- AC 서보모터 : 동기기, 유도기형 AC 서보

- DC 서보 : 고정자로 영구자석, 회전자로 코일

- 스태핑 모터 : 한 회전을 스텝으로 나눈 브러쉬리스 직류 전기모터. 피드백 없이 정밀하게 위치조절가능

AC 서보모터 DC 서보모터 스테핑모터

 

https://m.blog.naver.com/kspark222/221701487434

 

 

 

DC 서보모터 구조

- 전기자, 영구자석(계자), 브러시, 베어링, 모터케이스 등

- 브러시 : 전기자에 전류 공급 접점

- 정류자 : 전류 전환

- 전기자 : 회전력 발생을 위한 전자석

- 베어링 : 로터 회전구조 형성. 볼 베어링 or 오릴리스 메탈 씀

-  고정자축 : 자로, 기계적 지지용 원통 프레임. 프레임 내경에는 자석 부착

- 회전자축 : 회전자축과 외경에 정류자, 회전자 철심 부착. 회전자 철심 내 전기자 권선 감김.

- DC 서보모터는 토크 전류가 비례한 선형제어가 가능. 최고 속도서 정류불꽃발생. Tr을 이용한 PWM으로 구동.

DC 모터 원리.

 

 

AC 서보모터

- 회전자, 고정자, 센서, 프레임, 베어링, 커플링으로 구성. 필요시 + 브레이크

- 회전자 : 회전축에 영구자석이 고정된 회전계자형

- 센서 : 모터 위치, 속도 검출

- 프레임 : 고정자 고정, 자로 역활. 동손철손에의한 열 방렬 통로 기능

- 베어링 : 볼베어링 주로 씀. 급가감속 운동과 회전축 열 팽창, 탈조 방지 고려

- 원리 : DC 모터의 정류자를 슬립링으로 대체. 주파수를 변화시켜 회전 속도 변화

 

 

모터 관련 용어

- 정격 : 적합한 조건에서의 사용 한도. 정격 전압, 정격 전류, 정격 회전수, 정격 주파수 등 지정.

- 출력 (watts) = 1.027 x ( 10 - 5) x T x N ( 모터가 단위 시간에 할수있는 일 양. 회전수 x 토크)

  * 1.027 x (10 - 5) 정수, T : 토크(g cm), N 회전수[rpm]

   -> 정격 출력 : 지정된 전압, 주파수 조건에서 발생되는 출력으로 일반적인 모터의 출력.

 

 

토크와 회전수

- 토크 : 회전체를 돌리기 위한 회전력. 단위 [g cm] or [kg cm] 등

- 1kg m 토크는 반경이 반경이 1m인 회전체가 직각 방향으로 1kg 힘 가할때 회전력

1) 기동 토크 : 모터가 작동할때 발생하는 회전력. 회전자 구속 회전력 or 시동토크라 함.

2) 정동 토크 : 최대 토크. 이 이상의 부하가 걸리면 모터는 정지

3) 정격 토크 : 정격 회전수일때 토크. 정격 전압이 가해질때 나오는 정격 출력

4) 동기 회전수 : 전원 주파수와 모터 극수로 결정 Ns = 120f/P(rpm)

  ex) 전원 주파수 60Hz, 4극 모터-> 동기회전수 Ns = 120 x 60/  4 = 1,800(rpm)

5) 무부하 회전수 : 출력측에 무부하로 회전시 회전수. 

6) 정격 회전수 : 정격 부하를 걸떄 이상적인 회전수

7) 슬립 : 마찰 등으로 동기 회전보다 밀린 정도 ? S = (Ns - N) / Ns     [Ns : 동기 회전수, N : 부하 회전수]

-  정마찰 토크 : 정지하고 있는 상태에서 부하를 홀딩하는 토크

- 허용 토크 : 운전 중 가능한 최대 토크, 정격 토크, 온도 상승, 기어 해드의 강도에 의해 제한

- 오버런 : 전원 차단 순간부터 모터 초과 회전을 각도 or 회전수로 나타낸 것

- 기어 헤드

 1) 감속비 : 기어 헤드가 모터 회전수 감속하는 비율

 2) 최대 허용 토크 : 기어 헤드에 걸리는 최대 부하 토크

 3) 서비스 팩터 :기어 헤드 수명 추정시 사용 계수

 4) 전달 효율 : 모터에 기어 헤드 접속해 토크 증폭하는 효율

 5) 오버 헝 하중 : 기어 헤드 출력축에 직각으로 걸리는 하중

 6) 스러스트 하중 : 기어 헤드 출력축에 축 방향으로 걸리는 하중

 

 

인버터

- 사이리스터, gto, msfet, igbt 등 반도체 전력 스위칭 소자와 인덕터, 캐패시터 등 필터로 직류 전원을 가변 주파수, 가변 전압의 교류원으로 변환하는 전력변환 장치

- 교류를 직류로 변환하고 반도체 소자로 스위칭하여 교류로 역변환. 스위칭 간격을 조절해 주파수를 변환시킴.

  -> 전압과 주파수를 가변하여 인버터를 가변 전압 가변 주파수 VVVF Variable Voltage Variable Frequency라고도함.

- 구성 : 컨버터 부, 인버터부, 제어부로 구성.

- 기본 원리 : 상용 전원 입력 -> 컨버터(정류부)로 직류 전원 변환 -> 평활부에서 리플 제어하여 인버터부 제어 -> 교류 전력의 전압과 주파수 조절 -> 교류 전동기 회전수 제어

 * 입력 전원 -> AC -> DC -> 평활 회로 -> DC -> AC -> 모터

 

 

 

플뢰밍 왼손, 오른손 법칙

- 우발자전 : 오른손은 발전기, 왼손은 전동기

- 플뤠밍 왼손 법칙 : 모터 내부에서 로터, 회전자에 작용하는 힘의 원리 설명

- 플뤠밍의 오른손 법칙 : 일정 자계 속에 있는 도선을 외부 힘으로 움직였을때 도선에 유도 전류 흐르는 관계를 나타낸법칙

- 힘 F = B I l sin theta

- 기전력 e = B v l sin theta

 

 

 

페러데이-렌츠의 전자유도법칙

- 페러데이 법칙 : 코일에 유도되는 전압(유기기전력)은 권선수 N과 코일을 통과하는 자속의 변화율 (d theta) / (d t)에 비례

- 렌츠의 법칙 : 코일에 발생하는 기전력 방향은 자속 theta의 증감과 반대방향으로 발생

=> 유기기전력 e = - N (d theta) / (d t) = -L di/dt

 * N (권수) x theta(wb) = L(인덕턴스) x I(전류)

 

DC 모터 제어방식

- DC 모터 토크 T  =K x I_a x I_f (I_a 전기자 전류, I_f 계자 전류, K 비례상수)

- 전기자 제어, 계자 제어 방식 등

- 전기자 제어 방식 : 분권 DC 모터나 영구자석 필드 DC 모터에서 흔히 사용. 필드 전류를 일정하게 유지. 전기자에 가해지는 전압을 변화시켜 제어

- 계자 제어 방식 : 전기자 전류는 일정하게할때 토크는 계자 전류 I_f에 비례. T = K_T' x I_f (K_T'는 전기자 전류 일정할때토크상수)

전기자 제어방식 계자 제어방식

 

 

 

 

모터 제어 기본 회로

- 모터 제어 기본 회로는 ON/OFF 회로. 기동, 정지만 제어함.

- 트랜지스터 구동(이미터 부하) : 트랜지스터 on/off로 모터 on/off 시킴. Tr 완전 포화 on으로 할수없고 Vce가커 전압손실큼

 -> OP 앰프를 추가하여 부궤환으로 동작시킴.  -> 속도 제어 가능

트랜지스터구동(이미터부하) 트랜지스터 구동(OP앰프 추가)

 

* 부 궤환

- Op amp 사용시 부궤환이 없는 경우 개방루프이득이 아주커 출력은 쉽게 포화

-> 부궤환을 사용하면 전압이득을 조절해 선형증폭기로 사용가능. 

  = 원하는 출력을 내도록 조절가능. 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yeonsuya&logNo=100118198941

 

 

Tr Vce 같은건 정말 이해안된다

http://recipes.egloos.com/5832185

 

트랜지스터 - 증폭기와 스위치로의 작동개념

트랜지스터는 입력신호로 조정하는 가변저항이라고 했다. 그렇다면, 당장 한가지 의문이 생긴다. "가변저항이 어떻게 증폭기, 스위치로 작동하지?" 우리가 이 소자를 마음대로 사용하기 위해서

recipes.egloos.com

 

 

 

 

모터제어 기본회로 2

- 트랜지스터 구동(컬렉터 부하) : Tr을 완전 포화상태로 ON할수 있어 드라이브 능력이 크고, 전압 손실도 적음.

- 역기전력 처리 :Tr 이 ON 되어 모터가 회전하면서 모터 코일에 에너지가 축적 됨. Tr off시 이 에너지가 방출되어 역기전력 발생 -> 역기전력이 매우 커 Tr이 파괴될수 있으므로 역방향으로 쇼트 시켜 흘려보냄 + 다이오드를 두어 통상 전압은 안흐드로록 막음.

컬렉터부하 모터제어회로 역기전력처리

 

 

모터 정역 + 속도제어

- 모터 정역 제어 : H 브리지 회로 사용. L298 모터 드라이버 모듈 사용. IN1, IN2 모터 방향, ENA, ENB 모터 ONOFF제어

- PWM을 이용한 모터 속도 제어 : L298의 EN 단자를 PWM제어를 통해 모터 속도 제어

+ 플라이휠 다이오드 : PWM로 속도 제어 시 Tr이 OFF되어도 역기전력이 다이오드를 통해 다시 들어와 동작시킴

H 브리지 모터 정역제어회로 L298 IC PWM 신호와 실제 모터에 가해지는 전압

 

 

 

모터와 제어

- 옛날에는 유 공압 기기를 이용해 제어

- 빠른 응답과 정밀 제어의 필요성으로 서보 모터를 이용한 제어 시스템이 만들어짐

- DC 모터가 잘 사용되었으나 브러시 문제, 선형 제어성을 위해 AC 서보모터로 발전

 

 

자동 제어 시스템

- 크게 개회로, 폐회로 제어 시스템으로 구분

- 개회로 제어 시스템 : 신호 궤환없는 제어 시스템. 간단해서 많이 씀. 

  ex) 단상 유도 전동기를 이용한 컨베이어 구동 시스템, 정확한 제어 신호 없거나 전원 입력만으로 구동하는 시스템

- 혼합 제어 시스템 : 컨베이어 속도를 제어하는 유도전동기에 인버터 없이 속도 제어 시. 인버터 내부에는 전류 제어하도록 폐루프 제어 이용 -> 컨베이어 부하에 대해선 개루프, 인버터 내부에선 폐루프 제어 실시

- 폐루프 제어 : 신호를 궤환받아 오차를 줄이도록 구성. 피드백 신호를 - 연산 -> 연산 증폭기에서 제어신호 생성 -> 전력 변환기로 서보모터에 공급.

* 센서 대신 서보모터에서 발생하는 전압, 전류를 사용하여 제어하기도 함.

개루프 제어계 폐루프 제어계

 

 

서보모터 제어 시스템

- 토크 제어 시스템, 속도 제어 시스템, 위치 제어 시스템으로 구분 가능. 각각 폐루프 제어 구성.

- 서보모터는 모터에 입력되는 전력(전압, 전류)를 제어하여 원하는 동작하도록 제어. 

- 토크 제어형 서보 시스템 : 토크를 일정하게 유지. 모터에 인가되는 부하 크기에 따라 회전수 조절하는 경우 사용.

 + 토크 지령(서보모터에 인가되는 전류 명령), 모터 토크는 전류에 비례하므로 전류를 제어하여 토크 제어

 + 오차출력 = 토크 지령 - 피드백 신호(현재 전류) 을 제어 연산 증폭기(보통 PID 연산 제어기)에 인가되어 사용.

 => 토크 제어 루프는 서보모터까진 둘러 싸진 않음 = 서보모터를 개루프 제어 = 부하랑 상관없이 일정 토크 유지

속도 제어 서보 시스템

- 서보 모터를 포함한 폐루프 제어 시스템

 => 서보모터 속도를 검출하도록 서보 드라이버 외부에서 서보모터 회전축과 연결되어 구성.

- 속도 검출 센서로 타코 제네레이터(아날로그 전압신호 출력이므로 ADC 필요) or 광학식 엔코더 사용

- 속도 입력과 센서 출력의 편차를 내부의 전류 제어 루프로 보내 속도 제어

 

 

위치 제어 서보 시스템

- 위치 제어(원하는 회전각 얻기) = 토크 제어 루프 + 속도 제어 루프   => 위치 제어 루프는 최외각 제어 루프

- 현재 속도를 적분해 현재 위치 제어 신호로 만들고, 위치 명령 입력과 편차로 제어

 

서보모터 위치제어루프

 

각 서보모터 장단점

  DC 서보모터 동기기 AC 서보모터 유도기 AC 서보모터
장점 큰 기동토크
큰 토크
좋은 효율
제어성 좋다
속도 제어 범위가 큼
저렴한 비용
브러시가 없다
정류 한계 x
고신뢰성
고속, 고토크
방열 좋다.
브러시가 없다
정류 한계 x
자석 x
고속 높은 토크
회전 검출기 불필요
단점 브러시 마찰
신뢰성 떨어짐
정류 한계
시스템 복잡고가
전기적 시정수가 큼
시스템 복잡
고가
전기적 시정수가 큼

 

HW 설계 문서

- 하드웨어 구성도(블록 다이어그램) : 모듈별 신호, 데이터 교환관계 표현

- 회로도 : 모듈 간 전기적 연결 표시

- 부품배치도(아트워크) : 실제 부품, 모듈을 배치 한 것

 

ATmega328 블록다이어그램

 

ATmega328p를 이용한 회로도 예시

 

 

 

 

부품 정보 확인하기

- 부품 리스트 : HW 구성 부품 목록 BOM(bill of materials 라고 함.

- 부품 데이터 시트 : 수동, 능동 소자의 기계/전기/기능적 특성을 알려줌

 

FPGA

- PLD Programmable Logic Device 보다 다양한 기능을 구현할수 있는 소자. 수백만 논리게이트 내장.

- 주문형 반도체 ASIC보다 느리고, 덜복잡하고 소비전력이 크지만 소량 생산이 용이

- HDL : 하드웨어 기술 언어로 VHDL, Verilog가 있으며 FPGA에서 하드웨어 기능 구현하는데 사용

 

 

 

하드웨어 구성요소와 하드웨어 시스템 관계

 

하드웨어 구성요소 종류

- 마이크로 프로세서 : 기계어 처리하는 논리회로

- 메모리 : 반도체로 만든 기억소자. SRAM(큰비용, 저용량), DRAM(캐패시터, 대용량. 동작방식에따라DRAM, SDRAM..)

- 저장장치 :  메모리에비해 느리나 저비용 대용량

- 입출력 장치 : 데이터 입출력 수행. 구분 방식으로 데이터 전송형식 직렬/병렬, 순차 흐름제어방식 동기/비동기로 구분

   ex) 비디오입출력(HDMI, DVI), 오디오입출력(I2S, SPDIF), 데이터 통신 장치(USB, IEEE1394, CAN, RS-232), 저장장치(PATA, SATA), 제어 장치(I2C, SPI, PWM, GPIO), 사용자 입력(키보드), 테스트(JTAG)

- 전원 장치 : 전원 공급 장치. 12V, 5V, 3.3V, 1.8V 등의 직류 전압이 많이 사용. 고압 교류 전원 110, 220V를 VDC로 변환함

- 시스템 구동장치 : 클럭(일정 주파수 전기적 펄스신호, 동기 기준), 리셋회로(쿨럭으로 동작하는 회로 초기화위한 신호)

전원공급회로. 5v를 인가받아 3.3v, 2.5v, 1.8v 만듬
클럭회로. 클럭을 생성해 회로 내 다른 구성요소에 공급
리셋 회로. 캐패시터와 저항으로 시상수회로를 만들어 지연시킨 리셋신호 발생시킴

 

 

메모리맵과 메모리 인터페이스

- 주소 버스(A0-A12)와 데이터 버스(D0-D15)을 통해 메모리 RW 수행

 

 

 

로봇 센서 종류

- 조이스틱 : XY축 움직임, 눌림 감지

- 소리 센서 : 소리 크기

- 장애물 감지, 불꽃 감지, 자기 센서, 터치 센서, 손습도 센서, 버튼, 심장 박동, 충격 센서, 로터리 엔코더, 기울기 스위치 등

 

로봇 MCU 입출력, 제어 모듈

- 릴레이 : 작은 신호로 큰전압/전류 ONOFF

- 부저 : 단음 소리

- 레이저 송신기, IR 송신기, LCD, 모터, 서보모터, FND

+ 통신 모듈 : 블루투스, 지그비, RF

 

센서 신호

- 디지털 출력 : 0 /5V or 0/3.3v 등, 거리가 멀면 감쇄되므로 리피터를 쓰기도 함.

- 아날로그  출력 : 0 ~ 5(3.3)v 사이 전압이나 4~ 20mA의 전류로 보냄.

- 통신 프레임 출력 : 사용하는 통신 프로토콜과 프레임에 따라 센서는 프레임 출력함.

 

 

프로세서

- CPU : 중앙 처리 장치 일반 범용PC에 사용

- MPU : 저비용 저속 소형 CPU ex) intel 4004

- MCU : MPU에 주변장치를 추가해 하나로 통합한 칩. MCU = MPU + 메모리 + 통신부 + 입출력부 등

 

통신 포트

- MCU는 다양한 통신 프로토콜을 따르는 기기들과 연결할수 있도록 통신 포트 제공

- 기본적으로 RS-232의 UART를 제공. TWI(=SPI), I2C, CAN, 이더넷도 제공하기도 함.

- MCU는 작은 전압을 쓰므로 먼 거리의 장치와 통신하기 위해 신호 증폭을 위한 IC, 안테나, 커넥터 등 사용

- 아래 장치는 3.3v MCU의 신호를 +-15V의 RS-232 통신으로 변환하도록 MAX3232를 이용한 회로

 

 

 

MCU 데이터시트 살펴보기

- 16MHz, 20MHz 동작. 488바이트 RAM. 16비트 워치독 타이머 등등..

 

 

로봇 MCU 입출력

- 디지털을 위한 입출력포트, 아날로그 입출력포트, 범용입출력포트 GPIO등 다양하게 제공

- 출력 전류가 수십 mA로 작아 필요시 트랜지스터나 연산증폭기 사용

- 센서 출력이 4~20mA 전류인 경우 -> 저항을 연결해 전압으로 변환. 

- 센서 출력이 너무 작거나 크다 -> 증폭 회로 이득을 조절 필요

 

 

MCU의 추가 기능

1. ISP In system Programming

- MCU가 동작할수 있도록 비휘발성 메모리에 펌웨어 업로드 필요. 

 -> 기억장치를 회로서 분리시키지 않고, 보드에 있는 그대로 내부 EEPROM이나 플래시메모리에 다운로드 하는 기능

- 개발 PC와 MCU간 통신을 위해 ISP 장비 필요. 인터페이스에 따라 ISP, PDI, TPI등이라 부름.

 

2. 절전기능

- 절전을 위한 슬립모드 지원

 

 

 

이 글을 쓰려고 몇 일을 허비했는지 모르겠다.

아무튼 이전에는 아두이노 쓸땐 USB전원으로 넣는것 말고는 잘 몰랐지만

아두이노 드론 같은데서 리튬 이온 베터리를 쓰고 충전하는걸 보면서 어떻게 하면 저렇게 할수 있을지 궁금해하곤 했었다.

 

그러다가 방학 전에 아두이노 전원회로에 대해서 쭉 훑어보면서 대략적인 전원회로 동작에 대해 좀 배운덕에

이제 베터리를 어떻게 하면 달아서 쓸수있을지 볼 준비가 된것 같았다.

 

 

지금 이 글을 쓴건 7월 19일이고

베터리 정리해서 주문한게 방학 이전이라 1-2주전쯤이라 가물가물한데

 

구글에 조금만 검색해보면 바로나온다

https://www.google.com/search?q=18650+%EB%B0%B0%ED%84%B0%EB%A6%AC+%EB%B3%B4%ED%98%B8%EB%AA%A8%EB%93%88+%EC%82%AC%EC%9A%A9%EB%B2%95&oq=18650+%EB%B0%B0%ED%84%B0%EB%A6%AC+%EB%B3%B4%ED%98%B8%EB%AA%A8%EB%93%88+%EC%82%AC%EC%9A%A9%EB%B2%95&aqs=chrome..69i57.5008j0j4&sourceid=chrome&ie=UTF-8 

 

18650 배터리 보호모듈 사용법 - Google 검색

상세보기18650 배터리 2CELL(2S) 보호회로 과충전, 과방전, 쇼트보호, 과전류 방지 ... 상세보기백업 배터리 스위칭 모듈 (유선전원 차단시 배터리로 전환시켜주는 ...

www.google.com

 

 

 

 

오래 쓸수 있게 용량 큰 베터리를 원했고 조금 찾아보니

보통 18650? 베터리를 많이 쓰나보더라

거기다가 베터리 충전 모듈로 TP4056이 있길래

많은 사람들이 이조합으로 쓰길래 이 두개와 배터리 홀더 정도를 구입했다.

ref : https://rasino.tistory.com/284

 

【 배터리와 충전모듈#24】 18650 리튬배터리 + TP4056 충전모듈

※ 주의! : 18650과 같은 리튭배터리는 직접적인 합선(쇼트)이나 회로내에서의 합선 등에 의해 불꽃과 소폭발의 가능성이 있는 제품이므로 다루실 때 충분한 주의와 사전지식이 필요하니 주의하

rasino.tistory.com

 

이 링크에서 베터리와 충전 전원 그리고 출력을 어떻게 연결하면 좋은지 보기 쉬운 그림이 있으니 

처음 쓰면 한번 봐도 좋을거같다.

ref : https://fishpoint.tistory.com/4566

 

리튬 배터리 충전 모듈 TP4056 사용법

리튬 배터리 충전 모듈 사용법 아두이노 나노의 새로운 제품군이 최근 추가 되었습니다. 먼저, 나노보드와 동일한 외형으로 성능을 높인 Nano Every 와, IoT 기능을 추가한 NANO 33 IoT 버전, 그리고 NANO

fishpoint.tistory.com

 

위 두 링크에서 충분히 TP4056 모듈에 대해서 설명하다보니 굳이 안봐도 되지만

여기서는  TP4056의 여러 단자버전들을 소개한다.

ref :https://makernambo.com/140

 

TP4056 배터리충전모듈 사양과 사용방법

1. TP4056 모듈 TP4056 모듈은 5V USB 전압을 입력받아 3.7V 리튬이온 배터리를 충전시켜 주는 모듈로서 저렴한 가격에 쓰임새가 많아 자주 사용하는 모듈이다. 즉 18650 등 리튬이온배터리로 회로를 구

makernambo.com

 

 

 

여러개 구입하긴 했지만 중요한 몇가지를 집자면

1. 18650베터리

2. TP4056

3. 점퍼핀타입 18650 베터리홀더 1구

4. PL2303TA USB-TTL

 

 

 

베터리는 엠씨유보드 닷컴의 과방전 보호회로 내장된 18650 베터리

https://smartstore.naver.com/mcuboard/products/5977292175?NaPm=ct%3Dl5rtg8bi%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3De6ceecaa5acc4d7643b537b62528315d480db967 

 

KC인증 18650 리튬배터리 과방전 보호회로내장 2200mAh : 엠씨유보드닷컴

[엠씨유보드닷컴] 코딩, 전자부품은 엠씨유보드닷컴

smartstore.naver.com

TP4056

https://smartstore.naver.com/openidea/products/4833009692?NaPm=ct%3Dl5rth4mb%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3D6bee1cc37dbf4a8b14caae245e288a8bb849d39f 

 

TP4056 리튬배터리 1A 충전모듈 (C TYPE USB) [OPEN-TA02-003] : 오픈아이디어

[오픈아이디어] 당신의 IDEA를 OPEN하세요. 아두이노 전자부품 쇼핑몰 OPENIDEA

smartstore.naver.com

 

베터리 홀더

https://smartstore.naver.com/openidea/products/5770253193?NaPm=ct%3Dl5rtha2x%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3D5e645be86bd9eb4109126fb88ec1d3030274b60a 

 

18650 1구 배터리 홀더 점퍼핀타입 [OPEN-AA02-001] : 오픈아이디어

[오픈아이디어] 당신의 IDEA를 OPEN하세요. 아두이노 전자부품 쇼핑몰 OPENIDEA

smartstore.naver.com

 

프로그램 업로드에 쓸 USB-TTL 케이블

https://smartstore.naver.com/openidea/products/4833188705?NaPm=ct%3Dl5rtgyqt%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3D16c218827704b1264e594a06f5dc74c5408bcbc1 

 

PL2303TA USB to TTL SERIAL CABLE [OPEN-TB05-002] : 오픈아이디어

[오픈아이디어] 당신의 IDEA를 OPEN하세요. 아두이노 전자부품 쇼핑몰 OPENIDEA

smartstore.naver.com

 

 

 

 

이전에 아두이노 전원회로를 공부할때 역전압 방지를 위해 다이오드를 쓰긴 했는데

내가 쓰는 베터리가 3.7 ~ 4.2V 왔다 갔다 하는 베터리다 보니 그냥 쓰질 않았다.

어짜피 8Mhz 내부 클락 사용때는 최저 2.7V면 괜찬다고 해서 써도 되는데

그냥 설마 역전압 때문에 뭔일 나겠나 싶어서 그냥 말았다. 

 

이런 식으로 쓸거고 

 

파워 서플라이와 TP4056으로 충전중인 모습

TP4056은 떔질안되있으니 핀헤더도 필요

 

 

중간에 전압 찍어보니 조금씩 오르길래 

충전하는 동안 다음으로 넘어가면

 

 

원래 우노보드의 ATmega328을 쓰려면

보통 외부 크리스탈을 달아서 클럭을 주는데,

예전에 얼핏 내부 클럭이 있다고 들었습니다.

 

데이터 시트에도 3.3V 정도의 저전압에서는 8MHz 저속으로 동작한다고하니

내부 클럭을 쓸순없나 찾아봤어요

 

 

가장 먼저 찾은 자료가 도두가이님이 만드신 자료인데

보통 아두이노를 쓸땐 usb랑 우노보드랑 연결해서 업로드 버튼만 누르면 됬지만

여기서는 부트로더를 굽니, 우노보드 두개가지고 어째저째 한다고 설명합니다.

 

 

부트로더가 뭔가 부팅 할때 가장 처음시작할때 동작하는건 알지만 이게 뭐가 중요한가? 에대해선 설명이 조금 부족합니다.

나중에 찾아보긴 했는데 일단 이 글대로 진행해보면

 

ref: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mapes_khkim&logNo=221890832646 

 

ATMEGA328P-PU만으로 작동하는 내부클럭 아두이노 만들기(초간단 아두이노)

ATMEGA328P-PU만으로 작동하는 내부클럭 아두이노 만들기(초간단 아두이노) ATMEGA328P-P...

blog.naver.com

 

가장 먼저 boards.txt에다가 8MHz 내부 클럭 사용에 대한 내용을 추가하라고하는데

이분이 말한데로 해당 파일에다가 설정 내용을 추가하고 스캐치를 다시 열어도 반영되지가 않았습니다..

분명 arduino의 파일 위치열기를 하면 program files/아두이노 폴더 쯤으로 가니

여기 있는 boards.txt 수정이 맞지 않나 싶지만 저의 경우에는 그렇진 않더라구요.

 

 

내부 클럭 쓰도록 부트로더좀 굽고싶은데 설정 파일부터가 안먹히니 한참 해맸습니다.

찾아보니 아래의 링크에서 프로그램 파일즈가 아니라

사용자폴더/앱데이터/로컬/아두이노15/패키지/아두이노/하드웨어/avr 안에 있는 boards.txt였네요.

이 파일을 수정 후에는 정상적으로 추가되었습니다.

https://www.instructables.com/Arduino-IDE-Creating-Custom-Boards/

 

Arduino IDE: Creating Custom Boards

Arduino IDE: Creating Custom Boards: Over the past six months I have spent a lot of time porting different libraries to the Robo HAT MM1 board developed by Robotics Masters. This has lead to discovering a lot about these libraries, how they work behind the

www.instructables.com

 

 

 

 

우리나라에서 쓴 글중에 이게 가장 대략적으로 잘 쓴거같긴한데

여기서 소개하는데로 왜 이러는지 당시에는 몰랐지만 프로그래밍 보드와 타겟 보드를 연결해서

부트로더 굽기를 하면 잘 구워집니다.

잠깐 딴길로 새면

마이크로 컨트롤러의 프로그래밍 업로드 방식을 다시봤습니다.

 

 

부트로더를 구울때 프로그래머 보드에다가 Arduino ISP를 올리고 타겟보드와 연결해서 하는데

이 ISP가 뭔가 싶었습니다.

 

 

블루베리 파이님의 블로그에서는 

ISP가 PCB에 연결해서 프로그램 메모리 EEPROM을 지우거나 쓰는 방식이라고 설명을하고

 

https://m.blog.naver.com/dododokim/221421896361

 

부트로더와 ISP 다운로더

부트로더 일반적으로 시스템(운영체제)을 정상적으로 작동시키기 위한 프로그램이 부트로더다. AVR에서...

blog.naver.com

 

이 글을 보고나서야 프로그래밍 방식이 JTAG도 있는게 생각났는데

ISP랑 다른건 디버깅이 가능한 점이고

https://dailylifetip.tistory.com/entry/JTAG-ISP-SPI-I2C

 

JTAG, ISP, SPI, I2C ?????????

ISP ( In-System Programing ) or SOP (System-on Programing) : 비휘발성 메모리(rom, flash memory 등)를 보드나 시 스템에 장착한 이후에 그 내용물을 프로그래밍 하는 것으로 이 기능이 없을 경우 프로그래밍..

dailylifetip.tistory.com

 

 

그러면 USB-TTL 케이블을 쓰는데 TTL이란 뭔가

이전에 본적 있는 나무길 블로그에서 잘 설명해줍니다.

RS-232라는 직렬통신이 있는데 이게 +-12V(232C는 +-5V) 양전압을 써서 간격이 더 크니

0~ 5V로 구분하는 TTL보다는 노이즈의 영향을 덜 받는다는 내용인데

 

아무튼 TTL은 노이즈의 영향을 받긴 더 쉽지만 전압 레벨이 간편해서 직렬 통신때 많이 쓴다는 소린가봅니다.

https://treeroad.tistory.com/entry/%EC%99%9C-TTL-%ED%86%B5%EC%8B%A0%EC%9D%B8%EA%B0%80

 

왜 TTL 통신인가

TTL 레벨과 RS-232C 레벨 통신의 차이는 아래와 같은 파형으로 구분될 수 있다. TTL 레벨은 0 V 와 5 V 를 왔다갔다 하면서 0과 1을 표현하지만 RS_232C 레벨은 +, -5V 양 전압 사이를 왔다갔다 해서 노이즈

treeroad.tistory.com

 

 

 

 

 

그러면 ISP, JTAG로 프로그래밍이 가능한데

USB-TTL 케이블, FTDI 케이블로도 되는데 뭐가 차이일까요?

 

찾은 글중에는 제타지니님의 블로그 글에서 이 내용이 확 와닿았습니다.

아직 잘은 모르지만 아래의 그림대로 USB TTL로 아직 왜쓰는지 모를 부트로더를 못 넣으니

부트로더 구울때는 직렬 변환기 대신 다른 우노보드를 ISP로 만들어서 써야 했던거 같습니다.

 

https://bnme.tistory.com/9

 

DIY Arduino-(3)이론조립...i.USB 연결, 외부 클럭

안녕하세요 제타지니입니다. 본 포스트는 많은 서적을 참고하였으나, 중심적으로 <아두이노 상상을 스케치하다.> 허경용 저. 의 DEUino를 중심으로 수학하였습니다. 조립에 대한 포스트를 쓰는

bnme.tistory.com

 

그리고 계속 MCU를 만지면서 메모리맵, Flash memory와 eeprom을 마주치는데 막연하게 알고있어서

나무길님의 글에서 다시 봤습니다.

대강 정리하면

eeprom은 바이트 단위로 읽고 쓰기 가능한 불휘발성 메모리

flash memory는 블록 단위로 읽고쓰기 가능한 eeprom이란 점인데, eeprom보다 구조가 간단해서 대용량이 가능한정도?로 이해하고 넘어가고

 

https://treeroad.tistory.com/entry/Flash-Memory%EC%99%80-EEPROM-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

Flash Memory와 EEPROM 차이점

EEPROM과 Flash Memory 비교 EEPROM EEPROM(Electrically Erasable PROM)은 On-Board 상태에서 사용자가 내용을 Byte 단위로 Read하거나 Write 할 수 있으므로 사실상 SRAM처럼 사용 할 수 있는 불휘발성 메모리이..

treeroad.tistory.com

 

atmega328 데이터시트나

boards.txt 건드릴때 fuse 란 용어가 자꾸 쓰이는데

이걸 어떻게 해석해야 하나 싶었다. 

이건 boards.txt 에 추가한 8MHz 내부 클럭 설정부분

##############################################################

atmega328bb.name=ATmega328 on a breadboard 8 MHz internal clock


atmega328bb.upload.tool=avrdude
atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.maximum_data_size=2048
atmega328bb.upload.speed=57600

atmega328bb.bootloader.tool=avrdude
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex

atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.board=AVR_UNO_INTERNAL
atmega328bb.build.core=arduino
atmega328bb.build.variant=standard

 

사전에 나오는 도화선? 결합시키다 같은 용어 그대로 해석하자니 말이 잘 읽혀지지 않았는데

순딩님이 이거랑 관련해서 퓨즈 비트 글을 정리해놓은걸 찾았다.

결론적으로는 제어 레지스터의 값을 설정했던 것 처럼 부트로더 설정을 해주는게 퓨즈 비트였다.

어떻게 퓨즈 비트를 설정할지는 이분 블로그나 데이터 시트 보고 잘 정리해야할거같다.

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nkkh159&logNo=220801733605 

 

[AVR/ATmega] 퓨즈 비트(Fuse bits), 클럭 설정

이전 포스팅에선 락 비트(Lock bits)를 설명드렸으니, 이번 글에선 퓨즈 비트(Fuse bits)를 설명드리겠습...

blog.naver.com

 

 

 

 

 

 

 

 

 

 

 

부트로더를 구운 이후 부터는 도두가이님의 글 내용이 잘 이해되지는 않았습니다.

부트로더를 올리고 나서 USB-TTL 케이블을 블로그 글에 나온 대로 연결해서 업로드를 해도 계속 안되서 

리셋 누르는 타이밍이 안맞아서 업로드가 안되나 싶었지만 우노 보드에 이 케이블을 연결해서 업로드해보니 또 잘됬구요.

 

ref: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mapes_khkim&logNo=221890832646 

 

ATMEGA328P-PU만으로 작동하는 내부클럭 아두이노 만들기(초간단 아두이노)

ATMEGA328P-PU만으로 작동하는 내부클럭 아두이노 만들기(초간단 아두이노) ATMEGA328P-P...

blog.naver.com

 

왜 USB TTL로 빵판의 atmega에 직접 업로드가 안되는지는 아직도 찾지 못했지만

그래도 업로드는 해야하니 좀더 찾아봤는데

 

 

 

이 글의 업로딩 방법을 참고했습니다.

USB-TTL은 가지고 있지만, FTDI는 없고 거기다가 업로딩할떄마다 RESET을 눌러줘야히니

타이밍 맞추기가 번거로웠는데 이렇게 구성하면 여기선 프로그래머 보드의 RESET 핀을

타겟 보드의 RESET 핀과 연결하니 눌러줄 필요가 없습니다

 

https://create.arduino.cc/projecthub/techmirtz/arduino-without-external-clock-crystal-on-atmega328-d4fcc4

 

Arduino Without External Clock Crystal on ATmega328

Everyone uses a 16MHz oscillator for a homemade Arduino, but did you know that ATmega328 can run without it? By Techmirtz.

create.arduino.cc

 

 

 

제가 만든 회로는 도두가이님의 회로와 비슷한 블링크 예제 회로를 만들었는데,

거기다가 바이패스 필터와 LED 전원 회로를 추가한 정도로 만들었습니다.

LED 위치도 스캐치 핀 번호에다가 12번을 줬구요.

그랬더니 동작하질 않았습니다.

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mapes_khkim&logNo=221890832646

 

 

 

이상한건 코드를 업로딩한 ATMEGA328을 우노보드에다 꽂고 12번 핀과 LED를 연결하면 블링크가 잘되는데

ATMEGA328을 보드에다 꽂고 12번 핀 자리에다가 LED연결했더니 반응이 없었습니다.

이걸 하루 지나서야 알았는데, 우노보드의 12번핀은 ATMEGA 328P에서는 달랐던걸 잊고있었죠.

 

 

아래 그림을 보면 디지털핀 12번은 ATMEGA328P의 18번 핀과 연결되어 있습니다.

그러니까 빵판에는 18번핀과 LED를 연결해야했는데 그걸 잊고 엉뚱한곳에 연결해놔서 불이 안들어왔던 거구요.

 

https://stringfixer.com/files/27509185.jpg

 

 

회로도 그릴 체력은 없어서

그냥 녹화한걸 올리면

화면에 나온데로 외부 클럭이 없지만

내부 클럭만으로도 잘 동작합니다.

 

 

이건 기존 16MHz 외부 클럭 사용하는 기존 부트로더를 올린건데 코드는 내부 클럭쓴것과 같습니다.

크리스탈 진동자로 외부 클럭을 받아서 잘 동작하고,

다른건 위 베터리가 3.7 - 4.2V 정도라 16MHz 속도로 동작하려면 5v가 필요하다보니

베터리 대신 파워 서플라이로 공급하고 있습니다.

 

 

 

지난 주에는 방학하고 집청소 하느라 제대로 공부하지 못했는데

오랜만에 뭔가 해낸거같아서 뿌듯하기도하고

8월 3일날 전자산업기사 실기 시험이라 그거 좀 준비하다가

이후에 태양광 패널 사서 달던가 심플하게 피아노 구현을 해보려고합니다.

'하드웨어' 카테고리의 다른 글

로봇HW - 2. 로봇 액추에이터  (0) 2022.09.14
로봇HW - 1. MCU HW  (0) 2022.09.08
automata - 6. 기계 요소의 모션  (0) 2022.07.05
automata - 5. 기계 결합과 제품 개발 과정  (0) 2022.07.05
automata - 4. 재료와 부품  (0) 2022.07.05

기계 모션의 종류

ref : https://m.blog.naver.com/dailylaboratory/221690928856

 

 

기계 모션

- Rigid 접합 : 두 컴포넌트 접합

- Revolute : 하나의 축을 기준으로 회전

- Slider : 하나의 축으로 양쪽 반복 이동

- Cylindrical : 하나의 축에서 회전과 양쪽반복/직선운동

- Pin-slot : 회전축과 이동방향의 축을 다르게 움직임

- Planer : 지정한 스냅 포인트를 따라 평면 위에서 회전과 이동

- Ball : 두 축에서 반복/직선 이동하고, 하나의 축에서 회전


Revolute

Slider

Cylindrical

pin-slot

planer

ball

 

기계 요소의 운동

- 캠 : 회전 + 직선 운동

- 크랭크 : 회전 + 상하, 좌우 2축 직선/왕복 운동

- 링키지 Linkage : 회전 운동 힘이 연쇄적으로 전달됨

- 기어 : 회전 운동, 톱니 수에 따라 회전력

- 레칫 : 회전 운동 + 속도에 따라 탄성력

 



크랭크

링키지

기어

레칫

 

크랭크와 캠

- 크랭크 CRANK : 회전 운동 <-> 왕복 운동으로 변환하는 기계장치. ex) 자동차 엔진, 자전거 페달

- 캠 CAM : 회전-왕복 운동하도록 윤곽이나 홈을 가진 장치. ex) 장난감, 내연기관


크랭크, https://steemit.com/kr/@skan/3


캠, https://mechengineering.tistory.com/376

 

링크와 오토마타

- 링크 : 여러 링크를 연결해 운동하게하는 장치 ex) 옷걸이, 와이퍼, 우산

- 오토마타 : 스스로 움직이는 기계


링크,
https://blog.naver.com/PostList.naver?blogId=moonbummo

오토마타,
https://tenor.com/view/automata-art-horse-gallop-crank-gif-13854153

 

 

제품 개발 과정 : 아이디어 -> 설계 -> 제작 -> 양상 -> 판매

1. 아이디어

2. 설계

  - 2D 디자인 : 일러스트레이터, AutoCAD

  - 3D 디자인 : 2D 스캐치로 모델링 생성, 제조 시 문제점 파악 가능

3.제작

 - 주조 : 재료를 녹여 액체 상태를 형(틀, 거푸집)에 부어 굳히는 방법

 - 시제품 : 개발중인 제품 성능 검증, 개선을 위해 제작

4. 양산

 - 대량 양산

 

 

 

재료

- 원자재, 부품

- 종류 : 금속, 세라믹, 폴리머, 반도체

- 특성 : 기계적, 광, 열, 자성, 전기적 특성

- 연성 재료 : 구부려지는 재료(like 호박엿), ex) 연강, 알루미늄, 구리, 납 등

- 취성 재료 : 구부리면 부서지는 재료(like 가락엿) ex) 주철, 콘크리트, 돌, 유리, 세라믹

ref : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=studycadcam&logNo=220623648870 

재료의 종류 ref : https://nabi29.tistory.com/3

 

 

 

장력과 응력

- 장력 Tension : 끈, 케이블을 당기는 힘 강도

- 응력 stress : 압축, 인장, 굽힘, 비틀림 등 외력(하중)을 가할때 재료에서 생기는 저항

ref : https://boxplanet.tistory.com/84

 

토크와 마찰력

- 토크 : 물체를 회전시키는 물리량, T = F x L

- 마찰력 Frictional Force : 접촉한 두 물체사이에 운동을 방해하는 힘



마찰력과 외력
http://www.tslining.co.kr/tech1_friction_ratio_n_wear_rate/



토크, https://ericlab.tistory.com/47

 

 

허용공차

- 부품 제작 시 허용되는 치수 범위 오차

ref :  https://3dplife.tistory.com/101

조인트를 이용한 부품 고정

- 비영구적 :  볼트, 못, 자석, 케이블 타이 등

- 영구적 : 접착제, 리벳, 에폭시, 용접

 

 

영구적인 조인트

- 분리할 필요없는경우 사용

- 접착제 : 본드, 에폭시, 깨끗한 표면에 써야함

- 목재 접착제 : 나무조각 결합용

- 에폭시 : 플라스틱, 금속 등 접착에 사용

- 플라스틱(아크릴) 접착제 : 플라스틱이 화학적으로 반응 후 접착

- 용접  : 금속에 열과 압력으로 고체끼리 결합하는 방법



가스 용접,https://catcom.tistory.com/355

아크용접, https://www.deca-corn.com/89

- 브레이징 : 브레이징재를 녹여 접합. 원재료 변형 최소화

- 납땜 soldering : 주석, 납을 인두기로 녹여 접합, 전기부품 or 전선 연결 시


브레이징(경납땜), https://m.blog.naver.com/sp_ht/220624807303

솔더링(연납땜), https://colomy.tistory.com/113

 

베어링

- 회전축과 지지대사이에 마찰 줄여줌. 접촉면 사이에 윤활유가 있음

- 접촉방식에 따른 분류 미끄럼 베어링, 구름 베어링

- 하중 방향 분류 : 레디얼 베어링(축과 직각 방향 하중), 스러스트 베어링(축과 같은방향), 리니어 베어링(직선운동)

ref : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nissei-gtr&logNo=221749665265 

ref : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=horimsaw&logNo=221700781970 

 

스프링

- 에너지를 흡수하여 완충 작용하는 기계 요소

- 압축 스프링(볼펜, 안장), 인장/확장 스프링(완력기), 비틀림스프링(집게), 스파이럴 스프링(시계,태엽)

ref: https://terms.naver.com/entry.naver?docId=1117497&cid=40942&categoryId=32353 

 

 

 

 

결합용 기계요소

볼트, 너트

- 볼트 : 너트로 체결, 렌치 사용

- 나사(스크류) : 너트없이 박음, 드라이버 사용

ref : https://www.tjlituo.com/whats-the-difference-between-bolts-and-screws/

 

볼트

- 부품 고정에 사용

- 탭 : 암나사를 만드는 공구로 나사를 만드는데 사용.

- 관통 볼트 : 구멍을 뚫고 너트로 조임

- 탭 볼트 : 몸체에 암나사를 깍아 쥘수 있게 만든 볼트

- 스터드 볼트 : 봉에 나사를 깍은 볼트

ref : https://3dplife.tistory.com/193

ref : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kwshop89&logNo=220186983742 

- 외경 : 탭부분의 직경

- 피치 : 나사 골과 골 혹은 산과 산사이의 거리

 ex) M8x1.25 (외경 8, 피치 1.25)

ref : https://mr.kikni.com/tip/8395

- 볼트 머리 종류

ref : https://coocatia.tistory.com/123

 

- 머리 파기 : 볼트가 튀어나와 외관상이나 타 부품과 간섭, 외부로부터 충격을 방지하기 위해 머리자리를 팜

 ex) 카운터 보어(육각머리일때 자주씀), 카운터 싱크(접시 머리 flat일때 종종 사용)

* 암나사, 수나사

ref : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kanon929&logNo=221126901574 

 

 

와셔, 리벳

- 와셔 : 볼트 구멍이 볼트 지름보다 훨씬 크거나 너트 풀어짐 방지할때 사용

- 리벳 : 금속 재료를 영구적으로 결합할떄 쓰는 막대 모양 요소

ref : https://terms.naver.com/entry.naver?docId=1714914&cid=49056&categoryId=49056 

ref : https://terms.naver.com/entry.naver?docId=1089528&cid=40942&categoryId=32351 

 

+ Recent posts