전체 글
-
[라즈베리파이] 초음파 센서SW/Embedded 2018. 2. 4. 15:08
초음파 센서 data sheet 한쪽은 송신하는 부분 한쪽은 받는부분으로 구별되있다. trig 핀 -쏘는 부분 / echo 핀 - 받는 부분 트리거에 10마이크로초를 주면 초음파(8개) 발생한다. 다시돌아오면 에코에서 받는다. 최대 한텀은 50마이크로 세컨드이다. // 10 마이크로세컨드를 만들자! include include include define TRIG_PINNO 16 define ECHO_PINNO 6 void cb_func_echo(int pi, unsigned gpio, unsigned level, uint32_t tick); //시간값저장(시작,끝) uint32_t start_tick_, dist_tick_; int main() { float distance; int pi; if ((pi..
-
오목고SW/Project 2018. 2. 1. 10:00
오목고 개요 2016년 화두였던 알파고와 이세돌의 대국으로 인공지능이 일반인에게도 친숙하게 다가왔다. 오목고는 알파고에서 영감을받아 (주)헨즈온 테크놀러지와 시작하게 되어있는데 기존의 바둑은 복잡 한 룰을 가지고 있는데 반해 오목고는 남녀노소, 아이들 까지 친숙한 오목을 인공지능과 접목시킴으로서 사람들에게 호기심과 흥미를 유발하게 만들었다. 뿐만하니라 알파고는 기계가 직접 두지 않는 반면에 오목고는 융합시대에 맞추어 Hardware와 Software를 융합하여 기존 오목들과 다르게, 누구나 어렸을때 가지고 놀았을 LEGO를 가지고 만든 기계가 직접 인간과 오목을 두게 만들었다. 시스템구조 및 개발과정 시스템구조 로봇(하드웨어) 15X15정도 크기의 바둑판을 사용하였다. 바둑돌을 집기위하여 주사기 끝에 고..
-
[라즈베리파이] Shift RegisterSW/Embedded 2018. 1. 28. 10:33
74HC595 shift Register 제한된 GPIO핀을 확장하여 더욱 많은 제어를 할수 있다. 직렬,병렬로 변환하여 gpio를 확장 시켜준다. 많은 종류가 있지만 하나만 해도 다른 시프트레지스터도 어렵지 않게할 수 있을것이다. OE : output enable -칩의 온/오프를 담당한다. Ds : serial input data - 실제로 데이터가 들어가는 곳 이다. ST : 0에서 1을 해야 라이징이 발생하여 출력하는 저장소로 보내 출력한다. SH : 0에서 1 을해야 라이징이 발생하여 쉬프트한다. MR : 클리어 한다.(1을해야 쓸수 있다.) 9 번은 아웃풋으로 쉬프트레지스터를 추가 할때 다음 쉬프트레지스터의 인풋으로 들어간다.
-
[라즈베리 자동차] 파이썬을 C/C++에서 사용하기SW/Embedded 2018. 1. 26. 21:30
sunfunder에서 라즈베리자동차 구동(셋업,모터등)을 파이썬 코드를 제공해 준다. C/C++로 코딩을 하고싶은데 기본 셋업부터 제어는 나중에하고 일단 동작을 해보기 위해서 C/C++에서 파이썬을 사용하는 방법을 알아 보았다. 깃허브 코드보기 다른 내용보기 라즈베리파이 자동차(#1) 전진, 후진 [사진 클릭] Sunfunder 에서 제공해주는 파이썬으로 모터 동작 하기 제공해주는 파이썬 모듈로 setup을 설정하고 C++로 코딩하기 하기 위해 밑 부분처럼 코딩한다. C++에서 파이썬 사용하기 #include#includeusing namespace std; int main(){ Py_Initialize(); //start set path PyObject* sys = PyImport_ImportModul..
-
[라즈베리파이] PWM 제어SW/Embedded 2018. 1. 26. 16:31
PWM PWM은 pulse width modulation의 준말로 펄스의 폭을 컨트롤 하는 주기 제어 방법이다. 펄스를 생성 (반복-이렇게 펄스를 생성 할 수 있지만...) int pin=13; gpio_mode(pin,아우풋); gpio_write(pin,1); // on sleep(); gpio_write(pin,0); //off sleep(); 한 주기(on=pulse width)-최대를 255이다. pigpiod_if2.h 헤더에서 함수를 제공해 준다. set_PWM_range(pi,PIN,range); //범위 설정 get_PWM_range(pi,PIN); //범위 가져오기 set_PWM_dutycycle(pi,PIN,i(0~range)); //불 키기, i값을 변화시켜 세기 조절 12,13 G..
-
[일상] 삼성전자 SW test A형 후기일상/활동 2018. 1. 20. 23:30
2018/01/20 오늘 처음으로 삼성전자 SW 테스트 A형 시험을 봤다. 위치는 용인 서천!!!!! 교통이 불편하다ㅠㅠ 일단 영통역 6번 출구로 나가서 51,116-2를 타고 서천마을 2단지에내려 길건너 둘레길? 따라 쭉 가다보면 나온다. 안에는 너무 쾌적하고 시험봤던 장소도 굳!!!! 3시간동안 1문제를 풀면된다. 서버에 접속하여 코드를 제출하는 형식이고 비쥬얼 스튜디오 랑 이클립스를 사용할수있어서 편했다. 문제는 유출 할 수 없으므로 간단히 만들 단어에 대한 최소비용을 뽑는 거였다. 처음에는 세트 하나를 구입하면 그 세트의 단어를 중복해서 사용 할수 있는줄알고 만들단어를 set에 집어넣어 중복을 없앴는데 문제를 다시보니 아니였닼ㅋㅋㅋㅋ 그래서 다른 자료구조를 사용해서 재귀로 완전탐색으로 모든경우의수..
-
[알고리즘] 다익스트라 알고리즘 (최단거리)SW/Algorithm 2018. 1. 17. 20:00
다익스트라 알고리즘 (Dijkstra Algorithm) 음의 가중치가 없는 그래프에서 한 노드에서 다른 모든 노드까지의 최단 거리를 구하는 알고리즘이다. O(v^2)의 복잡도 이지만 우선순위큐를 사용함으로 O(Elogv)의 시간 복잡도를 가지게 된다. E는 간선 v는 노드 // E => 최악의 경우 E번의 탐색한 노드를 집어 넣는 경우가 발생한다. 시작점에서 연결되있지 않은 노드도 무한대 크기만큼 연결되어있다가정하고 알고리즘을 수행한다. E[][] 는 간선들의 크기를 나타낸다.(그래프) D[]는 시작점에서 모든 정점을 가는 최소값을 가지게 된다. q는 시작점에서 q에 있는 정점들을 방분한다. D[v]=min(D[v],D[select_v]+E[select_v][v]) 풀이 시작점 하나를 잡는다. q에 시..