본문 바로가기

전체 글132

파이썬 기초 1. 파이썬 개요 - 귀도 반 로섬이 심심해서 만들었다고한다. - 파이썬은 인터프리터 언어이다. 컴파일러는 소스코드를 한번에 기계어로 변환하는 작업을 하지만 인터프리터는 인터프리터는 소스 코드를 한줄 씩 실행하면서 기계어로 변환한다. 그렇기 때문에 고급언어 중 컴파일러언어( C, C++, Java ) 보다 느리다. 2. 문법 기초 정리 - 기초는 이미 알고 있지만, 몸 풀기할 겸 다시 복습한다. # 파이썬 변수타입 확인 a = 176 b = 'hello' c = True d = 10.3 print(type(a)) # int : 정수형 print(type(b)) # str : 문자형 print(type(c)) # bool : 논리형 print(type(d)) # float : 실수형 - 기본적인 자료형에는.. 2023. 4. 12.
ESP32-DevkitV4 GPIO 기능 정리 1. ESP32-DevkitV4 개발보드에 포함되어 있는 기능 핀 (1) 아날로그-디지털 변환기(ADC) 채널 (2) SPI 인터페이스 (3) UART 인터페이스 (4) I2C 인터페이스 (5) PWM 출력 채널 (6) 디지털-아날로그 컨버터(DAC) (7) I2S 인터페이스 (8) 정전 용량 감지 GPIO ADC(아날로그-디지털 변환기) 및 DAC(디지털-아날로그 변환기) 기능은 특정 고정 핀에 할당됩니다. 그러나 UART, I2C, SPI, PWM 등의 핀을 결정할 수 있습니다. 코드에서 할당하기만 하면 됩니다. 이것은 ESP32 칩의 다중화 기능으로 인해 가능합니다. 2. ESP32-DevkitV4 입출력 - 녹색 : 적합 - 노란색 : 부팅 시 예기치 않은 동작 가능 - 삘간색 : 입출력으로 사용.. 2023. 4. 12.
INSERT, DELETE, UPDATE 문 1. INSERT 기본 문법 USE market_db; CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(4),age INT); -- 연습용 테이블을 만듬 INSERT INTO hongong1 VALUES (1, '우디', 25); SELECT * FROM hongong1; -- INSERT INTO 테이블명(컬럼명, 컬럼명) VALUES (컬럼에 넣을 데이터, 컬럼에 넣을 데이터); -- 한번에 여러 데이터를 넣을 때 1줄로 입력할 수 있다. /*한번에 4개의 데이터 넣기*/ INSERT INTO hongong2 (toy_name,age) VALUE ('이름1',26) , ('이름2',27) ,('이름3',28) ,('이름4',29) ; 2. 자동생성 AUTO_IN.. 2023. 4. 9.
파이썬 프로그래밍 용어 정리 1. 문장 (statement) print("hello world") # 문장 실행할 수 있는 코드의 최소 단위 문장이 모이면 프로그램이 된다. 2. 표현식 (expression) 어떤한 값을 만들어 내는 간단한 코드 숫자,수식, 문자열 등과 같은 것을 의미 # 다음과 같은 것들을 표현식이라고 한다. 100 10 + 20 + 30 "programming" 3. 키워드 (keyword) 특별한 의미가 부여된 단어, 예약어라고도 한다. 당연하게도 어떠한 변수명, 상수명, 클래스명, 객체명 (식별자)을 만들 때 예약어를 사용하면 안된다. 가능하더라도 사용하지 않는 것이 암묵적인 룰. 4. 식별자(identifier) 이름을 붙일 때 사용하는 단어로 다음과 같은 규칙을 지키면서 만들어야한다. - 키워드를 사용하.. 2023. 4. 6.
[C/C++] 이상형 월드컵 (ideal_worldCup) 과거에 C언어를 한참 배웠을때 진행했던 프로젝트이다.... 1. 메인 소스코드 /*전처리 지시자*/ #include #include #include #include #include #include #include "ideal.h" #pragma comment (lib, "winmm.lib") int main() { Custom cus; int selection; system("mode con cols=60 lines=35"); // 콘솔창 크기 main: selection = main_menu(); if (selection == -1) return -1; cus = user_custom(selection); if (cus.round == -1) goto main; // round.user가 -1이 반환값.. 2023. 4. 6.
Servo 라이브러리 아두이노는 서보 모터 제어를 위한 Servo 라이브러리를 기본 라이브러리로 제공하고 있다. 1. 라이브러리 추가전처리 지시자 # include 로 Servo 라이브러리를 추가한다.#include 2. 객체 선언Servo 클래스의 멤버 함수를 사용하기 위해 객체를 선언한다.Servo myServo ;위 예시의 객체명은 myServo 이다.3. attach서보 모터를 지정한 핀에 연결하고 현재 서보 모터가 연결된 채널을 반환uint8_t Servo::attach ( int pin )uint8_t Servo::attach ( int pin , int min, int max )매개변수pin : 서보 모터의 제어선이 연결된 핀 번호min : 0도에 해당되는 마이크로초 단위의 펄스 폭max : 180도에 해당되는.. 2023. 4. 6.
서보 모터(Servo) 1. 서보 모터 서보 모터에서 서보는 서보 메커니즘을 줄여서 부르는 말이다. 서보 매커니즘은 오류를 검출하고 이를 보정하기 위한 피드백이 가능한 자동장치를 말한다. 서보 모터의 장점은 한정된 범위 내에서 정확한 위치로 이동할 수 있다는 점으로, 정밀한 제어가 필요한 로봇 등에서 많이 사용된다. 2. 제어의 원리 서보모터의 제어에는 PWM 신호가 사용된다. 전원에 사용되는 VCC, GND 와 제어선이 사용된다. PWM은 아날로그 출력 부분과도 관계가 있다. 자세한 설명은 생략한다. 정리하자면 MCU에서 원하는 펄스 폭을 출력(PWM 아날로그 출력)하면 서보 모터는 그에 해당하는 펄스 폭대로 각도가 움직이는 방식이다. PWM으로 제어하면 힘들지만 아두이노에서는 이러한 제어를 라이브러리로 쉽게 구현할 수 있다. 2023. 4. 5.
[통신] UART(Universal Asynchronous Receiver Transmitter) UART는 시리얼통신에 대해서 이야기 했을때, 언급한바 있다. https://machinejw.tistory.com/15 시리얼 통신 (Serial Communication) 시리얼 통신이란? 시리얼 통신은 직렬 연결이라는 뜻을 가지고 있으며, 직렬 연결은 한번 에 하나의 비트단위로 1(High)과 0(Low)의 신호로 데이터를 전송하는 통신 방법을 말한다. 이러한 시리얼 machinejw.tistory.com UART 통신은 역사가 오래되고 지금까지도 임베디드 영역에서 각종 MCU, IC의 통신을 담당하고 있다. 임베디드 영역 뿐만 아니라 다양한 주변장치들도 이 UART 통신방법을 사용하고 있다. 1. UART 통신 초반에 시리얼통신을 공부하고 UART를 공부하면서, 굉장히 헷갈리는 부분이 많았다. 특.. 2023. 3. 15.
[통신] SPI(Serial Peripheral Interface) 1. 개요 SPI(Serial Peripheral Interface) 통신은 클럭(SCK), DATA OUT, DATA IN 신호로 통신되는 방식이다. I2C는 풀업저항이 반드시 필요했으나, SPI는 이런 제약이 없고 최대 60Mbps 까지의 고속통신이 가능하다. SPI는 시스템 내부의 IC들 간에 데이터 교환용도로 많이 사용되고 있으며, 많은 MCU도 SPI 통신을 할 수 있도록 GPIO에서 SPI 인터페이스를 제공하고 있다. I2C와 마찬가지로 클럭 신호에 동기하는 방식으로 동기식 시리얼 통신 방식이며 입/출력 데이터 라인 (RX/TX) 신호가 구분되어 데이터의 송/수신을 동시에 할 수 있는 전이중(Full Duplex) 방식이다. 2. 신호 라인 SPI 통신은 하나의 마스터(Master) 장치와 여.. 2023. 3. 14.
[통신] I2C I2C 통신은 I Two C 또는 I Square C 라고 하며, Inter IC Bus의 약자이다. 이전에 공부했듯이 시리얼 통신 중에서도 동기식(데이터를 언제 주고받을지 규약됨) 통신 이며, I2C 통신의 경우 SCL(Serial Clock Line)과 SDA(Serial Data Line)을 가지며 통신한다. 데이터 라인이 1개이기 때문에 Rx/Tx를 동시에 할 수 없으니 반이중(Half Duplex) 통신 방식이다. I2C 통신은 노이즈에 대한 취약성이 있어 외부 장치와의 통신 용도보다는 내부 시스템 IC 끼리 데이터 교환 용도로 사용된다. 임베디드 영역에서 MCU와 시스템 통신을 하는 방법 중에 거의 필수적으로 사용하는 방법 중에 하나이기도 하다. 대부분의 MCU에는 I2C 인터페이스를 가지고 .. 2023. 3. 8.