본문 바로가기

반응형

전체 글

라즈베리파이 피코와 티처블 머신 활용하기 티처블 머신을 이용하여 색상인식, 사물인식 모델을 만들어 즈베리파이 피코에 연결된 LED, Buzzer, Servo Motor 등이 작동하도록 한다. 티처블머신( Teachable Machine)은 누구나 머신러닝 모델을 쉽고 빠르고 간단하게 만들 수 있도록 제작된 웹 기반 도구입니다.https://teachablemachine.withgoogle.com/ Teachable MachineTrain a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more – no expertise or coding required... 더보기
적외선 감지 모듈을 이용한 자동차 라인트래킹 라인 트래킹(Line Tracking)라인 트래킹(Line Tracking) 모듈에는 적외선 감지 방식(infrared detection method)이 사용된다.적외선 감지 방식은 색이 다른 물체 표면에서 적외선의 반사 특성이 다르다는 원리를 이용한다.프로그램이 실행되는 동안, 적외선은 지속적으로 바닥에 발사되고 적외선이 흰색 바닥에 닿으면 확산 반사(diffuse reflection)가 일어나며, 반사된 빛이 수신 센서(수광부)에 의해 감지된다.반면에 검은색 선(black line)을 만나면, 적외선이 흡수되어 라인 트래킹 모듈의 수신기가 신호를 받지 못한다.여기서 사용하는 라인 트래킹 모듈은 3채널 적외선 트래킹 모듈로, 적외선 발광 LED와 적외선 수신기로 이루어진 3개의 센서 세트를 포함하고 있.. 더보기
라즈베리파이 피코 자율주행 자동차 만들기 자율주행자동차 기초Adeept Smart Car Kit for Raspberry Pi Pico, Line Tracking, Obstacle Avoidance, OLED Display, DIY STEM IR Remote Controlled Educational Robot Car Kit를 활용한 자율주행자동차 만들기 참고사이트 : https://adeept.com/learn/detail-71.html Smart Car Kit for Raspberry Pi Pico - Adeept LearnZIP Resources:adeept.com 1. 서보모터 초기화 2. 조립하기 3. 소스코드 더보기
라즈베리파이 피코 - 얼굴인식(openCV) 스마트 도어락 openCV를 이용하여 얼굴이 인식되면 라즈베리파이 피코에 연결된 LED, Buzzer, Servo Motor가 작동하도록 ,스마트 도어락을 만든다.주의 : 라즈베리파이 피코와 PC(노트북)과 연결되는 시리얼 포토를 함께 사용할 수 없기 때문에 실행 순서가 중요하다!!1. 회로도LED - GPIO 28Buzzer - GPIO 14Servo Motor - GPIO 15 2. main.py(라즈베리파이 피코에 업로드할 소스코드)import sysfrom machine import Pin, PWMimport time# ===== 핀 설정 =====led = Pin(28, Pin.OUT) # LED: GPIO 14buzzer = Pin(14, Pin.OUT) # Buzzer: GPIO 1.. 더보기
라즈베리파이 피코 외부전원 연결하기 1. 외부전원 연결하기 2. 프로그램 자동 실행하기- 가장 일반적인 방법은 라즈베리 파이 피코가 USB 연결 없이도 자동으로 코드를 실행하도록 하는 것입니다.이를 위해서는 MicroPython에서 펌웨어를 먼저 플래시하고, 그 위에 작성한 코드를 업로드해야 합니다.펌웨어 플래시: 라즈베리 파이 피코의 BOOTSEL 버튼을 누른 채 USB 케이블을 컴퓨터에 연결하기 - 피코가 USB Mass Storage Device(대용량 저장 장치) 모드로 인식됩니다. 이때 컴퓨터에 나타나는 드라이브에 원하는 펌웨어(.uf2 파일)를 복사해서 붙여넣으면 펌웨어가 설치됩니다.스크립트 업로드: 펌웨어가 설치된 후, 피코는 다시 일반 USB 장치로 인식됩니다. 이때 Thonny를 사용하여 작성한 Python 스크.. 더보기
라즈베리파이 피코 외부전원 연결하기 1. 외부전원 연결하기 2. 프로그램 자동 실행하기- 가장 일반적인 방법은 라즈베리 파이 피코가 USB 연결 없이도 자동으로 코드를 실행하도록 하는 것입니다.이를 위해서는 MicroPython에서 펌웨어를 먼저 플래시하고, 그 위에 작성한 코드를 업로드해야 합니다.펌웨어 플래시: 라즈베리 파이 피코의 BOOTSEL 버튼을 누른 채 USB 케이블을 컴퓨터에 연결하기 - 피코가 USB Mass Storage Device(대용량 저장 장치) 모드로 인식됩니다. 이때 컴퓨터에 나타나는 드라이브에 원하는 펌웨어(.uf2 파일)를 복사해서 붙여넣으면 펌웨어가 설치됩니다.스크립트 업로드: 펌웨어가 설치된 후, 피코는 다시 일반 USB 장치로 인식됩니다. 이때 Thonny를 사용하여 작성한 Python 스크.. 더보기
라즈베리파이 피코-가습기 제작(SSD1306, DHT11, 가습기 모듈) 라즈베리파이 피코와 SSD1306, DHT11, 가습기 모듈을 이용한 가습기를 제작해보겠습니다.릴레이를 작동하여 가습기가 온도, 습도 조건에 따라 작동하도록 합니다. - 연결 회로도📌 SSD1306 (I2C, 4핀)VCC → Pico 3.3V (PIN 36) 또는 VBUS 5VGND → Pico GND (PIN 38)SCL → Pico GP5 (PIN 7)SDA → Pico GP4 (PIN 6) 📌 DHT11 센서 (3핀/4핀 모듈 기준)VCC → Pico 3.3V (PIN 36)GND → Pico GND (PIN 38)DATA → Pico GP15 (PIN 20) 1) 온도 습도 화면에 표시하기-main.pyfrom machine import Pin, I2Cimport ssd1306import d.. 더보기
라즈베리파이 피코와 ILI9341연결하기(DHT11-온습도측정) 라즈베리파이 피코와 ILI9341 디스플레이를 연결하여 온도 습도를 나타내는 프로젝트입니다.ILI9341 Raspberry Pi Pico (예시) 설명VCC3V3(OUT)일부 모듈은 5V도 허용하지만 3.3V 권장GNDGND공통 GNDSCKGP10 (SPI1 SCK)SPI 클럭MOSI/SDIGP11 (SPI1 TX)SPI 데이터(피코→LCD)MISO/SDOGP12 (SPI1 RX)읽기 필요 없으면 생략 가능CSGP13칩 선택DC/RSGP14데이터/커맨드 선택RSTGP15하드웨어 리셋LED/BL3V3(OUT) (또는 GP16 PWM)단순 점등은 3V3 직결, 밝기 조절 원하면 저항 통해 GPIO(PWM) 회로 연결ILI9341라즈베리파이 피코SDO(MISO)12LED3V OUTSCK10SDI(MOSI)11.. 더보기
라즈베리파이 피코와 DHT11로 온도 습도 측정하기 1. 온도 측정하기 라즈베리파이 피코는 내부온도센서가 내장되어 있어 내부 온도센서로 바로 온도를 측정하여 출력할 수 있습니다.온도센서는 라즈베리파이 피코의 ADC 4핀에 연결되어 있는데 육안으로 보드를 살펴보면 라즈베리파이 피코 핀에는 ADC 4 핀은 보이지 않습니다.ADC 4는 오로지 온도센서만을 위한 핀입니다. 1) 소스코드import machineimport utimesensor_temp = machine.ADC(4)conversion_factor = 3.3 / (65535)while True: reading = sensor_temp.read_u16() * conversion_factor temperature = round(27 - (reading - 0.706) / 0.001721,.. 더보기
라즈베리파이 피코 WH(피코+무선+헤더) 라즈베리파이 피코 WH 란? 라즈베리파이 피코(Raspberry Pi Pico)는 라즈베리파이 재단이 개발한 소형 마이크로컨트롤러 보드로, 주로 임베디드 시스템 및 IoT 프로젝트에 사용됩니다. 아래는 핵심 기능과 특징을 요약한 내용입니다: 🧩 핀맵🧩 사양Raspberry Pi Pico W Specifications:SpecificationDetailMicrocontroller ChipRP2040 (by Raspberry Pi)ProcessorDual-core ARM Cortex M0+Clock SpeedUp to 133 MHzSRAM264kBFlash Memory2MB onboardWireless InterfacesSingle-band 2.4GHz (802.11n)BluetoothBluetooth.. 더보기
ESP32와 DHT11로 온습도 측정하기 1. ESP32와 DHT11로 온습도 측정하기ESP32와 DHT11, DHT22로 온습도를 측정해보겠습니다. DHT22 센서는 온도 및 습도 측정 범위가 더 넓고 2초 간격으로만 판독값을 요청할 수 있습니다. DHT11보다 약간 더 비쌉니다.DHT11은 범위가 작고 정확도가 떨어지지만 1초마다 센서 판독값을 요청할 수 있고 가격 또한 저렴하여 많이 사용되는 센서입니다. DHT11의 접지 핀은 ESP32의 Gnd에, VCC는 ESP32의 3.3V에, 마지막으로 데이터 핀은 ESP32의 4번 핀에 연결합니다.ESP32DHT11GNDGND3.3VVCC4DATA(SIGNAL) - 라이브러리 설치하기Arduino IDE를 열고 Sketch > Include Library > Manage Libraries라이브.. 더보기
ESP32 CAM으로 WIFI 찾기-웹캠 사용법 ESP32-CAM 보드는 ESP32 모듈에 **카메라(OV2640)**를 연결해 영상 처리, 무선 전송, IoT 프로젝트 등에 활용할 수 있는 소형 개발 보드입니다. 주로 저렴한 가격, 와이파이/블루투스 지원, 카메라 탑재가 특징입니다. 주요 기능과 사양을 정리하면 다음과 같습니다: 1. ESP32-CAM📌 주요 기능Wi-Fi / Bluetooth 통신 지원: 무선 네트워크 기반 IoT 응용 가능카메라 영상 처리: 사진 촬영, 스트리밍, 얼굴 인식, 객체 감지 등저전력 설계: 배터리 기반 IoT 기기에도 활용 가능마이크로SD 카드 지원: 영상/사진 저장 가능GPIO 확장: LED, 센서, 모터 등 외부 장치 제어 가능Arduino IDE 및 ESP-IDF 지원: 다양한 펌웨어 개발 환경 호환📌 하드웨.. 더보기
ESP32와 I2C LCD연결하기 ESP32와 I2C LCD연결하여 출력하는 방법을 알아보겠습니다.1. I2C LCD연결하기- LCD핀 위부터 순서대로 GND, 3V, 21, 22에 연결하면 됨 ESP32I2C LCD 연결핀GNDGND5V 또는 3VVCC21SDA22SCL - 회로도 - 참고 : https://wokwi.com/projects/321525495180034642 ESP32 NTP Example.ino - Wokwi ESP32, STM32, Arduino SimulatorRun IoT and embedded projects in your browser: ESP32, STM32, Arduino, Pi Pico, and more. No installation required!wokwi.com - LCD 주소 찾기 소스코드/.. 더보기
라즈베리파이 피코 : TFT ILI9341 터치 디스플레 1. 2.8인치 TFT ILI9341 터치 디스플레이(참고: https://diyprojectslabs.com/raspberry-pi-pico-tft-lcd-touch-screen-tutorial/) - 회로- 핀맵핑- ili9341.py : 라즈베리파이 피코에 저장한다.https://diyprojectslabs.com/raspberry-pi-pico-tft-lcd-touch-screen-tutorial/ """ILI9341 LCD/Touch module."""from time import sleepfrom math import cos, sin, pi, radiansfrom sys import implementationfrom framebuf import FrameBuffer, RGB565 # typ.. 더보기
라즈베리파이 피코 - LED, 3색LED, LED STRIP, 버튼 1. 회로도빨강 LED : GPIO 28노랑 LED : GPIO 27녹색 LED : GPIO 26버튼 : GPIO 162. 버튼을 눌러 순서대로 LED켜기 - LedButton.py- LED가 순서대로 켜지고 버튼을 누를 때 마다 빨강, 노랑, 녹색 순으로 켜진다.from picozero import LED, Buttonfrom time import sleep, time# 버튼과 신호등 초기화button = Button(16) # GPIO 핀 16에 연결된 버튼을 설정# 신호등 및 관련 타이밍 설정lights = [ LED(28), LED(27), LED(26)] # 빨강, 노랑, 초록 순서의 신호등 리스트durations = [5, 3, 10] # 각 신호등이 켜져 있을 시간 (초)light_n.. 더보기
라즈베리파이 피코 - LCD https://m.blog.naver.com/icbanq/223008861202 1. LCD 연결하기- VCC : 3.3V(전압이 부족하면 안정적으로 5V를 공급하는 VBUS)- GND : GND- SDA : GP4 번- SCL : GP5 번 -I2C 주소 스캔하기from machine import Pin, I2Ci2c = I2C(0, scl=Pin(5), sda=Pin(4))print(i2c.scan())- 결과값이 39라면 주소는 0x27 - lcd_api.py# lcd_api.pyimport timeclass LcdApi: def __init__(self, num_lines, num_columns): self.num_lines = num_lines self.num_.. 더보기
라즈베리파이 피코 - 초음파센서 활용하기 1. 초음파센서 거리 측정하기- VCC : VBUS- GND : GND- Trigger : GPIO 12번- Echo : GPIO 20번# VCC는 VBUS에 GND는 GND에 연결, Trig는 12번, Echo는 20번 핀에 연결from machine import Pinimport time# 트리거 핀과 에코 핀 설정trigger_pin = Pin(12, Pin.OUT)echo_pin = Pin(20, Pin.IN)# 초음파 센서를 이용해 거리 측정def measure_distance(): # 트리거 핀을 통해 10us 동안 초음파 신호 발생 trigger_pin.low() time.sleep_us(2) trigger_pin.high() time.sleep_us(10) .. 더보기
라즈베리파이 피코 : 디지털 데이터 읽기 쓰기 - 터치센서, 푸시버튼, LED 1. 디지털 데이터 읽기(1) Touch.py : 터치센서- VCC : 3.3V- GND : GND- SIGNAL : 21번import machineimport utime# 21번 핀을 입력 모드로 설정signal_pin = machine.Pin(21, machine.Pin.IN)# 디지털 신호 읽기def read_digital_signal(): return signal_pin.value()# 신호를 5초마다 읽고 출력while True: signal_value = read_digital_signal() # 디지털 신호 읽기 print("Signal value:", signal_value) # 신호 값 출력 utime.sleep(0.1) # 0.1초 대기 (2) PushButt.. 더보기
라즈베리파이 피코 : 아날로그 데이터 읽기 쓰기 - 습도 센서 , 조이스틱, 서보모터 참고사이트 : https://github.com/mtinet/picoW GitHub - mtinet/picoWContribute to mtinet/picoW development by creating an account on GitHub.github.com 1. 아날로그 데이터 읽기(1) Analog1.py : 습도센서- VCC : 3.3V- GND : GND- S : 26번import machineimport utime analog_value = machine.ADC(26) while True: reading = analog_value.read_u16()/16 print("ADC: ", reading) utime.sleep(0.2) (2) Analog2.py : 조이스틱- VCC : .. 더보기
라즈베리파이 피코 시리얼통신, Mediapipe 활용 1. 시리얼통신 테스트- SerialTest.py - Thonny에서 라즈베리파이 피코를 연결한 후 라즈베리파이 피코에 SerialTest.py를 저장하고 실행함. from machine import Pinimport _threadled = Pin("LED", Pin.OUT)input_char = ''def input_thread(): global input_char while True: input_char = input()# 입력을 처리하는 스레드 시작_thread.start_new_thread(input_thread, ())print("Enter 'a' to turn ON the LED, 'b' to turn OFF the LED.")while True: if input.. 더보기
라즈베리파이 피코 웹캠 Webcam 활용 - openCV, Mediapipe 1. Vusual Studio Code 설치 2. Thonny에서 라이브러리 설치- 설치방법Thonny 실행"Tools(도구)" → "Manage packages(패키지 관리)" 클릭검색창에 opencv-python 입력 후 설치(Install) 버튼 클릭같은 방식으로 mediapipe 입력 후 설치(Install) 버튼 클릭설치 완료 후, 쉘(Shell)에서 아래 명령어 실행하여 설치 확인import cv2import mediapipe as mpprint(cv2.__version__) # OpenCV 버전 확인print(mp.__version__) # MediaPipe 버전 확인- 터미널에서 직접 설치할 경우Thonny의 Shell에서 아래 명령어를 직접 입력하여 설치할 수도 있습니다.pip in.. 더보기
ESP32 CAM 웹캠 사용법 ESP32-CAM은 아두이노 카메라로 아담한 크기에 WIFI ,블루투스 모두 지원되는 소형 카메라 모듈입니다. 소스코드를 업로드하고 배터리만 연결하면 와이파이 지역에선 무선카메라(CCTV)같이 사용할 수 있으며, 원격 스트리밍이 가능하기에 다양한 곳에서 활용될 수 있습니다. 1.소프트웨어 설치(1) 아두이노 다운로드https://www.arduino.cc/en/software/ SoftwareOpen-source electronic prototyping platform enabling users to create interactive electronic objects.www.arduino.cc(2) CH340 drivers 다운로드 및 설치 https://sparks.gogo.co.nz/ch340.ht.. 더보기
라즈베리파이 피코란? - 마이크로파이썬 Thonny설치 라즈베리파이 피코(Raspberry Pi Pico)는 라즈베리파이 재단이 개발한 소형 마이크로컨트롤러 보드로, 주로 임베디드 시스템 및 IoT 프로젝트에 사용됩니다. 아래는 핵심 기능과 특징을 요약한 내용입니다: 🧩 핵심기능마이크로컨트롤러RP2040 (Raspberry Pi 자체 설계 듀얼코어 ARM Cortex-M0+ 프로세서, 최대 133MHz)메모리264KB SRAM, 2MB 플래시 메모리입출력(I/O)26개의 GPIO 핀 (디지털 입력/출력, 아날로그 입력, PWM 등)통신 인터페이스I2C, SPI, UART 지원 (각 2채널 이상)전원 공급1.8V ~ 5.5V (보통 USB 5V 사용), 저전력 소비프로그래밍 언어C/C++, MicroPython, CircuitPython크기 및 구조소형 보드.. 더보기
서보모터 팬 틸트 브라켓 조립하기 1) 조립하기 전에 서보모터 90도에 맞춤- 서보모터 1 : 9번핀(아래쪽(좌우로 움직임)- 서보모터 2 : 10번핀(위쪽(상하로 움직임)#include // Servo 라이브러리 호출Servo servo_1; // Servo 객체를 생성합니다. 이 객체를 사용하여 서보모터를 제어Servo servo_2; void setup() { servo_1.attach(9); servo_2.attach(10); servo_1.write(90); // 서보모터를 90도 위치로 회전 delay(500); servo_2.write(90); // 서보모터를 90도 위치로 회전 delay(500); }void loop() {} 2) 브라켓 조립하기참고 : https://scipia... 더보기
#인공지능 AI 활용 - 얼굴인식 트랙킹 1) 라이브러리 설치 : openCV활용 얼굴 인식- pip install opencv-python- pip install numpy- pip install pyFirmata 2) 서보모터 팬틸트 활용- 파이썬 코드import cv2from cvzone.FaceDetectionModule import FaceDetectorimport pyfirmataimport numpy as npimport timecap = cv2.VideoCapture(0)ws, hs = 1280, 720cap.set(3, ws)cap.set(4, hs)if not cap.isOpened(): print("Camera couldn't Access!!!") exit()port = "COM6"board = pyfirmata... 더보기
생성형 인공지능으로 앱 만들기(웹심 WebSim 활용)-1탄 1) 웹심(WebSim)으로 나만의 앱 제작하기https://websim.ai/ websim.ai websim.ai▶WebSim AI이란 무엇인가요(출처 : https://ai-dy.super.site/webapp)WebSim AI는 Claude 3.5 Sonnet 및 GPT-4o와 같은 고급 AI 모델을 활용하여 웹 개발을 혁신하는 최첨단 웹사이트 생성 도구입니다. 모든 기술 수준의 사용자가 자연어로 자신의 비전을 설명하거나 URL을 입력하기만 하면 기능적이고 동적인 웹사이트 및 웹 애플리케이션을 생성할 수 있습니다. WebSim AI는 정적인 웹 디자인을 상호작용할 수 있는 탐색 가능한 환경으로 변환하여 아이디어를 신속하게 프로토타입하고 코딩 지식 없이 실현할 수 있게 합니다.▶WebSim AI의 주.. 더보기
#인공지능 AI 활용 - 아두이노와 파이썬 연동하기 1) VScode(Visual Studio code) 설치하기- 설치파일 다운로드 하기 : https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, WindowsVisual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.code.visualstudio.com - 윈.. 더보기
예술과 기술의 만남(반짝이는 팝아트 자화상 만들기) - 아두이노 소스코드int TOUCH_SENSOR_PIN = 2; // D2int led1 = 8; // D8int led2 = 9; // D9int led3 = 10; // D10int led4 = 11; // D11int led5 = 12; // D12// variables will change:int ledState = LOW; // the current state of LEDint lastTouchState; // the previous state of touch sensorint currentTouchState; // the current state of touch sensorvoid setup(){ unsigned char i; Serial.begin(9600); pinMo.. 더보기
[2단계-3] 아두이노->p5.js로 데이터(문자열)수신(가변저항, 버튼) 아두이노에서 가변저항의 센서값(0~255)을 문자열로 전송하고 p5.js에서 이를 수신하여 제어하는 과정입니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. (1) 가변저항 값 문자열로 송수신하기 - 아두이노 회로  - 아두이노 소스// 아두이노: 가변저항값 송신 1#define VARIABLE_R A0void setup() { pinMode(VARIABLE_R, INPUT); Serial.begin(9600);}void loop() { int value = analogRead(VARIABLE_R); Serial.println(value); delay(30); // 전송속도 지연}  - p5.js 소스(수신값 범위 0~1023)// p5.js: 가.. 더보기
[2단계-2] 아두이노->p5.js 로 데이터(0~255) 송수신(가변저항) 아두이노에서 가변저항, 조도센서, 초음파 센서 등의 센서값(0~255)를 전송하고 p5.js에서 이를 수신하여 제어하는 과정입니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. (1) 가변저항 값 숫자로 송수신하기 - 아두이노 회로 - 아두이노 소스// 아두이노: 가변저항값 송신#define VARIABLE_R A0void setup() { pinMode(VARIABLE_R, INPUT); Serial.begin(9600);}void loop() { int value = analogRead(VARIABLE_R); value = map(value, 0, 1023, 0, 255); Serial.write(value); delay(30); // 전.. 더보기

반응형