Embedded 69

Arduino nano 33 iot Bluetooth와 SoftwareSerial.h 문제관련

안녕하세요. Arduino nano 33 iot를 가지고 몇 가지 테스트 한 부분 나누어 보아요.다들 아시는 것처럼 33 IOT 버전은 WIFI와 bluetooth 버전이 가능하다 보니 괜찮은 제품이라고 생각했는데, 블루투스에 설정하는 것에 어려움이 있는 듯합니다. 우선 WIFI는 아래 참조1 사이트와 같이 따라 하시면 문제없이 작동되는 것을 확인할 수 있었습니다.소스 코드상에 문제가 있어 댓글 남겨 놓았는데, 수정되었는지 모르겠네요.  참조1) https://fishpoint.tistory.com/4433 1.  블루투스 관련   블루투스  BLE 연결을 지원하는 여러 핸드폰으로 페어링을 해도 되지 않았습니다.nRF Connect 앱으로만 연결과 값이 전송되었습니다.  이런 부분들이 아두이노 포럼과 기..

Embedded/Arduino 2024.08.25

Arduino Nano 33 IoT bootloader blocked 된 경우 (벽돌이 된 경우;;;)- 복구방법 링크 추가

안녕하세요.  아두이노로 센서값을 받는 프로젝트를 하게 되어서 어떤 것을 사용해 볼까 해서 선택한 것이 블루투스 되고 각종 센서도 달린 Arduino Nano 33 IoT를 선택하였습니다. 아두이노 쉽게 하는 거로 생각하고 대충보고 BLE 버전 받아도 되는 건가 하고 참조1에서 처럼 보드매니저 nano 33 검색해서 RF528x Board를 설치하고 부트로더를 올렸습니다.참조1 blog.naver.com/roboholic84/221788817826 다운로드가 잘 되길래 음 ~ 하며 Blink 예제 다운로드를 했습니다. 그런데...녹색불만 들어오고 시리얼 포트가 잡히지 않았습니다. 바로 구글 검색 시작했습니다. 다운로드하여야 할 것이 Arduino SAMD Boards라는 것을 알게 되었습니다.다른 분들은..

Embedded/Arduino 2024.08.22

Raspberry Pi Pico(라즈베리파이 피코) W5100S-EVB-PICO 테스트하기(C/C++ 버전)

안녕하세요.   Raspberry Pico를 가지고 테스트해보고 있지만, 살짝 아쉬운 것이 네트워크 연결을 할 수 없다는 것입니다. 특히, 원격지에서 제어를 할 수 없고, 단순 반복 제어나 standalone 프로그램으로 동작된다는 것이 아쉬웠습니다. (사실 시리얼 Bluetooth나 별로의 WiFi를 연결해서 가능은 합니다.)   그러다가 찾은 것이 라즈베리파이 피코에 네트워크 모듈을 부착시켜 놓은 제품이 있어 테스트해 보았습니다. WiZnet 제품은 유선과 WiFi 버전으로 나와 있어고, 기존 Raspberry Pico 버전과 호환된다고 나와있습니다.   그리고 최근에, Raspberry Pico W라고 해서 Raspberry 단체에 Pico에 WiFi 모듈을 장착한 정식 제품 출시했습니다. 이 제품..

Raspberry Pi Pico(라즈베리파이 피코) 간단하게 C/C++ SDK 설치 및 빌드해보기

안녕하세요.   Raspberry Pi Pico에 Python을 이용해서 많이들 프로그램을 하는데, C/C++로 프로그램해보고 싶다는 생각이 들어서 간단하게 MicroPython.uf2 올려서 하면 되겠지 생각했는데, gcc 등 설치할 것들이 많고, 이것저것 설정해야 할 것들이 있었습니다. 그래서 간단히 방법을  찾아서 해보았습니다.  단지, 이렇게 동작되겠구나 정도로 보시고, 하나씩 모든 설정해 보면서 방법을 알아 가겠다 하시면 하단 참고 사이트들을 참고하시면 됩니다. 1. 프로그램들 설치  - gcc 컴파일러와 개발 툴 등 이것저것 설치해야 합니다. 그런데 감사하게도 다운로드해서 설치해 주는 자동화 프로그램이 있어서 사용했습니다. https://github.com/ndabas/pico-setup-wi..

Raspberry Pi Pico + dht11를 이용한 온도 습도 테스트와 1 wire 통신 소스 분석

안녕하세요.   hdt11 온도, 습도 센서를 아두이노에서 다루어 보았는데, Raspberry Pi Pico에서도 테스트를 해보자 생각이 들었습니다.  Python으로 된 온도와 습도를 가져오는 부분의 소스 설명은 많이 있지만, 실제적으로 hdt11에 1 wire 통신 쪽을 설명해 주는 자료는 많이 없어서 간단하게 Datasheet 보면서 python으로 된 소스를 확인해 보았습니다.  1. hdt11 연결    핀 설명 : SIG 핀, VCC(3~5.5V), GND 핀으로 구성되어 있으며 hdt11 모듈 자체로 구매하면 SIG 핀  Pull-Up 저항을 부착할 것을 권하고 있습니다. 작은 모듈 타입으로 된 것을 구매하면 저항 붙여서 3핀으로 되어있습니다.   - Raspberry Pi Pico     ..

Raspberry Pi Pico 내부 온도 센서 값 읽기

안녕하세요.  이번에는 Raspberry Pi Pico의 온도센서의 값을 읽어 보도록 하겠습니다. Raspberry Pi Pico에는 내부적 온도 센서가 ADC(Analog to Digital Converters) 한 개의 핀에  연결되어 있습니다. 그래서 이 핀을 이용해서 온도를 디지털로 읽어 볼 수가 있습니다.  1. 하드웨어 구성    Raspberry Pi Pico와 시리얼 통신을 통해서 값을 가져오도록 하겠습니다. 그래서 필요한 것은 Pico와 연결할 수 있는 USB Micro 5 pin케이블만 있으면 됩니다.     Pico 핀 맵을 보면 ADC0, 1, 2 가 있고, ADC_VREF가 있습니다. 그런데 물리적으로 온도 센서는 외부 핀으로 나와 있지 않습니다. 그렇다면 어디에 있을까요? 바로 ..

Raspberry Pi Pico “RP2 Boot” 장치 드라이버 경고가 나타날 경우

안녕하세요. Raspberry Pi Pico가 장치로 잡히지 않는 경우가 발생해서 해결하는 방법을 확인해 보았습니다.  1. 문제 발생 현상   Pico를 컴퓨터에 연결하면 프로그램할 수 있는 장치 드라이버로 잡히지 않고 장치 관리자에 RP2 Boot로 경고가 표시됩니다. 혹은 알 수 없는 장치로 나타납니다.   2. 해결방법 1) Raspberry Pi 사이트 RP2040 링크 UF2 파일 다운로드   Resetting Flash Memory UF2 펌웨어 파일을 받아서 Pico에 넣어 보았습니다.  설명대로 메모리 내용은 정리되었습니다.      그러나 파일만 사라지고 장치 드라이버는 잡히지 않았습니다. 2) MicroPython UF2 펌웨어( 해결 완료 )    Raspberry Pi 사이트에서 ..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Power your Raspberry Pi Pico) – 10 (마지막 편)

안녕하세요.   이번 편은 라즈베리 피코 기초 마지막 내용으로 전원을 어떻게 사용할지에 대한 내용과 실제 파일을 올려서 동작시키는 내용을 담고 있습니다.  아두이노에는 Vin이라고 외부 입력 핀을 만들어 놓고 있습니다. 그런데 Raspberry Pi Pico에서는 VSYS 핀으로 입력을 받으며, 5.5V 이상 받을 수가 없습니다. 그러나 낮은 전압에서 동작할 수 있게 되어있습니다.  Pico 작동 전압이 3.3V인데 입력 전원 범위를 1.8V~5.5V로 하고 있습니다. 이것이 가능한 이유는 벅-부스터 (rt6150b-33gqw)가 장착되어 있기 때문입니다.  벅-부스터를 간단하게 설명하면 출력 전압을 입력 전압보다 낮출 수도, 높일 수도 있는 컨버터입니다. 그렇기 때문에 낮은 전압에서도 사용 가능합니다...

[번역 프로젝트] Getting started with Raspberry Pi Pico (Control an LED with an analogue input) – 9

안녕하세요.   이전 내용에서 For문을 이용해서 자동으로 밝기가 조절되게 했는데, 이번에는 가변저항을 부착해서 아날로그 값으로 읽어서 듀티 값으로 적용하는 것입니다. 추가 부품은 가변저항으로, 가능하다면 1KΩ 이상 되는 저항을 이용하는 것을 추천드립니다. 테스트는 10KΩ으로 하였습니다.  가변저항 값을 변경하여 아날로그 핀에 입력되는 전압을 조절합니다. 그 입력되는 값을 사용하여 LED의 밝기를 제어하는 것입니다.    가변저항으로 LED 밝기 조절하기  Raspberry Pi Pico에는 아날로그 신호를 수신할 수 있는 입력 핀이 있습니다. 즉, 1과 0(켜기 및 끄기)의 값만 읽는 대신 그 사이의 값을 읽을 수 있습니다.  가변저항(Potentiometer)은 이 기능을 위한 완벽한 아날로그 장..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Control LED Brightness with PWM) – 8

안녕하세요.  이번에는 켜고 끄는 것을 넘어서, 밝기를 조절할 수 있는 것을 확인할 수 있습니다.밝기 조절하기 위해서 PWM(Pulse Width Modulation)라는 기술이 필요한데, 간단히 말해서 일정한 주기(주파수) 내에서 파형의 폭(Duty)을 조절해서 밝기(전압)를 저절 한다고 보시면 편하지 않을까 합니다.   PWM으로 LED 밝기 조절하기   Pulse Width Modulation을 사용하면 LED와 같은 디지털 장치에 아날로그 동작을 할 수 있습니다. 즉, LED를 단순히 켜거나 끄는 것이 아니라 밝기를 제어할 수 있습니다.   이 내용에서 마지막(이전) 단계에서 사용한 회로를 사용할 수 있습니다.  Thonny에서 새 파일을 열고 다음 코드를 추가합니다. from machine im..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Use digital inputs and outputs) – 7

안녕하세요.  이번 내용은 GPIO 핀을 통한 입력과 출력을 Button과 LED를 통해 테스트해 보는 것입니다.추가로 준비할 것은 3V 혹은 5V LED 1개와 택트(Tack) 스위치 1개, 저항 1개(50Ω~330Ω), M-M 점퍼 3~4개가 필요합니다.  디지털 입력과 출력 사용하기   이제 기본 사항을 알았으므로 Raspberry Pi Pico로 외부 LED를 제어하고 버튼에서 입력을 읽는 것을 배울 수 있습니다.  아래 이미지와 같이 약 50~330Ω 사이의 저항, LED와 한 쌍의 M-M 점퍼 리드를 사용하여 Raspberry Pi Pico와 연결합니다.(추가 내용 : - LED마다 방향성이 있으므로 멀티 메타기로 확인하거나 육안으로 LED를 안을 볼 때 면적이 작은 쪽이 +로 볼 수 있습니다..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Blink the onboard) – 6

안녕하세요.  이번에는 LED가 일정 주기에 맞추어 깜박이게 하는 내용입니다. 어려운 내용은 없고, 주파수와 시간 관계만 조금 알고 있으면 됩니다.   t(시간)는 1 / f(주파수)라는 공식입니다. 예로 2.5Hz라고 하면 400ms로 신호가 발생한다고 생각하시면 됩니다.    셸(Shell)은 모든 것이 제대로 작동하는지 확인하고 빠른 명령을 시도하는데 유용합니다.  그러나 파일에 더 긴 프로그램 코드를 넣는 것이 좋습니다.   Thonny는 MicroPython 프로그램을 Raspberry Pi Pico에 직접 저장하고 실행할 수 있습니다.   이 단계에서는, 루프 안에서 보드의 LED를 켜고 끄는 MicroPython 프로그램을 만들 것입니다.   Thonny의 기본 편집기 창을 클릭합니다.   ..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Use the Shell) – 5

안녕하세요.   이번 내용은 Thonny Shell 창에서 Python 코드를 입력해서 LED를 간단하게 제어해 보는 것입니다.윈도우 버전으로 실행하지만, 라즈베리파이 OS와 리눅스 상에 Thonny도 크게 차이가 없을 것입니다.    이번 단계에서는 Thonny Shell을 사용하여 Raspberry Pi Pico에서 간단한 Python 코드를 실행하는 것입니다.  Raspberry Pi Pico가 컴퓨터에 연결되어 있고 MicroPython (Raspberry Pi Pico) 인터프리터를 선택했는지 확인해 보세요.  Thonny 편집기 하단에 있는 Shell 패널을 확인합니다. 다음과 같은 내용이 표시됩니다.    (추가 내용 : 연결되어 있지 않다면 다음과 같이 내용을 볼 수 있습니다.)    Th..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Add the MicroPython firmware) – 4

안녕하세요.  이번 내용은 Raspberry Pi Pico에 MicroPython 펌웨어를 설치하는 방법을 알려주는 내용입니다.이전에 Thonny 프로그램에서 펌웨어를 설치하는 방법을 알려주고 있습니다.   Raspberry Pi Pico에서 MicroPython을 사용해 본 적이 없다면, MicroPython을 펌웨어를 추가할 필요가 있습니다.  Raspberry Pi Pico에서 BOOTSEL 버튼을 찾습니다.     BOOTSEL 버튼을 누른 상태에서 마이크로 USB 케이블의 다른 쪽 끝을 컴퓨터에 연결합니다. 아래 이미지에는 Raspberry Pi가 표시되어 있지만 모든 컴퓨터에 동일하게 적용됩니다.     이렇게 하면 Raspberry Pi Pico가 USB 대용량 저장 장치 모드로 전환됩니다...

[번역 프로젝트] Getting started with Raspberry Pi Pico (Install Thonny) – 3

안녕하세요.  이번 내용은 Thonny 설치해서 파이썬으로 Hello world를 출력해 보는 것입니다. 리눅스나 Raspberry Pi OS에서 설치해도 되지만, 많은 분들이 Windows OS를 사용하리라 생각됩니다.  Thonny 프로그램은 대중적인 OS에서 설치될 수 있게 배포되고 있습니다.  Install Thonny   이번 스텝에서는 최신 버전을 확인하고 Thonny를 설치할 것입니다. 그런 후에Raspberry Pi Pico 연결해서 Shell 명령어를 사용해서 단순한 Python Code를 실행해 볼 것입니다.  1. Thonny On Raspberry Pi   - Thonny는 Raspberry Pi에 이미 설치되어 있습니다. 그러나 최신 버전으로 업데이트를 해야 할 수 있습니다.  -..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Meet Raspberry Pi Pico) – 2

안녕하세요.   이번 편은 간단하게 브레드보드에 장착하는 방법입니다. 특별하게 어려운 것은 없고 만약 브레드보드가 없다면 점퍼 케이블로 대신할 수도 있습니다. 점퍼 케이블은 양쪽이 Male(수) 방향이 되어야 합니다.    큰 브레드보드 말고 작은 브레드보드를 구매하시는 것도 하나의 방법이라고 생각됩니다.   https://www.devicemart.co.kr/goods/view?no=1328148 브레드보드 400핀 Half Size Breadboard [SZH-BBAD-005]기존 브레드보드801 제품과 호환되는 400핀 규격의 브레드보드 / 사용가능 와이어 규격 : 20 ~ 29AWG / 82mm X 55mm X 8.5mmwww.devicemart.co.kr   Raspberry Pi Pico 만나..

[번역 프로젝트] Getting started with Raspberry Pi Pico (Introduction) – 1

안녕하세요.   라즈베리파이 피코(Raspberry Pi Pico) 공부도 하고 영어공부도 할 겸 번역을 해보았습니다. 내용과 영어 원문 자체가 전반적으로 학생들이 볼 수 있게 만들다 보니 쉽게 되어 있습니다. 그래서 좀 더 쉽게 번역할 수 있었습니다.   쉬운 내용이지만 실제로 실험해 보고 영어원문 내용에서 부족한 내용이 있다면 추가하면서 번역 시리즈로 올려 보도록 하겠습니다.  1. 소  개   이 프로젝트는 당신이 Raspberry Pi Pico와 다른 컴퓨터와 연결하고 어떻게 MicroPython을 이용하여 Raspberry Pi Pico에 프로그램하는지 배우는 것입니다.  Raspberry Pi Pico는 적은 비용의 마이크로 컨트롤러 장비입니다. 마이크로 컨트롤러는 조그마한 컴퓨터입니다. 그러..

아두이노 나노(Arduino Nano)와 아두이노 나노 33 IoT에 FreeRTOS에서 올리기

안녕하세요.   Arduino FreeRTOS 버전이 몇 가지 있는 것 같은데 메인 소스 코어는 동일해 보이고 누가 주로 수정했는지에 따라 조금씩 차이가 있는 듯합니다. 테스트 버전은 아두이노 IDE에 "라이브러리 매니저"로 받을 수 있는 버전으로 해보았습니다. 1.  FreeRTOS 설치하기 1) Arduino Nano 버전   "툴-> 라이브러리 관리" 메뉴를 선택하고 FreeRTOS로 검색합니다. 최신 버전 라이브러리를 설치합니다.   2) Arduino Nano 33 IoT 버전  "툴-> 라이브러리 관리" 메뉴를 선택하고 FreeRTOS로 검색합니다. 위와 다르게 SAMD21 버전을 설치해주어야 합니다. 아두이노 나노 33 IoT 경우 마이크로 컨트롤러가 다르다 보니 SAMD21 버전으로 설치해..

Embedded/Arduino 2024.07.16

Raspberry Pi4를 이용한 멀티캐스트 송신 코드 및 테스트 (Multicast Sender)

안녕하세요.  IPTV나 네트워크 쪽으로 통신 프로그램할 경우가 아니면 주로 사용하는 방식은 아니지만 이번에 확인할 일이 있어서 찾아본 내용 공유드립니다. 송신부는 C 프로그램으로 테스트하였고, 다음 내용에 올릴 수신부는 Qt 소스 공개된 것이 있어서 PC에서 수정해서 테스트해 보았습니다. 1. 멀티캐스트 간단한 개념   컴퓨터 네트워크에서 멀티캐스트(multicast)란 한 번의 송신으로 메시지나 정보를 목표한 여러 컴퓨터에 동시에 전송하는 것을 말한다. 이때 망 접속 형태가 요구할 경우에 한해, 자동으로 라우터와 같은 다른 네트워크 요소들에 메시지의 복사본이 생성된다.   멀티캐스트는 보통 IP 멀티캐스트 형태로 구현되는데, 이는 스트리밍을 위한 인터넷 프로토콜 응용 프로그램(Internet Prot..

아두이노 나노(Arduino Nano) 33 IoT Web Server에서 데이터 JSON으로 출력하기

안녕하세요.   아두이노 나노 33 IoT로 웹서버를 만들어 보았다면, 아두이노 IoT에서 취득한 센서 정보를 어떻게 가져갈까 고민을 하게 될 겁니다. 그래서 웹 데이터를 Json형태로 바꿔 출력해 주고 다른 응용프로그램에서 웹주소로 접속해서 Json으로 가져오면 되겠다 생각하였습니다.  아두이노 IoT에서 가스 센싱 한 값을 Json으로 인코딩하고 웹서버로 출력해 주고 파이썬에서 JSON 데이터로 읽어오는 테스트를 하였습니다.   이전 "아두이노 나노(Arduino Nano) 33 IoT 고정 아이피 설정 방법"에서 SimpleWebServerWIFI 예제에 JSON 코드를 추가하는 형태로 하였습니다. 1. JSON사전 준비   이미 JSON 사용해보았다면 이 과정은 넘어가도 좋습니다. "툴->라이브러..

Embedded/Arduino 2024.07.03