일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 무게선별자동화
- Gain
- CS Mount
- ASCCII
- 조건 제어문
- c언어
- 렌즈
- 카메라
- C Mount
- Depth of Fileld
- 과초점거리
- 간단한 앱만들어보기
- 변수의 초기화와 대입
- 저조도
- Pixel Bit Format
- 이미지센서
- Digital Slow Shutter
- camera
- 프로그래머스 lv2
- Zoom Lense
- 실생활알고리즘
- image sensor
- Patch Cleaner
- 심도
- 아이리스
- 고정비트레이트
- main 함수 인자 전달
- 저장소와 동적메모리
- 변수
- AppInventer
- Today
- Total
목록Langauge (30)
카메라 개발자 공부방(SW)
자 오늘은 비트 필드에 대해 공부해볼 시간입니다. C언어에서 연산을 할 수 있는 메모리의 최소 단위가 얼마일까요? 바로~ 1byte입니다. 그런데 이 1byte 보다 작은 단위의 연산을 필요로 하는 경우 어떻게 해야 될까요? 이때 비트 필드가 사용될 수 있습니다. 지금은 메모리 기술이 비약적으로 발전했기 때문에 메모리 자원이 넘치죠? 1byte쯤은 무시할 수 있지만, 과거엔 1byte 마저 소중했기 때문에 bit를 쪼개서 메모리를 관리하였답니다. (임베디드 산업에선 여전히 메모리 리소스가 부족하기 때문에 bit 단위로 쪼개서 데이터에 저장을 합니다. 사용하는 방법을 제대로 알면 유용하게 사용할 수 있습니다.) 비트 필드를 선언하는 방법은 다음과 같습니다. typedef struct bitfield { i..
오늘은 union에 대해 공부해볼 시간입니다. union도 struct와 마찬가지로 기존에 있던 data type을 조합해서 새로운 data type을 정의할 수 있는 사용자 정의 data type입니다. union의 정의는 아래와 같이 합니다. union Point { int x; int y; }; #include union Point { int x; int y; }; int main() { union Point point; point.x = 4; point.y = 4; printf("%d %d\n", point.x, point.y); return 0; } // 실행결과 // 4 4 union을 사용해본 예제입니다. 참 간단하죠? struct와 사용하는 같은 것 같아도 차이점은 있습니다. struct의..
오늘은 main 함수 인자에 대해서 공부를 해보겠습니다. main 함수도 함수기 때문에 인자를 받을 수 있습니다. main 함수의 인자가 전달된다고 할 때, main 함수의 원형은 아래와 같습니다. #include int main(int argv, char** argc) { return 0; } argv는 인자의 수를 의미하고, argc가 가리키는 메모리 안에 문자열 형식으로 저장이 되어있습니다. argc의 첫번째 요소에 저장된 데이터 값은 절대 경로가 포함된 프로젝트의 이름입니다. #include int main(int argv, char** argc) { printf("%d %s\n", argv, argc[0]); return 0; } // 실행결과 // 1, 프로젝트이름 이번에는 main 함수가 여..
오늘은 가변 인자에 대해 배워볼 시간입니다. 가변 인자의 대표적인 함수로는 prinf와 scanf 함수가 있습니다. 함수를 호출하여 인자를 전달할 때, 인자 입력에 제한이 없었죠? printf("%d\n", 1); printf("%d %d\n", 1, 2); printf("%d %d %d\n", 1, 2, 3); printf("%d %d %d %d\n", 1, 2, 3, 4); scanf는 콘솔에서 사용자의 입력을 받는 함수입니다(이제야 소개를 하지만). 이런 함수를 구현해야된다고 생각해봅시다. 인자를 받는 부분을 어떻게 해야 될까요? 이럴 때 생각해볼 수 있는 방법은 가변 인자를 사용하는 것입니다. 아래의 코드를 보시죠 #include void Print(int n, ...) // ... 가변인자입니다..
App Inventer에서 App을 만들기 위해선 구글 계정이 필요합니다. 구글 계정으로 로그인하고, Project를 생성해보면 (HelloWorld) 아래와 같이 개발을 위한 화면이 나오게 됩니다. 지금 보시는 화면은 여러분들이 제작하시는 앱의 UI와 컴포넌트들을 설계하는 곳인데요~ 이 부분을 front-end 작업이라 생각하시면 이해가 편하실 것입니다. Front-end 작업을 위한 기능들을 컴포넌트 형태로 제공이 됩니다. Palette에서 단지 끌어다가 Viewer에 놓기만 해도 필요한 기능들이 마운트 됩니다. 1) Palette엔 앱을 제작하는데 필요한 대부분의 컴포넌트들이 있습니다. 컴포넌트는 UI , 화면 Layout, Media 등 다양하게 존재합니다. 1-1) UI 관련된 기능(버튼, 체크..
중학생을 대상 방과후 학습으로 블록 코딩을 안드로이드 앱으로 강의 했던 경험이 있습니다. 학생들의 컴퓨팅적 사고와 문제 해결력을 기를 수 있도록 본인이 스스로 코딩을 하면서 결과물을 만들 수 있도록 지도하였습니다. App Inventer 카테고리에선 아이들과 공부했던 내용들에 대해 공유해보고자 합니다. 어려울 것 같다구요? 걱정하지마세요 Android 앱을 컴퓨터 공학 전공자가 아니더라도, 쉽게 제작 할 수 있습니다. App을 쉽게 제작할 수 있는 사이트를 소개합니다. https://appinventor.mit.edu/explore/get-started Getting Started with MIT App Inventor App Inventor is a cloud-based tool, which means..