창업연계공학설계입문 중간고사 대비 정리

이유빈
이유빈 |
창업연계공학설계입문 중간고사 대비 정리

피지컬 컴퓨팅 시스템 및 센서와 액추에이터 개념

  • 피지컬 컴퓨팅이란
    • 현실세계와 논리세계의 만남
    • 컴퓨터에서 실행되는 프로그램이 현실 세계의 사물과 소통하는 시스템
  • 임베디드 컴퓨팅 시스템
    • 저비용/경량/저전력/풍부한 입출력 단지
    • 라즈베리파이, 아두이노, 젯슨나노 등
  • 센서: 현실세계로부터의 입력
    • 거리: 초음파, 전파, 레이저
    • 영상: 웹캠, 열화상카메라, X-Ray 센서
    • 위치정보: GPS, 가속도, 회전속도, 기울기
    • 온도, 습도, 미세먼지, 가스농도, 소리, 진동, 움직임, …
  • 엑추에이터: 현실세계를 향한 출력
    • 회전운동: DC모터, 스텝모터, 서보모터
    • 직선운동: 리니어 액추에이터
    • 소리: 스피커, 초음파 발신기
    • 빛/시각정보: 레이저 발신기, LED 모듈, LCD 디스플레이
    • 진동: 진동모터

나사 조립방법

  • 목재 드릴링 시 너무 느린 속도를 피할 것
  • 드릴링 후 드릴을 뺄 때도 같은 회전속도를 유지
  • 드릴링 및 드릴 제거시 항상 수직방향 유지
  • 2mm 드릴로 나사구멍 확보
    • 직경 3mm 나사가 바로 삽입되는 경우 목재 갈라짐 발생
    • 나사구멍이 모서리에 가까운 경우 갈라짐 발생빈도 증가
    • 회전속도는 최대로 유지하며 동일한 힘으로 전진후 그대로 후진
      • 중간에 회전을 멈춘 상태에서 억지로 빼거나 수평방향 힘이 가해지면 드릴비트가 부러짐
  • 전동드라이버 십자비트 사용 금지
    • 판재 재질이 삼나무로 연성 목재임
    • 정동드라이버 사용시 나사산이 쉽게 뭉개지고 헛도는 현상 발생

브레드보드 사용 및 회로 구성 방법

  • 전자회로 프로토타이핑 도구
    • 납땜 없이 회로 구성 가능
    • 고속 동작 회로 구현 불가
  • 구성
    • 전원 레일(power rail): 적/청색 선
    • 터미널 스트립(terminal strip): 5개가 한 묶음
    • 각 rail/strip의 hole은 전기적으로 연결됨

아두이노의 setup() 및 loop() 함수 이해

  • setup() 함수
    • 아두이노 전원을 켠 직후 또는 리셋 버튼을 누른 직후 자동으로 실행
    • 최초 1회만 실행
    • 각종 변수 및 장치 초기화 용도
  • loop() 함수
    • Setup() 함수가 실행된 후 계속 반복하여 실행됨
    • 프로그램의 핵심 구현 내용이 위치함
    • 계속 변화하는 외부 입력에 반응하여 출력을 갱신하는 인지-판단-제어 동작 구현에 적합

int, char, unsigned int 등 자료형 이해

  • 1 byte: bool, (unsigned) char
  • 2 bytes: (unsigned) int
    • int a; // 저장 가능한 숫자: -32768 ~ 32767 (-2^15 ~ 2^15 - 1)
    • unsigned int a; // 저장 가능한 숫자: 0 ~ 65535 (0 ~ 2^16 - 1)
  • 4 bytes: (unsigned) long

시리얼 모니터 설정 방법 이해

  • Serial.begin(115200);
    • serial 포트 초기화
  • while(!Serial) {;}
    • serial 포트 초기화 완료까지 대기 (Uno 버전은 불필요)
  • Serial.println(”Hello World”);
    • serial 포트로 메시지 출력 후 줄바꿈 (println)
  • delay(1000);
    • 1000ms, 1초간 대기

LED 회로와 ohm의 법칙

  • LED
    • 전압 강하: 1.7 - 2.0V (적색 LED)
    • 적정 전류량: 13 ~ 20mA
  • Ohm’s law (옴의 법칙)
    • 전압강하 V = 전류 I x 저항 R

저항 병렬 연결시 전류 변화

  • 저항값 합성하기
    • 직렬 연결
      • R’ = R1 + R2 + … + Rn
    • 병렬 연결
      • 1/R’ = 1/R1 + 1/R2 + … 1/Rn

GPIO를 사용한 LED 제어회로 분석

5V 전압 (+) ⇒ 220옴 저항 ⇒ LED (+→-) ⇒ 아두이노 7번 포트

digitalWrite(7, 1) ⇒ LED꺼짐

digitalWrite(7, 0) ⇒ LED켜짐

거리센서 특성 이해

  • 전방의 물체(장애물)과 센서 사이의 거리를 측정
  • 다양한 방식
    • 초음파(ultrasonic) / 적외선(infrared) / 레이저 (laser) / 전파 (radio)
  • FOV (field of view, 화각 또는 시야각)
    • 센서가 물체를 인지할 수 있는 범위
    • FOV 내에 존재하는 물체 중 가장 가까운 물체의 거리를 인식
  • 센서 종류에 따라 FOV가 달라짐
    • VL53L0X laser distancing sensor: 25°
    • HC-SR04 ultrasonic sensor: horizontal ~21°, vertical ~4°
    • Sharp infrared 2Y0A21: unknown (narrower)
    • DT-20P224B displacement measurement sensor: 0.68°

초음파센서의 trigger-echo 시간과 거리 사이의 변환

  • 동작원리
    • 특정 파형의 초음파 발신(ping) 후 수신될 때까지의 시간을 측정
    • HC-SR04, SRF05 등
    • Trigger: 초음파 발신 명령 입력
    • Echo: 초음파 발신 직후 0->1로, 수신 직후 1->0으로 출력
    • 시간-거리 변환
      • Distance (m) = Time (sec) x Speed (m/sec)
      • 상온(24℃)에서 음속: 346m/s
      • 거리 d (m) = 346 * t / 2 (왕복거리 / 2)
      • d (mm) = 173 * t (ms)
  • Timeout 고려
    • 초음파 발신 후 수신이 되지 않는 경우 timeout 발생
      • Echo 핀이 수백 ms에서 수 초까지도 high로 고정됨
    • Timeout 발생시 해당 시간 동안 거리측정 불가
  • 측정대상의 모양 및 재질에 민감
    • 단단한 평면에 대해 안정적인 측정 가능
  • 최대 측정 주파수
    • 초당 최대 측정 회수가 40회로 제한됨
    • 직전에 발신한 초음파가 사라질 때까지 기다려야 함
    • 측정간격이 지나치게 짧을 경우
      • 이전에 발신된 초음파 수신 -> 실제 거리보다 훨씬 짧게 거리를 인식

EMA 필터의 특징

  • EMA: exponential moving average
    • 현재까지의 모든 측정값이 평균 산출에 사용됨
    • 최근 측정치에 높은 가중치 부여
      • 이전 측정치의 비중은 지수적으로 감소함
    • MA의 저장공간 및 오래된 측정치를 제거하는 부담을 줄일 수 있음
    • 부동소수점 연산이 필요
    • EMAk = 𝛼•dk + (1-𝛼)•EMAk-1
    • k=10, 𝛼=0.5의 경우
      • EMA10 = 0.5•d10 +0.5•(0.5•d9 +0.5•(0.5•d8 + 0.5•(0.5•d7 + … = 0.5•((0.5)0d10 +(0.5)1d9 +(0.5)2d8 +(0.5)3d7 + … = 0.5•d10 + 0.25•d9 + 0.125•d8 + 0.0625•d7 + …

EMA 필터 공식의 분석을 통한 예전 측정치의 지수적 감소 특성 이해

  • EMAk = 𝛼•dk + (1-𝛼)•EMAk-1

서보모터의 PWM 인터페이스 특징 이해

  • 제어 인터페이스
  • 펄스 폭 변조(PWM) 방식으로 제어
  • 아두이노 IDE에는 서보 제어를 위한 전용 PWM 라이브러리가 제공됨
    • analogWrite()는 PWM 제어 방식이지만 서보 제어를 위한 주기 및 duty가 호환되지 않음
  • 펄스 폭 변조 (PWM: Pulse Width Modulation)
    • 20ms 주기 (=50 Hz)
      • 위치제어 명령은 초당 50회 갱신 가능
    • 1ms: 반시계방향 최대회전 (0°)
    • 2ms: 시계방향 최대회전 (180°)
    • 1.5ms: 중립 위치 (90°)
  • Dead band width
    • 5us 이내의 입력변화에는 반응하지 않음
  • PWM 인터페이스의 장단점
    • 아날로그 vs. 디지털
    • 병렬 vs. 직렬통신
    • PWM 파형 생성 오버헤드
  • 아두이노 서보제어 API
    • attach(): 디지털 I/O핀을 서보 객체에 연결
    • write(): 정수형의 각도 값으로 서보 위치 제어
      • 입력범위: 0, 1, 2, …, 180 (예: 12.7 => 12로 인식)
    • writeMicroseconds(): 펄스 폭(1,000~2,000us)으로 서보 위치 제어
      • 1,000: 반시계방향 최대 회전
      • 2,000: 시계방향 최대 회전
      • 1,500: 중립
    • read(): 현재 서보 각도 읽기
    • attached(): 서보 객체에 I/O핀이 연결되어 있는지 확인
    • detach(): 서보 객체에서 해당 I/O핀 분리
  • 서보 인터페이스 자체에는 속도제어 기능 미포함
    • 연속된 위치 입력값들의 변화량에 따라 속도가 간접적으로 제어됨
  • 위치(각도) 입력이 급격하게 변할 수 있음
    • 센서에서 잡히는 노이즈가 서보의 입력으로 연결되는 경우
    • 서보가 시계방향으로 최대속도로 움직이는 중 갑자기 반대방향 입력이 들어올 수 있음

서보의 펄스 폭과 서보 horn 각도 사이의 변환

  • 위치 입력값의 최대 변화량을 제한한다면?
    • 서보의 최대 속도를 제한하는 것과 동일한 효과를 얻을 수 있음
  • duty_change_per_interval
    • 서보 속도 제어 업데이트 1주기에 증감 가능한 duty의 최대값
  • duty_change_per_interval = 5 us로 설정한다면
    • 서보의 현재 위치: duty_curr = 1000 us (0° 로 가정)
    • 서보의 목표 위치: duty_target = 2000 us (180° 도로 가정)
    • 질문 1: duty_curr 값이 duty_target 값에 도달하기까지 소요시간?
      • 답: 4 seconds
    • 질문 2: duty_change_per_interval = 5 us를 각속도로 환산하면?
      • 답: 45 °/ sec
이유빈

이유빈

국민대학교 소프트웨어융합대학 소프트웨어학부 이유빈입니다. 링크 아이콘을 클릭해 Github 페이지로 이동할 수 있습니다.

댓글

comments powered by Disqus