반응형

Arduino 11

[아두이노] 파이썬 threading 함수로 통신하기 (threading, target, daemon

목차 [Arduino] 파이썬 threading 함수 사용법 thread 는 실이라는 의미가 있습니다. 파이썬(Python)에서 threading(쓰레드, 드레딩) 이란 CPU 칩이 여러개의 실로 구성되어 있고 한 줄 한줄 다른 일을 처리할 수 있는 것입니다. 일반적으로 코드를 작성하면 위에서 아래로 순차적으로 진행되는 데 하나의 작업이 진행되는 동안 다른 작업을 실행할 수 없습니다. 하지만 thread 를 사용하면 2개 3개 멀티플(Multiple) 한 동작을 동시에 할 수 있게 됩니다. threading 함수에서 사용하는 주인자는 2개 입니다. target : threading으로 동작 시킬 함수를 연결합니다. daemon : True 일 경우 메인 프로그램이 종료 시 threading 함수도 종료 ..

[아두이노] 파이썬 Pyserial로 Blink 예제 실행하기 (PC to Arduino)

목차 이번 과정은 아두이노 보드와 컴퓨터(PC)를 USB 케이블을 이용해서 연결하고 파이썬(Python)의 Pyserial로 명령을 아두이노에 전달하고 아두이노는 이를 실행하는 예제를 해보겠습니다. 이 실습을 진행하기 위해서는 아래의 과정이 필요합니다. 1. 아두이노 보드 프로그램 : Serial 통신에서 특정 명령어가 전달되면 Blinking 예제 실행 2. 컴퓨터(Visual Studio)로 파이썬 작성하고 Serial로 특정 명령어 전달 1. 아두이노 보드 프로그램 : Serial 통신에서 특정 명령어가 전달되면 Blinking 예제 실행 우선 이번 코드는 아두이노의 시리얼(Serial) 통신을 열고 아래 명령이 들어오면 LED를 0.5초 단위로 깜빡이면서 켜거나 꺼지는 코드를 작성할 것입니다. 1..

[아두이노] String함수: indexof, substring, length (텍스트 검색, 위치 찾기)

목차 이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512) Arduino String 함수 : indexOf indexOf 함수는 문자열에서 원하는 문자(Character)나 부분 문자열(String)을 검색해주고 해당 문자의 위치를 index 번호 0부터 시작해서 시작 위치를 정수(integer)로 알려 줍니다. indexOf 함수의 Syntax는 아래와 같습니다. 문자열변수.indexOf("찾을 문자", 찾기..

[아두이노]메모리가 부족할 때 처리방법(프로그램 저장 공간, 전역 변수, 지역변수)

목차 Arduino 메모리(Memory) 공간이 작을 때 아두이노 스케치에서 코드를 작성하고 컴파일(Compile)을 진행하면 아래와 같은 메세지를 받을 수 있습니다. 스케치는 프로그램 저장 공간 3242 바이트(10%)를 사용. 최대 32256 바이트. 전역 변수는 동적 메모리 226바이트(11%)를 사용, 1822바이트의 지역변수가 남음. 최대는 2048 바이트. 앞서 아두이노를 구성하는 메모리(Memory) 공간에 대해 살펴 보았습니다. 메모리에 대해 잘 이해가 안되시면 괄호안의 링크를 참조하시길 바랍니다. (https://scribblinganything.tistory.com/519) 여기서 프로그램 저장 공간은 프로그램 메모리(Program Memroy, Flash Memory)를 의미 합니다...

[아두이노]메모리 종류와 기능 (Program Memory, Flash Memory, EEPROM)

목차 아두이노(Arduino) 메모리란? : 종류 아두이노는 위 그림과 같이 3가지의 메모리로 구성됩니다. Program Memory Data Memory EEPROM 아두이노(ATmega168)의 경우 Program Memory의 사이즈는 32KByte 이고 Data Memory는 2KByte의 크기이고 EEPROM은 0.5KByte 입니다. 아두이노(Arduino) 메모리란? : 기능 Program Memory는 플래시 메모리(Flash Memory)라고도 하는데 사용자가 스케치 소프트웨어에서 작성한 코드는 Program Memory로 올라 갑니다. Data Memory는 SRAM(Static Random Memory)로 구성되어 있는데 장점은 CPU에 가까이 위치하여 속도가 빠릅니다. 하지만 리셋(..

[아두이노]시리얼 통신: 컴퓨터에서 보드로 메세지 주고 받기(Send, Recieve, Serial)

목차 Arduino : Serial Communication 으로 PC와 데이터 주고 받기 이번 시간에는 Serial 통신 방법을 사용해서 컴퓨터의 USB 포트를 통해 메세지(Message)를 주고 받는 방법을 알아보겠습니다. 하드웨어 구성은 링크를 참조 하시면 됩니다. (https://scribblinganything.tistory.com/512) 코드는 간단하기 때문에 아래 예제 코드를 통해 설명하겠습니다. 예제 코드>> void setup() { Serial.begin(9600); while (!Serial) { ; } } void loop() { if (Serial.available() !=0 ) { String a_var = Serial.readStringUntil('\n'); String b_..

[아두이노] 문자열, 정수, 실수 크기 비교 하기 (Comparison)

목차 Arduino 문자열(String) 비교하기 : 기호 사용하기 우선 문자열 비교에 앞서 문자열(String)을 비교하고 검증하기 위해 시리얼 통신(Serial Communication)을 사용해서 결과 값을 컴퓨터로 전달해서 확인해야 합니다. 해당 내용은 아래 링크를 통해 하드웨어 구성 부터 모니터링 보는 방법을 확인하시길 바랍니다. (https://scribblinganything.tistory.com/512) 문자열을 비교할 때 일반 부등식 기호를 사용하거나 equals(), equalsIgnoreCase() 와 같은 함수를 사용해서 비교 합니다. 우선 비교 기호는 아래와 같이 있습니다. comparison: == greater than: > greater than or equal to: >= ..

[아두이노] 시리얼 통신 기본 : 문자열(String) 보내기

목차 Arduino Serial 통신 - 문자열 보내기 셋업 기본 하드웨어 구성은 아래와 같습니다. 아두이노 우노(Uno) + USB 케이블 + 노트북 아두이노 소프트웨어는 노트북에 설치되어 있습니다. 아두이노 포트가 연결된 Port 번호를 확인 후 보드와 연결해 줍니다. Arduino Serial 통신 - 문자열 보내기 코드 및 결과 시리얼 통신을 위한 코드는 아래와 같습니다. 코드>> void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello, World"); delay(3000); } 1~3번 라인: Serial 통신 연결을 위한 초기화 과정 5~8번 라인: 반복문 6번 라인: println 함수를 사용해서 괄호안의 문자열과 \..

[C++]변수 종류, 크기, 범위, 예제로 변수 확인(Variable Type, Size, Range)

목차 C++ 언어 변수 종류, 크기, 범위 (Variable Type, Size, Range) 변수는 데이터를 저장하는 공간 입니다. 데이터 사이즈와 타입에 맞춰 효율적으로 변수를 선언해야 합니다. C++에서 사용하는 기본 변수는 아래와 같습니다. 운영체제(Operating System, OS) 32비트 기준입니다. 아래 범위는 signed 기준으로 unsigned 의 범위는 0~2^(바이트크기)로 생각하시면 됩니다. bool true/false 1byte 범위 : true / false int 정수형 4byte 범위 : -2,147,483,648 ~ 2,147,483,647 __int8 정수형 1byte 범위 : -128 ~ 127 __int16 정수형 2byte 범위 : -32,768 ~ 32,767..

HC-06 블루투스 아두이노에 연결해보기 (AT명령어, 안드로이드폰에 연결하기)

하드웨어 연결(Arduino + HC-06) 그림1은 Frizting이라는 툴을 사용해서 회로도를 작성한 것이다. HC-06 블루투스 모듈과 아두이노는 통신라인과 전원라인만 간단히 연결하면 된다. RXD(HC06)은 3번에 TXD(HC06)은 2번에 연결한다. 3번 2번은 아두이노 코드에서 설정한 값이라 다른 포트로 변경도 가능하다. 전원은 5V와 GND에 연결한다. 그림2은 실제 자리에서 연결한 사진이다. 브래드보드 오른편에 연결되어 있는 것이 HC-06 블루투스 모듈이고 왼편에 있는 것은 가속도 센서이다. 이번 실험에서는 단순 블루투스 연결만을 위해 사용하므로 왼쪽에 모듈은 신경안써도 된다. 최종 연결은 가속도 센서에서 읽은 값을 블루투스를 통해 PC에 보내는 동작을 할 것이다. 아두이노 코드 #in..

반응형