분류 전체보기
파이썬으로 파일을 정렬하고 이름 변경하기
제가 평소에 다루는 파일 중에 capture_{번호}.bmp라는 형식으로 저장된 이미지 파일들이 있습니다. 저는 이 파일들을 sequence_{스텝 번호}_{패턴 번호}.bmp라는 형식으로 파일 이름을 고치려고 합니다. 이때 {패턴 번호}는 0부터 5까지 순환 증가하고 {스텝 번호}는 패턴 번호가 5에서 0으로 바뀔 때마다 1씩 증가해야 합니다. 결과를 예상해보자면 다음과 같이 파일명이 바뀔 것입니다. capture_0.bmp --> sequence_0_0.bmp capture_1.bmp --> sequence_0_1.bmp capture_2.bmp --> sequence_0_2.bmp capture_3.bmp --> sequence_0_3.bmp capture_4.bmp --> sequence_0_4...
[TM4C] ADC 초기화 과정
들어가며 이 글에서는 Texas Instruments사의 Cortex-M4칩인 TM4C123GH6PM의 ADC 초기화 설정 방법을 설명합니다. 예제 코드는 공개 강좌인 Embedded Systems - Shape the World Chapter 14의 예제 코드를 기반으로 합니다. 여담으로 앞서 언급한 강좌는 MCU 공부를 시작하는 사람에게 많은 도움이 될거라 생각합니다. 관심이 있다면 시간을 들여서 보시는 것을 추천합니다. ADC 초기화 내용 초기화 과정에서 하는 일은 크게 두 가지 입니다. ADC 입력 소스로 사용할 GPIO 설정과 ADC 설정 설정입니다. 우리는 ADC 9번 채널로 사용할 수 있는 GPIOE 4번 핀에 아날로그 입력을 받을 수 있도록 기능을 설정할 것입니다. 그리고 하나의 소스로부터..
파이썬으로 원하는 데이터 골라내기
10초마다 한 줄씩 추가되는 데이터 파일에서 원하는 데이터만 골라내는 프로그램입니다. 처리할 데이터의 형태를 보면 아래와 같습니다. 12-08,09:35:00,21,37,31,67,129,135 12-08,09:35:10,21,39,36,64,128,134 12-08,09:35:20,21,41,40,61,126,134 12-08,09:35:30,21,42,43,59,126,134 12-08,09:35:40,22,44,46,58,125,134 12-08,09:35:50,22,45,48,58,125,133 12-08,09:36:00,23,46,50,59,124,133 12-08,09:36:10,23,47,52,58,124,133 ...(생략)... CSV 타입으로 작성된 데이터로 {날짜}, {시각}, {데이..
[TM4C] GPIO 초기 설정 방법 해설
들어가며 이 글에서 다룰 예제는 버튼스위치를 이용해서 LED를 켜고 끄는 코드입니다. GPIO 입/출력 관련 설정을 하고 GPIO 데이터 레지스터에 접근하여 값을 읽기도 하고 쓰기도 합니다. 우리는 이 예제를 통해서 레지스터 설정과 접근 방법에 대한 기본을 이해할 수 있을 것입니다. 실습에 필요한 재료는 개발 보드 EK-TM4C123GXL 이고 별다른 추가 회로는 필요하지 않습니다. 이번 글에서는 GPIO 초기 설정 위주로 코드를 해설하고자 합니다. 예제 코드 #include "tm4c123gh6pm.h" #include #define PF4 (*((volatile unsigned long *) 0x40025040)) // SW1 void Switch_Init(void) { volatile unsigne..
CCS 프로젝트 include 경로 설정
#include 코드에 오류 표시가 떠요! 앞서 작성된 글에서 프로그래밍 모델에 따라서 포함시켜야 하는 헤더 파일이 달라질 수 있음을 알 수 있었습니다. 그래서 프로젝트에 맞는 헤더 파일을 추가시키고 빌드를 시켜봤더니 문제가 생기지 않던가요? 코드 편집 창에는 문제가 되는 줄 옆에 x 표시가 생깁니다. 그리고 콘솔창에는 아래와 같은 메시지가 출력되지요. 이 중에서 중요한 정보만 추려서 보겠습니다. "../main.c", line 1: fatal error #1965: cannot open source file "tm4c123gh6pm.h" main.c 파일의 첫 번째 줄에서 #1965 에러가 발생했다고 합니다. #1965 에러가 어떤 의미인지 모르겠지만 계속해서 메시지를 읽어보면 tm4c123gh6pm...
.AppImage 형식의 앱을 시스템 메뉴에서 접근할 수 있도록 하기
사용 자체는 매우 쉽습니다. 파일을 다운 받고 실행 가능한 파일로 파일 속성을 바꾸면 끝. 그런데 앱을 설치하는 방식이 아니므로 시스템 메뉴에서 접근할 방법이 없습니다. 시스템에 설치되는 것도 아니어서 실행 시킬 때 어떻게 해야하는지도 의문이 들었습니다. 매번 .AppImage 파일이 있는 경로에 가서 실행 시키는 것도 일이니까요. 그래서 일반 앱처럼 사용할 수 있는 방법을 찾아보았습니다. 아래의 글을 보면 데스크탑 혹은 메뉴 아이콘을 생성할 수 있습니다. How to create a desktop or menu item for an appimage program in Ubuntu 메뉴 아이콘을 생성하고자 하는 앱 이름과 경로, 아이콘 경로가 아래와 같다고 합시다. Location of the AppIm..
[Modulabs] 2020년 임베디드랩 시즌1 마지막 프로젝트
모두의 연구소 임베디드 랩 2020년 시즌1 모임의 마지막 프로젝트를 위한 요구사항 명세서입니다. 이 프로젝트는 공개강좌인 Embedded Systems - Shape The World의 15장 내용을 참고하여 진행합니다. 충분한 시간을 가지지 않고 진행하는 것이라 부족한 점이 있을 수 있습니다. 그럼에도 도움이 될 수 있는 경우가 있을 수 있기에 내용을 공유합니다. 이 글에서 소개하는 요구사항 명세서 양식은 앞서 알려드린 강좌의 7장 (Design and Development) 내용을 살펴보시면 상세히 알 수 있습니다. 요구사항 명세서 1. 개요 1-1. 목적 임베디드랩 2020년 시즌1을 마감하며 이제까지 배웠던 기술을 하나의 시스템에 통합해본다. 통합되는 기술을 나열하면 아래와 같다. 디지털 입력 ..
[TM4C] TivaWare 프로그래밍 모델
들어가며 주변 장치 드라이버는 두 가지 방식의 프로그래밍 모델을 제공합니다. 한 가지는 레지스터에 직접 접근하는 방식(Direct Register Access Model, DRA)이고 다른 한 가지는 소프트웨어 드라이버 모델입니다. 두 모델은 각각 장단점을 가지고 있으며 개발자는 상황에 맞게 개발 모델을 선택해야 합니다. 레지스터 직접 접근(DRA) 모델 DRA 모델은 제어하고자 하는 주변 장치(Peripherals) 레지스터에 직접 접근하여 개발하는 방식입니다. 레지스터에 접근하기 위해서는 레지스터 주소 값이 정의된 매크로를 이용합니다. 매크로에 정의된 주소 값은 개발하려는 칩마다 다를 수 있어 맞는 헤더 파일을 코드에 포함시킬 필요가 있습니다. 그렇다면 그 헤더 파일은 어디에 있는 걸까요? 헤더 파일..