본문 바로가기

프로그래밍/프로그래밍_여러가지

object detection 객체탐지(사물인식) 방법 요약, yolov5, colab object detection : 객체탐지(사물인식) 방법 요약본 객체탐지 학습에서 탐지할 객체는 전자부품 회로도에 있는 여러 부품 중 커패시터(capacitor) 심볼이다.회로도에서 커패시터 심볼(극성 없는 것)만 인식하는 학습 모델을 만들고자 한다.사용할 객체탐지 알고리즘은 YOLOv5 이다.학습을 실행시킬 플랫폼은 구글 colab 이다.  결과화면이다.회로도에서 극성이 없는 capacitor 만 인식이 되었다.  하나씩 실행해 보자.1. custom dataset 준비 - 학습시킬 여러장의 그림파일 준비. - 심볼만 있는 이미지 보다는 전체 회로도 이미지도 같이 준비하는 것이 좋을 듯 하다.     2. labeling(라벨링) - 준비한 여러장의 ..
비주얼베이직.net - Delegate란? 비주얼베이직.net - Delegate란? Delegate 의 사전적 의미는 '권한을 위임하다' 라는 뜻이다. 그렇다면 VisualBasic.net에서는 어떻게 쓰이는지 쉽게(우선 대충) 알아보자. 참고로 C언어에서의 포인터 개념을 알면 좀 더 쉽게 이해할 수 있을 것이다. 그렇지 않더라도 어렵지 않다. . . 그림과 같은 간단한 프로그램이 있다. Button1을 클릭하면 Text창에 "Button1을 클릭하셨네요."가 뜬다. 다음으로 다음 동작을 위해 Text창을 비운다. 오른쪽 Button2 델리게이트 실행 버튼을 누르면 Button1을 누른 것과 똑같이 Text창에 "Button1을 클릭하셨네요."가 뜬다. Button2가 직접 문장을 출력하지 않고 중간에 대리자를 세워 Button1 더러 대신 하..
C언어 포인터 - 역사상 가장 쉬운 설명 C언어 포인터 - 역사상 가장 쉬운 설명 맨 밑에 이야기가 하나 있다. 심심하면 먼저 읽어도 좋다.만화라면 더 좋을 것 같다. 그래도 좀 더 이해를 도울 수 있을 거라 생각된다. Q: 포인터(Pointer) 영어 뜻이 뭐냐?A: 가리키는 것. Q: 포인터는 왜 쓰냐?A: 필요하니까 쓴다. 메모리를 효율적으로 사용할 수 있게 된다고 한다. 다른 이유들도 있을 것 같다. 그러니 우선은 다음으로 넘어가자. 보통은 '특정 데이터가 저장된 메모리의 주소를 저장하는 변수'라고 정의하는 것 같은데 다른 말로 바꾸면 1. 어떤 변수이름에 '*'가 붙으면,2. 주소가 전혀 다른 변수로 넘어가서,3. 거기에 있는 값을 지지고 볶을 수 있다. 라고 해도 되지않을까 싶다. 두가지를 기억하자. '*'는 포인터를 만들 때 필요하..
비주얼베이직.net - Serial 통신 GUI 공부하기 좋은 강좌 - 땜쓰 전자연구소 비주얼베이직.net - Serial 통신 GUI 공부하기 좋은 강좌 - 땜쓰 전자연구소 Visual Basic(비주얼 베이직) Serial 통신 GUI 프로그래밍 1강 - 프로그램 기초 설계 Visual Basic(비주얼 베이직) Serial 통신 GUI 프로그래밍 2강 - 시리얼 통신 설정 기능추가 Visual Basic(비주얼 베이직) Serial 통신 GUI 프로그래밍 3강 - 프로그램 로그창 및 기타 기능 추가 Visual Basic(비주얼 베이직) Serial 통신 GUI 프로그래밍 4강 - 시리얼 통신 명령 송신기능 추가 Visual Basic(비주얼 베이직) Serial 통신 GUI 프로그래밍 5강 - 프로그램 화면 꾸미기와 팁 Visual Basic(비주얼 베이직) Serial 통신 GUI..
비주얼베이직.net - 기초 공부하기 좋은 강좌 - 땜쓰 전자연구소 비주얼베이직.net - 기초 공부하기 좋은 강좌 - 땜쓰 전자연구소 Visual Basic(비주얼 베이직) 2015 1강 - Visual Basic의 개요 Visual Basic(비주얼 베이직) 2015 2강 - Visual Basic 프로그래밍의 시작 Visual Basic(비주얼 베이직) 2015 3강 - 윈도우 기본 폼 컨트롤(1) Visual Basic(비주얼 베이직) 2015 4강 - 윈도우 기본 폼 컨트롤(2) Visual Basic(비주얼 베이직) 2015 5강 - 윈도우 기본 폼 컨트롤(3) Visual Basic(비주얼 베이직) 2015 6강 - 변수와 데이터타입 Visual Basic(비주얼 베이직) 2015 7강 - 연산자(1) Visual Basic(비주얼 베이직) 2015 8강 -..
MODBUS - Huanyang HY01D523B VFD, RS485 MODBUS Protocol, RTU Mode Huanyang HY01D523B VFD, RS485 MODBUS Protocol, RTU Mode Format RTU mode all data : Hex 01. Function Read (Last 2 bytes are CRC value) TX: 04 01 03 01 00 00 6D DB --- PD001 : Source of run Commands RX: 04 01 02 01 02 F5 AD --- 02 -> Communication port TX: 04 01 03 02 00 00 9D DB --- PD002 : Source of Operationg Frequency RX: 04 01 02 02 02 F5 5D --- 02 -> Communication port TX: 04 01 03 03 00 00 ..
아두이노 - RGB LED로 여러가지 색깔 만들기 아두이노 RGB LED로 여러가지 색깔 만들기 준비물: - 아두이노 보드 - RGB LED RGB LED란? 사진: 디바이스마트 RGB LED는 Red(빨강), Green(녹색), Blue(파랑) 세가지 색을 낼 수 있는 LED이다. 그래서 다리가 일반 LED보다 많다. 색은 세가지인데 다리는 네개인 이유는? 전류가 흘러야 하기 때문에~ 애노드에 +전원을, 캐소드에 -전원을 걸어줘야 한다. 부품마다 애노드,캐소드 방향이 다를 수 있으니 부품 데이타시트를 잘 확인해야 한다. 사진: 디바이스마트 회로를 연결해보자. LED는 아두이노에 직접 연결하면 전류가 너무 많이 흘러 고장날 수 있으므로 LED에 직렬 저항을 연결해서 적당한 전류가 흐르게 한다. 실험에 사용한 보드는 표준 아두이노 보드는 아니다. ATme..
아두이노 - PE43712 Attenuator SPI 통신 PE43712 Attenuator SPI 통신 Peregrine Semiconductor 라는 회사의 PE43712 Attenuator 를 컨트롤 해보자. PE43712는 RF 신호를 원하는 dB 만큼 줄여주는 감쇠기이다. 감쇠 범위는 0 ~ 31.75 dB 이다. PE43712의 통신 방식은 두가지 이다. 병렬(Parallel)과 직렬(Serial). 이 두가지 중 직렬(Serial) 방식 통신을 하려고 한다. 직렬 방식 통신은 SPI 통신이다. 아래는 PE43712와 ATmega328P-AU 회로도이다. PE43712에 필요한 SPI통신 신호선은 -칩 선택신호 -SCK 클럭신호 -MOSI 데이타 신호 이렇게 세가지이다. MCU로 입력되는 MISO는 필요없기 때문에 사용하지 않는다. PE43712의 S..