안경잡이개발자

728x90
반응형

  초당 비트 수(Bit Per Second, BPS)1초에 전송할 수 있는 비트의 수를 의미합니다. 예를 들어 500 BPS라면, 초당 500개의 비트를 전송할 수 있다는 의미입니다. 보 레이트(Baud Rate)1초에 전송할 수 있는 의미 있는 정보의 수를 의미합니다. 예를 들어 의미 있는 정보의 단위를 32비트라고 규정할 때, 보 레이트가 500이라면 초당 16,000개의 비트를 전송한다는 의미가 될 것입니다. 다른 예시로 정보의 단위를 1비트라고 할 때, 보 레이트는 BPS와 동일할 것입니다.

 

  기본적으로 Serial 통신을 할 때는 보 레이트(Baud Rate)를 맞추어 통신을 진행합니다. 아두이노는 UART를 이용하여 하드웨어 시리얼과 소프트웨어 시리얼을 지원합니다. 하드웨어 시리얼은 하드웨어적으로 지원하는 RX, TX 핀을 이용하는 방식입니다. 혹은 가상 COM 포트 기능을 이용하여 USB 포트로 시리얼 통신이 가능할 수도 있습니다. 일반적으로 시리얼 통신을 할 때는 Serial.print()와 같은 함수를 이용하고, 하드웨어 시리얼은 Serial1, Serial2과 같은 형태의 라이브러리를 사용합니다.

 

  한 번 다음과 같이 가장 기본적인 아두이노 예제 소스코드를 작성해 봅시다. Serial.read() 함수를 이용하여 한 바이트(Byte)씩 입력을 받을 수 있습니다. 간단한 에코(Echo) 프로그램은 다음과 같습니다.

 

※ 아두이노 시리얼 통신 예제 소스코드 ※

 

void setup() {
    Serial.begin(9600);
}

void loop() {
    int incomingByte;
    if (Serial.available() > 0) {
        incomingByte = Serial.read();
        Serial.print("USB received: ");
        Serial.println(incomingByte, DEC);
    }
}

 

  실제로 위 프로그램을 업로드 한 이후에 시리얼 모니터(Serial Monitor)를 실행하면 다음과 같습니다.

 

 

※ 파이썬으로 호스트(Host) 프로그램 만들기 ※

 

  호스트(Host) 쪽에서 데이터를 보낼 때 별도의 프로그램을 이용할 수도 있습니다. 프로그램은 다음과 같이 작성할 수 있습니다. 프로그래밍 언어는 Python 3.7이며 serial 라이브러리를 이용하면 됩니다.

 

import serial

values = [1, 2, 3, 4, 5, 6, 7, 8, 9]

s = serial.Serial("COM4", 9600)
s.write(b'Hello')
s.write(bytearray(values))

while True:
    data = s.readline()
    print(data)

s.close()

 

  실행 결과는 다음과 같습니다.

 

 

  참고로 기본적으로 해당 Serial 포트를 이미 다른 프로세스가 사용 중이라면, 액세스가 거부되었다는 메시지가 출력될 수 있습니다. 오류 메시지는 대략 다음과 같습니다. 아두이노에서 시리얼 모니터가 켜져 있으면 오류가 발생할 수 있습니다.

 

serial.serialutil.SerialException: could not open port 'COM4': PermissionError(13, '액세스가 거부되었습니다.', None, 5)
728x90
반응형

728x90
반응형

  최근에 책을 집필하면서 깃허브에 소스코드를 공개했습니다. 하지만 분명 이 책은 파이썬 책인데, C++ 및 Java 소스코드도 함께 제공하면서 Java의 소스코드가 가장 많은 비중을 차지하게 되었습니다. 이 경우 다음과 같이 저장소의 기본 대표 언어가 Java라고 표시됩니다.

 

 

  대표 언어를 Java가 아닌 Python으로 변경하기 위해서는 어떻게 하면 될까요? 바로 .gitattributes 파일을 만드시면 됩니다. 말 그대로 깃 속성을 관리하는 파일인데요. 이를 추가해서 파일 확장자에 따라서 저장소가 어떻게 인식할 지를 설정할 수 있습니다. 저는 저장소 내에 파이썬, C++, Java 코드만 존재하기 때문에 파이썬만 감지되고 나머지는 무시되도록 하였습니다.

*.py linguist-detectable=true
*.cpp linguist-detectable=false
*.java linguist-detectable=false

 

  다음과 같이 저장소의 루트 경로에 .gitattributes 파일을 생성하여 작성해주면 됩니다.

 

 

  파일을 만든 뒤에는 다음과 같이 정상적으로 대표 언어가 파이썬으로 변경되었습니다.

 

728x90
반응형

728x90
반응형

  윈도우에서 다양한 버전의 파이썬(Python)을 설치하면 다음과 같이 C 드라이브에 설치됩니다. 다만 기본적으로 설치한 뒤에 명령 프롬프트(CMD)에서 python이라고 입력하면 둘 중 하나만 실행됩니다. 그렇다면 윈도우(Windows)에서 두 개의 파이썬 버전을 동시에 이용하기 위해서 어떻게 할 수 있을지 알아보도록 하겠습니다.

 

 

  이때 mklink 명령어를 이용할 수 있습니다. 이는 일종의 바로 가기 링크를 만드는 명령어입니다.

 

※ Python 3 설정 ※

 

  먼저 Python3은 다음과 같이 설정할 수 있습니다.

 

mklink C:\Windows\python3.exe [Python 3이 설치된 경로]
mklink C:\Windows\pip3.exe [Python 3의 PIP가 설치된 경로]

 

  저의 경우 다음과 같이 입력하면 되었습니다.

 

mklink C:\Windows\python3.exe C:\Python37\python.exe
mklink C:\Windows\pip3.exe C:\Python37\Scripts\pip.exe

 

  위와 같이 링크를 만든 뒤에 python3 및 pip3 이라고 명령어를 입력하면 다음과 같이 출력되는 것을 확인할 수 있습니다.

 

 

※ Python 2 설정 ※

 

  Python 2 버전에서도 마찬가지로 진행할 수 있습니다.

 

728x90
반응형