전체 글 262

[C++] 컴파일, 전처리 등등

컴파일( compile )이란?C++ 소스 코드( 흔히 부르는 코드 )를 컴퓨터가 이해할 수 있는 코드로 변경하는 과정을 말한다. 컴퓨터의 프로세서는 사람이 작성한 코드를 당장 해석할 수 없으므로 프로세서가 이해할 수 있는 오브젝트 코드( object code )로 변경해야 하는데, 이 과정을 컴파일이라고 한다.전처리( preprocessing )이란?프로그래밍에서 컴파일러가 소스 코드를 컴파일하기 전에 수행하는 일련의 작업을 말한다. - C/C++ 언어에서 전처리기( preprocessor )라는 별도의 프로그램이 이러한 작업을 수행한다.- 전처리기 # 으로 시작하는 지시자( directivies )를 해석하고 처리한다.- 전처리의 장점으로는 코드 재사용으로 : 헤더 파일을 통해 함수, 변수, 매크로 ..

[유체역학] 개념정리

플럭스( flux )- 플럭스( flux ): 단위 면적을 통과하는 유체의 특정 물리량의 흐름 속도를 의미한다.- 플럭스는 벡터량으로, 크기와 방향을 모두 가지고 있다.- 플럭스의 방향은 유체가 흐르는 방향과 같다.비압축성 질량보존식- 비압축성 질량보존식은 유체역학에서 비압축성 유체의 흐름에서 질량이 보존됨을 나타내는 방정식이다.- 비압축성 유체는 밀도가 일정한 유체를 말하는데, 액체는 일반저긍로 비압축성 유체로 간주된다.나비에-스토크스 방정식( Navier-Stokes equation, N-S equation )- 나비에-스토크스 방정식은 유체의 운동을 설명하는 방정식이다. 끈적끈적한 성질, 즉 점성을 가진 유체의 움직임을 예측하는 데 사용하는 비선형 편미분방정식이다.( 비점성물질에는 적용x )- 고체..

공학/유체역학 2024.11.19

[재료공학] 용접 ( 용융, 고상접합 ) ( week11 )

용융용접( Fusion selding )이란?  - 접합하고자 하는 두 물체 사이에서 부분용융 혹은 완전용융 상태를 갖게 될때 여기서 용융용접( fusion welding )은 열원에 의해서 재료가 용융되어 병합되는 용접법  - 용접 시 용접공정 중에 용접부로 가해지는 용가재가 사용되는데, 용가재가 없이 사용되는 용접법을 자가용접( autogenous welds )이라 부른다. - 산소용접 ( OFW : oxyfuel gas welding ) ( 화염E 사용 )- 접합부에서 금속을 용융시키는 데 필요한 화염을 생성시키는데 산소와 연료가스( fuel gas )를 혼합하여 사용하는 접합공정이다.- 산소용접에서 가장 많이 사용되는 가스는 아세틸렌( acetylene )으로 이를 산소 아세틸렌용접( OAW: o..

공학/재료공학 2024.11.16

[재료공학] 특수가공방법 ( week10 )

특수가공이란?- 재료의 강도와 경도가 높을 경우 사용한다. - 보통 400HB 이상 ( HB는 브리넬 경도로서, 경도를 측정하는 방법 중 하나이다. )- 재료의 취성( brittle )이 높아서 손상 없이 절삭가공이 어려울 경우 사용한다.  - 열처리합금, 유리, 세라믹 분말야금 부품을 제작한다.- 공작물이 너무 유연하거나 얇고 길어서 절삭력이나 연삭력이 가해지면 변형하거나 고정구로 고정이  어려울 경우 사용한다.- 부품의 내/외부에 자유형상 가공이 필요하거나, 경도가 높은 재료에 깊이 대 직경비가 큰 구멍을 가공하는 등의 복잡한 형상을 가공할 경우 사용한다.-일반적인 가공으로는 어려운 표면 마무리나 정밀 치수공차가 필요한 경우 사용한다.- 가공 중 재료의 온도 상승이나 잔류응력이 허용치를 초과할 경우 ..

공학/재료공학 2024.11.14

Machine learnign & Artificial Neural Networks, ANN

인공 신경망( Artificial Neural Networks )이란 무엇인가?  1. 인공 신경망 : 동물의 생물학적 신경( 뉴런 )을 모방한 모델  2. 뉴런의 작동 방식    1. 각 뉴런이 다른 뉴런과 연결되어 하나의 회로를 만듦    2. 외부로부터 자극( 입력 )을 특정 회로에 통과시켜 반응생성    3. 아래와 같이 인공 신경망 도식화 가능    4. 인공 신경망의 각 부분별 용도      - 노드 :  입력된 신호를 합치고,  활성화 함수를 이용해 비선형화       - 연결선 : 데이터를 연결된 강도에 따라 다음노드에 전달  노드라는 것은 입력 신호를 받아서 가중치를 곱하고 더한 후, 활성화 함수를 통해 최종 출력을 생성하는 역할을 하는 것. 이렇게 함으로써 신경망은 더 복잡한 문제를 해..

공학/인공지능 2024.11.13

[자율로봇] 여러 변수 선언

// 모터 핀 정의const int rightMotor1Pin1 = 3; // 오른쪽 모터 1 제어 핀const int rightMotor1Pin2 = 4; // 오른쪽 모터 1 반대 방향 핀const int rightMotor2Pin1 = 5; // 오른쪽 모터 2 제어 핀const int rightMotor2Pin2 = 6; // 오른쪽 모터 2 반대 방향 핀const int leftMotor1Pin1 = 7; // 왼쪽 모터 1 제어 핀const int leftMotor1Pin2 = 8; // 왼쪽 모터 1 반대 방향 핀const int leftMotor2Pin1 = 9; // 왼쪽 모터 2 제어 핀const int leftMotor2Pin2 = 10; // 왼쪽 모터 2 반대 방향 핀const i..

카테고리 없음 2024.11.11

[2024자율로봇대회] 아두이노 하드웨어 구성요소

아두이노 우노 보드는 마이크로컨트롤러를 기반으로 한 오픈 소스 전자 플랫폼으로, 다양한 전자 부품과 연결하여 쉽게 프로젝트를 만들 수 있도록 설계되었습니다. 다음은 아두이노 우노 보드의 주요 구성 요소에 대한 설명입니다.  1. 마이크로컨트롤러 (Microcontroller)Atmel ATmega328P: 아두이노 우노의 핵심 부품으로, 모든 연산 및 제어를 담당합니다. 프로그램을 저장하고 실행하며, 입력 신호를 받아 출력 신호를 생성합니다.2. 전원 공급USB 연결: 컴퓨터와 USB 케이블로 연결하여 전원을 공급받고, 프로그램을 업로드할 수 있습니다.외부 전원 잭: 7-12V DC 어댑터를 사용하여 외부 전원을 공급할 수 있습니다.전압 레귤레이터: 입력 전압을 5V로 변환하여 아두이노 보드에 안정적인 ..

[2024자율로봇대회] 120도 회전

제공해주신 코드는 4개의 DC 모터를 개별적으로 제어하기 위한 좋은 예시입니다. 하지만, 질문자님께서 처음에 원하셨던 "원형 경기장에서 로봇이 흰색 경계선을 감지하고 60도로 회전하는 코드" 에는 아직 적용되지 않았습니다.따라서, 4개의 모터를 사용하는 로봇이 흰색 경계선을 감지하고 회전하는 코드를 작성해 드리겠습니다.참고: 아래 코드는 L298N과 같은 H-브리지 모터 드라이버를 사용하고, 적외선 센서로 흰색 경계선을 감지한다고 가정합니다. 핀 번호는 앞서 예시에서 사용한 것과 동일하게 설정했습니다.C++#define IR_SENSOR_PIN A0 // 적외선 센서 핀 번호#define LEFT_MOTOR_PIN1 3 // 왼쪽 모터 핀 1#define LEFT_MOTOR_PIN2 4 // 왼쪽 모..

[2024자율로봇대회] IR Sensor 흰색,검정색 탐지 후 측정값

시리얼 모니터는 아두이노 IDE에 내장된 기능으로, 아두이노와 컴퓨터 간에 텍스트 기반으로 데이터를 주고받을 수 있는 도구입니다. 쉽게 말해, 아두이노에서 측정한 값이나 메시지를 컴퓨터 화면에 표시하고, 컴퓨터에서 아두이노로 명령을 전송할 수 있는 창입니다.시리얼 모니터의 주요 기능:데이터 확인: 아두이노에서 센서 값, 변수 값, 디버깅 메시지 등을 Serial.print() 함수를 이용하여 시리얼 모니터에 출력하여 확인할 수 있습니다.명령 전송: 컴퓨터에서 시리얼 모니터를 통해 아두이노로 텍스트 명령을 전송하여 아두이노의 동작을 제어할 수 있습니다.통신 설정: 시리얼 통신 속도 (baud rate) 를 설정하여 아두이노와 컴퓨터 간의 통신 속도를 맞춰야 합니다. 일반적으로 9600 baud rate를 ..

[2024자율로봇대회] TinkerCAD학습 04- IR Sensor

#include  - 적외선 센서를 사용하기 위한 라이브러리const int MOTOR_PIN_A = 11; - const는 이 변수가 상수임을 나타냄, 변수 MOTOR_PIN_A는 실행중에 변경될 수 없다는 의미이다. IRrecv irrecv(REMOTE_PIN); // 적외선 센서 PIN 매핑 - 적외선 센서와 수신하기 위해 꼭 필요한 부분void setup(){ irrecv.enableIRIn(); // 적외선 센서 활성화} - 적외선 센서 활성화 코드, setup() 함수 안에 적는다.