Home » Post » STM » 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보다도 컴파일 하는 속도가 느리다. 거의 컴파일러가 고장났다고 생각할 정도로 느리다.

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

“STM32 아두이노 (Arduino)로 개조하기”의 17개의 댓글

  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번 핀이 맞는데 동작하지 않으면..ㅠㅠ 도와드리지 못해서 죄송합니다

  6. 안녕하세요
    nucleo -L432KC 보드 사용중입니다
    여기에 연결할 모터의 회사측에서 제공해주시는 라이브러리가 아두이노, c++, c#, 파이썬, 자바 이렇게만 있어서 stm전용 라이브러리를 찾는데 힘들거라는 생각이 들었습니다.
    포스팅 해주신 것을 참고하여 아두이노로 nucleo l432kc를 연결 후 모터를 제어하고 싶은데 보드에는 모터 뿐만 아니라 다른 기능과 센서들이 연결될 예정이라 stm32과 아두이노를 동시에 사용이 가능할지 여쭤보고자 합니다.
    도와주시면 감사하겠습니다ㅠㅠ

    1. 안녕하세요 김하은님. 알림이 오지 않아서 확인이 늦었습니다.
      엄밀히 이야기하자면 아두이노와 STM32를 같이 사용한다는 개념은 아니고, STM32를 아두이노 IDE 타겟에 맞춰 사용한다는 개념에 가깝습니다.
      제공해주는 아두이노 라이브러리가 만약에 아두이노 보드, 아트메가 보드 타겟으로 만들어진 것이라면 사용이 어려울 것으로 보입니다.
      먼저 뉴클레오보드를 포팅해서 사용해보신 뒤 에러가 발생하면 라이브러리를 수정해서 구현해야할 것으로 보이구요.
      이와 별개로 STM에서도 motorcontrol sdk를 제공하고 있으니 적절히 이용해서 구현해보는 것도 괜찮은 옵션이 될 것 같습니다.

  7. 위에서 뉴클레오 보드는 3.3V구동 보드라고 말씀 하셨는데 stm보드를 아두이노로 개조하고 기존 can통신 모듈을 달았을 경우 (5v필요) 문제가 생기는 건가요?

    3.3v로 구동되는 모듈만 사용가능하단 말씀이신가요?

    stm 보드에 usb가 아닌 외부 전원으로 전원을 공급하고 싶은데 3.3v를 넣어줘야 하는건가요?

    1. 김소현님 안녕하세요.
      1. 사용하시는 캔 통신 모듈의 신호가 5v로 나온다면 사용하기 힘듭니다. 아두이노는 ATmega 계열 칩으로 5v로 동작하는 칩이고 Nucleo보드는 stm32계열 칩으로 3.3v구동입니다. 모듈에서 전원은 5v로 공급받아도 내부 칩은 3.3v로 동작하게끔 회로 구성되어 있는 경우도 있습니다. 모듈 회로도를 확인해주세요. 5v로 동작하면 분압해서 사용하거나 변환 회로를 구성해서 사용 가능합니다.
      2. 외부 전원은 핀이 VIN / GND 핀으로 전원 공급하시면 됩니다.
      Vin이 +입니다. 7-12V사이로 주면 됩니다. 자세한 내용은 뉴클레오 보드 서치 부탁드립니다.

댓글 남기기

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