STM32 아두이노 (Arduino)로 개조하기

STM32 아두이노 (Arduino)로 개조하기

STM32 아두이노 (Arduino)로 개조하는 포스팅입니다.

STM32 Nucelo를 Arduino로 개조하고 활용하기 목차

  1. STM32 아두이노 (Arduino)로 개조하기 (현재 포스팅)
  2. STM32 아두이노 Fade 사용해보기

이번 포스팅은 STM32 시리즈 칩을 아두이노 IDE로 구동하는 과정을 담아보려고 한다.

다만 이 과정도 제약이 있는데, 뉴클레오 보드만 사용이 가능하고 F7 시리즈 같이 상위 라인업까지는 아직 지원이 안되는 듯 하다.

근데 뭐 아두이노도 커스텀 보드 개조해서 쓰는 사람이 얼마나 되겠나. 나처럼 변태가 아니고서야.

이번 포스팅에서 사용한 보드는 Nucleo F091rc 보드를 사용했다.

개발 환경 구성하기

먼저 아두이노 스케치를 실행하고 환경설정을 클릭한다.

추가적인 보드 매니저 URLs에 내용을 추가해야하는데 빈칸 오른쪽에 있는 창을 클릭한다.

거기에 https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json 를 입력해주고 확인을 눌러준다.

라이브러리를 추가했으니, 툴 – 보드 – 보드 매니저를 클릭한다.

STM32를 검색하고 설치 버튼을 누르면 된다. 나는 1.3.0으로 하다가 문제가 생겨서 1.2.0으로 변경해서 재설치를 했으니 참고하길 바란다.

설치가 완료되면 보드 – 뉴클레오64를 클릭한다. 난 64핀이 탑재된 보드를 사용하고 있기 때문이다.

그리고 보드 파트 넘버를 뉴클레오 F091RC를 클릭한다. 이건 사용자가 사용하는 보드를 선택해주면 된다.

이제 예제를 돌려보자. Blink 예제를 선택해주자.

업로드를 해보면 된다. 근데 이게 ESP8266보다도 컴파일 하는 속도가 느리다. 거의 컴파일러가 고장났다고 생각할 정도로 느리다.

경건한 마음으로 기다리다보면 언젠가 되어 있을거다.

13 Replies to “STM32 아두이노 (Arduino)로 개조하기”

  1. 잘읽었습니다.
    nucleo144 F429ZI 모델인데 업로드 에러가 나는군요.

    NODE_F429ZI not found. Please ensure the device is correctly connected.
    스케치를 업로드 하는 동안 에러가 발생하였습니다.

    1. 안녕하세요. 제가 해당 보드가 없어서 정확한 답변이 힘든 점 양해 부탁드립니다. 통상 장치를 발견하지 못하는 문제가 발생하는 경우는 크게 두가지로 정리해볼 수 있다고 생각합니다.

      1. upload method가 st-link가 아닌경우 – 다른 개발 목적으로 라링크 혹은 jlink로 개조하지 않는 이상 st-link가 맞습니다.

      2. com port 설정이 안된 경우 – 장치 관리자에서 st link인 가상 com포트를 찾아 설정해주세요.

      별도로 보드의 디버거 점퍼 핀을 뽑았을 때 문제가 생길 수도 있으나, 통상 그럴일은 거의 없으니, 가정에서 생략하겠습니다.

      잘 해결하시길 기원 드립니다.

    2. 버전이 업데이트 되었군요. 기본 설정을 바꾸지 않고, 포트만 잘 설정해두었을 때 정상정으로 업로드 되고, blink도 잘 동작하는것을 확인했습니다.
      com port지정을 다시한번 확인해주세요.

  2. WOW NUCLEO F429를 가지고 고민고민 했는데… 아두이노로 사용하는 방법이 있었다니… 놀랍네요 ㅎㅎ;
    좋은 정보 정말 고맙습니다.

    당장 해봐야 겠네요 ㅎㅎ;

    1. 안녕하세요! 작성한지 오래된 포스팅이라 윗 댓글에서 언급해주셨듯이 방법이 다를 수 있습니다. 읽어주셔서 감사합니다!

  3. nucleo보드에 아두이노로 펌업을 하면 기존 mega2560시리즈에 비해 어떤장점이 있는지요? 초보자라 궁금합니다.

    1. 안녕하세요 동구리님
      뉴클레오 보드는 기존 아두이노 보드에 비해 성능이 뛰어나다는 장점이 있습니다.
      비교표를 만들어 드리고 싶지만 기능의 한계가 있네요

      장점
      1. 뉴클레오 보드(STM32F시리즈)는 32비트 프로세서이고, 많이 사용하는 103칩의 경우 72MHz입니다.
      -그에반해 ATmega2560 보드는 8비트 프로세서이고, 16Mhz입니다.

      단점
      1. 뉴클레오 보드는 아두이노 목적으로 나온 보드가 아니므로 호환성이 떨어집니다. 기본적인 기능은 호환되겠지만, 라이브러리가 아트메가 전용이면 컴파일 에러가 발생할 것입니다.
      2. 신호 전압이 다릅니다. 아트메가는 5V구동 칩이지만, 뉴클레오 보드는 3.3V구동 보드입니다. 따라서 신호 전압이 5V인 센서를 부착한다면 보드에 내장된 칩이 손상될 수 있습니다.

      좋은 하루 보내세요 🙂

    1. 안녕하세요 최병환님
      저는 보통 자체 코딩을 선호하는 편이라 잘은 알지 못하지만, 통상 아두이노 자체 함수들은 지원하므로 복잡하고 기술적인 난이도를 구현하는 것이 아니라면 취미목적으로는 큰 문제가 없을 듯 합니다

  4. 안녕하십니까?
    일단은 포스팅하여 분위기를 Arduino로 바꾸엇읍니다.
    컴파일 하여 hex화일 만들어 보았읍니다.
    고맙게 사용하겠읍니다.

  5. Blink 쏘스를 컴파일 하여 Nucleo-F446re 보드에 hex화일 로딩하여 동작상태를 확인 하였는데 좀 아쉬운점이 입출력핀을 바꿀수있엇으면 합니다.
    const int ledPin = 12; // the number of the LED pin
    위 사항을 코드에 삽입하였으나 13핀에 연결된 ld2가 동작을 합니다.

    1. 안녕하세요
      요즘은 포스팅을 쉬고있어 확인할 수 없는점 양해부탁드립니다.

      뉴클레오에 있는 D12번 핀이 맞는지 확인해보시길 바랍니다. Mcu의 12번 핀으로 연결할 경우 동작하지 않을 수도 있습니다.

      만약 d12번 핀이 맞는데 동작하지 않으면..ㅠㅠ 도와드리지 못해서 죄송합니다

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

%d 블로거가 이것을 좋아합니다: