Skip to content

0307kwon/2019.2_gyroWheelchair

Repository files navigation

2019.2_gyroWheelchair

2019년 2학기에 개발한 자이로 휠체어

0. index

  1. summary

  2. Theory

  3. 하드웨어 구성

  4. 코드 구조

  5. 기타

1. summary

▲ 개발 결과

▲ 휠체어와 조종기

휠체어가 오르막을 오를 때 차체가 기울어져 불안정한 자세가 형성된다.

자이로 휠체어는 이를 막기 위해 오르막에 의해 기울어지는 방향과 반대로 의자를 기울여

의자가 항상 같은 자세를 유지할 수 있도록 하며 안정감을 준다.

2. Theory

  • thread(쓰레드)

    하나의 프로세스(프로그램) 내에서 여러가지의 함수(동작)들이 각각 cpu 자원을 잠깐 점유하다가

    다른 함수에게 내어주는 프로그래밍을 할 수가 있는데 이 속도는 매우 빠르므로

    마치 여러개의 함수가 동시에 실행되는 듯한 결과를 볼 수 있다.

    여기서 각각의 함수를 쓰레드라고 한다.

  • priority(우선순위)

    각각의 쓰레드에는 priority(우선순위)가 주어진다.

    • 우선순위가 높은 쓰레드

      낮은 우선순위의 쓰레드가 실행되고 있어도 필요로 하면 강제로 cpu 자원을 점유할 수 있다.

    • 같은 우선순위인 쓰레드들

      round robin(동일한 시간 동안 점유) 등의 방식을 사용해 동작한다.

  • mutex(뮤텍스)

    쓰레드가 동시에 실행되는 듯해도 결국 순차적인 코드 명령의 나열이다.

    이때 문제가 생기는데, 하나의 함수가 실행중이다가 주도권을 뺏겨 다른 함수를 실행시키고 다시 원래 함수의 동작으로 돌아왔을 때

    다른 함수에 의해 원래 함수가 사용하던 변수가 값이 변경되었을 수 있다. 이는 원치 않는 동작을 유발시키는 치명적인 상황이다.

    이를 막기위해 뮤텍스라는 개념이 도입되었다.

3. 하드웨어 구성

  1. 차체

● IMU 센서를 통해 의자의 기울기를 인식

● 인식한 기울기를 바탕으로 의자를 회전시킴

● 블루투스로 조종기와 통신

  1. 조종기

● 컬러인식센서로 휠체어의 전진,정지,후진을 구현

● 모터의 엔코더를 이용해 핸들의 회전 방향을 인식하고 오른쪽 회전시 차체를 오른쪽으로 회전, 왼쪽으로 회전시 차체를 왼쪽으로 회전시킨다.

● 조종기와 차체와의 통신 방법으로 블루투스를 사용, 무선 조종이 가능함

4. 코드 구조

4-1. wheelchair.c (차체)

● 쓰레드 구조

● 뮤텍스 구조

4-1. controller.c (조종기)

● 쓰레드 구조

● 뮤텍스 구조

5. 기타

About

[2019. 2학기] 자이로 휠체어

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages