본문 바로가기

반응형

전체 글

라즈베리파이 피코 : 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개, 버튼 1. 회로도빨강 LED : 28노랑 LED : 27녹색 LED : 26버튼 : 16 2. 소스코드 : 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_no = 0 # 현재 신호등 인덱스signal_no = 0 #.. 더보기
라즈베리파이 피코 - 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.. 더보기
라즈베리파이 피코란? - 마이크로파이썬 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); // 전.. 더보기
[1단계-2] p5.js->아두이노로 정수(0~255) 데이터 송수신(LED, 서보모터) 이제부터 아두이노에서 p5.js로 데이터를 송수신 하는 방법을 알아보겠습니다. 송수신하는 데이터의 종류는 정수, 문자열입니다. 먼저 정수를 송수신하는 방법에 대해 알아보겠습니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. 1. 정수 송수신(0~255)- 1 바이트(0~255) 범위로 변하는 정수 값을 송수신해 봅니다. (1) LED 밝기 제어 - 마우스의 좌우 움직임에 따라 LED의 밝기를 제어해봅시다. - 아두이노 회로- 아두이노 코드// 수신값으로 LED 밝기 제어#define LED 6void setup() { pinMode(LED, OUTPUT); Serial.begin(9600);}void loop() { while (Serial.availa.. 더보기
[1단계-1] p5.js-> 아두이노로 정수(0,1) 데이터 송수신(LED, 부저, DC모터 작동) 이제부터 아두이노에서 p5.js로 데이터를 송수신 하는 방법을 알아보겠습니다. 송수신하는 데이터의 종류는 정수, 문자열입니다. 먼저 정수를 송수신하는 방법에 대해 알아보겠습니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. 1. 정수 송수신- 1 바이트(0~255) 범위의 값 중 0, 1 값을 송수신해 봅니다. (1) LED 1개 동작 제어 - p5.js 캔버스에서 마우스를 클릭하여 LED가 점멸하도록 해봅시다. - 아두이노 회로- 아두이노 코드// 수신된 정수로 LED 점멸 제어#define LED 6void setup() { pinMode(LED, OUTPUT); Serial.begin(9600);}void loop() { while (Serial... 더보기
[2단계-1] 아두이노-> p5.js로 데이터(0, 1) 송수신 (버튼) 이제부터 아두이노에서 p5.js로 데이터를 송수신 하는 방법을 알아보겠습니다. 송수신하는 데이터의 종류는 정수, 문자열입니다. 먼저 정수를 송수신하는 방법에 대해 알아보겠습니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다.1. 정수 송수신- 1 바이트(0~255) 범위의 값 중 0, 1 값을 송수신해 봅니다. (1) 푸시버튼 값을 수신하여 원의 색상 변경- 아두이노 회로 - 아두이노 코드(버튼을 누르면 원 색상 변경)// 푸시버튼값 송신#define BUTTON 2void setup() { pinMode(BUTTON, INPUT); Serial.begin(9600);}void loop() { int value = digitalRead(BUTTON); .. 더보기
ESP32와 DHT22로 온도, 습도 측정하기 ESP32와 DHT22(온습도 측정 센서)를 활용하여 온도와 습도를 측정해보겠습니다. 1) 온습도 측정하기- 준비물 : ESP32 보드 , DHT22 센서 - 참고 사이트 : https://wokwi.com/projects/322410731508073042 esp32-dht22.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 - 회로도  - 소스코드/** ESP32 + DHT22 Example for Wokwi https://wokwi.com/a.. 더보기
p5.js로 이미지 다루기 1. 이미지 불러오기// 이미지 객체를 생성 후 출력let img;function preload() { img = loadImage("sample.jpg");}function setup() { createCanvas(500, 500);}function draw() { background(0); image(img, 0, 0);}2. 이미지 생성 후 여러 개 출력// 이미지 객체를 생성 후 복수 개 출력let img; let x = 0, y = 0;function preload() { img = loadImage("sample.jpg");}function setup() { createCanvas(500, 500);}function draw() { background(0); image(img, .. 더보기
p5.js 로 사운드 입출력하기 1. 사운드 파일 재생- 재생 가능한 사운드 파일 형식 : WAV, AIFF, MP3// 사운드 파일 자동 재생let soundFile;function preload() { soundFile = loadSound('assets/sample.mp3'); // soundFile 객체 생성 및 초기화(파일 로딩)}function setup() { createCanvas(200, 100); background(200); textAlign(CENTER, CENTER); text('사운드 파일 재생', width/2, height/2); soundFile.play(); // 사운드 파일 재생} 2. 사각형이 경계에 부딪힐 때마다 사운드가 재생되도록 만들어봅시다.// 사각형이 좌우 경계에서 반사할 때.. 더보기
ESP32 와 TFT LCD(ILI9341) 연결하기 1. ESP32 보드 PINOUT 1. TFT LCD(ILI9341)  와 ESP32 연결  2. 아두이노 라이브러리 설치하기 XPT2046_Touchscreen 검색  파일-> 환경설정 이 링크를 복사하여 추가적인 보드매니저 URLs에 넣고 확인을 누릅니다. https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json   툴->보드매니저  'esp32'를 검색하고 설치합니다.  툴->보드->ESP32 Arduino-> ESP32 Dev Module 선택   - 라이브러리 설치하기 - Adafruit-GFX-Library 검색하여 설치하기- TFT_eSPI 검색하여 설치하기      "https.. 더보기
무료 음향효과 다운로드 사이트 작업할 때 필요한 음향효과를 무료로 다운로드 할 수 있는 사이트입니다. https://www.soundjay.com/index.html   Free Sound Effects | SoundJay.comFree Sound Effects Follow @soundjay Welcome to Sound Jay's free sound effects web site! You are allowed to use the sounds on our website free of charge and royalty free in your projects but you are NOT allowed to post the sounds on any web site for otherswww.soundjay.com   https://www.s.. 더보기
ESP32 연결 시 포트 인식 못할 때 해결방법 ESP32 포트 인식 못하는 문제 ESP32를 연결하고 포트를 찾을 때 인식을 못한다면 연결된 USB가 표시되지 않는 경우가 대부분 인데, 이유는 USB가 제대로 인식되지 않았기 때문입니다. 이 때 장치 관리자를 열어보면 포트에 아래 그림처럼 포트번호가 인식되야 프로그램 업로드가 가능합니다. 해결방법은 ■ USB 드라이버 다운로드다운로드 링크 : https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads  CP210x USB to UART Bridge VCP Drivers - Silicon LabsThe CP210x USB to UART Bridge Virtual COM Port (VCP) drivers are requir.. 더보기
ESP32 사용 기초(WIFI, LCD연결) 1. ESP32 시작하기  https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json그림과 같이 입력하고 "확인"을 클릭 합니다 - 툴->보드메니저 선택  - "esp32"를 입력하고 설치  - ESP32 Dev Module선택  2. WiFi 찾기/* ESP32 WiFi Scanning example */#include "WiFi.h"void setup() { Serial.begin(115200); Serial.println("Initializing WiFi..."); WiFi.mode(WIFI_STA); Serial.println("Setup done!");}void loop() {.. 더보기
#1편-ESP32 활용 온도-습도 알림기 만들기(ILI9341, DHT11활용) ESP32보드를 활용하여 날씨 정보를 알려주는 웨더스테이션을 만들어보겠습니다. 1. 준비물- ESP32- ILI9341- 미니 브래드보드 - 온습도 센서(DHT11)2. ESP32 시작하기  https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json그림과 같이 입력하고 "확인"을 클릭 합니다 - 툴-보드메니저 선택  - "esp32"를 입력하고 설치  - ESP32 Dev Module선택  3. ESP32 와 ILI9341 연결하여 기상정보 표시하기#include "SPI.h"#include "Adafruit_GFX.h"#include "Adafruit_ILI9341.h"#include "Wi.. 더보기
저작권 걱정 없는 만료저작물 찾기 공유저작물이란? 관련 사이트1) 공유마당https://gongu.copyright.or.kr/gongu/main/main.do 공유마당공유마당gongu.copyright.or.kr 검색어를 넣고 조회하면 관련 사진, 이미지, 동영상, 음악 등 저작권을 공유하는 저작물을 찾아 무료로 사용할 있습니다. 2) 아트비 https://artvee.com/ ArtveeBrowse and download high-resolution, public domain Paintings, Drawings, Illustrations and Posters.artvee.com    현대작품 외에 대부분의 명화를무료로 다운받아 사용할 수 있으며 위의 사각형 안에 있는 내용이 써있다면 저작권 걱정 없이 개인용, 상업용으로 사용할 수 있.. 더보기
RGB와 CMYK 의 차이 RGB란? RGB는 빛의 3원색으로 R(Red), G(Green), B(Blue) 를 나타냅니다. 빛을 혼합하여 TV, 스마트폰, PC 모니터, 전광판 등의 영상장치에 색상을 표현합니다.RGB는 검정(Black)색상이 없으며 명암은 빛의 세기로 조절합니다. 따라서 검정색은 영상장치의 전원이 꺼진 상태(색상)이고 빛의 세기가 약할수록 어두워 집니다. 반대로 빛의 세기가 강할수록 RGB원색을 표현하기 때문에 빛의 세기가 가장 강한 상태에서 RGB가 모두 켜지면 하얀색으로 표현됩니다.단위는 픽셀(pixel)이며 해상도는 ppi(pixel per inch)로 표현합니다. ppi는 1인치당 분포된 픽셀의 갯수를 의미합니다. CMYK란? CMYK는 출력용으로 사용하는 잉크의 색상을 나타내며 C(Cyan), M(Ma.. 더보기
픽셀과 센티미터(밀리미터) 단위 변환 이미지 작업을 하다보면 크기를 설정할 떄 픽셀로 하는 경우가 많은 데 일상에서는 센티미터나 밀리미터 단위를 더 많이 사용하기 떄문에 크기가 얼마인지 잘 감이 안오는 경우가 많습니다. 따라서 단위변환을 쉽게 해주는 사이트를 활용하면 편리하게 크기를 가늠할 수 있습니다.https://www.translatorscafe.com/unit-converter/typography/pixel-(x)-to-centimeter-%5Bcm%5D/#_   이 사이트에 들어가서 아래와 같이 단위를 변환하면 크기를 알 수 있습니다.  1픽셀은 0.02645833... 센티미터인 것을 알 수 있습니다. 이미지를 제작할 때 사이즈를 알고 싶으면 단위변환 사이트를 이용해서 만들어보세요. 더보기

반응형