무선 선풍기 한눈에 비교 (17pin VS 딜루비스 윈드프리 VS 샤오미 4세대 pro) 안녕하세요 공대 박형입니다. 오늘은 무선 선풍기 비교를 해볼 건데요. 제가 구입을 위해 비교한 무선 선풍기는 '17pin 무선 선풍기', '딜루비스 윈드프리', '샤오미 4세대 pro(수출형)', '샤오미 4세대 pro(중국내수형)' 4종류입니다. 제가 자취를 시작하며 이번 여름을 버틸 친구가 필요했습니다. 방에 에어컨이 있지만 청소를 위해 분리를 해보니..... 아무리 청소를 해도 사용하기 실은 모습을 하고 있더라고요. 그래서 새로운 에어컨을 사야 하나 고민하다 유튜브'잇섭'님의 무선 선풍기 리뷰를 접했고 이번 여름은 한번 선풍기로 버텨보자 결정했습니다. 정리한 표부터 보시죠 표를 제작한 엑셀 파일이 필요하신 분들..
티스토리 블로그 복사방지 설정과 특정 영역 복사 허용 방법 안녕하세요 공대 박형입니다. 오늘은 티스토리 블로그에서 글을 복사하지 못하게 하는 방법과 특정 부분만 복사를 허용하는 방법에 대해 알아보겠습니다. 블로그를 열심히 작성했는데 누군가가 내 글을 무단으로 복사하여 사용한다면? 기분이 좋을 수 없을 텐데요. 저는 처음 블로그를 시작했을 때 이러한 사태를 미리 예방하기 위해 티스토리 블로그 플러그인에 '마우스 오른쪽 클릭 방지'를 사용했었습니다. 하지만 제 블로그 특성상 코드를 복사해서 사용하는 분들이 많은데 글이 복사가 되지 않는다면 굳이 제 블로그를 볼 필요가 없을거라 생각했습니다. 그래서 모든 글의 복사를 방지하고 내가 원하는 특정 부분만 복사를 허용할 수 있는 방법을 찾게 되었습니다. 이제 그 방..
티스토리 블로그 워터마크 삽입 방법 안녕하세요. 공대 박형입니다. 오늘은 티스토리 블로그에 사진을 삽입할 때 워터마트를 삽입하는 방법에 대해 알아보겠습니다. 워터마크는 사진의 불펌을 방지하고 사람들의 저작권 인식에대해 생각해볼 수 있는 기능이 있습니다. 워터마크란 원본 사진에 고유의 마크나 글을 삽입하여 사진의 최초 제작자를 알리는 용도입니다. 예를 보시죠 위 사진은 제가 만들고 찍었습니다. 이처럼 사진을 워터마크 없이 게시한다면 누군가 위 사진을 무단으로 복제하여 사용하였을 때, 저 사진이 제가 제작한 사진인지 알 수가 없습니다. 사진 불펌을 방지하기 위해 사진 자체를 복사하지 못하게 하는 방법이 있지만 누군가 악의를 가진 사람은 스크린샷을 이용하든 어떠한 방법으로든 무단으로 사진을 가져갈 수 있습니다..
척도 NS란? (N.S NTS) 안녕하세요. 공대 박형입니다. 오늘은 척도의 NS에대해 알아보겠습니다. 결론부터 말씀드리면 NS는 Non Scale 의 약자로써 실제 형상과 도면에 작도한 형상의 척도가 맞지 않다는 뜻입니다. N.S라고 표기하기도하며 비슷하게 NTS라고 Not To Scale 이라고 표기하기도 합니다. 주로 도면을 작도하는데 척도가 방해가되고, NS를 사용해도 형상을 이해하는 부분에서 방해가되지 않을 때 사용합니다. 척도는 도면의 표제란에 기입합니다. NS를 사용하는 경우 도면의 한 부분의 상세도를 작성할 때 추가로 척도를 기입 할 필요가 없습니다. 도면을 검도하던 중 NS를 적용하는 도면에서 상세도에 따로 척도를 기입하는 오류를 발견하여 글을 게시하게 되었습니다. 나무가 모여 숲을 이루..
[복사하고 따라하는 아두이노] 아두이노 온습도센서 제어(feat.DHT22) 안녕하세요. 공대 박형입니다. 오늘은 아두이노에서 온습도 센서를 사용하는 방법을 알아보고, 온습도 센서를 통해 LED를 제어해보겠습니다. 우선 아두이노에서 DHT온습도센서(11버전, 22버전 모두)를 사용하기 위해서는 온습도센서 관련 정보가 담겨있는 라이브러리를 추가해야 합니다. 라이브러리란 자주 사용하는 변수, 함수 등을 따로 한 파일에 미리 지정하여 저장하고, 그 지정한 파일을 불러옴으로써 내가 작성하는 코드에서 변수나 함수를 정의하지 않아도 불러온 파일에 있는 함수, 변수를 사용할 수 있는 기능이 있습니다. 사용하기 복잡하거나 까다로운 센서 같은 경우는 제조사에서 센서를 사용하기 쉬운 환경을 제공하기위해 라이브러리를 추가로..
앱인벤터 시작하기(어플리케이션 만들기) 안녕하세요 공대 박형입니다. 오늘은 앱을 제작할수 있는 앱인벤터 사이트에대해 소개해드리고 사용방법을 알려드리겠습니다. 앱 인벤터는 MIT 공대와 구글의 합작으로 간단한 어플리케이션을 만들 수 있는 도구입니다. 문자 코딩이 필요하지 않고 블록 코딩으로 프로그램을 제작하기 때문에 코딩이 익숙하지 않은 분들도 쉽게 따라하여 앱을 제작할 수 있습니다. 우선 아래 사이트에 접속합니다. appinventor.mit.edu/ MIT App Inventor | Explore MIT App Inventor MIT App Inventor for iOS on the App Store It is with great pleasure that the App Inventor team anno..
Fritzing 다운로드(구버전 무료 다운로드) 안녕하세요 공대 박형입니다. 오늘은 회로 제작 프로그램인 Fritzing 다운로드 방법에대해 알아보겠습니다. 우선 저는 학생때부터 띵커캐드를 사용해 간단한 회로를 작성하고 시물레이션했습니다. 실제 보드와 센서들로 실험을 하기 전 가상의 환경에서 실험을 할 수 있다는 점에서 매우 편리하다고 느껴 계속 사용해왔습니다. 하지만 띵커캐드 사용중에 가장 불편하게 느꼈던 부분은 내가 사용하고 싶은 부품이 없는 경우가 많다는 것이었습니다. 기본적인 저항, 다이오드, 센서는 사용할 수 있지만 통상적으로 많이 사용하지 않는 지문인식센서, 블루투스 센서 등을 포함한 회로는 띵커캐드에서 구현할 수 없습니다. 그래서 이와같은 문제를 해결하기위한 방법도 알아보았지만 마땅한 해결책..
[복사하고 따라하는 아두이노] 아두이노 블루투스 LED제어(feat.앱인벤터,HC-06) 안녕하세요 공대 박형입니다. 오늘은 블루투스 센서 HC-06을 통해 아두이노와 스마트폰을 무선 통신하여 LED를 제어해보겠습니다. 스마트폰을 이용해 아두이노와 자유롭게 통신하기위해 앱인벤터를 통해 간단한 앱도 제작해 보겠습니다. 코드부터 보시죠 #include // 블루투스 통신을 위한 라이브러리를 가져온다. SoftwareSerial BSerial(2, 3); // (RX, TX) int LED = 13; char data; void setup(){ BSerial.begin(9600); Serial.begin(9600); pinMode(13, OUTPUT); // led 제어 핀 } void loop(){ if (..
아두이노 케이블 연결 확인 안녕하세요. 오늘은 많은 분들이 아두이노를 시작하기에 앞서 어려움을 겪고 있는 부분에 대해 얘기하고 해결해보도록 하겠습니다. 아두이노를 사용하기위해서는 실물 아두이노 보드와 PC에서 코드를 업로드 하기 위한 소프트웨어 아두이노 IDE 그리고 아두이노 보드와 PC를 연결해줄 케이블이 필요합니다. 보드와 소프트웨어가 모두 준비가 되었다면 케이블을 통해 코딩한 내용을 보드에 업로드하여 아두이노를 동작시킬 수 있습니다. 하지만 분명 아두이노보드와 PC를 연결한 거 같은데 아두이노가 동작되지 않는다면??? 이 과정에서 문제가 발생했을 수 있습니다. 이를 해결하기 위해 아두이노보드와 PC가 연결되었는지 확인하는 방법을 알려드리겠습니다. 우선 PC와 아두이노보드의 케이블을 연결하고 아두이노..
ROM VS RAM VS Flash (Memory) 안녕하세요 공대 박형입니다. 오늘은 롬과 램 그리고 플래시 메모리의 차이점에 대해 알아보겠습니다. 3개의 메모리는 모두 컴퓨터 메모리이지만 RAM, ROM 및 플래시 메모리는 각각 독자적인 방식 데이터와 상호 작용합니다. 다음으로 각 유형의 메모리에 대해 간단히 설명하겠습니다 RAM (Random Access Memory) 랜덤 액세스 메모리의 약자로 마이크로프로세서가 읽고 쓸 수 있는 메모리입니다. 전원이 꺼지면 데이터가 저장되지 않는 휘발성 메모리입니다. 데이터 속도가 빠르다는 장점이 있지만 가격이 비싸다는 단점이 있습니다. 데이터 속도가 빠르기 때문에 의 주 작업은 램에서 처리됩니다. RAM에 대한 자세한 내용은 아래 링크에서 확인할 수 있습니다...
Flash Memory 플래시 메모리란?(Flash Memory) 안녕하세요 공대 박형입니다. 오늘은 플래시메모리에대해 알아보겠습니다. 플래시 메모리는 개인용 컴퓨터와 디지털 기기 간의 스토리지 및 데이터 전송에 사용되는 비휘발성 메모리 칩입니다 전자적으로 프로그램을 재작성하고 소거할 수 있는 특징을 가지고 있습니다. USB 플래시 드라이브, MP3플레이어, 디지털카메라 및 솔리드 스테이트 드라이브에 많이 사용됩니다. 플래시 메모리는 EEPROM의 일종입니다. EEPROM은 'ROM이란?' 게시글에 자세한 내용이 게시되어있습니다. https://engineerparkbro.tistory.com/m/33 ROM 롬이란?(Read Only Memory) ROM 롬이란?(Read Only Memory) 안녕하..
RAM 램이란?(Random Access Memory) 안녕하세요 공대 박형입니다. 오늘은 RAM에대해 알아보겠습니다. RAM 랜덤 액세스 메모리는 컴퓨터의 메인 메모리로써 운영체제 애플리케이션 프로그램 및 현재 사용 중인 데이터가 디바이스의 프로세서를 통해 신속하게 도달할 수 있도록 유지되는 컴퓨팅 디바이스 내의 하드웨어입니다. 램은 컴퓨터의 메인 메모리로 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 등 다른 종류의 저장 메모리보다 판독이나 기입 속도가 빠르다는 특징이 있습니다. 랜덤 액세스 메모리는 휘발성 메모리입니다. 즉 데이터는 컴퓨터의 전원이 들어가 있는 동안은 저장된 데이터가 유지되지만 컴퓨터의 전원을 끄면 데이터는 없어집니다. 컴퓨터를 재부팅하면 OS 및 기타 파일이 R..
[복사하고 따라하는 아두이노] 아두이노 압력센서 사용(feat.FSR402) 안녕하세요 공대 박형입니다. 오늘은 아두이노 압력센서를 사용해보겠습니다. 코드부터 보시죠. int Led = 13; int FSRsensor = A0; // 센서값을 아나로그 A0핀 설정 int value = 0; // loop에서 사용할 변수 설정 void setup() { pinMode(Led, OUTPUT); Serial.begin(9600); } void loop() { value = analogRead(FSRsensor); // 아날로그 센서값을 value 변수에 저장 Serial.println(value); // 센서값을 시리얼 모니터에 출력 value = map(value, 0, 1023, 0, 255); // va..
FSR402 Datasheet
ROM 롬이란?(Read Only Memory) 안녕하세요 공대 박형입니다. 오늘은 롬에대해 알아보겠습니다. ROM(Read Only Memory)는 읽기 전용 메모리의 약자로 정보를 영속적으로 보존하는 메모리 디바이스 또는 기억매체입니다 또한 랜덤 액세스 메모리(RAM)과 함께 컴퓨터의 프라이머리 메모리 유닛이기도 합니다 컴퓨터와 기타 수많은 종류의 전자제품에는 ROM 칩이 있습니다. 게임기 자동차 라디오는 모두 ROM을 사용하여 원활하게 작동합니다. ROM 칩은 플래시 드라이브나 기타 보조 메모리 디바이스 등의 외부 유닛에 내장되어 있거나 이동식 칩 상의 디바이스의 하드웨어에 탑재되어 있습니다. ROM과 같은 비휘발성 메모리는 전원이 없어도 사용 가능합니다. ROM은 제작 될 때 의 제작사에서 프로그..
[복사하고 따라하는 아두이노] 아두이노 EEPROM(feat.put&get) 안녕하세요. 공대 박형입니다. 오늘은 아두이노 EEPROM put, get 함수 예제를 실습해보겠습니다. 아두이노 EEPROM에서는 5개의 함수가 있습니다. 1.write : EEPROM의 인덱스에 전달된 매개변수 값을 저장 2.read : 매개변수로 전달되는 인덱스에 저장되어 있는 1바이트값을 읽어와서 반환 3.update : EEPROM의 인덱스에 저장된 ㄱ밧이 전달된 매개변수 값과 다를 경우 값을 저장 4.put : EEPROM의 위치에 전달된 데이터(구조체)를 저장 5.get : 매개변수로 전달되는 위치에 저장되어 있는 데이터를 가져옴 이번 시간에는 put 와 get함수를 실습해 보겠습니다. 대체적으로 많이 사용하는 방법..
[복사하고 따라하는 아두이노] 아두이노 EEPROM(feat.write&read) 안녕하세요. 공대 박형입니다. 오늘은 아두이노 EEPROM write, raed 함수 예제를 실습해보겠습니다. 아두이노 EEPROM에서는 5개의 함수가 있습니다. 1.write : EEPROM의 인덱스에 전달된 매개변수 값을 저장2.read : 매개변수로 전달되는 인덱스에 저장되어 있는 1바이트값을 읽어와서 반환3.update : EEPROM의 인덱스에 저장된 ㄱ밧이 전달된 매개변수 값과 다를 경우 값을 저장4.put : EEPROM의 위치(location)에 전달된 데이터(구조체)를 저장5.get : 매개변수로 전달되는 위치(location)에 저장되어 있는 데이터를 가져옴 이번 시간에는 write 와 read기능을 실습..
[복사하고 따라하는 아두이노] 아두이노 인터럽트 기능 안녕하세요 공대 박형입니다. 오늘은 아두이노 인터럽트 예제를 실습해보겠습니다. 코드부터 보시죠. const int r_led = 13; int sw = 2; void setup() { Serial.begin(9600); pinMode(sw, INPUT); pinMode(r_led, OUTPUT); attachInterrupt(0, r_led_off, RISING); // D2 의 신호가 0에서 1이될 때 r_led_off 함수 실행 } void loop() { digitalWrite(r_led, HIGH); delay(2000); digitalWrite(r_led, LOW); delay(2000); } void r_led_off() { digitalW..
[복사하고 따라하는 아두이노] 아두이노 타이머 사용하기 안녕하세요 공대 박형입니다. 오늘은 아두이노 타이머 예제를 실습해보겠습니다. 코드부터 보시죠. int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } 이 코드에서 delay함수를 이용해 1초 동안 코드 처리를 중단시킵니다. 하지만 digitalWrite(led, HIGH);함수를처리하는시간은고려되지않았습니다. 즉 이와 같은 방법으로는 정확히 1초 간격으로 깜박이지 않고 오차가 발생합니다. 다른 방법으로 코드를 작성해보겠습니다. int led = 13;..
[아두이노 필수 이론] 아두이노 EEPROM이란? 안녕하세요 공대 박형입니다. 오늘은 비휘발성 메모리 ROM의 한 종류로 아두이노에 내장되어있는 EEPROM을 학습하겠습니다. 아두이노에는 EEPROM 1KB용량을 내장하고 있습니다. 비휘발성메모리이므로 아두이노의 전원을 꺼도 아두이노에 데이터가 남아있으므로 다음에 전원을 켰을 때 EEPROM에 저장한 데이터를 다시 사용할 수 있습니다. 예를들어 프로그램을 시작할 때 센서의 어떤 값을 조정해야한다고 가정합시다. 이 때 EEPROM에 조정된 데이터를 저장해두면 아두이노를 킬 때마다 매번 조정 할 필요가 없어집니다. 이 외에도 사용자가 어떻게 사용하느냐에따라 여러 값을 저장할 수 있어 매우 편리한 기능입니다. 하지만 다음 아두이노에서 EEPROM을 사용할 때 ..
[아두이노 필수 이론] 아두이노 인터럽트 사용법 안녕하세요 공대 박형입니다. 오늘은 아두이노 인터럽트에대해 알아보겠습니다. MCU에서 인터럽트는 소프트웨어가 가 이상 행동을하여 이벤트에 의한 프로세서의 응답입니다. 인터럽트 조건은 프로세서 인터럽트가 허가되었을 때 프로세서가 현재 실행중의 코드를 인터럽트해(정지해) 이벤트를 시기적절하게 처리하기 위한 요구입니다. 인터럽트 요구가 받아들여지면 프로세서는 현재의 실행을 일시 정지하고 그 상태를 저장하고 인터럽트 이벤트를 처리하기 위해 인터럽트 핸들러또는 인터럽트 서비스 루틴 라고 불리는 기능을 실행합니다. 이 인터럽트는 일시적인 것으로 인터럽트가 치명적인 에러를 나타내지 않는 한 인터럽트 핸들러의 종료후에 프로세서는 진핸중이던 동작을 재개합니다. 인터럽트는 ..
[아두이노 필수 이론] 아두이노 타이머 사용법 안녕하세요 공대 박형입니다. 오늘은 아두이노 타이머 기능에대해 알아보겠습니다. 우선 타이머에대해 설명드리겠습니다. 타이머는 주로 카운커와 함께 사용되며 MCU를 컨트롤하는데 매우 중요합니다 .이름이 나타내듯이 타이머는 시각과 카운트를 식별할 수 있습니다.이를 이용해LED 제어, 서보 각도 제어, PWM펄스 폭 변조 등 다양한 기능으로 구현됩니다. 그러나 처음에 마이크로 컨트롤러 내부 혹은 외부에 클락이 있음을 알아두는 것이 중요합니다. 실제로 모든 마이크로컨트롤러에는 클락이 내장되어 있습니다. 그렇지 않다면 마이크로컨트롤러 외부에 있는 클럭을 사용해야합니다. 마이크로컨트롤러에는 클락이 필요하고 프로그램이 클락에 맞춰 동작하게 됩니다. 이게 마이크로 컨트롤러의..
[복사하고 따라하는 아두이노] 아두이노 서보모터 제어 안녕하세요 공대 박형입니다. 오늘은 서보모터를 제어해보겠습니다. 코드부터 보시죠 #include Servo servo; const int servo_motor=3; int angle = 90; void setup() { Serial.begin(9600); servo.attach(servo_motor); servo.write(angle); } void loop() { servo.write(angle); Serial.print("angle = "); Serial.println(angle); delay(2000); angle += 20; if ( angle == 190) angle = 10; } 동작 영상입니다. 1초마다 각도를 20도씩 증가시키고, 각도가..
안녕하세요 공대 박형입니다. 오늘은 L293D모터 드라이버 IC를 사용하여 DC모터의 방향과 속도를 제어해보겠습니다. 코드부터 보시죠. const int enable = 11; // 속도 조정핀 const int left = 6; // 방향 조절핀 1 const int right = 5; // 방향 조절핀 2 int speed = 0; // 속도 조절 변수 int direction = 0; // 방향 조절 변수 void setup() { Serial.begin(9600); pinMode(enable,OUTPUT); pinMode(left,OUTPUT); pinMode(right,OUTPUT); Serial.println("Program start\nRight direction\n"); } void loo..
[복사하고 따라하는 아두이노] DC모터 속도 제어(feat. PWM ) 안녕하세요 공대 박형입니다. 오늘은 아두이노 DC모터를 구동시키고 PWM제어를통해 속도조절을 해보겠습니다. 코드부터 보시죠 const int dc=11; int speed = 0; void setup() { Serial.begin(9600); pinMode(dc,OUTPUT); } void loop() { analogWrite(dc,speed); Serial.print("speed = "); Serial.println(speed); speed = speed +85; // 속도를 0, 85, 170, 255, 0...순으로 if ( speed > 255 ) speed=0; // 속도가 255초과되면 0으로 변환 delay(1000); ..
안녕하세요. 공대 박형입니다. 오늘은 아두이노 초음파센서를 알아보겠습니다. 코드부터 보시죠. ( 3핀 초음파 센서 ) int distance = 0; void setup () { Serial.begin (9600); } void loop() { pinMode(9, OUTPUT); //출력 모드 digitalWrite(9, HIGH); // 초음파 송출 delay(10); digitalWrite(9, LOW); // 초음파 송출 정지 pinMode(9, INPUT); // 입력 모드 distance = 0.01723 * pulseIn(9, HIGH); // 들어온 값을 0.01723과 곱하여 거리 계산 Serial.print(distance); //계산된 거리를 cm로 출력 Serial.println(" ..
안녕하세요 공대 박형입니다. 오늘은 아두이노 pir센서를 사용해보겠습니다. 코드부터 보시죠 int g_led = 9; // 초록 led 핀 int b_led = 10; // 파란 led 핀 int r_led = 11; // 빨간 led 핀 void setup() { Serial.begin(9600); pinMode(g_led, OUTPUT); pinMode(b_led, OUTPUT); pinMode(r_led, OUTPUT); } void loop() { char data = Serial.read(); // 시리얼 값 data변수에 저장 if (data == 'g'){ digitalWrite(g_led, HIGH); // 초록 led는 키고 나머지는 off digitalWrite(b_led, LOW); ..