본문 바로가기
코스웨어/15년 스마트컨트롤러

20151027-26번-업무일지-임현수 라즈베리 홈네트워크(릴레이), 태스크 스위칭 확인

by 알 수 없는 사용자 2015. 10. 27.
728x90
반응형
■ 로봇 제어


■ 릴레이

PA1a-5v(NAIS - 제조:파나소닉)

이름에서 알수있듯이 동작 전압은 5V이다.

좌측에
5A 250V AC
5A 30V DC
는 최대 허용치를 나타낸다.

교류 250V ~ 0V까지 다 된다.
직류 30V ~ 0V까지 된다.


전기스토브 전력이 1000W 적혀있다. 이 릴레이를 사용할 수 있는가?

W와트를 봐야한다.
와트는 수식에서 P로표현한다.(저항이 옴인데 R로하는 것처럼..)

Power - 전력, 힘

P = VI
250V*5A = 1250VA = 1250VI = 1250P = 1250W(교류)

1250W까지 견디므로 1000W의 전기스토브를 사용 할 수 있다.

직류일때는 150W까지 견딜 수 있다.
자동차 배터리=12V 전류 10A = 120W 즉 자동차 배터리도 연결할 수 있다.


생긴모습을 보면 다리굵기가 다르다.
전압이 높은 전기장치를 굵은쪽에 연결해준다.


▲ AVR 5볼트로 220볼트를 제어할 수 있다. 
220V와 5V가 기계적으로 분리되어있어 서로 영향을 받지 않는다. 

즉 작은 전압으로 고전압의 전기장치를 제어할 수 있다.
릴레이를 더 비싸고 좋은걸쓰면 더 높은전압을 컨트롤 할 수 있다.

▲ PLC(Programmable Logic Controller)에다가 릴레이를 여러개 붙여서 더 높은전압을 견딜 수 있게 할 수 있다.

릴레이의 종류랑 용도도 여러가지있는데
전기를 인가하면 스위치가 붙는놈이 있고, 떼는놈이 있다.


▲ 트랜지스터도 용도도 여러가지가 있다.
라즈베리파이 전류나 전압이 약하면 릴레이코일을 땡길힘이 없다.

라즈베리파이는 신호용이지 전기용이 아니다.

그래서 전기적인 약점을 보완해주는 전기소자들이 따로있다.
위 그림의 다이오드와 트랜지스터가 그러한 용도이다.

만약 전류가 많이흐르면 CPU가 뜨거워진다. 그래서 칩에는 전류가 많이 흐르지 않는다.
CPU들은 배전류형태로 설계하지 않는다.

전류가 약하면 보완해주는 회로들을 추가로 장착하면 된다.


■ WiringPi 설치

▲ /usr/src로 이동해서 빨간박스 3개만 수행한다.


■ 어셈블리

목표 : main.exe로 smart1.exe을 load, go해서 stack영역을 사용한 흔적(태스크 스위칭)을 확인한다.

■ 디버거 프로그램

▲ 데이터 실행방지 보안옵션을 끄기위해서 


1. 데이터 실행 방지(DEP) OFF
1-1 bcdedit /set {current} nx alwaysoff
1-2 재부팅

2. 데이터 실행 방지(DEP) ON
1-1 bcdedit /set {current} nx optin
1-2 재부팅

위 내용의 1번을 수행한다. 재부팅후 확인해보면 해당 옵션들이 비활성화되어있다.


DEP옵션을 끄면 PC에 안좋은 영향을 미칠수있으므로 테스트 후 위 내용의 2번으로 복구한다.

기존의 vpStack의 위치는 smart함수가 사용하는 스택영역의 아래쪽이기 때문에,
위 코드와 같이 변경 후 stack영역을 확인해야 한다.

■ main 실행

▲ code영역의 주소를 확인한다.

■ smart1.exe 생성

▲ 위 순서대로 명령어를 실행하거나 배치파일에 저장해서 go를 수행하면 smart1.exe가 생성된다.

▲ code영역이 400000번지 이하면 warning이 발생하는데 실행에 문제되지 않으므로 무시한다.

■ main에서 load후 go

▲ load후 stack영역을 살펴보면 아무런 변화가없다. 하지만 go를 실행하면 smart1.exe가 실행되어 스택에 변화가 생긴다.

▲ go 실행 후 stack을 살펴보니 smart함수의 iNum을 활용한 흔적을 발견할 수 있다.


728x90