본문 바로가기

전체 글

Arduino 통신으로 릴레이 제어하는 코드 /* Blink Turns an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Spec.. 더보기
[아두이노] 통신 불량 유발하는 프로그램 이게 효과가 있는지는 모르나... 아두이노에 릴레이를 부착해서 통신선을 물리적으로 빠르게 끊고 이어주는 것을 반복하는것 /* Blink Turns an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board .. 더보기
[Chat GPT] CSV 파일에서 특정 문구 포함된 행을 다른 파일로 저장 Chat GPT 에 Csv 파일에서 특정 문구가 포함된 행을 찾아서 다시 출력하는 파일을 물어봄 Q1. 파이썬으로 csv 파일 열어서 특정 문구가 포함된 열을 찾아내는 스크립트 만들어줘 Q2. 위에서 찾아낸 행을 별도의 CSV 파일로 저장해줘 Q3. 위에서 여러개의 문구를 찾아서 하고 싶다면? 3번 질문에 따른 결과 스크립트임 , 아직 해보지는 못함 import csv # 찾으려는 문구를 리스트 형태로 저장합니다. search_phrases = ["찾으려는 문구1", "찾으려는 문구2", "찾으려는 문구3"] # csv 파일을 읽어와서 검색합니다. with open('파일명.csv', newline='', encoding='utf-8') as csvfile: reader = csv.reader(csvfi.. 더보기
아두이노 패킷 통신 소스 코드 아두이노 패킷 통신 통신 소스코드 패킷 통신이라고 하는게 맞는지 모르겠지만 HEADER - Data - Checksum 의 형식으로 Data을 수신하는 소스코드임 아래 처럼 구성 예정이나 아래 소스코드는 텍스트로 테스트할 수 있도록 작성함 비고 칸 처럼 HEADER를 한글자의 Char로 변경했고, Checksum도 각 data숫자의 합의 1의 자리만 사용하는 Add 방식으로 작성 이름 정보 크기 비고(텍스트로 테스트 용 예시) HEADER 1 0xA5 1byte A A HEADER 2 0x5A 1byte 5 5 Data Size 전송할 데이터의 크기 1byte 3 9 Data 전송 데이터 1~50byte 123 111222333 CheckSum 체크섬 (현재는 Add) 1byte 1+2+3 = 6 1+... 더보기
킹룬 kp3s 시작 종료 지코드 (start / end G-code) 킹룬 Kp3s 지코드 start : 시간 차이는 거의 없겠지만 히팅부터 시작하고 호밍과 이동을 함. 일부러 이동을 느리게 설정함 M140 S[first_layer_bed_temperature] ; set bed temp M104 S[first_layer_temperature] ; set extruder temp G28 ;Home extruder G1 Z15 F300 ; Move Z Axis up to prevent scratching of Heat Bed G1 X170 Y0 Z15 F500.0 ; move to start point for Nozzle Cleaning. M190 S[first_layer_bed_temperature] ; wait for bed temp M109 S[first_layer_t.. 더보기
아두이노 OLED 시계 멈춤 현상 -> 와치독 사용 아두이노 OLED 시계 (maxpulse.tistory.com/270)를 사용하다가 며칠 후에 보니 OLED가 멈춘 상태였다. (2-3일 연속 동작시 멈추는 듯) 전원을 분리했다가 다시 연결하니 RTC에 의해서 정확한 시간으로 동작했다. 아두이노가 다운되었거나 OLED가 다운되었거나 두가지 경우가 가능한데, 우선은 아두이노의 와치독 기능도 시험해볼겸, 와치독(Watchdog) 기능을 추가하였다. 와치독이란, 집을 지키는 개란 뜻처럼 집(아두이노 프로그램) 을 감시하다가 문제가 생기면(무한 루프) 짖어서 알려주는 것(리셋)을 말한다. 실제 동작은.. 와치독 타이머가 다른 타이머와 별도로 동작하면서 시간을 측정하다가 정해진 시간이 되면 아두이노를 리셋 시켜버린다. 아두이노가 리셋되지 않으려면 loop() 함.. 더보기
아두이노, OLED, RTC (DS3231) 시계 만들기 (2) 지난 번 소스에서 글꼴을 좀 수정하고 시간을 수정할 수 있는 코드를 추가함 소스 코드에 컴파일할때 컴퓨터의 시간을 전송하게 해주는 코드가 있으나 컴파일 후 전송까지의 시간 차이 때문인지 시간이 맞지 않아 시간 설정하는 코드를 추가함 시리얼 모니터에서 TYYMMDDHHMMSS 형식으로 전송하면 시간 셋팅이 되게 된다. (T문자를 패킷의 시작 문자로 사용하는 구조) rtc 설정에는 2020년 형식으로 써야하지만 전송할때는 8비트 변수를 사용하므로 2000부분 없이 전송한다 2020년 9월 15일 17시 35분 56초 -> T200915173556 * 본인이 원하는 형식으로 시간이 전달되면 rtc.adjust 함수에 필요한 인자를 만들어서 전달하면 됨 소스코드 참조 추가로 3d 프린터로 케이스 제작 1.3 인.. 더보기
아두이노, OLED, RTC (DS3231) 시계 만들기 회사에서 간단히 쓸 시계 용도로 제작 보통 이런 OLED는 0.96인치가 많은데 1.3인치를 사용함 (제어 방법은 동일하나, OLED 종류를 잘 찾아야함) 시간과 요일이 크게 표시되고, 날짜는 작게 표시되도록 함 배선이 간단하도록, OLED 와 DS3231은 모두 I2C 방식을 사용함 공돌이 감성으로 빵판에 만들었는데 OLED가 깨지기 쉬워서 케이스가 필요할 듯 u8glib, rtclib 사용하고, 인터넷 소스를 조합해서 출력 방식만 바꾸는 정도로 완성. 시간이 가능한 크게 표시되도록 큰 폰트를 사용했는데, OLED의 폭이 조금 모자라서 시간의 첫자리의 출력위치를 약간 바깥쪽으로 하고, 초(sec)의 표시를 시계의 " : " 표시 부분에 함 온도도 측정이 가능하나 온도가 오차가 커서 표시하지 않음 인터넷.. 더보기