분류 전체보기910 [ 아두이노 ] LED의 정격 전압과 전류 색상마다 약간의 차이는 있는데 데이터 시트를 통해 확인해보자 평균 2.1V 최대 2.6V 정격전압이 2.1V이다 Absolute Maximum Ratings 단 한순간도 넘으면 안되는 peak 전류는 30mA LED의 밝기는 전류에 비례하지만 30mA는 단한순간도 넘으면 안되기에 20mA미만이 사용하기 적당하다고 한다. 아두이노 핀의 출력전압은 5V니까 저항을 달아서 LED에 걸리는 전압을 조절해주기 위해서 저항을 달아주어야하는데 V=IR 직렬연결 시 아래 공식으로 계산한다. (입력전압-LED사용전압)V/사용전류A = 저항값Ω (5V-2.1V) / 0.02A = 145Ω 보통 사용하는 표준저항값이 아니니까 계산해서 나온값보다 한단계 큰 저항을 선택하면된다. 일반적으로 LED에 220옴짜리를 많이 쓰는데 .. 2022. 4. 14. 64비트 운영체제인데 포인터 크기가 왜 4바이트라고 나올까? char* p1; int* p2; double* p3; printf("%d\n", sizeof(p1)); printf("%d\n", sizeof(p2)); printf("%d\n", sizeof(p3)); 분명 수업에서 들었을 때는 8바이트가 나올거라고 했는데 실제 위와같이 코드를 치고 실행해보니 4바이트 라고 나왔다.. 열심히 검색해보니 이유는 내가 사용하는 Visual Studio에서 32비트 용으로 컴파일 하기 때문.. 솔루션 플랫폼을 x86이 아니라 x64로 바꿔주면 8바이트라고 제대로 뜬다. 그리고 리눅스 64비트 환경에서도 gcc로 컴파일 하니 8바이트라고 떴다. 주소값도 16진수로 16자리나 된다. 결론은 내가 개발하고 있는 pc의 환경이 아니라 어느 플랫폼을 대상으로 컴파일하냐에 따라 포인.. 2022. 4. 14. [ C언어 ] 프로젝트(삽질일기) : 도서 관리 프로그램 - (1) - 구조체 배열 book.h #ifndef __BOOK_H__ #define __BOOK_H__ #define SIZE 20 typedef struct { char year; char month; char day; }_stDate; typedef struct { char title[30]; int price; char author[10]; int page; _stDate date; } _stBook; char DispMenu(char num); char CountData(_stBook list[]); char AddBook(_stBook list[], char num); void PrintBook(_stBook list[], char num); char RmBook(_stBook list[], char num); voi.. 2022. 4. 12. [ IntelliJ ] 설치 + Live Templates + 필수 단축키 등 설치하기 1. JDK (Java Development Kit) 설치 (https://adoptopenjdk.net/) 2. IDE Intellij 설치 (https://www.jetbrains.com/idea/) 3. IntelliJ 실행 후 Project SDK를 선택하는 화면에서 JDK가 설치된 경로를 선택하고 Next 클릭. C:\Program Files\Eclipse Adoptium\jdk-17.0.2.8-hotspot File - Setting - Editor - Live Templates 에서 언어별로 자주쓰는 코드를 자동완성 축약어로 등록해 둘 수 있다. 예를들면 Java 소스코드 작성시 main만 치면 메인 메소드가 자동완성되고 sout만 치면 System.out.println() 가 자동.. 2022. 4. 12. [ VMware ] 에서 USB 인식이 안될 때 문제 해결 윈도우키+R키로 실행창을 열고 services.msc 를 입력 VMware USB Arbitration Service 를 찾아서 시작유형은 자동으로 하고 시작을 눌러 상태를 실행중으로 바꿔줌 VMware 세팅창을 열어 Hardware 부분에 USB Controller가 add되어 있고 Connections에는 show all USB input devices 가 체크되어 있는지 확인 이제 가상환경에서 usb를 꽂으면 게스트os에 연결할지 묻는 창이 뜨고 확인을 누르면 된다. lsusb 명령어로 확인해 보니 잘 인식 됨. 2022. 4. 5. [ Mediapipe ] Ubuntu Linux에 설치하고 실행해보기 with python on VirtualBox 실행환경 Virtual Box Ubuntu 20.04.4 LTS desktop ver Python 3.8.10 OpenCV 4.5.5 0. 파이썬 설치되어있는지 확인하고 안되어있으면 설치하기 Ubuntu 20.04버전을 깔았다면 Python 3.x 버전이 이미 설치되어있다. dpkg -l 명령어로 현재 깔려있는지 알 수 있으며 안깔려 있는 경우 다음 명령어로 설치가능 sudo apt-get install python3 1. pip 설치하기 sudo apt-get update sudo apt-get install python3-pip 2. pip로 OpenCV 라이브러리 설치 pip3 install opencv-python 잘 설치가 됐다 warning이 떴으니 ~/.bashrc 를 열어 PATH 추가도 .. 2022. 4. 4. Mediapipe ] Windows에 Mediapipe 설치하고 실행해보기 with python 0. 준비사항 : Python을 설치한다. 파이썬 패키지 매니저인 pip도 같이 설치되었을 것이다. 1. cmd창을 열고 다음과 같이 친다 pip install mediapipe opencv-python 2. mediapipe 공식사이트에서 hand 예제를 긁어와 hand.py 로 저장한다. import cv2 import mediapipe as mp mp_drawing = mp.solutions.drawing_utils mp_drawing_styles = mp.solutions.drawing_styles mp_hands = mp.solutions.hands # For static images: IMAGE_FILES = [] with mp_hands.Hands( static_image_mode=True,.. 2022. 4. 4. [ C언어 ] 중복없이 난수생성 / 랜덤값 뽑기 / 로또번호 생성 / 선택정렬 (rand, srand, time 함수) 1. stdlib.h, time.h 헤더파일 포함하기 #include #include 2. 메인함수 안쪽 상단에 srand((unsigned)time(NULL)); 를 한번만 사용 srand((unsigned)time(NULL)); 진정한 의미의 난수생성을 위해 time을 seed값으로 넣어주는 부분, 간혹 컴파일 에러가 뜨는 경우가 있어 unsigned로 캐스팅해준다고 한다. 3. rand() 함수와 % 나머지연산자를 활용하여 랜덤값 생성 예를들어, 0~9 사이의 난수생성을 원한다면 rand()%10 1~10 사이의 난수생성을 원한다면 (rand()%10)+1 4. 중복없이 난수 뽑기 만약 뽑아야할 난수의 갯수가 많지 않다면 이런 방법도 있다. for (;;) { a = rand() % 10; b = .. 2022. 4. 4. [ Cygwin ] 설치 및 패키지 설치 Cygwin 은 윈도우에서 여러 리눅스 프로그램과 명령어 배쉬셸을 사용할 수 있게 해주는 프로그램이다. 시그윈 설치 https://www.cygwin.com/install.html 빠른속도를 위해 kr이 붙은 미러사이트 선택 중간에 Select Packages 화면에서 유용한 패키지 들을 같이 설치해 줄 수 있는데 All-catecory를 열고 devel 카테고리에서 gcc-core, make나 cmake 등 editor 카테고리에서 vim 등을 같이 설치해주자. 드롭다운을 열고 버전 선택 추후 apt-cyg 명령어를 사용해 필요한 패키지를 Cygwin 콘솔에서 설치할 수 있게 하기 위해 wget도 같이 설치해준다. 아니면 나중에 설치파일을 다시 실행해서 패키지를 추가 설치해줄 수 도 있다. 참고로 Cy.. 2022. 4. 4. [ Cygwin ] home directory 바꾸는 법 Cygwin을 설치한뒤 cd ~ pwd 를 치면 현재 홈디렉터리를 알 수 있는데 초기 홈디렉토리는 /home/user name 으로 설정되어있다 만약 다른 드라이브로 가고 싶다면 cd /cygdrive/d or e 등을 터미널에 입력하면 된다. 그럼 사용상 편리함을 위해 홈디렉터리를 바꿔보자 cygwin이 설치된 폴더를 찾아가 cygwin64\etc\nsswitch.conf 파일을 에디터로 연다 다음과 같이 db_home: 부분을 주석처리 해제하고 원하는 경로로 수정해준뒤 껐다 키면 적용이 된다. 바꾼 후 echo $HOME 을 입력하여 잘 바뀌었는지 확인해보자 2022. 3. 31. 이전 1 ··· 28 29 30 31 다음