본문 바로가기

분류 전체보기210

아두이노의 모든것 아두이노의 모든것이라는 책에 관련된 이야기다. 작년인가 책에 대한 리뷰를 몇자 정도 적어준적이 있다. 사실 많은양은 아니고 A4 2,3장 정도이다. 본인도 잊고 있었는데, 우연치 않게 책하나가 배송이 왔다. 책의 내용을 보니 아두이노 책 중에서는 괜찮고 깔끔하다. 단점이 없는것은 아니지만 한번쯤 볼만한 책이라 추천을 한다. 책의 최대 단점이자 장점은 책의 내용에 너무 많은것을 표현 할라고 하는것이다. 뒤로 갈 수록 주제가 크고 내용이 많아야 하지만 주제에 비해서 내용이 없다. 차라리 3D 프린터 부분은 없는게 더 좋을수도 있을것 같다. 단점은 이정도로 하고 장점은 이책의 저자를 잘 모르지만, 느낌은 하드웨어 전문가 인것 같다. 아두이노 소프트웨어 보다는 하드웨어적으로는 상당히 알기 쉡게 설명하고 있다. .. 2020. 3. 27.
폴더에 있는 파일목록 배치 파일 정말 가끔 사용하지만, 배치파일 만들어서 편하게 일하고 싶을떄가 있다. 폴더에 있는 파일을 찾는 프로그램이다. 원도우 프로그램으로 만들수 있지만, 귀찮아서가 이유이다. 출처 http://rommance.net/tc/929 @echo off set _CMDL=xxx.exe setlocal enabledelayedexpansion for /r %%I in (*.txt) do ( echo %%~nxI set _CMDL=!_CMDL! %%~nxI ) endlocal&set CMDLINE=%_CMDL% echo %CMDLINE% http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Co.. 2020. 3. 10.
아두이노와 달력 - #최종 지금 까지 달력, 날짜에 대한 정의를 내리고 객체까지 만들어 봤다. 물론 더 할것이 있다. 귀찮아서 안한것도 분명히 있다. 아래 3개 정도는 직접 만들어 보기 바란다. 그냥 비어 있는것으로... Calendar operator- (const Calendar &) { int y,m,d, hr, mi, se; return Calendar(y,m,d, hr, mi, se); }; Calendar operator- (int sec) { int y,m,d, hr, mi, se; return Calendar(y,m,d, hr, mi, se); }; Calendar operator+ (int sec) { int y,m,d, hr, mi, se; return Calendar(y,m,d, hr, mi, se); }; h.. 2020. 3. 7.
아두이노와 달력 - #13 앞에서 여러번 언급해서 내용을 알고 있을것 같다. 오늘 마지막으로 하는것은 현재시간에서 1년 2달 3일 4시간 5분 6초 후를 계산 할 것이다. 현재 시간이 변하고 있기 때문에 값도 바뀌게 되겠지만, 고정된 시간으로 계산해도 무방 하다. 예를 들어 100일 이후를 계산한다 던지 7800초 이후라는 수식도 가능 하다.. 조금, 설명을 더하면, 현재 시간이 cdt, 계산된 시간을 todt라고 변수를 정의 했다. 소스코드는 간단하니 어려울것은 없을것이다. void loop() { get3231Date(); Calendar cdt(2000+year, month, date, hours, minutes, seconds); Calendar todt = cdt + Calendar(1, 2, 3, 4, 5, 6); cd.. 2020. 3. 7.
아두이노와 달력 - #12 이제 마지막으로 할 것은 특정 날짜에 특정 시간을 더하고 뺴고 할 것이다. 그런데 이것은 꼭 논리적이지는 않다. 예를 들어 2020년 3월 1일 1시 00분 00초로 부터 24시간 이후 라면 명확한 시간이 계산된다. 2020년 3월 2일 1시 00분 00초 이다. 그러면 한가지 더 예를 들어 보자. 2020년 2월 29일 1시 00분 00초로 부터 1년 이후 라면 어떻게 할 것인가 ? 2021년 2월 29일 1시 00분 00초라고 해야 하나 ? 아니면 2021년 2월 28일 1시 00분 00초라고 해야 하나 ? 2021년 3월 01일 1시 00분 00초라고 해야 하나 ? 이것은 수학적인 논리의 영역이 아니라 인간의 판단의 영역이다. 물론 이것을 처리하지 않으면 버그로 시스템이 다운 될수도 있다. 왜냐하면.. 2020. 3. 7.
아두이노와 달력 - #11 거의 종착역으로 가고 있으니 여기까지 이해 하셨다면, 조금만 더 공부 하면 될것 같다. 오늘은 거의 공짜라고 봐도 된다. 할까 말까 고민 하다가 하는것이기 떄문에 아주 쉽다. 저번에 특정 날짜 부터 특정 날짜까지 작동하는것을 했었다. 오늘은 그것 보다 더 쉬운 매일 아침에 몇시 부터 몇시까지 작동하는것을 할 것이다. 일단 소스코드를 보자. 년,월,일을 없애 버렸다. 다르게 표현하면 같은 날짜로 만들어 버렸다. 그 같은 날짜가 꼭 오늘일 필요는 없다. 어쨰던 작동한다. 마치 매트릭스에 사는 인간이 진실을 모르는것 처럼 아두이노 입장에서는 년,월,일은 필요 없는것이다. 그냥 매일 같은 시간에 반복하기 때문에 없는것과 같다. 약간의 설명을 추가하면 매일 오전 7시 부터 7시 10분까지 작동하는코드 이다. vo.. 2020. 3. 7.
폴더 생성하고 파일 만들기 요즘핫하다는 파이썬이다. 가끔 필요한 폴더 만들고 파일 기록하는것이다. # writedata.py import os lpath = './bbb/' fpath = lpath + 'newfile.txt' ischeck = os.path.isdir(lpath) if (ischeck==False) : os.mkdir(lpath) f = open(fpath, 'w', encoding='utf-8') for i in range(1, 11): data = "%02d번째 줄입니다.\n" % i f.write(data) f.close() http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by C.. 2020. 3. 6.
아두이노와 달력 - #10 사실 많이 있지만, 할 것은 많이 남지 않았다. 여기 까지 따라 왔다면 힘내기 바란다. 앞으로 해야 할 것에 대한 이야기다. 날짜 + 날짜, 날짜 -날짜에 대한 이야기다. 우리는 특정 날짜 시간 + 30분후, 혹은 5분전이라는 표현을 간혹 사용한다. 그러면 날짜에 +30하면 될까 ? 혹은 날짜 -5 하면 될까 ? 물론 안된다. 사람은 논리적으로 이해 하지만 날짜에 대한 사칙연산은 정의 되어 있지 않다. 그렇다 날짜에 대한 사칙연산을 적용해야 할 떄가 온것이다. 곰곰히 생각해 보고 한번 만들어 보기 바란다. 그리고, 이전코드의 전체 코드 이다. #include #include #define DS3231_I2C_ADDRESS 104 // 데이터핀 연결 // SCL - pin A5 // SDA - pin A4.. 2020. 3. 5.
아두이노와 달력 - #9 소프트웨어 코딩만 하면 지루 할 것 같아서 RTC모듈을 넣었다. RTC모듈에서 날짜를 가져 오는것은 하지 않을것이다. 검색만해도 널려 있는게 코딩 소스 이다. 일단 날짜를 가져 와서 몇일 부터 몇일까지 LED를 작동시키는 코드를 만들것 이다. 이전에 봤던 ==. && === && == && == 의 지저분한 코드는 앞으로 버리기 바란다. 코딩은 간단 명료하게 다른 사람들이 척 보면 이해 되게 만들기 바란다. 추가로 설명을 하면, sdt는 시작 날짜, edt는 끝 날짜, cdt는 현재날짜 시간이다. cdt가 시작날짜와 끝날짜 사이에 있으면 LED를 ON 하라는 명령어 이다. void setup() { Wire.begin(); Serial.begin(115200); pinMode(LED_BUILTIN, OU.. 2020. 3. 5.