일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CM-50
- 절벽아래은둔자
- automation
- MBLOCK
- Ollo
- TP4056
- 테스트자동화
- NocoDB
- mysql4
- 올로
- 로보티즈
- 효용감
- 코딩봇
- 엠블록
- ChatGPT
- 테스트 자동화
- c#
- 아두이노코딩봇
- Robotis
- 무명의개발자
- arduino
- QA
- Dynamixel
- 크롬드라이버
- 다이나믹셀
- hutc
- testautomation
- 아두이노
- chromedriver
- 업로드모드
- Today
- Total
목록arduino (15)
Hermit Under the Cliff

아두이노 코딩봇 자작 프로젝트의 아마 마지막 포스트, 총정리 입니다. 모든 코드들은 아래 Github에 올려 두었습니다. https://github.com/reitn/OlbinBot GitHub - reitn/OlbinBot: Olbin Coding bot based on Arduino and Mblock Olbin Coding bot based on Arduino and Mblock. Contribute to reitn/OlbinBot development by creating an account on GitHub. github.com 하드웨어 코딩봇의 하드웨어 구성을 위해서 아래와 같은 부품들이 사용되었습니다. - 아두이노 우노 (호환보드 사용) - 로보티즈 올로 CM-50 (Device Id 및 C..

코딩봇의 하드웨어와 소프트웨어 모두 어느정도 완료가 되어 이를 이용하여 따님께 코딩 공부를 시키기위해 우선 간단한 코드를 엠블록 프로그램을 통해 작성해 주었습니다. 이런식으로 머리를 좌우로 돌리면서 좌우방향의 거리를 측정하는 프로그램인데 distance1, distance2를 엠블록의 변수로 선언하여 값을 저장해 주려고 합니다. 하지만 이런 간단한 프로그램을 업로드를 하려고 하니 에러가 발생합니다. 자동으로 생성된 코드를 보면 아래와 같이 distance1, distance2에 값을 할당해 주는 부분은 제대로 적용이 되었습니다만, distance1, distance2의 값을 선언해 주는 부분이 자동으로 생성이 되지 않습니다. 엠블록을 가지고 여러가지를 하다보면 느끼는거지만 잘 나가다가 꼭 뭔가 하나를 빼..

따님을 위해서 시작했다가 본격 아빠가 즐기게된 프로젝트 아두이노 코딩봇 만들기의 거의 마지막 단계입니다. 각종 부품들과 회전하는 머리에 대한 구조를 고민하다가 저의 경우는 아래와 같이 구성을 하였습니다. 배터리의 크기가 너무 커서 배치하기가 조금 어려웠는데 18650 배터리 대신 사이즈가 작은 리튬 폴리머를 사용하는게 더 나을 것도 같지만 이미 글루건으로 붙여버려서 이대로 놔두기로 했습니다. 선들도 길이 생각 안하고 그냥 이어버려서 엄청 지저분해 보이는데 이게 또 수제의 느낌이 나기도 하고 해서 그냥 내버려둡니다. 우선, 충전 가능한 코딩봇을 만들고 싶었기 때문에 18650 배터리와 TP4056 모듈을 이용하여 배터리를 충전할 수 있도록 하였습니다. 이제 코딩봇을 USB-C 타입으로 충전이 가능합니다. ..

이제 간단하게 달아줄 수 있는 모듈들은 거의 다 달아준 것 같습니다만 실제 로봇 처럼 머리를 움직여 주면 따님이 더 좋아할 것 같습니다. 로봇의 머리에다가 초음파 센서를 옮겨 달아서 고개를 좌우로 돌리면서 좌우의 거리를 측정할 수 있도록 만들어 줄까 합니다. 머리를 움직여 주기 위해서는 모터가 필요합니다. 아두이노 스타터킷에 들어있는 모터 중 SG90이라는 서보모터를 사용해 봅니다. 서보 모터는 0~180도 까지의 지정된 각도로 모터의 움직임을 제어해 줄 수 있습니다. 사용되는 선은 세개로 Vcc, GND와 Signal 선입니다. 각각 5V, GND와 9번 핀에 연결을 해 준 뒤 간단하게 동작확인을 해 줍니다. #include "Servo.h" Servo microServo; int servo = 9; ..

코딩봇을 자작해 나가면서 점점 이 프로젝트의 목적이 따님을 위한 코딩봇 제작이 아니라 저의 재미를 위한 프로젝트가 되어가고 있습니다. 초심을 되찾고자, 따님의 관심을 끌 만한 것을 추가하기로 합니다. mBlock의 블록 중에는 아래와 같이 NxN Dot Matrix의 모양을 설정해 주는 기능이 있습니다. 컴퓨터에서 찍은 도트로 된 그림들이 로봇에 표시가 되면 따님이 좋아할 것 같으니 한번 장착을 해보도록 합니다. 그런데 문제가 있습니다. 아래와 같이 8x8 짜리 Dot Led 모듈에는 핀도 행/열의 수와 같이 8개씩 총 16개의 핀이 있습니다. 아두이노에 바로 연결하기에는 핀이 모자랍니다. 이런 비슷한 경험을 대학교때 뭔가 배웠던 것 같은데 졸업한지 오래되어 기억이 나지 않아 검색을 해 봅니다. 쉬프트 ..

mBlock의 업로드 모드로 사용을 하다보니 중간 중간 로봇의 속도를 조절해서 가지고 놀고 싶다는 따님의 요구가 있었습니다. 그래서 푸쉬 버튼을 달아 누를 때 마다 속도를 저속 - 중속 - 고속으로 변경해 주는 기능을 넣기로 했습니다. 현재의 구조에서 버튼이 눌려진 이벤트를 처리하기에는 인터럽트를 사용하는 것이 제일 편하고 쉬울 것 같아서 이 부분을 알아보았습니다. 인터럽트는 특정한 인터럽트 신호가 들어오면 기존에 실행하던 코드들의 동작을 정지하고 인터럽트로 정의된 코드를 실행 후 다시 기존 실행하던 코드로 돌아오는 행동을 말합니다. 쉽게 예를 들자면 회사에서 쇼핑몰에서 열심히 지름 목록을 추가하고 있다가 부장님이 자리로 가까이 오시는 듯 하면 (인터럽트 신호) 쇼핑몰 창을 빠르게 내리고 (기존 코드 동..

이번에는 위와 같이 초음파 센서를 추가하여 장애물과의 거리를 측정할 수 있게 만들어 보려고 합니다. 초음파센서는 위 사진에서 보시는 것과 같이 두 개의 눈 같은게 있는데 (아래쪽에 있는겁니다.) 하나는 Trig 다른 하나는 Echo이며 Trig에서 보낸 초음파 신호가 Echo에 도달할 때 까지의 시간을 측정하여 장애물과의 거리를 알아 낼 수 있습니다. 초음파의 이동속도는 초당 340m 이므로 거리는 시간 x 속도의 공식으로 구할 수가 있습니다. 이를 아두이노 코드로 작성을 하면 아래와 같습니다. int ultraSonic_trig = 7; int ultraSonic_echo = 6; int distance; void setup() { pinMode(ultraSonic_trig, OUTPUT); pinMo..

이제는 mBlock의 업로드 모드에 대해서 알아볼 시간입니다. 앞서 설명드린바와 같이 업로드 모드는 mBlock에서 블록코딩으로 작성된 코드를 Arduino C 코드로 변경후 컴파일하여 새로운 펌웨어를 만들어 아두이노에 업로드 해 주는 모드 입니다. 우선적으로 설정해 주어야 할 부분은 코드의 템플릿을 작성입니다. Extension builder메뉴에서 Transcode settings에서 이 템플릿을 작성해 줄 수 있습니다. 아래와 같이 language support에 ArduinoC를 선택해 주시면 됩니다. 아래와 같이 //( setup //) 이런식으로 표시된 부분이 나중에 블럭을 추가하거나 할때 채워지는 부분 입니다. // generated by mBlock5 for // codes make you..