posted by 내.맘.대.로 2023. 1. 4. 10:58

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

EPUBGUIDE.NET의 핵심만 모았다. 전자책 편집자를 위한 필독서!

책표지

클릭 편집 탬플릿 제공,

왕초보를 위한
클릭으로 EPUB 만들기

정가 : 9,900원 할인: 8,910원

책표지

기초부터 전자책 제작 실습까지

Sigil 완벽 가이드

정가: 18,000원 할인: 16,200 원

300x250

새로운 앱을 만들었습니다. 복잡한 과정 없이 실행만 하면 돼요.

https://epubguide.tistory.com/692

 

 

 

윈도우 배경화면을 MS 디자이너 취향으로 보고 계신가요?

아니면 여행사진 사진 한장 올려놓고 365일 바라보고 있을지도 모르겠네요.

조금 신경을 쓰는 분이라면 인터넷에 떠도는 유명 작가의 멋진 사진일지도...

 

이런 배경화면이 식상하다면, 지구는 어떠세요?

그냥 지구 사진이 아닙니다.

시간에 맞춰 낮과 밤이 바뀌고, 저 멀리 별도 볼 수 있는,

실시간(1시간 단위)으로 구름 사진이 업데이트 되는 그런 지구요.

우주에서 바라본 지구와 태양
달에서 바라보는 지구

위치만 잘 맞추면 태양과 지구, 달을 볼 수도 있습니다.

 

아주 오랜 옛날에는 Xplanet(https://xplanet.sourceforge.net/)을 이용했지만 

더이상 업데이트를 하지 않고 설정도 어렵지요.

그래서 설정이 조금 더 쉬운 프로그램을 소개해 드립니다.

 

 

https://desktopearth.updatestar.com/ko

https://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/Desktop-Earth.shtml

 

제가 사용하는건 DesktopEarth라는 프로그램입니다.

원 배포처는 https://anka.me/인데, 더 이상 관리를 하지 않는 것 같아요.

지구 바탕화면 프로그램 중 가장 좋은데 아쉽습니다.

그래도 필요한 기능은 거의 다 있습니다.

단, 구름사진 데이터에 문제가 있어 약간의 수작업이 필요해요.

실시간 구름 사진을 업데이트하는 방법을 설명드릴테니 따라해 보세요.

 

1. DesktopEarth를 설치합니다. 설정은 어렵지 않아요. 

설정 버튼을 좌우로 움직여 가며 원하는 모양을 만들면 됩니다.

달을 보고 싶다면 moon을, 평면 지구를 보고 싶다면 flat을 쓰면 되고,

모니터가 2개 이상이면 한쪽엔 지구, 다른쪽엔 일반적인 바탕화면 사진을 올릴 수 있습니다.

모니터 2개 모두 지구를 표시할 수 있고요.

업데이트 주기도 원하는 시간으로 맞추세요. 저는 15분에 한번 업데이트를 합니다.

2. 구름사진 업데이트

이제 1시간 단위로 바뀌는 구름사진을 업데이트 하는 방법입니다.

DesktopEarth의 기본 구름사진은 개발자가 더 이상 제공하지 않습니다.

그래서 제가 오라클 서버 하나 열어 구름사진을 만들고 있습니다.

프로그램을 직접 수정할 능력이 되지 않아 임시방편으로 만들어 놨어요.

레지스트리에 등록된 구름사진 URL만 업데이트 하면 되는데,

능력자 계시면 구름사진 주소만 수정해 주셔도 좋을 것 같아요.

 

구름사진 경로는 :

http://158.101.115.122/clouds.jpg

- 오리지널 데이터를 그대로 합성한 데이터예요. 수정해 쓸 분은 이걸 사용하면 됩니다.

 

 

 

http://158.101.115.122/clouds_contrast.jpg

- 콘트라스트를 조절한 데이터예요. DesktopEarth에서 잘 보이도록 맞췄습니다.

 

 

2.1 아래 파일을 받으세요.

DesktopEarth_구름사진 스크립트.zip
0.00MB

2.2 받은 파일을 DesktopEarth 이미지 폴더에 풀어 놓습니다.

기본 경로는 여기.

C:\Users\***MyFolder***\AppData\Local\DesktopEarth

***MyFolder***는 수정해야 하는거 이시지요?

 

2.3 스크립트 파일을 수정합니다.

update.vbs 파일에서 ***MyFolder***를 수정합니다.

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "C:\Users\***MyFolder***\AppData\Local\DesktopEarth\update_new.cmd", "/c lodctr.exe /r", "", "runas", 0

 

update_new.cmd도 동일하게 ***MyFolder***를 수정합니다.

powershell "(New-Object System.Net.WebClient).DownloadFile('http://158.101.115.122/clouds_contrast.jpg','C:\Users\***MyFolder***\AppData\Local\DesktopEarth\clouds1.jpg')"
attrib -r C:\Users\***MyFolder***\AppData\Local\DesktopEarth\clouds.jpg
copy C:\Users\***MyFolder***\AppData\Local\DesktopEarth\clouds1.jpg C:\Users\***MyFolder***\AppData\Local\DesktopEarth\clouds.jpg
attrib +r C:\Users\***MyFolder***\AppData\Local\DesktopEarth\clouds.jpg

 

이렇게 하는 이유는 DesktopEarth가 구름사진 이미지를 강제로 바꾸기 때문이에요.

제가 만든 구름사진을 다운받은 후 DesktopEarth가 강제로 바꾸지 못하도록 파일 속성을 [읽기]로 바꾸는 과정입니다.

[읽기] 속성을 유지한 채 파일을 다운로드 할 방법이 있는 분 계시면 알려주세요~

 

2.4 작업 스케쥴러에 등록해 1시간 단위로 업데이트 합니다.

구름 사진은 1시간에 한번씩 만들도록 했어요. 그래서 자주 업데이트 해도 소용 없습니다.

PC를 사용하는 시간 고려해서 12시간만 해 놨는데, 이건 알아서 하심 됩니다.

매 시각 55분에 업데이트가 되기 때문에 정시에 구름사진을 받아오세요.

 

작업 스케줄러 사용법은 다른 곳에 많이 있으니 구글링 해보세요.

   ↑ 이 링크 클릭하면 됩니다.

 

작업 스케줄러를 매일 1시간, 정시에 업데이트 하도록 맞추고 update.vbs를 실행하도록 등록합니다.

 

이제 [실행]을 눌러 구름사진이 업데이트 되는지 테스트 해보세요.

구름사진이 업데이트 되면 바탕화면에 바로 반영이 됩니다.

 

여기까지 잘 따라하셨다면,

설정한 시간마다 지구 이미지가 업데이트 될 거예요.

300x250
posted by 내.맘.대.로 2022. 12. 2. 16:46

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

EPUBGUIDE.NET의 핵심만 모았다. 전자책 편집자를 위한 필독서!

책표지

클릭 편집 탬플릿 제공,

왕초보를 위한
클릭으로 EPUB 만들기

정가 : 9,900원 할인: 8,910원

책표지

기초부터 전자책 제작 실습까지

Sigil 완벽 가이드

정가: 18,000원 할인: 16,200 원

300x250

http://158.101.115.122/clouds.jpg

http://158.101.115.122/clouds_contrast.jpg

 

It is a real-time earth wallpaper on the Windows desktop, which was popular a long time ago.
I used a program called x-planet.
Many simpler programs are now available, such as Desktop Earth.

 

If you display the earth at the desired coordinates on the desktop,
You can see the day and night change according to the time.

And if you put a image of clouds on top, you don't even have to look at the weather forecast.

In the days when x-planet was popular, there was a lot of cloud data.
Now, it is not managed, and it is difficult to obtain data as the popularity has withered.
So I tried to create cloud data.

 

Cloud images are updated once an hour, every 50 minutes.
Because it is a real cloud picture, you can check the clouds floating in the sky every hour like the sample image.

http://158.101.115.122/clouds.jpg

This image is a cloud picture made with basic data.

 

http://158.101.115.122/clouds_contrast.jpg

This image is the data after adjusting the saturation and contrast of the basic data to suit the desktop program such as x-planet.

 

Cloud image data and generation code are provided by the University of Wisconsin.

If you want to make your own cloud image, visit the site below.

https://realearth.ssec.wisc.edu/products/

300x250
posted by 내.맘.대.로 2022. 12. 2. 16:36

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

EPUBGUIDE.NET의 핵심만 모았다. 전자책 편집자를 위한 필독서!

책표지

클릭 편집 탬플릿 제공,

왕초보를 위한
클릭으로 EPUB 만들기

정가 : 9,900원 할인: 8,910원

책표지

기초부터 전자책 제작 실습까지

Sigil 완벽 가이드

정가: 18,000원 할인: 16,200 원

300x250

http://158.101.115.122/clouds.jpg

http://158.101.115.122/clouds_contrast.jpg

 

오래 전에 유행했던, 윈도우 바탕화면에 실시간 지구 바탕화면입니다.

x-planet이라는 프로그램을 사용했는데

지금은 Desktop Earth 같은 보다 단순한 프로그램도 많이 나와 있습니다.

 

바탕화면에 원하는 좌표의 지구를 표시하면,
시간에 맞춰 낮과 밤이 바뀌는 것을 볼 수 있습니다.

그리고 구름사진을 얹혀 놓으면 일기예보를 볼 필요도 없지요.

x-planet이 인기를 끌어떤 시절에는 구름 데이터가 많았는데

이제 관리도 안하고, 인기도 시들해 데이터 구하기가 어렵습니다.

그래서 추억팔이 겸 구름 데이터를 만들어 봤습니다.

 

1시간에 한 번씩 매 시 50분에 구름사진이 업데이트됩니다.

실제 구름사진이기 때문에 샘플 이미지처럼 우리나라 하늘에 떠 있는 구름을 1시간 단위로 확인할 수 있어요.

http://158.101.115.122/clouds.jpg

이 이미지는 기본 데이터로 만든 구름사진입니다. 

 

http://158.101.115.122/clouds_contrast.jpg

이 이미지는 기본 데이터를 x-planet 같은 바탕화면 프로그램에 맞게 채도와 명암을 조절한 데이터예요.

300x250
posted by 내.맘.대.로 2022. 11. 29. 11:46

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

EPUBGUIDE.NET의 핵심만 모았다. 전자책 편집자를 위한 필독서!

책표지

클릭 편집 탬플릿 제공,

왕초보를 위한
클릭으로 EPUB 만들기

정가 : 9,900원 할인: 8,910원

책표지

기초부터 전자책 제작 실습까지

Sigil 완벽 가이드

정가: 18,000원 할인: 16,200 원

300x250
달력 만드는 방법은 아래 글을 참고하세요
https://www.epubguide.net/468

 

집에서 놀고 있는 구형 안드로이드 스마트폰 하나씩 있지 않나요?

안드로이드 스마트폰이나 태블릿에 MagicMirror를 설치해 스마트 달력을 만들어 봤습니다.

https://magicmirror.builders/

 

MagicMirror²

Voted number 1 in the MagPi Top 50! MagicMirror² is the winner in the official Raspberry Pi magazine’s 50th issue celebration feature voted by the Raspberry Pi community.

magicmirror.builders

 

MagicMirror는 단방향 투과성 거울(거울 뒤가 어두우면 거울이 되지만, 밝으면 투명하게 보이는)을 이용해 스마트 거울을 만드는 프로젝트입니다. 거울에 날짜, 날씨, 달력 등의 정보를 표시할 수 있고, 구글 캘린더와 연동해 일정도 표시할 수 있지요. 여러 모듈이 있어 영어단어 암기, 매일 달라지는 명언, 주식 정보, 스포츠 정보 등 다양한 정보를 표시할 수 있습니다.

 

이 프로젝트를 거울에 이용할 수도 있지만, 태블릿/스마트폰 화면에 정보를 표시해 탁상용 스마트폰 달력이나 스마트 달력+액자로도 활용할 수 있어요.

저는 집에서 놀고 있는 전자잉크 스마트폰에 설치해 시계+날씨+일정+달력으로 사용합니다. 종이로 된 탁상 달력을 쓰던 세대여서 그런지 스마트폰이 있어도 눈만 돌리면 볼 수 있는 달력이 좋습니다. 요즘은 일정을 스마트폰 캘린더로 관리해서, 스마트폰 캘린더와 일정을 연결해 놓으니 종이 달력에 표시하지 않아 편해요.

MagicMirror는 리눅스에 설치합니다. 누군가 라즈베리파이로 스마트 거울을 만들었고, 이 아이템이 인기를 끌자 프로젝트로 발전을 했습니다. 그래서 라즈베리파이의 데비안 리눅스에 설치할 수 있도록 프로젝트가 진화를 했습니다. 

하지만 꼭 라즈베리 파이일 필요는 없습니다. 리눅스가 돌아가는 기기라면 저사양(라즈베리 파이 Zero W2 정도)기기에서도 잘 돌아갑니다.

 

안드로이드에서 돌아가는 MagicMirror 앱이 없나 찾아봤는데, 여러가지 문제가 있었습니다.

앱스토어에서 받을 수 있는 앱은 기능이 마음에 들지 않았어요.

MagicMirror를 앱으로 만드는 방법이 설명되어 있는데, 안드로이드 앱 개발을 해 보지 않은, HTML과 CSS 편집 정도만 할 줄 아는 저한테는 그리 쉬운 작업이 아니었습니다.

일단, 리눅스용 MagicMirror를 설치하기고 하고 방법을 찾아보니 서버 모드가 있네요. 서버모드는 외부 서버에서 MagicMirror를 돌리고 스마트폰 브라우저로 불러오는 방식. 이건... 일단 제외.

안드로이드에 리눅스를 설치할 수 없을까 고민하며 이곳 저곳 찾아봤더니, Tarmux 라는, 안드로이드에서 리눅스를 구동시키는 앱이 있더라구요. 그래서 Tarmux를 설치해 MagicMirror가 돌아가는지 테스트를 해 봤습니다. 안드로이드 7.0 이상이면 아주 잘 돌아가네요.

 

300x250
posted by 내.맘.대.로 2022. 11. 28. 09:50

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

EPUBGUIDE.NET의 핵심만 모았다. 전자책 편집자를 위한 필독서!

책표지

클릭 편집 탬플릿 제공,

왕초보를 위한
클릭으로 EPUB 만들기

정가 : 9,900원 할인: 8,910원

책표지

기초부터 전자책 제작 실습까지

Sigil 완벽 가이드

정가: 18,000원 할인: 16,200 원

300x250
달력 만드는 방법은 아래 글을 참고하세요
https://www.epubguide.net/468

 

집에서 노는 전자책 단말기가 2개 있는데

어떻게 활용할까 고민하다 달력으로 만들었습니다. 기기는 A5C.

A5C는 컬러(ㅜ.ㅜ)라 날짜나 주요 항목에 색을 넣을 수 있어 좋네요.

매직 미러 프로젝트를 이용해 시계+일기예보+일정+달력을 한 눈에 볼 수 있게 해봤어요.

각각의 정보는 모듈화 되어 있기 때문에 원하는 대로 배치 할 수 있고,

뉴스피드(RSS), 주식 정보, 외국어/단어 공부 등 다양한 모듈을 추가할 수 있어요.

 

회사에서 사용하는 모듈은 이렇게 배치했어요.

스마트폰 화면이 작아 많은 정보를 넣지는 못하지만 업무에 필요한 모듈만 뽑았어요.

캘린더 일정 정보로 최근 일정을 확인하고, 날씨와 달력, 시계를 배치했지요.

 

여러 모듈이 있어 주식시세, 외국어 공부 등 다양한 정보를 표시할 수 있어요.

https://magicmirror.builders/

안드로이드에 매직미러 설치할 방법을 찾다가,

앱을 몇개 설치해 봤는데 모두 마음에 들지 않고,

별도 서버에 설치 후 브라우저로 불러오는 방법은 불편하고,

그러다 Tarmux를 찾아냈습니다.

(https://play.google.com/store/apps/details?id=com.termux&hl=en_US&gl=US)

단말기에 Tarmux로 루팅 없이 리눅스를 설치하고,

여기에 MagicMirror를 설치, 서버로 실행시킨 후

단말기 내부 IP로 MagicMirror를 실행하니 되네요.

화면잠금 풀고 한시간 정도 켜놨는데 배터리 5% 소모.

날씨, 구글 캘린더 연동하려면 WiFi를 켜야해서 배터리 소모가 크네요.

그래도 퇴근 할 때 충전기 꽂아 놓으면 하루 정도는 버티겠네요.

만들때는 생각 못한건데,

세로 보다는 가로 모드가 좋을 것 같네요 ㅡ.ㅡ;

저 배치 찾느라 한참 걸렸는데... 최적의 가로 배치 디자인을 찾아봐야겠어요.

휴대폰이 있어도 책상 위에 달력이 꼭 필요한 세대(음...)라면

노는 기기로 전자 달력 하나 만들고 종이달력 치우는거 권해드립니다.

전자책 단말기 아니라 일반 휴대폰이나 태블릿으로도 가능해요.

휴대폰이나 태블릿은 배터리 빼면 훨씬 성능이 좋을거예요.

300x250
posted by 내.맘.대.로 2017. 9. 8. 12:42

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

EPUBGUIDE.NET의 핵심만 모았다. 전자책 편집자를 위한 필독서!

책표지

클릭 편집 탬플릿 제공,

왕초보를 위한
클릭으로 EPUB 만들기

정가 : 9,900원 할인: 8,910원

책표지

기초부터 전자책 제작 실습까지

Sigil 완벽 가이드

정가: 18,000원 할인: 16,200 원

300x250

아두이노를 사놓고 뭘 어찌 해야 할지 모르는 분들이 계실 것 같아요.

저도 장난감 삼아 아두이노 스마트카 킷을 구입했는데, 조립을 다 해놓고 한참 멍하니 있었습니다.

무엇부터 시작을 해야 할 지 모르겠더라구요.


아두이노 스마트카는 전혀 스마트하지 않았습니다.

조립을 끝낸 스마트카는 두뇌는 있지만 백지상태로 텅 비어있어요.

두뇌에 무언가를 채워 넣어야 하는데 저처럼 프로그래밍을 전문으로 하지 않던 사람들한테는 막막하기만 할 뿐입니다.


그래도 하나씩 연구해 가며 코딩을 하다 보니 모터가 돌아가고, 바퀴가 돌고 방향을 전환하는 것 까지 성공을 했네요.


저같은 생초보가 아두이노를 갖고 놀기 위해 해야할 일들을 하나씩 정리해 볼까 해요.


그 첫번째로 스마트카 소스를 정리해 봤습니다.

아두이노 스마트카 킷을 사놓고 뭘 해야하나 생각하신 분들은 이 코드를 활용해 보세요.

코드를 이해 못해도 괜찮아요. 아두이노 스마트카가 움직이는걸 보면 코드를 이해하고 싶은 욕구가 마구 생길테니까요^^



집에 있는 TV 리모컨으로 스마트카를 조종하는 코드입니다.

리모컨은 어떤거든 상관 없지만, 리모컨의 IR 신호는 직접 찾아야되요.

IR 신호를 찾는 방법은 나중에...ㅜ.ㅜ


깡통 스마트카를 조립해 놓고 멍하게 계셨던 분이라면 아래 코드를 참고해서 깡통을 스마트하게 만들어보세요^^


/* TV 리모컨의 IR 신호를 먼저 확인하세요. 이 신호는 제 리모컨이니 갖고 계신 리모컨의 신호를 확인해 그에 맞는 값을 넣어야 합니다. 


0xFF629D; // 전진

0xFF6897; // 후진

0xFFE21D; // 좌회전

0xFFA857; // 우회전

0xFFAA55; // 정지

 */

 

 

#include <IRremote.h>

 

 

int IRControl = 11;

IRrecv irrecv(IRControl);

decode_results results;


/*스마트카 조종을 위해 변수를 만듧니다. 제 리모컨은 입력받는 숫자가 아두이노의 int범위를 넘어가더라구요. 그래서 리모컨 값에서 0xFF0000을 빼는 걸로 조정을 했습니다.*/


const int irForward = 0xFF629D - 0xFF0000; // 전진  25245

const int irBack = 0xFF6897 - 0xFF0000; // 후진  26775

const int irLeft = 0xFFE21D - 0xFF0000; // 좌회전 57885

const int irRight = 0xFFA857 - 0xFF0000; // 우회전 43095

const int irStop = 0xFFAA55 - 0xFF0000; // 정지 43605

 

/*아두이노와 모터를 연결한 핀 번호입니다. 이 값도 모두 다를거예요. 숫자를 바꾸거나, 모터를 동일한 핀에 연결하세요.*/


int rightForward = 6;  //오른쪽 전진

int rightBack = 9; //오른쪽 후진

 

int leftForward = 5; //왼쪽 전진

int leftBack = 10; //왼쪽 후진



void setup() {

 

  Serial.begin(9600);

 

/*리모컨의 값을 입력받습니다.*/


  irrecv.enableIRIn();

 

/*모더를 구동시키는 함수?*/

/*자동차 조종은 왼쪽 바퀴 하나, 오른쪽 바퀴 하나 이렇게 2개로 합니다. 앞으로 가려면 왼쪽 바퀴와 오른쪽 바퀴를 앞쪽으로, 왼쪽으로 돌려면 왼쪽 바퀴를 멈추고 오른쪽 바퀴를 앞쪽으로 돌리면 되요. 그래서 컨트롤은 총 4개가 필요합니다. 왼쪽 바퀴 앞, 뒤 오른쪽 바퀴 앞, 뒤 이렇게 4개 조합이면 앞, 뒤, 왼쪽, 오른쪽 조종이 가능합니다. */


  pinMode(rightForward,OUTPUT);

  pinMode(rightBack,OUTPUT);

 

  pinMode(leftForward,OUTPUT);

  pinMode(leftBack,OUTPUT);

}

 

/*명령을 실행시키는 영역*/

void loop() {

 

/*리모컨 값(irrecev)에 따라 명령을 수행합니다. 

리모컨의 전진버튼(0xFF629D)을 눌렀다면 먼저 이 값에서 0xFF0000을 빼 value에 저장합니다.

리모컨에서 입력받은 값이 너무 커서 이 과정을 추가한거예요. 리모컨에서 받는 값이 크지 않다면 이렇게 하지 않아도 됩니다.


그럼 value에 0x629D가 저장됩니다. 0x629D는 위에서 선언한 irForward와 같은 값이에요.


switch(value) = switch(0x629D) = switch(irForward)가 됩니다. 


그럼 case irForward가 실행이 되는거에요.


그럼 스마트카는 모든 바퀴를 멈춥니다.

바퀴를 멈추는 이유는, 명령을 명확하게 전달하기 위해서예요. 앞으로 전진하려면 왼쪽 바퀴와 오른쪽 바퀴가 앞으로 돌아야하는데, 아두이노가 뒤로 가는 상황에서 양쪽 바퀴를 앞으로 돌게 하면 명령에 충돌이 생기네요. 아두이노가 양쪽 바퀴를 앞으로, 양쪽 바퀴를 뒤로 라는 서로 충돌하는 명령을 내려 오류가 나더라구요.


딜레이가 0.05초기 때문에 멈추는게 거의 느껴지지 않아요.


바퀴를 멈춘 후에 startForward();라는 명령을 실행합니다.

startForward();는 아래쪽을 봐주세요.


*/


  if (irrecv.decode(&results)) {

   unsigned int value = results.value - 0xFF0000 ;

   Serial.println(value);

   switch(value) {

   

      case irForward:

          stopAll();

          delay(50);

          startForward();

         break;

        

      case irBack:

          stopAll();

          delay(50);

          startBack();

         break;

        

      case irLeft:

         stopAll();

         delay(50);

         startLeft();

         break;

        

      case irRight:

          stopAll();

          delay(50);

           startRight();

          break;

               

      case irStop:

           stopAll();

      break;  

   }

   irrecv.resume(); // Receive the next value

 }

}



/*아두이노 컨트롤 명령을 하나씩 객체로 만들어놨습니다.

앞으로 가는 명령인 startForward()는 오른쪽, 왼쪽 바퀴를 앞으로 95 속도로 구르게 만들었어요.

아두이노는 모터가 돌아가는 속도를 조절할 수 있습니다. 0부터 255까지 가능한데, 싸구려라 그런지 제 아두이노는 95 밑으로는 바퀴가 구르지 않더라구요. 255는 속도가 너무 빨라 가장 느린 속도로 설정했습니다. 속도를 조절하고 싶다면 255보다 작은 범위에서 조절하면 되요.

*/

 

/*앞으로 가는 명령*/

void startForward()  {

  analogWrite(rightForward, 95);

  analogWrite(leftForward, 95);

  analogWrite(rightBack, 0);

  analogWrite(leftBack, 0);

}

 

/*뒤로 가는 명령*/

void startBack()  {

  analogWrite(rightForward, 0);

  analogWrite(leftForward, 0);

  analogWrite(rightBack, 95);

  analogWrite(leftBack, 95);

}

 


/*회전 명령은 2종류입니다. 

왼쪽으로 회전을 한다면

-작게 도는 명령은 왼쪽 바퀴가 뒤로, 오른쪽 바퀴가 앞으로 돌아요. 그럼 스마트카가 제자리에서 360도 회전을 합니다.


- 크게 도는 명령은 왼쪽 바퀴가 멈추고 오른쪽 바퀴만 앞으로 돌아요. 그럼 왼쪽 바퀴를 축으로 해서 오른쪽 바퀴가 원을 그리며 회전을 합니다. 


회전 방법을 바꾸고 싶으면 위쪽 case 코드의 startLeft()를 startLeftsmall()로 수정하면 되요. 아니면 리모컨 신호를 2개 더 받아서 큰 회전, 작은 회전을 추가할 수도 있습니다.

*/



/*왼쪽으로 작게 도는 명령*/

void startLeftsmall()  {

  analogWrite(rightForward, 95);

  analogWrite(leftForward, 0);

  analogWrite(rightBack, 0);

  analogWrite(leftBack, 95);

}

 

/*오른쪽으로 작게 도는 명령*/

void startRightsmall()  {

  analogWrite(rightForward, 0);

  analogWrite(leftForward, 95);

  analogWrite(rightBack, 95);

  analogWrite(leftBack, 0);

}

 

/*왼쪽으로 크게 도는 명령*/

void startLeft()  {

  analogWrite(rightForward, 95);

  analogWrite(leftForward, 0);

  analogWrite(rightBack, 0);

  analogWrite(leftBack, 0);

}

 

/*오른쪽으로 크게 도는 명령*/

void startRight()  {

  analogWrite(rightForward, 0);

  analogWrite(leftForward, 95);

  analogWrite(rightBack, 0);

  analogWrite(leftBack, 0);

}

 

/*정지 명령*/

void stopAll()  {

  analogWrite(rightForward, 0);

  analogWrite(leftForward, 0);

 

  analogWrite(rightBack, 0);

  analogWrite(leftBack, 0);

}


300x250