분류 전체보기 462

마이크로프로세서 - (6) UART 시리얼 통신

시리얼 통신 마이크로컨트롤러는 비트 단위의 데이터를 핀 단위로 전송한다. 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 병렬과 직렬이 있는데 이번에 다룰 UART 통신은 시리얼/직렬 통신의 한 종류이다. UART 통신 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 UART통신은 비동기식 통신이다. 즉 별도의 클록을 사용하지 않고 약속된 속도로 송수신을 진행해야 한다. 통신 단위로는 보율을 사용한다. ​ 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 보율은 변조 속도, 즉 위에서는 총 4번 변화가 있었기에 보율이 4이다. bps의 경우 2비트씩 4번이기에 8이다. ​ 출처 : Atmega128로 배우는 마이크로컨트롤러 프로그래밍 아무 통신이 없을 때 기본적으..

대학교 2023.10.07

마이크로프로세서 - (5) 데이터 입력

저항 풀업 : 버튼이 눌러지지 않은 경우 입력 핀에 5V가 가해짐 풀다운 : 버튼이 눌러지지 않은 경우 입력 핀에 GND가 가해짐 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ​ 푸쉬 버튼의 경우 4개의 핀을 가지며 1,3 혹은 2,4 쌍을 사용한다. 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 레지스터 DDR 레지스터 : 핀의 입출력 방향 선택 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ​ PIN 레지스터 : 입력받은 데이터 저장 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 ​ 출처 : ATmega128로 배우는 마이크로컨트롤러 프로그래밍 PORT 레지스터는 출력할 때 사용하고, PIN 레지스터는 입력할 때 사용한다. 예제 출처 ..

대학교 2023.10.07

파이썬 - (3) 객체와 메서드

객체, 메서드 정수, 소수, 문자열, 행렬 등 파이썬의 모든 데이터는 특정 타입의 객체이다. 객체의 타입은 객체를 생성한 클래스에 따라 다르다. 예시로 int, float, complex, bool 등이 있다. 각 객체는 타입과 별개로, 이름을 가질 수 있다. 또한 새로운 객체를 지정하면 기존에 지정 되어있던 객체는 사라진다. ​ 메서드는 "객체이름.메서드이름()" 형태로 사용한다. 특정 행위를 포함하고 있다. ​ 실습 문제 1번 정답 코드 : from cs1robots import* import time load_world("./worlds/harvest4.wld") hubo = Robot() hubo.move() cnt=0 number=0 def turn_right(): hubo.turn_left()..

대학교 2023.10.07

자바 - (5) 참조 타입

참조 타입 출처 : 혼자 공부하는 자바 참조 타입에는 객체, 배열, 클래스 등이 존재한다. 기본 타입 변수와 참조 타입 변수의 차이점은 메모리 사용 영역에 있다. ​ 출처 : 혼자 공부하는 자바 참조 타입 변수의 경우 기본적으로 힙 영역에 주소를 가지며 참조하는 형태로 저장된다. ​ 출처 : 혼자 공부하는 자바 메소드 영역은 클래스 별로 정적 필드, 상수, 생성자 등을 분류해 저장한다. 힙 영역은 객체와 배열이 생성되는 영역이다. JVM 스택 영역은 메소드가 호출되면 프레임이 추가되고, 종료되면 프레임이 제거된다. 출처 : 혼자 공부하는 자바 JVM 스택 영역의 사진이다. 메소드를 호출할 때 스택 영역에 변화를 알 수 있다. 참조 타입 변수의 경우 스택 영역에 힙 영역에 생성된 객체의 주소를 가진다. 참..

대학교 2023.10.06

자바 -(4) 조건문과 반복문

조건문 조건식에 따라 다른 실행문을 실행하기 위해 사용한다. 대표적으로 if, switch문이 있다. 출처 : 혼자 공부하는 자바 if문은 보통 else if와 else를 같이 사용해 여러 조건식을 가진다. ​ 출처 : 혼자 공부하는 자바 switch문도 변수를 기준으로 case로 조건을 나누어 실행문을 진행하는 형태이다. 반복문 어떤 작업을 반복적으로 실행할 때 사용한다. 대표적으로 for, while, do-while문이 있다. 출처 : 혼자 공부하는 자바 for문은 기본적으로 초기값, 조건식, 증감식을 통해 반복을 진행한다. ​ 출처 : 혼자 공부하는 자바 while문은 조건식이 true이면 계속 루프를 돌며 실행문을 반복한다. 중간에 break나 조건식이 false가 되면 while문을 종료한다...

대학교 2023.10.06

데이터 구조 - (4) 연결 리스트

리스트 출처 : 쉽게 배우는 자료구조 with 파이썬 위와 같이 배열 리스트로 구현하는 것과 아래와 같이 연결 리스트로 구분하는 형식이 있다. 보편적으로 배열 리스트를 자주 사용하는데, 아래와 같은 객체 구조를 가진다. 출처 : 쉽게 배우는 자료구조 with 파이썬 배열 리스트 즉 내장 리스트는 한계를 가진다. 아래 사진과 같이 3번 원소에 추가하기 위해 뒤의 원소를 모두 shift한다. 즉 추가 혹은 제거할 때 이러한 불필요한 shift를 거치는 등 비효율적이다. 그렇기에 이를 해결할 연결 리스트를 사용하는 것이다. 출처 : 쉽게 배우는 자료구조 with 파이썬 연결 리스트 연결 리스트는 배열의 공간 낭비를 피할 수 있는 자료구조이다. 원소가 추가될 때마다 공간을 할당받아 추가하는 동적 할당 방식을 따..

대학교 2023.10.06

데이터 구조 - (3) 파이썬 기초

불변 타입과 가변 타입 출처 : 쉽게 배우는 자료구조 with 파이썬 id를 확인해보면 정수의 경우 값이 바뀌게 된다. 이는 불변이기에 그 자리에서 값을 바꿀 수 없어 다른 자리에 복사해 바꾼다. 리스트는 그 자리의 내용을 바꿀 수 있어 id값이 변하지 않는다. ​ (불변 : 숫자, 문자열, 튜플 가변 : 리스트) 복사호출, 참조호출, 할당호출 출처 : 쉽게 배우는 자료구조 with 파이썬 (a), (b)의 경우는 복사호출로 값이 복사되어 파라미터로 전달되는 형태다. (c), (d)의 경우는 참조호출로 그 값의 래퍼런스를 넘긴다. 그렇기에 결과적으로 단순 복사의 경우 x의 값이 5, 주소를 넘긴 경우 10의 결과가 나온다. ​ 출처 : 쉽게 배우는 자료구조 with 파이썬 할당 호출의 경우 불변 타입이면..

대학교 2023.10.06

자바 -(3) 입 출력, 연산자

출력 출력 : System.out ~ 출처 : 혼자 공부하는 자바 정해진 내용을 출력만 할거면 println 혹은 print 메서드를 사용하고, %d, %f 등의 형식문자열로 출력하려면 printf를 사용하면 된다. 형식 문자열의 예시를 아래와 같다. 출처 : 혼자 공부하는 자바 입력 입력 : System.in ~ 출처 : 혼자 공부하는 자바 read() 메서드를 사용할 경우 2개 이상 키가 조합된 한글을 읽을 수 없다. 그렇기에 Scanner를 자주 사용한다. 출처 : 혼자 공부하는 자바 이를 사용하기 위해서는 import java.util.Scanner;로 불러와줘야 한다. 또한 Scanner를 다 사용했으면 마지막에 close() 해줘야 한다. ​ 추가로 문자열의 값을 비교할 때는 "=="를 사용하..

대학교 2023.09.24

마이크로프로세서 - (4) ATmega128 보드

구성 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 보드는 위와 같은 요소들로 구성되어 있다. ​ ISP 방식은 직접회로에 직접 연결하여 플래시 프로그램 메모리, EEPROM 등을 지우거나 프로그래밍하는 방법이다. 6핀 또는 10핀 커넥터를 주로 사용한다. 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ ​ UART 통신은 병렬 데이터를 직렬로 바꾸어 전송하는 방식이다. 프로그램을 업로드 하거나 시리얼 통신을 위해 사용한다. 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 보드 종류 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍​ 출..

대학교 2023.09.22

마이크로프로세서 - (3) 레지스터

레지스터 - CPU 내부 레지스터 마이크로프로세서에서 사용되는 레지스터 프로그래머가 신경 쓰지 않아도 된다. ​ - CPU 외부의 레지스터 외부 장치와 데이터 교환 과정에서 필요한 레지스터 입출력 레지스터 : 소프트웨어와 하드웨어 사이에서 중개자 역할을 수행 ​ 레지스터는 8비트의 메모리 이며 실제 사용되는 것은 137개이다. 하나의 데이터 핀은 여러 가지 기능으로 사용된다. 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍 메모리 출처:ATmega128로 배우는 마이크로컨트롤러 프로그래밍 플래시 메모리는 프로그램 저장을 위한 하드디스트 기능을 수행한다. SRAM은 연산용, 컴퓨터의 메인 메모리 기능을 한다. EEPROM은 데이터를 영구보관할 때 사용한다. 출처:ATmega128로 배우는 마이크..

대학교 2023.09.21