파일 복사

 

cp 복사할파일 위치/ 파일이름 ( 한칸 띄우고) 복사할 위치/복사할파일

cp cp.txt dir1/cp.txt

 

cp cp_test.py /home/jae/Pictures/py_test.py    붙여넣기 할곳에 이름을 바꿀수도 있음

 

이름바꾸기를 할때는

mv를 사용함

mv는 잘라내기 느낌.

 

mv mv.txt /home/jae/Pictures  # mv.txt라는 파일을 Pictures 에 잘라내서 붙여넣기

그리고 이름 바꿀때도

mv rename.txt rename2.txt # rename.txt 이름을  rename2.txt로 바꿈

파일 목록 명령어

 

ls

 

ls -al

 

명령어 방식으로 제어 하는것을 CLI

 

pwd  현재 디렉토리 보는것

 

새 디렉토리 만들기 mkdir hello_linux    hello_linux 라는 디렉토리 생성됨

 

비어 있는 파일 만들기 touch  empty_file.txt   empty_file.txt라는 빈 파일이 생성

 

ls 다음에  슬러시 -l 이나 -a 를 하는것을 파라미터 라고 함. 혹은 옵션

 

mkdir --help 라고 하면 파라미터를 보여줌  

다른 명령어에도 사용이 가능함

 

혹은 man ls    라고 하면 ls 에 관한 상세 설명을 볼수 있음.

help와 man 의 차이는  help 는 같은 화면에서 보여주고, man은 다른 화면에서 상세한 설명

 

man에서 / 키를 누르면 검색 가능   만약 sort 를 검색했다,

 

많은 검색 결과중에 찾기는  n키를 누르면 다음 검색으로 넘어감.

 

밖으로 나가려면 q를 누르면 man 종료 

 

mkdir -p dir1/dir2/dir3/dir4 라는 식으로 생성가능

 

리눅스는 숨김파일은  파일명 앞에 .이 붙음    ex    .local    .config       .ssg     .anano 등등  

 

 

모르는 명령어는.. 구글링

ibus 와 snap 이 충돌된 경우로

 

snap 으로 설치한 vscode 를 삭제 하고

 

sudo snap remove code  # vscode 삭제

 

공식홈페이지에서 다운받아 설치

 

sudo snap install --classic code    # snap 으로 설치방법

 

 

 

 

sudo apt install ./<file>.deb  다운받은 파일로 설치 방법

 

 

설정에서

 

Font Family

아래와 같이 설정되어 있다면

'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'

 

'Droid Sans Fallback' 를 삭제 하고 저장

 

'Droid Sans Mono', 'monospace', monospace

C언어를 한번 경험한 사람들은 배열이 무슨의미 인지 알겠지만

 

한번도 코딩을 하지 않은 사람들은 배열이라고 하면 머릿속으로 상상이 안갈것 같다.

 

간단하게 말하면 같은 유형의 변수를 모아 놓은 집단이라고 할수 있다.

 

집단에 있는 각각의 변수를 요소(element)라고 할수 있고, 요소의 갯수를 배열의 크기라고 한다.

 

예를 들어

 

int test_array[] = {2,3,4,5,6,7,8,9};

 

라고 한다면, test_array는 int형 변수의 집단을 모아둔 것이라고 볼수 있다.

 

그리고 그 크기는 8이고  첫번째 요소는 2, 마지막 요소는 9 이다.

 

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  int test_array[] = {2,3,4,5,6,7,8,9};
  int i  = sizeof(test_array);
  Serial.print( i , DEC);
  Serial.println();
}

위와 같은 코드를 실행시키면, 

 

 

위와 같은 결과를 출력할수 있다.

 

이것의 의미는 int형 변수 8개가 모여  16바이트의 배열을 출력했다는 것이다.

 

그리고 각각의 요소를 출력할때에는  test_array[2] 처럼 괄호안에 숫자를 입력하면 된다.

 

알아둘것은 요소의 처음 시작은 0번부터 시작한다는 것이다.

 

배열의 첫번째 요소는 test_array[0] 이고  처음에 배열을 선언할때 변수값을 설정하여도 되고, 

 

나중에  test_array[2]  = 5;  처럼 나중에 값을 설정하여도 상관없다.

 

 

추가로 한가지만 말하자면 

 

처음 배열을 설정 할때, int test_array[5] ; 처럼  크기가 5인 int형 배열을 선언하고 값을 설정하지 않는다면

 

값은 0으로 초기화가 된다. 

아두이노 프로그램을 하다보면 가끔씩, 아주가끔씩 메모리가 모자랄때가 있다.

 

큰프로그램을 하다보면 가끔씩... 

 

하고 싶은 말을 하자면,  성능이 그닥 필요 하지 않고, 메모리를 관리 하지 않아도 될때, 기본 숫자 유형중 아무거나

사용해도 된다.

 

하지만 성능을 좀 더 올리고 싶다, 그러면 이전에 올린 글인 기본 숫자유형중 맞는 형태를 사용해야 한다.

 

일반적으로 int를 가장 많이 사용한다.  char도 사용이 가능하지만, 효율성 측면에서 int를 사용을 한다.

 

int에서도 음수가 필요한 , 양수만 사용하는 경우도 있다. 이때 사용하는것은 signed와 unsigned 두가지가 있다.

 

unsigned는 양수만을 나타낸다. unsigned를 사용함으로써 음수의 표현범위 까지 더하여 기존 부호없이 사용하였던

 

표현범위의 2배를 사용할수 있게 된다.

 

그리고 음수를 절대 사용하지 않는다는 의미에서 unsigned 사용할수 있다.

 

boolean 에서는 true와 false를 사용한다. 2가지값은 보통 외부의 스위치의 상태를 나타내는것에 사용이 된다.

 

그러나 다르게 사용할수 있는 방법이 있다. true와 false는 다른 표현방식으로 

 

High 와 Low를 사용가능하고,  1또는 0으로 표현이 가능하다.

 

digitalWrite(pin, High)
digitalWrite(pin, True)
digitalWrite(pin, 1)

위의 코든 다 같은 값을 나타낸다.

 

 

'프로젝트 > 아두이노' 카테고리의 다른 글

6.아두이노의 배열  (0) 2020.04.05
4.아두이노 기본 변수 사용하기  (0) 2020.03.29
3.자주 사용하는 아두이노 함수  (0) 2020.03.24
2. 아두이노 프로그램의 구조  (0) 2019.01.03
1. Blink 예제  (0) 2018.10.28

어떤 시스템을 구성하든 데이터를 평균하는 일이 생긴다.

 

평균이라는말을 키보드로 치는건 처음인것 같은데 어색하네.

 

예를 들어 IMU 센서의 데이터를 받을때 SPI나 I2C통신으로 받을 데이터들이

 

다 필요 할까?

 

실제로 IMU데이터를 받아 보면 가속도 센서는 정지상태에서 일정한 값을 출력한다.

 

하지만 자이로센서의 경우 플러스 값이 나오기도 하고 마이너스 값이 나오기도 하고

 

이상한 값이 나온다.  아무튼 결론은 정지상태에서 흔들거리는 값들은 다 쓸필요가 없다는 것이다.

 

평균에는 두가지를 말할수 있는데.  한가지는 Batch(배치식)과 recursive(재귀식)이다.

 

배치식은 익히 알고있는 평균방식이다.  50개의 데이터를 평균한다면 50개의 데이터를 

 

모두 저장한다음 계산을 해야한다.

 

 

그리고 다른 한가지는 재귀식

 

재귀식의 경우 새로운데이터를 추가 될때 마다 각각의 평균을 구할필요 없이 기존에 평균으로 구해진

 

값에다가  새로운 데이터를 추가하여 평균을 계산하는 방식이다.

 

 

다른 점이 무엇인가를 본다면 배치식의 경우 시스템상에서 잡아 먹는 메모리가 상당하다는 점이다.

 

50개의 데이터를 평균을 아웃풋한다면 50개의 데이터를 저장하고 1개의 데이터를 출력한다.

 

그러면 재귀식의 경우 계속 데이터를 추가하는 방식으로  += 방식으로 업데이트를 하다보면 변수를 적게 사용하고 같은

 

출력 결과를 낼수있다. 물론  배치식도 좋은 방식이다. 쓰이는 곳이 다르다는 이야기 이다.

 

'지식 > 칼만필터' 카테고리의 다른 글

칼만필터 Kalman Filter 시작  (0) 2020.03.29

작년 말부터  올해 2월까지 나를 괴롭혔고

 

지금은 끝났지만 정리를 해볼 Kalman Filter에 대해서 써봐야 겠다.

 

 

만들면서도 이게 뭔가 ?? 하는 의문도 많았는데

 

결과물이 좋게 나와서 한번 정리를

 

해봐야 겠다.

 

지금부터 다뤄볼 칼만 필터는 UKF까지는 다루지 않고

 

EKF(Extended Kalman Filter) 까지 다뤄볼 예정이다.

 

이론만이 아닌 실제 MICOM과 IMU를 사용하여 C코드와 함께.

 

그리고 MICOM 은 STM32F3 시리즈 센서는 Bosch의  6축센서

 

IDE는 STM32cube 를 사용할 예정.

 

 

'지식 > 칼만필터' 카테고리의 다른 글

Kalman Filter 01. Raw데이터의 평균  (0) 2020.03.30

+ Recent posts