본문 바로가기

전체 글215

아두이노 문자와 문자열-#6 이제 문자열입력을 받아 보자. 사실 문자만으로 다 된다고 주장 할 수도 있다. 물론이다. 그래도 살다보면 밥만 먹고 살수 있나 ? 고기도 먹고 햄버그도 먹는다. 그리고 문자로만 다 된다는 이유는 곱셈을 모르는 사람이 덧셈으로만으로 모든것을 다 계산하는것과 같다. 예전에 러시아 교수를 7x7 매트릭스의 역행렬을 3일 동안 손으로 계산한다고 했다. 최근에 나는 400x400 역행렬을 계산한다. 그것도 1초에 수십번 계산이 이루어 진다. 결과 손으로 계산하기 어려운 부분이다. 그래서 문자열 입력도 필요한것이다. 다시 이야기 하면 안된다는것은 아니다. 단지 어려운것 뿐이다. 코드에 대한 방버 코드는 없다. 배열의 20글자를 넘게 입력하면 오류가 발생할 것이다, void setup() { Serial.begin(.. 2020. 6. 21.
아두이노 문자와 문자열-#5 최종형태의 프로그램이다. 처음에도 이야기 했지만, 아래코드가 내용도 없다. 단지 if 문장 하나 추가 된것 뿐이다. 결론은 아주 단순햐댜. 경험이 많은 프로그래머 조차도 코딩에는 별것 없다. 정말 단순하다. 경험많은 프로그래머 일수록 기본에 충실할 뿐이다. 단지 if 한문장이라고 이야기 할 수도 있다. 그러나 대단한 if 문자이다. void setup() { Serial.begin(115200); } // the loop function runs over and over again forever void loop() { if(Serial.available()) { char a = Serial.read(); if( a!= '\n' && a!= '\r') { switch(a) { case 'x': Seria.. 2020. 6. 20.
아두이노 문자와 문자열-#4 엔터 처리는 여러가지 형태로 제거 할수가 있다. char a = Serial.read(); 내가 입력받고 싶은 문자가 숫자일 경우, 문자만 입력받는경우, 단지 엔터가 아닌경우 등등 다양한 방법을 상상 할 수가 있다. if( a>= '0' && a= 'a' && a 2020. 6. 20.
아두이노 문자와 문자열-#3 지금까지의 문자, 문자열 입력에 대해 생각해보자. 마우스 이전에는 모두 키보드로 입력 했다. 키보드 입력의 형태는 알고 있듯이 두개다. 콘솔모드에서 입력 후 엔터, 혹은 엔터 없이 입력이다. 엔터 없이 입력의 좋은 예는 게임이다. 여러분들이 게임 할때 미사일 누르고 엔터 이러지는 않는다. 그냥 미사일 이다. 조이스틱 우로 누르고 엔터 하면 이상 하지 않는가. 그렇다 엔터의 유무가 대표적인 입력의 형태이다. 아두이노에서 비슷하다. 본인이 시리얼 입력을 할때 엔터 없이 할것인지 엔터 입력하고 입력을 받을지 정해야 한다. 그런데 아두이노 시리얼입력은 엔터를 기본 입력으로 하기 때문에 그냥 입력 + 엔터를 하자. void setup() { Serial.begin(115200); } // the loop func.. 2020. 6. 20.
아두이노 문자와 문자열-#2 char a = Serial.read() switch(a) { case 'x': Function1(); break; case 'y': Function2(); break; default: Serial.println("값을 입력하세요."); break; } 위의 코드가 일반적인 문자를 입력받는 아두이노 코드 이다. 보통 초보들이 많이 하는 실수중에 하나가 int a = Serial.read(); double a = Serial.read(); 물론 컴파일가 경고 정도는 출력해 주겠지만 명백히 잘못된 문장이다. 그러나 초보들은 인지 하지 못한다. 바로 C언어의 특징인 형변환 때문이다. char가 정수형이나 실수형으로 바로 변환되기 때문에 명백한 오류이지만 인식하지 못한다. 코드에 오류가 있다고 해도 받드시 문제.. 2020. 6. 20.
아두이노 문자와 문자열-#1 문자와 문자열에 관한 이야기다. 어느정도 경험이 있는 사람들은 이것, 굳이 라고 이야기 할 수 있는 주제이다. 사실 별것 없다. 그래도 처보에게는 아직 경험이 없는 이들에게는 어려운 주제이기도 하다. 말그대로 받아 드리면 쉬운데 어렵게 생각하고 하는 방법을 몰라서 그렇다. 언어에서는 크게 두가지 자료형이 있다. 자료형과 배열이다. 처음에 본인이 공부 할때도 자료형과 배열은 그냥 자료형에 대한 집합개념으로 생각했다. 그런데 배열로 그냥 다른 자료형으로 생각한다. 물론 본인이 어떻게 생각해도 상관 없다. 그냥 개념만 이해하면 되기때문... 항상 이야기 하지만 하는 방법을 배울라고 하지 말기 바란다. 그 개념을 이해해야 한다. 하는 방법은 아주 1차원적이다. 예를 들어 C언어에서 하는 방법을 배웠다. 그래도 .. 2020. 6. 20.
아두이노 이더넷 클라이언트의 시작-#6 좀더 GET을 공부할 필요가 있어서 몇가지만 더 소개하고 GET을 마무리 하고 POST로 넘어 갈까 한다. 구글에서 특정단어를 검색하거나 데이터베이스에 데이터를 삽입 할때도 필요하다. 구글 검색은 쉽게 이해 하겠지만, 데이터베이스 삽입에 대해서는 이해가 필요하다. 원도우에서 C프로그램으로 데이터베이스에 직접 삽입하지 못하고 ODBC나 ADO를 사용한다. 웹에서도 직접 삽입하지 못하고 중간 PHP를 이용해서 삽입한다. 정확하게 이야기 하면 직접 데이터를 삽입 못하는게 아니다. 중간에 삽입해 주는 프로그램을 만들어야 한다. 이런 중간에서 역활을 해주는 프로그램을 미들웨어라고 부르기도 한다. 쉽게 말해서 하나 하나 만들어 주거나 기존에 만들어진 프로그램을 이용해야 한다. 만들어진 프로그램을 이용한다면 그 통신.. 2020. 6. 10.
STM32보드 STM32F103 - #2 부트로드 올리기 아래 아두이노 미지원 보드를 등록하고 설치하자. STM32 stlink-v2 http://dan.drown.org/stm32duino/package_STM32duino_index.json 다른 사이트도 있는데 아무래도 위 사이트가 잘되는것 같다. https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json 보드를 STM32F103C를 선택하고 3가지를 각각 테스트 하였다. 1. 부트로드가 올라가진 상태에서 5pin으로 업로드 2. FTDI로 부트로드 올리기와 시리얼 업로드 3. ST-LINK로 업로드 하나씩 연습해보자. 그리고 STM에 대한 공부 보다는 브링크 예제를 통해서 부트로드 올리는것만 할 것이다. 나.. 2020. 6. 7.
STM32보드 STM32F103 - #1 부트로드 올리기 이번에는 아두이노로 업로드 하는 방법을 이야기 할까 한다. 더 있겠지만, 본인이 찾은 방법은 총 3가지다. 1. ST-LINK V2로 올리기 살때 구입한 별도의 업로드툴이다. 본인이 보기에는 마치 ISP같은 느낌이다. 그렇다고 ISP는 아니다. 2. FTDI로 부터 로드 올리기, 업로드 마치 아두이노가 하는 방식과 거의 흡사하다. 그런데 부트로드도 올리수 있고 바로 프로그램 업로드도 가능하다. 3. 마이크로 5pin으로 업로드 하기 2번의 방법으로 부트로드가 올라있는 상태에서 업로드가 가능하다. 당연하겠지만, 부트로드가 없다면 마이크로 5핀은 불가능 하다. 2020. 6. 7.