본문 바로가기

로봇 만들기 - AVR

4족 보행 로봇 기초 조립. 4족 보행 로봇 제작 시작. 간단한 스펙 모터 : HS-311 서보 - 8EA 프레임 : 1.2T 알루미늄 MCU : ATMEGA16 1. 모터 HS-311은 일반서보 중에서 가장 저렴한 모델이다.(더싸고 토크가 더 큰 중국산 서보 모터가 있다는데 난 못 봤음) 토크가 대충 3kg 정도이다. 게다가 아날로그 서보이므로 PWM 신호가 계속 전달되지 않으면 모터에 토크가 풀려서 쓰러지게 된다. 검색을 하다보면 4족보행 로봇을 만드는 경우에도 HS-311이 토크가 부족해서 제대로 서있지 못한다는 글들이 있다. 프레임이 엄청나게 길거나 엄청나게 큰 로봇이 아니라면, 프레임, 서보, MCU(회로부), 배터리 다 해도 4족 로봇의 경우 충분히 똑바로 설수 있다. http://maxpulse.tistory.com/6.. 더보기
AVRGCC(WINAVR) 에서 PORT 한 핀씩 제어하기 매우간단한 문제인데 삽질을 심하게 해서 적어둔다. 난 WINAVR 20080610 버전을 설치해두었다. 보통 PORT에서 한핀을 제어하기 위해서 PORTC = PORTC & 0x01; 이런식의 구문을 사용하는 경우가 많다. 그런데 전혀 제어가 되지 않아서 한참 보다가... avr-libc 문서를 보니.. 원래 예전에는 sbi - Set Bit Instruction, cbi - Clear Bit ... 이런 명령어가 비트별로 제어하는 명령어가 있었는데 지금은 없어졌단다. 결론은 PORTC |= _BV(0); //PORTC의 0번 비트를 셋. PORTC &= ~_BV(0); //PORTC의 0번 비트를 클리어. 이런식으로 써야 한다는 것. WINAVR 혹은 AVRGCC는 공짜로 좋은것임에 틀림없지만 뭔가 너.. 더보기
서보 모터 각도 부드럽게 변경시키는 방법. 서보 모터의 경우 입력되는 펄스의 길이에 따라 각도가 변경되는 모터이다. (내가 말하는 서보 모터는 RC, 무선 모형에서 사용되는 서보모터임) 그런데 서보모터의 이동속도는 일반적으로 조절이 불가능하다. 펄스의 길이에 따라 서보모터의 정해진 응답속도로 움직이게 된다. 저렴한 서보모터인 HS-311의 경우 6V 전원을 사용하면 무부하 상태에서 60도 회전하는데 0.15초가 걸린다고 한다. (서보의 경우 부하량이나 사용전압에 따라 속도와 토크가 변한다.) 그럼 서보모터 각도를 30도에서 90도로 바꾸는데 0.15초가 걸린다. 그런데 나는 30도에서 90도로 바꾸는 것을 15초 동안 하고 싶다면 어떻게 해야할까? 2.5초마다 10도씩 바꿔준다면 30도에서 90도로 이동하는게 15초가 걸리게 되지만 6단계로 정지.. 더보기
시리얼 모니터 프로그램 가끔 로봇을 만들어서 시리얼 통신하는 프로그램을 작성하면 이게 제대로 통신값이 들어오는데 프로그램에 문제가 있는건지 통신이 안되서 프로그램이 삽질하고 있는지 궁금할때가 있다. 내가 만든 프로그램이라면 통신 데이터 자체를 표시할수 있지만 남이 만든 것이라면 그게 좀 어렵다. 보통은 시리얼 통신은 한 프로그램에서 시리얼 포트를 열어버리면 다른 프로그램에서는 그 포트를 열수 없기 때문인데 이걸 해결한 프로그램이 있다. Free Serial Port Monitor 라는 프로그램이다.(이하 FSPM이라고 하자) http://www.serial-port-monitor.com/ 처음 들어가면 프로그램을 사야 할것처럼 써놨는데 아래쪽에 다운로드 버튼을 누르면 기본기능의 프로그램은 바로 다운받아서 실행시킬수 있다. 다운.. 더보기
샤프 적외선 반사각 거리측정 센서. 일반적으로 로봇을 만들때 장애물 감지등을 위해서 적외선 센서를 많이 사용한다. 간단한 방법은 적외선 센서의 발광부에서 반사된 빛이 반사되어 돌아오는 양을 측정하는 방법이다. 적외선 센서 수광부는 되돌아온 빛의 세기에 비례하는 전압이 출력되므로 그것을 OP-AMP를 이용하거나 마이컴으로 ADC를 하면 장애물의 유무, 거리등을 판단할수 있다. 그러나 빛의 반사는 반사면의 상태에 따라 많은 차이가 나게 되므로 반사되는 곳의 상태에 따라 돌아오는 광량도 차이가 나고 정확한 거리 측정은 불가능하다. 그러나 이 샤프 적외선 센서는 빛을 보내고, 그 빛이 반사되어 돌아오는 각도를 측정한다. 삼각측량과 비슷한 방법이라고 하겠는데 따라서 반사면의 상태에 상관없이 매우 정확한 거리 측정이 가능하다. http://www.a.. 더보기
AVR 개발 환경 구축 - AVR JTAG, ISP 지난번에 AVR JTAG을 구입했으나 AVR 칩에 JTAG 퓨즈 비트를 설정하지 않아 사용하지 못했었기에 오늘 AVR ISP를 구입했다. ISP는 AVR 프로그램 다운로드 만을 위한 장비이다. 원래 시리얼 ISP가 부품이 제일 적고 간단한데 요새는 다 USB-시리얼로 판매하는 추세라 좀 비싸다. 난 어차피 시리얼 포트가 있는 컴퓨터를 가지고 있으므로 저렴한 시리얼 ISP 를 찾다가 뭔가 있어보이는 AVR-910 ISP라는 것을 샀다. ledshop.co.kr 이라는 사이트인데.. 받아보니 9000원정도의 가격치고는 잘 만들어진것 같고 전용 프로그램이 쓸만한것 같다. 일단 빨간것이 AVR ATmega 128 보드, 녹색의 것이 AVR-910 ISP 이다. 시리얼 포트에 끼우는 것이므로 원래는 컴퓨터에 끼워.. 더보기
AVR 개발 환경 구축 AVR은 예전에 8051을 대체하고 있는 강력한 기능의 MICOM이다. 예전 8051, 80196, AM188 등등 교육용으로 쓰이는 마이컴은 대부분 AVR로 많이 바뀌지 않았나 생각된다. AVR의 장점은 ISP라는 것을 이용해서 컴퓨터와 간단한 회로만 있으면 개발 환경을 만들수 있다는 것이다. 실제로 예전에 2000년도 쯤... 196을 하거나 8051을 하게 되면 이런 글을 종종 볼수 있었다. 196이나 8051같은 경우 일일히 프로그램을 롬에 롬라이터로 굽거나, 모니터 프로그램이라는 것을 한번은 롬에 넣어야 램을 이용해서 프로그램을 실습할수 있었다. 그래서 인터넷 글을 보면 "청계천에 파일과 롬을 들고가서 구워달라고 하세요" 이런 문구가 있었다.--; 난 학교에 롬라이터가 있어서 그렇게는 않했지만 .. 더보기
극한작업로봇. 인명 구조 수색 로봇(1) 예전에 대회에 참가했던 로봇이다. 극한작업로봇이라고, 무너진 건물 실내를 돌아다니면서 생존자를 빨리 찾아낸다는 형식의 로봇 대회이다.(로봇피아드에서 없어진 종목으로 알고 있다.) 로봇은 보시다시피 3단으로 구성되어 있으며 각단의 연결부위를 서보모터를 사용하여 움직여서 장애물을 넘을수 있다. 또한 앞에 달린 카메라로 영상을 전송하여 PC에서 표시하고 인명을 찾아내는 것이다. 기능은. 1. 내부 화면을 전송하여 외부에서 조종 및 수색이 가능하고. 2. 내부 지도를 작성할수 있도록 정보를 제공. 3. 열악한 환경이므로 장애물을 넘을수 있어야 하고. 4. 스스로 동작이 가능. 사실 장애물을 넘는 것이 가장 중요한 기능이라고 할수도 있는데.. 우선 장애물과 벽을 구분하는 방법은.. 앞쪽에 거리를 측정하는 적외선 .. 더보기