728x90

로봇제작 30

로봇제작 - 파워부족 문제 해결 검토중 아직도 마무리를 못하고 계속 진행 중이다.사물인식 부분은 계속 훈련 중이다. 아마도 다음 주 월요일이면 얼추 끝나지 않을까 한다.현재는 하드웨어 부분에 대한 문제점을 어떻게 고칠 것인가에 대해 검토 중이다.즉, 지난번에 서보의 힘 부족으로 12V까지 전압을 올려보고 테스트를 해 봤을 때 힘은 좀 나아진 것 같으나 서보의 전압이 6V라 사실 9V도 초과된 상태다. 따라서, USB의 전력이라도 과부하의 가능성이 충분히 있다고  판단되어 다시 9V로 전압을 낮췄다. 물론 DC모터의 경우는 괜찮다. 그러면 이 문제의 해결책을 고려했을 때 다음과 같은 선택을 할 수밖에 없다.1. 현재 HS-311의 토크가 3.5kg이다. 이보다 큰 토크를 가진 서보로 부족한 부분을 교체한다.2. 설계 구조를 변경한다. 즉, 길이.. 개발 관련/프로젝트 2024. 5. 3.
로봇제작 - 아두이노 PWM 충돌 문제 해결 드디어 충돌 문제를 모두 해결했다. 더 이상의 오작동은 발견되지 않았다.. 다만.. 배터리가 작아서 같이 쓰면 힘이 약하다. 배터리를 적절하게 분배하는 최적화를 진행해야 할 것 같다. 이로서 서보모터 4개, DC모터 2개를 정상적으로 원하는 대로 움직일 수 있다. 이전에 포스트에서는 다 된 줄 알았는데, 한 곳이 해결되면 다른 쪽이 안 되는 등 뭔가 한 개씩 문제가 있었다. 여러 가지 자료를 찾아보고 결론 내린 것이 핀을 적절하게 배치해야 된다는 것이다. 아두이노의 PWM 핀중에서 다음과 같은 것이 같은 타이머를 사용한다고 한다.(내용은 뭐 잘 모르니까 일단 참고..) 5, 6 : 카운터/타이머 0 사용 9, 10 : 카운터/타이머 1 사용 3, 11 : 카운터/타이머 2 사용 이런 쪽은 잘 안 써서 잘.. 개발 관련/프로젝트 2024. 4. 14.
로봇제작 - 아두이노 코드 업데이트 완료 지난번 불필요한 것 이후로 최종적으로 업데이트를 진행했다. 전체적으로 3가지 모드가 있었는데 과감히 다 버리고 간결한 리셋과 입력 모드만 남겨두었다. 물론 기존의 기본적인 테스트 동작이나 입력동작이나 동일하게 움직인다. 이렇게 하는 게 더 맞는 것 같다. 현재의 코드는 이후에 DC모터 제어부분 쉽게 결합하기 위해 작업한 사항도 있다. 그래서 최종적인 로봇암의 움직이는 코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63.. 개발 관련/프로젝트 2024. 4. 8.
로봇제작 - 로봇암의 아두이노 코드 완성? 드디어 로봇암을 제어하는 코드를 완성?? 최종적인 것은 이전에 만들었던 DC모터 제어 및 블루투스 통신 부분과 합치는 것이겠다. 아래의 코드는 일단 로봇암 제어하는 부분을 일단은 완성했다고 볼 수 있겠다. 다만... 이 부분은 내용을 끝자락에서 다시 설명하겠다. 아래의 코드를 간략히 설명하면 작동은 크게 3가지로 구분된다. 첫 번째는 리셋모드로 중간의 어떤 동작에서 바로 초기세팅으로 돌아갈 때 팍 하고 움직이는 것이 아니라 부드럽게 원래 상태로 돌아가는 거라 보면 된다. 두 번째는 입력모드는 시리얼 통신으로 입력된 string 배열을 한 번에 가져와 명령어별로 구분하여 동작하는 방식이다. 실시간 제어도 가능하겠지만 문제는 사물인식과 음성인식 등으로 모바일 환경에서 렉이 걸릴 확률이 높을 것 같아서 선택한.. 개발 관련/프로젝트 2024. 4. 5.
아두이노 - String Split 아두이노에서는 기본적으로 C#이나 JAVA의 split 기능을 지원하지 않는 것 같다. 아니면 내가 잘 모르니 못 찾을 것 일수도 있다. 아무리 찾아봐도 아두이노에서의 저 기능을 못 찾겠다. substring 기능이나 indexof 기능 외에는 찾아봐도 안 나오니 결국 이것을 활용한 방법으로 원하는 기능을 수행할 수밖에 없다. 그래서 split 기능을 수행하는 코드를 만들어 봤다. 아래의 코드를 활용하면 한 번에 들어온 여러 문자열을 구분자의 기준으로 분리하여 배열에 넣어준다. 일단 배열은 20개 이하만 처리하도록 했는데 필요하면 숫자만 늘리면 된다. 이 기능의 활용은 로봇제작에서 명령어를 한 개씩 전달하기보다는 진행할 문자열을 한 번에 보내서 처리하도록 하는 것이 좋겠다 싶어서 만들었다. 물론 짧게 한.. 개발 관련/HW 관련 2024. 4. 3.
로봇제작 - 아두이노 테스트 코드 수정 아두이노 로봇암 동작의 테스트 코드를 좀 수정했다. 반복되는 것을 배열로 정리하고 좀 더 수정하기 편하게 보완하였다. 이전 것은 테스트 명령어를 반복적으로 주면 오류가 있었다. 이것도 함께 보완하였다. 이참에 앱에서는 간단한 것은 명령어 함수로 보내고 물건 집는 것과 제자리 돌아가기 등의 정해진 동작은 아두이노에 미리 만들어서 넣으면 오류 확률이 더욱 줄 것 같다. 그리고 동작에 대한 입력 값이 있을 경우에만 서보모터에 연결되어서 잡음이 들리지 않는다. 모터 또한 전력이 들어가지 않아서 배터리도 절약할 수 있지 않을까 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37.. 개발 관련/프로젝트 2024. 3. 31.
로봇제작 - 로봇암 전체 동작 테스트 아직 배선 정리가 잘 안 되지만 지난번 조립한 것을 전체 동작을 확인해 보기 위해 아두이노 자체적으로 테스트 코드를 작성하였다. 결과적으로 동작이 너무 휘청휘청 거린다..;;; 이건 뭐 어쩔 수 없겠다. 담엔 좀 더 튼튼한 프레임으로 해봐야겠다. 모두 완성되면 현재의 프레임을 3D나 이미지로 출력한 곳에 측정 수치를 별도로 적어놔야겠다. 어쨌든 프로토타입의 하드웨어 부분은 완성되었다고 보면 될 것 같다. 다만 배선 부분은 첫 번째 프레임 밑에 아크릴을 뚫어서 그쪽으로 배치해야겠다. 자꾸 걸려버린다.;;; 아두이노의 테스트 코드는 아래와 같다. 배터리 절약을 위해 로봇암을 움직이지 않을 때는 연결을 해제하고 움직일 때 연결하도록 코드를 구성했다. 모터 동작 소리가 자꾸 거슬려서 그렇게 처리했더니 조용하다... 개발 관련/프로젝트 2024. 3. 28.
로봇제작 - 하드웨어 조립 일단 완성 일단 그립 부분을 완성하고 전체적인 조립을 진행했다. 이와 함께 각각의 서보모터들도 각 해당 핀들에 할당하여 조립과 연결 모두 완료되었다. 물론 케이블 등 좀 지저분해서 최종적으로 완성된 것은 아니다. 케이블 정리부터 좀 깔끔하게 하면 좀 더 낫겠고, 아예 빵판이 아닌 PCB에 옮겼을 때가 완성일 것 같다. 하지만 여전히 테스들을 많이 해야 해서 당분간은 현재의 프로토타입으로 계속 테스트할 것 같다. 다 조립하고 나니 무게가 상당하다. 힘이 부족할까 했는데, 9V로도 충분히 4개의 서보모터를 돌리는데 문제가 없다. 아주 다행이라 생각한다. 기본적인 동작도 개별적으로 아주 잘 움직인다. 다만, 프레임이 포맥스라 너무 무거워서 휘청거리며 막 휘어진다. 그래서 좀 불안하긴 하다. 너트 체결도 꽉 조이지 못하는.. 개발 관련/프로젝트 2024. 3. 26.
로봇제작 - 프레임 그립 진행중 지난번에 이어 이번에는 그립 부분을 진행 중이다. 생각보다 많은 시행착오를 겪는 중이다. 이렇게까지 안 맞을 줄은 생각하지 못했다. 아.. 설계를 좀 더 구체적으로 했어야 했다. 가장 큰 문제가 되는 것이 바로 조립과 분해가 가능해야 보수가 가능하다는 것이다. 이것을 너무 쉽게 간과한 것 같다. 이 부분을 진행하면서 즉석으로 생각하니까 어지럽다.. 따라서 해당 부분을 고려해서 하다 보니 참 어렵게 진행되는 것 같다. 추가 부품을 구매했을 때 무게를 고려해서 작은 서보모터 SG90도 구입했었는데, 이걸 적용하려면 그립설계를 완전히 다시 해야 한다는 것이다. 더구나 볼트 고정하는 부분도 크기 안 맞아서 이 부분을 다른 방법으로 고정해야 해서 좀 어렵게 되었다. 따라서 일단은 기존대로 진행하기로 하였다. 그립.. 개발 관련/프로젝트 2024. 3. 23.
로봇제작 - 프레임 조립중 드디어 지난번 주문한 볼트가 왔다. 생각보다 오래 걸렸다. 볼트 8mm와 10mm를 주문했다. 그런데 예전에 주문한 5mm짜리를 자로 재봤는데... 5mm가 안된다. 2T 기준으로 5mm 볼트면 너트를 걸칠 수 있는 정도는 되어야 하는데, 아무리 해도 안돼서 재봤는데 5mm가 안된다.;;; 이거 100개 샀는데.. 얇은 철판정도밖에 못쓸 텐데...;;; 아무튼 기존 6mm는 일반적인 2T 결합용으로 사용하고 서보부분 고정용과 연결부위용은 8mm와 10mm로 와셔와 함께 결합하였다. 이제 좀 안정감이 있어 보인다. 이렇게 조립하는 과정에서 다시한번 설계의 중요성을 느낀다. (사실 1차 전공이 설계인데....) 보정해야 하는 부분, 강화해야 하는 부분, 결합 홀이 맞지 않는 부분 등 수정하고 보정해야 할부분.. 개발 관련/프로젝트 2024. 3. 18.
728x90