반응형

https://youtube.com/live/sftjYnlS2zA

[아두이노#581] 학습데이터를 EEPROM에 기록하고 근접센서에 물건이 감지되면 아두이노용 4DOF 아크릴 로봇팔 작동시키기!(녹칸다의 아두이노)

녹칸다의 아두이노 시리즈이다!

녹칸다의 아두이노 580편에 이어서 추가편을 구성해보도록 한다!
580편에서 6가지 동작에 대해서 아날로그 피드백 서보모터를 이용해서 학습이 가능하고 반복동작이 가능하도록 구현했다!

그러나 사용자가 학습해놓은 데이터는 아두이노의 전역변수로 기억하고 있어서 재부팅을 하게 되면 학습데이터가 날라가게된다!(소실된다)

그러면 애써 학습해놓은 데이터를 다시 학습을 해야한다!
여기서 학습이란것은 내가 원하는 6가지 동작을 다시 입력해주는것을 말한다!

그렇다면 학습데이터가 안날라가도록 하면 되는 것인데 아두이노의 EEPROM에 학습데이터를 기록해두면 데이터가 소실되지 않는다!
(EEPROM사용방법을 알아야한다)

다음 중점내용은 항상 작동하는게 아니라 작동해야할때만 작동하도록 만들어 보는 것이다!
로봇팔은 평소에 가만히 있다가 적외선 근접센서에 뭔가 옮겨야할 물건이 감지되면 작동을 시작하는 것이다!
그리고 작동을 완료한 시점에 센서에 물건이 감지 되지 않는다면 다시 멈춰있는 것이다!

이러한 내용을 기본으로 해서 아래 내용을 구현해보도록 하자!
(시간이 부족하면 다음회차로 넘어감)
-학습한정보 eeprom에 기록하기
-자공버튼누르면 1회작동하기,  중지버튼 누르면 즉시중단하기
-적외선 근접 센서감지되면 작동하기
-서로다른포인트에 있는 물건 한군데 갖다놓기

 

(참고자료)
1.아두이노에 EEPROM은 내장되어있다!
2.EEPROM을 활용하기 위한 라이브러리도 내장라이브러리이다!(설치가 필요없다)
3.아두이노용 적외선 근접센서가 감지가 되면 HIGH신호(X)인가 LOW신호(O)인가?
4.아~그렇다면 아두이노가 근접센서의 하강엣지(falling edge)를 검출하면 되는 것이구나!(bad case)
5.현재 로봇팔의 장점 : 서보모터의 각도가 몇도인지는 내가 알바가 아니다!

(추가하는 과정)
1.학습된 6개의 동작을 출력하는 기능 만들기!
2.필요한 EEPROM은 몇 BYTE인가? 6개의 동작이 4개의 각도값을 가지고 각 각도값은 0~180도의 범위를 가지므로 24개의 EEPROM의 저장공간이 필요하다!(24 byte가 필요함!)
3.근접센서에 감지가 되면 로봇팔이 무조건 작동하되 로봇팔이 작동중이라면 근접센서에 감지된 결과는 무시한다!
4.마지막 물건을 놓는위치를 5번동작이라고 한다면 5번위치가 여러개 있으면 되고 마지막 6번동작은 5번동작에 이어서 그리퍼가 놓는 동작만 수행한다!

(582편에서 할내용)
1.C#윈폼을 이용해서 장난감 로봇팔을 제어하기위한 GUI프로그램을 구현한다!
2.581편에서 했던 내용을 적극적으로 활용해서 원격제어 개념으로 만들어볼것!
3.아두이노는 로봇팔에 대한 데이터가 전혀없고 원격프로그램에 의해서 제어된다!(시간을보고 함)

(예제)
1.학습된 데이터를 EEPROM에 기록하고 불러오는 작업을 진행하시오!

581-1(EEPROM에학습데이터기록하기).txt
0.01MB

 

2.버튼을 2개 연결하고 1번버튼을 누르면 로봇팔이 1회 작동하고 2번버튼을 누르면 작업이 즉시중단된다!

581-2(버튼을누르면작동된다).txt
0.01MB

 

3.센서에 감지되면 로봇팔이 작동된다!

581-3(근접센서에감지되면물건을옮긴다).txt
0.01MB

 

4.로봇팔이 물건을 이동시킨 횟수가 짝수번째이면 A위치, 홀수번째이면 B위치에 물건을 놓도록 하시오!

581-4(서로다른위치에물건놓기).txt
0.02MB

 

5.학습된 6가지 동작을 확인해볼 수 있는 기능을 구현하시오!(시리얼입력으로)

581-5(학습된포즈확인하기).txt
0.02MB

반응형
Posted by 덕력킹
,