반응형

2025/08 42

Python TensorFlow와 PyTorch를 이용한 딥러닝

Python TensorFlow와 PyTorch를 이용한 딥러닝딥러닝은 오늘날 AI 기술의 중심에 서 있는 강력한 도구입니다. Python은 TensorFlow와 PyTorch와 같은 딥러닝 프레임워크를 통해 연구와 개발의 표준으로 자리 잡았습니다. 이번 포스팅에서는 TensorFlow와 PyTorch를 사용하여 딥러닝 모델을 구축하는 과정을 설명하고 간단한 예제를 통해 이해를 돕고자 합니다.1. TensorFlow와 PyTorch 개요TensorFlowTensorFlow는 Google이 개발한 오픈소스 딥러닝 프레임워크로, 대규모 데이터 처리를 위한 다양한 도구와 최적화를 지원합니다. TensorFlow는 특히 산업용 애플리케이션에서 널리 사용되며, Keras API를 통해 직관적인 모델 정의가 가능합..

CANOpen 원격 모니터링 및 데이터 로깅

CANOpen 원격 모니터링 및 데이터 로깅개요CANOpen 네트워크에서 원격 모니터링과 데이터 로깅은 장치 상태를 실시간으로 감시하고, 문제 발생 시 신속하게 대응할 수 있도록 합니다. 이를 통해 장치의 유지보수 및 장애 예방이 가능하며, 산업 자동화 및 IoT 환경에서 중요한 역할을 합니다.본 장에서는 STM32F429와 STM32CubeIDE 및 HAL을 활용하여 CANOpen 네트워크에서 원격 모니터링 및 데이터 로깅을 구현하는 방법을 다룹니다.원격 모니터링 개념원격 모니터링(Remote Monitoring)은 CANOpen 네트워크의 데이터를 외부 시스템에서 실시간으로 감시하는 기능을 의미합니다. 이를 통해 다음과 같은 기능을 수행할 수 있습니다.장치 상태 및 센서 데이터 모니터링오류 감지 및 ..

CAN/CAN Open 2025.08.21

Python OpenCV를 이용한 이미지 처리

Python OpenCV를 이용한 이미지 처리안녕하세요! 소프트웨어 공장를 방문해 주셔서 감사합니다. 오늘은 Python 고급 주제 중 하나인 OpenCV를 이용한 이미지 처리에 대해 다뤄보겠습니다. OpenCV는 컴퓨터 비전과 이미지 처리 작업에서 매우 강력한 라이브러리로, 다양한 기능을 제공합니다. 이번 포스팅에서는 OpenCV를 활용해 기본적인 이미지 처리 기법들을 익히고, 간단한 실습 예제를 통해 이를 활용하는 방법을 배워보겠습니다.OpenCV란?OpenCV(Open Source Computer Vision)는 컴퓨터 비전 및 머신 러닝 라이브러리로, 다양한 이미지 및 동영상 처리 기능을 제공합니다. OpenCV는 C++, Python, Java 등 다양한 언어를 지원하며, 특히 Python에서는..

CANOpen over Ethernet (EtherCAN, CANOpen over TCP/IP)

CANOpen과 IoT 및 무선 통신CANOpen은 산업 자동화 및 임베디드 시스템에서 널리 사용되는 프로토콜로, 주로 유선 통신 환경에서 안정적으로 동작하도록 설계되었습니다. 그러나 최근 IoT(사물인터넷) 기술의 발전과 함께 무선 통신을 활용한 CANOpen 네트워크 구축이 점점 더 중요해지고 있습니다. 이를 통해 기존 CANOpen 기반 시스템의 확장성을 높이고, 원격 모니터링 및 제어가 가능하도록 할 수 있습니다.무선 통신 기술은 BLE(Bluetooth Low Energy), Wi-Fi, LoRa, Zigbee, Thread 등 다양한 방식으로 제공되며, 각각의 기술은 통신 거리, 데이터 전송 속도, 전력 소비 등의 특성에 따라 적절한 용도로 활용됩니다. 특히, CANOpen을 IoT 환경에서 ..

CAN/CAN Open 2025.08.20

Python 코드 디버깅 기법

Python 코드 디버깅 기법소프트웨어 개발에서 디버깅은 필수적인 과정입니다. 코드가 예상대로 동작하지 않을 때 문제를 찾아내고 수정하는 과정을 디버깅이라고 합니다. Python에서는 디버깅을 효과적으로 수행할 수 있는 다양한 도구와 기법을 제공합니다. 이 포스팅에서는 Python 디버깅 도구인 pdb와 logging을 활용하는 방법을 예제와 함께 살펴보겠습니다.1. pdb(Python Debugger)pdb는 Python 표준 라이브러리에서 제공하는 디버깅 도구로, 코드 실행 중간에 멈춰서 변수 상태를 확인하거나 코드를 한 줄씩 실행하면서 동작을 추적할 수 있습니다.1.1 기본 사용법pdb를 사용하려면 코드에서 중단점을 설정해야 합니다. Python 3.7 이상에서는 breakpoint() 함수를 사용..

CANOpen 성능 최적화

CANOpen 성능 최적화개요실시간 시스템에서 CANOpen을 활용할 때 성능 최적화는 필수적인 요소입니다. CANOpen 네트워크의 응답 속도와 데이터 전송 효율성을 향상시키기 위해 다양한 기법이 활용됩니다. 본 장에서는 CANOpen의 성능을 최적화하는 방법을 다루며, 주요 최적화 기법과 실무 적용 사례를 설명합니다.CANOpen 성능에 영향을 미치는 요인CANOpen 네트워크의 성능은 여러 요인에 의해 결정됩니다. 주요 요소는 다음과 같습니다.통신 속도(baud rate): CAN 버스의 속도가 높을수록 데이터 전송 시간이 줄어듭니다.PDO 매핑 최적화: 불필요한 데이터 전송을 줄이고 중요한 데이터만 전송하여 효율성을 높입니다.동기화 및 타이밍 조정: 실시간성을 유지하기 위해 SDO 및 PDO 전송..

CAN/CAN Open 2025.08.19

Python pytest를 이용한 테스트 자동화

Python pytest를 이용한 테스트 자동화소프트웨어 개발에서 테스트는 필수적인 요소입니다. 특히 프로젝트가 커질수록 테스트를 수동으로 실행하는 것은 비효율적이며 오류가 발생하기 쉽습니다. Python에서 테스트 자동화를 구현하는 대표적인 도구로 pytest가 있습니다. 이 글에서는 pytest의 기본 사용법부터 고급 기능까지 살펴보고, 실제 코드 예제와 함께 테스트 자동화를 설정하는 방법을 알아보겠습니다.pytest란 무엇인가?pytest는 Python에서 가장 널리 사용되는 테스트 프레임워크 중 하나로, 간결하면서도 강력한 테스트 기능을 제공합니다. 다음은 pytest의 주요 특징입니다:간단한 문법뛰어난 확장성 (플러그인 지원)다양한 테스트 유형 지원 (단위 테스트, 기능 테스트 등)상세한 테스트..

CANOpen 기반의 모터 제어 (CiA 402)

CANOpen 기반의 모터 제어 (CiA 402)개요CiA 402(IEC 61800-7-201) 프로파일은 CANOpen을 기반으로 서보 모터 및 인버터 등의 모터 제어 시스템을 표준화하는 데 사용됩니다. 이 프로파일은 다양한 모드에서 모터를 제어할 수 있도록 설계되었으며, 이를 통해 산업 자동화 시스템에서 효율적인 모터 구동을 가능하게 합니다.본 장에서는 CiA 402 프로파일의 기본 개념과 주요 기능을 소개하고, STM32F429와 STM32CubeIDE 및 HAL을 활용하여 CiA 402 기반의 모터 제어를 구현하는 방법을 살펴보겠습니다.CiA 402의 주요 개념CiA 402는 모터 제어를 위한 상태 기계(state machine)를 정의하며, 다음과 같은 주요 동작 모드를 포함합니다.Profile..

CAN/CAN Open 2025.08.18

Python unittest를 이용한 단위 테스트 작성

Python unittest를 이용한 단위 테스트 작성소프트웨어 개발에서 단위 테스트(Unit Test)는 필수적인 과정입니다. 단위 테스트를 통해 코드의 개별 구성 요소가 의도한 대로 동작하는지 확인할 수 있습니다. Python은 표준 라이브러리로 unittest 모듈을 제공하며, 이를 사용하면 체계적이고 간단하게 단위 테스트를 작성할 수 있습니다. 이 포스팅에서는 unittest 모듈을 사용하여 단위 테스트를 작성하고 실행하는 방법을 예제와 함께 소개합니다.1. 단위 테스트란?단위 테스트는 프로그램의 가장 작은 단위(일반적으로 함수 또는 메서드)가 정확히 동작하는지 확인하는 테스트입니다. 단위 테스트는 다음과 같은 이점을 제공합니다:코드 품질 향상버그 조기 발견리팩토링 시 안전망 제공Python의 u..

CANOpen 활용 산업용 로봇 및 PLC

CANOpen 활용 산업용 로봇 및 PLC개요CANOpen은 산업 자동화에서 널리 사용되는 프로토콜로, 산업용 로봇과 프로그래머블 로직 컨트롤러(PLC)와 같은 장치 간의 효율적인 통신을 지원합니다. 이 장에서는 CANOpen이 산업용 로봇과 PLC 시스템에서 어떻게 활용되는지 설명하고, 이를 최적화하는 방법을 다룹니다.산업용 로봇에서의 CANOpen 활용산업용 로봇은 정밀한 동작을 수행하기 위해 다수의 서보 모터와 센서를 포함하며, 이들 간의 신뢰성 높은 실시간 통신이 필수적입니다. CANOpen은 이러한 요구사항을 충족하기 위해 다음과 같은 방식으로 활용됩니다.서보 모터 및 드라이브 제어CANOpen의 PDO(프로세스 데이터 객체)를 이용하여 실시간으로 모터 속도, 위치 및 토크를 제어할 수 있습니다..

CAN/CAN Open 2025.08.17
반응형