VBA를 이용하여 초등학교 연산 문제를 내는 것을 만들어 올린적이 있었습니다. 개학이 늦어지면서 집안에서 아이들 공부시키랴 밥해먹이랴 엄마들이 고생이 많을텐데요. 그사이 아이들의 학습 진도가 늦어질까 걱정하여 학습지를 하는 분들도 많더라구요.
간단한 덧셈, 뺄셈은 굳이 돈을 들여 학습지를 하실 필요가 없습니다. 또 초등학교 선생님들께서도 다운로드 받아 놓으시면 손쉽게 문제를 낼 수 있으니 아이들 간단한 쪽지 시험을 내야 하는 경우 사용하시기에도 안성 맞춤일 것 같습니다.
제가 만든 엑셀 파일만 있으면 수천장도 만드는게 가능하니까요. 아이들을 위하여는 적당히 시키는게 좋겠지만 또 막상 연산에 재미 붙일 시기에 문제를 만드느라 고생하실 필요가 없다는 것이지요. 아이들아 미안하다...
아래 링크된 파일을 받으시면 빼기 기초 시트에 문제가 들어 있습니다.
뎃글,공감은 블로그 작성자에게 큰 힘이 된답니다.
파일을 다운로드 받으신 후 열어 보시면 아래와 같이 뻴셈 문제가 나와 있는 시트가 있습니다.
문제를 새로 내실 때에는 우측의 버튼을 이용하여 문제를 새로 내실 수가 있습니다. 유치원 수준의 아주 쉬운 문제도 가능합니다.
우측의 버튼을 차례로 눌러보시면 각각 난이도 별로 문제가 나오는 것을 확인하실 수 있으실 텐데요. (쉬움) 은 뺄셈 과정에서 앞자리수가 바뀌지 않는 뺄셈이라고 보시면 됩니다.
예를 들면 18 - 5 처럼 실제로는 뒷자리만 연산이 일어나죠.
만약 문제내기가 동작이 되지 않는다면 보안 수준을 낮추어 주면 됩니다.
메뉴의 "파일" --> "옵션" --> "보안센터" 로 들어 갑니다.
들어가셔서 매크로 설정의 보안 수준을 낮추어 주어야 하는데요. 직업상 외부 엑셀 파일을 늘 다운로드 받아야 하는 경우라면 문제내기를 마치면 원상복구를 해놓는 것이 좋습니다. 엑셀 VBA 는 매우 강력한 언어로 시스템의 많은 것들을 제어할 수 있는 언어 입니다. 주의 하는것이 좋겠죠.
이렇게 하시면 제가 만들어 드린 문제 내기 기능이 동작할 것입니다.
현재 화면 영역은 A4 용지에 딱 맞게 만들어져 있기 때문에 바로 프린트 하시면 됩니다.
아이들이 문제 푸는것을 좋아할리는 만무하겠지만 그렇다고 온종일 집에서 휴대폰만 만지작 거리게 할수도 없지 않을까요? 간단한 연산 문제로 두뇌도 좀 풀어주고 무엇인가 계속해서 해나가고 있다는 성취감도 주면 좋을 것 같습니다.
이제 온라인 개학이 학교마다 진행되고 있습니다만 아이도, 부모님도, 선생님들도 모두 힘든 시기가 아닐까 생각됩니다.
모든 분들께서 조금이나마 힘을 내시라고 이런 것이라도 올려 봅니다.
(물론 아이들은 힘빠지는 포스트이려나요 ㅎㅎ)
아 그리고 제가 시트보호는 걸어 두었지만 비주얼 베이직 코드는 모두 보실수 있답니다. Alt + F11 키를 누르시면 제가 만든 엑셀의 계산 과정이 코드로 나와 있습니다. 코드에 관심이 있으신 분은 참고하시면 좋을 것 같습니다.
덧셈 문제는 각각의 문제마다 코드가 작성이 되어 있고요. 뺄셈은 하나의 함수로 모든 문제내기에 대응이 가능한 방식 힙니다. 뺄셈에 적용된 코딩 방식이 좀더 효율적인 코드라고 할 수 있겠습니다. 관심이 있으셨던 분이라면 한번 열어서 보시길 바랍니다.
가지고 놀아보니 아이들이 가지고 놀기에 정말 딱이어서 하나를 더 구입하였고 보다 상세한 사진과 함께 소개를 해드리기 위하여 포스팅을 합니다.
뎃글,공감은 블로그 작성자에게 큰 힘이 된답니다.
크기 : 1/18 (A4용지에 올리면 딱 올라가는 크기)
크기를 나타내는 비율은 사실 큰 의미는 없습니다. 실물을 바탕으로 만든 스케일 모델이 아니기 때문이지요. 해당 비율은 제품의 크기, 사용되는 부품, 호환되는 부품등의 선택을 위하여만 고려하시면 됩니다.
우선 전체 모습을 보겠습니다.
스타일은 위의 사진과 같이 몬스터 트럭을 연산시키는 디자인입니다.
전에 구입하였던 HS18311 에 비하여 매끈한 바디를 가지고 있고 내부 프레임이 없어 보다 단촐한 바디를 가지고 있습니다. 아들내미는 이차량이 좀더 공기저항이 적을 것 같아 빠를것 같다고 하더군요. 하지만 디자인은 18311 이 더 멋있는것 같다고 하네요. 참고하세요~ ㅋ
내부를 한번 자세히 보겠습니다.
내부 모습은 보시는것과 같이 HS18311 과 완전이 동일해 보입니다. 띠용띠용 거리는 스프링 샥이나 보호가 될것 같으면서 은근히 모래와 먼지에 취약한 내부 모습까지 완전히 동일한 것으로 보여지는데요, 아마 이런식의 플랫폼화가 저렴한 가격에 여러가지 모델의 생산이 가능하게 하는 이유가 아닐까 생각해 봅니다.
사진의 몸체 아래쪽에 조그맣게 보이는 주황색 네모난 부분이 전원을 켜고 끄는 스위치 입니다. 차량에 LED 같은건 없기 때문에 전원을 켰는지 안켰는지 알기가 어려운 점은 조금 아쉽네요. 다만 손쉽게 DIY 가 가능하므로 즐길거리가 주어졌다고 생각하겠습니다.
LED 등을 위한 전원 배선은 따로 포스팅을 할테니 구입하실 분은 참고하시면 되겠습니다.
아래 사진은 바퀴를 최대 회전했을때의 위치(각도) 입니다.
조금 적은 각도이기는 하지만 험로 주행용 차량인 SCX10 이나 TRX4와 같은 차량과는 성격이 다른 차량이므로 큰 문제가 되지는 않기는 합니다. 실제로 고속 주행에서 바퀴가 더 꺾인다면 전복이 일어나거나 주행자체가 불가능할 수도 있습니다.
전륜과 후륜의 고정 링크와 서보를 보시겠습니다.
대부분의 부품은 수지 부품 (플라스틱) 으로 되어 있습니다. 동력전달을위한 핵심이 되는 부속을 제외하면 대부분은 플라스틱 부품으로 구성되어 있습니다.
음... 과연 메탈 부품으로 교체가 필요한가???
많은 분들이 WLTOY 의 비슷한 크기의 A959, A979 와 같은 차량을 구입하신 뒤 많은 부품을 메탈 부품으로 교체를 하는 것을 보았는데요. 사실 장단점이 있습니다. 이 차량의 가격에 모든 부품을 메탈로 채우기는 어렵기도 했겠지만 플라스틱 부품을 사용함으로써 얻는 장점도 많이 있답니다.
플라스틱 부품을 사용함으로써 얻는 장점을 잠깐 보고 가실까요?
차량의 무게가 적게 나간다 파손 위험 감소, 최고속도 증가, 배터리 사용 시간 증가
주변 부품과의 마모성 : 금속끼리 맞닿으면 닿는 부분이 갈려 나갑니다. 하지만 수지부품끼리 맞닿으면 전혀 갈려 나가지 않습니다. A와 B의 부품이 맞물려 움직여야 하는 상황에서 두개의 부품이 동일한 경도를 갖는다면 두개의 부품이 모두 동시에 갈려 나가게 됩니다. 하지만 하나의 부품이 경도가 현저히 낮다면 경도가 낮은 부품만 손상이 일어나겠지요. 이런 현상은 경도가 높은 부품들일 수록 그 문제가 커지는데요, 금속 부품의 경우 이런 문제가 극대화 됩니다. 수지부품끼라 맞닿는 경우 사실상 마모로 인한 문제는 거의 없다고 보셔도 됩니다. 아주 큰 토크가 가해지는 경우 플라스틱 모양이 변형되어 망가질 수는 있겠지만 수지 부품끼리의 마찰 과정에서 마모로 인한 손상은 거의 없죠. 하지만 금속인 경우 약간의 마찰로도 두개의 부품이 모두 손상이 있을 수 있답니다. 아주 잘 가공되어 공차가 거의 없는 상태가 아니라면 어설픈 금속 부품보다는 수지부품이 부품의 수명에 도움이 되는거죠.
망가져도 교체비용이 적다. 금속 부품에 비하여 플라스틱 부품의 경우 상대적으로 부품 비용이 저렴합니다. 실제로 절반 이상 저렴한 경우가 대부분입니다.
플라스틱은 탄성이 있지만 금속(알루미늄)은 탄성이 전혀 없다. 수지 부품으로 이루어진 링크, 섀시는 기본적으로 탄성이 있습니다. 재질 자체에 탄성이 있다는 것은 어떤 부분으로 충격이 오더라도 일정 수준은 흡수를 해 줄 수 있음을 의미합니다. 하지만 RC차량에 흔히 사용되는 알루미늄 재질의 부품은 그렇지 않습니다. 전혀 탄성이 없으며 큰 충격이 가해지면 균열이 생기게 됩니다. 몸체 대부분이 품질 높은 수지로 이루어진 SCX10 과 같은 경우도 사실상 구입한 그대로 사용한다면 손상이 거의 일어나지 않는다고 보셔도 됩니다. 경사로 주파능력을 키우기 위하여 여러곳에 중량 작업을 하는 등의 과정에서 차량 전체의 무게가 최초 설계 시점에 비하여 급격하게 무거워 지는 과정에서 수지 부품의 파손이 일어나게 되는 것이지요. 중국에서 판매되는 SCX10 카피 제품 중에 풀메탈로 된 제품이 상당 수 있으나 인기가 없습니다. 이런 이유인 것이지요. RC 카는 무게가 무거워 질 수록 모터에 부하가 커지고 각종 부품의 파손도 쉽게 일어 납니다. 필요 이상의 중량 작업이 결국 본연의 목적을 잃는 것처럼 불필요한 금속재질은 오히려 독이 되는 것이지요.
이렇듯 사실 풀메탈이 반드시 좋은 것은 아닙니다. 심지어 실제 차량에도 모든 부품을 금속으로 사용하지는 않지요. 설계 시점에 재질을 고려하여 엔지니어들이 설계한 상태가 아마 최적일 것이라 믿어 봅니다.
이제 저와 같이 구입후에 유지보수에도 관심이 많은 분들을 위한 몇가지 정보를 좀더 올려 볼까 합니다.
뎃글,공감은 블로그 작성자에게 큰 힘이 된답니다.
제품소개에는 나오지 않는 상세한 스펙!
먼저 바퀴가 교체 가능한지 중요하시죠? 사진 보시죠.
네 교체 가능한 바퀴 입니다. 휠 너트는 사진에서 보시는 것과 같이 생겼고요, 너트 안쪽에 실리콘 링 처리가 되어 있어 기본적으로 풀림 방지 역할을 해 주고 있습니다. 물론 loctite 와 같은 제품으로 고정하는 것이 좋겠지만 기본적으로 꽉 조여주기만 해도 그냥 풀려 버리거나 하지는 않습니다.
휠 너트의 크기는 5.4mm 입니다. 구입시 타이어 분해를 위한 공구는 들어있지 않습니다. 참고하세요.
또 궁금해 하실 것 같은 부분일것 같은데요, 내부에 6각 헥스가 있는가 하는 것이지요. 저도 많이 궁금했습니다.
네 6.8mm 헥스 너트가 들어있습니다.
안쪽은 고정 핀으로 아래와 같이 고정되도록 되어있는데요. 이부분은 메탈로 교체용 부품을 준비하는 것도 좋을 것 같습니다. 헥스 부품이 수지 부품이기 때문에 고정 핀에 의해 결국 마모 될 것 같은 느낌이 듭니다.
어쨌든 WPL C24, B16 에 비하여는 훨씬 효율 적이고 높은 토크를 전달 할 수 있는 전문 RC 카의 방식을 사용하고 있습니다.
이제 내부 뚜껑을 따볼까요??
아래 사잔의 동그라미친 세군데의 나사를 풀면 수신기 보드를 볼 수 있습니다.
그다음 아래 9군데의 나사를 풀면 모터와 센터 샤프트를 열어서 보실 수 있답니다.
열어보면 이렇게 보이게 됩니다.
중앙부에 모터가 들어있는데요. 380 모터로 작지만 힘이 좋은 모터입니다. 가운데 노란 동그라미 부분을 보면 모터와 스퍼기어가 보여집니다. 단순한 구성으로 보여지는데요. 스퍼기어는 플라스틱 부품이며 중앙을 가로지르는 샤프트는 알루미늄 재질입니다. 모터의 피니언 기어는 일반적인 황동 재질로 적용되어 있습니다.
아래 사진의 노란 동그라미 부분의 나사를 풀어주시면 바퀴가 재껴지고 디퍼런셜 박스를 열 수 있게 됩니다.
디퍼런셜 박스를 열어보면 아래와 같이 디퍼런셜 기어가 모습을 보입니다.
좀더 자세히 보실까요?
가운데에는 디퍼런셜이 있는데요. 디퍼런셜 컵은 없는 내부 기어가 노출된 형태 입니다. 떼어서 살펴보면 양쪽 바퀴로 이어지는 부품이 중앙의 샤프트를 기준으로 연결이 되어 있는데 손으로 당기면 아래와 같이 그냥 빠지면서 디퍼런셜 기어가 노출이 됩니다.
네 디퍼런셜 기어에는 충분한 구리스가 이미 발라져 있으며 거의 소음없이 부드럽게 작동을 합니다. 실제 사용해 보면 약간 과하게 부드러운 느낌이 있기는 합니다.
결론 - 구입시 알아두면 좋은 것들 (필독, 이것만은 읽고 가자)
4만원에 구입한 RC 카 라고 치면 아주 만족할만한 품질 입니다.
약 4개월 전에 구입한 HS18311은 지금도 쌩쌩하게 잘 달립니다.
메탈 부품이 다 좋은 것은 아니죠. 필수로 메탈이어야 할 부품만 메탈이면 충분합니다.
인기가 떨어졌는지 배송이 오래걸립니다. (4주 걸림, 알리익스프레스)
너무 빠르지 않아 아이들이 가지고 놀기에 부담이 없습니다.
생각보다 잘 안 망가집니다.
배터리, 충전기가 기본으로 포함되어 있습니다.
나사는 딱 4가지 종류 (샥, 링크, 일반_짧은것, 일반_긴것)로 분해 조립 시 혼선이 거의 없습니다. 굳!
흙이나 모래보다는 우레탄 놀이터, 인조잔디, 아스팔트, 콘트리트가 달리기에 훨씬 좋습니다.
디퍼런셜이 민감하므로 한쪽 바퀴라도 어디 걸리면 빠져 나오기가 쉽지 않습니다.
바디 고정핀이 생각보다 잘 빠집니다. 수시로 확인하세요.
크기가 작아 가방에 쏙 잘 들어갑니다. 별도로 RC카용 가방이 필요 없어요.
충전시간이 오래 걸리니 별도 충전기가 있다면 좋습니다.
전원이 켜진것을 알기가 어렵습니다.
이상으로 HS18301 제품의 내부를 속속들이 살펴 보았습니다.
4만원 정도의 금액에 구입한 제품이라 생각하면 너무나 가성비가 넘치는 제품입니다. 생각보다 고장도 없는 편이고요. 만듬새도 아주 좋아 고가의 RC 카 못지 않은 구조와 마감을 자랑합니다. (물론 진짜 고가의 제품은 이름 값을 하기 때문에 직접 비교하는 것은 무리수 입니다)
중요한 것은 아이들과 신나게 놀아줄 수 있는 질 좋은 장난감이 생긴다는 것이지요. 대형마트에서 3~5만원 하는 RC 카는 정말 쓰레기 입니다. 구입하지 마세요. 동일한 구조의 제품이 중국이라면 반값도 안되는 금액에 판매되고 있습니다. 4만원 정도의 금액에 몇달간, 어쩌면 몇년, 부품까지 수급해가며 잘 관리한다면 어쩌면 평생의 장난감을 구입할 수도 있다는 것을 잊지 말아 주세요.
아이는 가지고 놀고, 아빠는 (장난감이긴 하지만) 자동차 정비를 할 수 있는 멋진 장난감입니다. 아이와 놀고와서 함께 정비를 하는 멋진 모습도 기대해 볼 수 있겠습니다. 그게 바로 워너비 아빠의 모습 아닐까요? ㅋ
자 장난감도 사고 멋진 아빠도 되어 봅시다. ㅋㅋ
뎃글,공감은 블로그 작성자에게 큰 힘이 된답니다.
2020-04-20 요청해주신 분이 계셔서 제가 구입한 구매링크를 추가합니다.
#Aliexpress ₩ 43,292 31%OFF | LeadingStar HS 18301/18302 1/18 2.4G 4WD 40 + MPH High Speed Big Foot RC Racing Car OFF-Road Vehicle Toys https://a.aliexpress.com/_dS5rGfU
알리는 구매 등급마다 가격이 좀 다른 것으로 알고 있어 모든 분이 동일한 금액은 아닐수도 있겠다는 생각은 해봅니다.
보통 인터넷에 VB .net 을 이용하여 엑셀 연동 관련하여 검색을 해보면 createObject 를 이용하여 개체를 생성하고 연결하는 과정이 소개가 되어 있는데 이런 경우 연동된 엑셀은 백그라운드로 실행되며 지정한 명령들을 수행한 뒤 종료되거나 메모리 해제가 되지 않는경우 종료 조차 되지 않습니다. 개발을 위하여 또는 실제 사용중에도 몇차례 실행하거나 기능 동작 중 작업관리자를 열어 보면 엄청나게 많은 엑셀 인스턴스가 있는 경우도 있지요.
사실 제가 필요한 것은 현재 열려있는 엑셀 실행 프로그램을 연동하는 방법이 필요했는데 하루 정도를 투입하여 이것저것 해보았으나 결국 실패 하였고 해외 검색을 통하여 방법을 알게되어 포스팅을 하게 되었습니다. (나중의 나를 위해서)
뎃글,공감은 블로그 작성자에게 큰 힘이 된답니다. 도움이 되었다 생각되시면클릭!! 부탁드려요~
Imports Microsoft.Office.Interop.Excel '코드 최상단'
' 현재 실행중인 function 내'
Dim oExcel As Application ' 엑셀파일 App 억세스 오브젝트 '
oExcel = TryCast(Marshal.GetActiveObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
요렇게 하면 현재 실행중인 Excel application 을 가져오는 것이 가능합니다.
다시 말하자면 현재 특정 엑셀 파일을 열어놓은 상태에서 위의 코드를 실행하면 바로 열려있는 해당 엑셀 파일과 연결이 되는 것입니다.
Imports Microsoft.Office.Interop.Excel '코드 최상단'
' 현재 실행중인 function 내'
Dim oExcel As Application ' 엑셀파일 App 억세스 오브젝트 '
Dim oBook As WorkBook
Dim oSheet As WorkSheet
oExcel = TryCast(Marshal.GetActiveObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
oBook = oExcel.ActiveWorkBook '현재 열려 있는 엑셀 파일 중 선택되어 있는 문서'
'oSheet = oBook.ActiveWorkSheet '' 제가 코드를 잘못 썼네요. 죄송합니다.'
oSheet = oBook.ActiveSheet ' 현재 열려 있는 시트 (마지막으로 보았던 시트)'
oSheet.Cells[1,1].Interior.Color
이런식으로 사용하는 것이죠.
여기서 oSheet 를 ActiveWorkSheet 로 설정하였는데요. 특정 시트의 이름을 지정하려면
oSheet = oBook.WorkSheets["Sheet1"]
과 같이 특정하여 지정하는 방법도 가능합니다.
여러개의 시트 사이에서 어떤 작업을 하려면 위와 같이 해주면 됩니다.
궁금하신 부분은 뎃글로 문의 해주시면 답변해보도록 하겠습니다.
*** 내용 추가 합니다. 2021-03-14
일단 프로젝트 시작할 때 정확하게 .net Framework , Visual Basic, Window Form 형식으로 프로젝트를 세팅하셨는지 확인을 하셔야 합니다. 위의 세팅이 맞지 않으면 정상적으로 동작하지 않을 수 있습니다.
그리고 엑셀 코드를 사용하기 위하여는 참조를 추가시켜 주어야 합니다.
우측의 솔루션 탐색기에서 참조 --> 참조추가 --> COM 순으로 들어가신 후
Microsoft Excel 00.0 Object Library (00.0 는 본인 컴퓨터에 깔려있는 엑셀 버전입니다)
를 체크하고 추가시켜 주어야 합니다. (찾기 어려우시면 저처럼 우상단 검색창에 excel 검색 ㄱㄱ)
이렇게 하시면 Excel 에서 사용하던 vba 를 대부분 사용하실 수 있습니다.
잘 안되시는 분을 위하여 간단하게 테스트용 소스코드를 올려 드립니다.
감사합니다.
뎃글,공감은 블로그 작성자에게 큰 힘이 된답니다. 도움이 되었다 생각되시면 클릭!! 부탁드려요~
오늘은 실제 ImageMagick 라이브러리를 이용하여 이미지를 컨트롤 하는 방법을 소개해 드릴 까 합니다.
오늘 컨트롤 해볼 이미지의 속성은 리사이즈, 밝기 조정, 채도 조절, 그리고 이미지의 출력 레벨 조정 입니다.
일반 적으로 상단 지시문에 using imageMagick 을 선언해 주었다면 본문에서는 바로 아래와 같이 사용하면 됩니다,
// 파일 오픈 다이얼로그를 통하여 이미지를 열어서 picture box 에 표시하는 방법
openFileDialog1.ShowDialog(); // 이미지 파일을 선택
MagickImage mimg = new MagickImage(openFileDialog1.FileName); //매직 이미지로 열기
pictureBox1.Image = mimg.ToBitmap(); // pivture box 에 이미지 표시하기
기본적인 사용 방법은 위와 같이 MagickImage 개체를 선언해 준 뒤 이미지 파일을 열어주면 됩니다.
그럼 MagickImage 로 지정한 mimg 라는 변수에 각종 ImageMagick 에서 지원하는 기능을 사용할 수 있습니다.
위의 예제는 간단하게 MagickImage 로 불러들인 이미지를 이용하여 picturebox 에 그림을 표시하는 예제가 되겠습니다.
ImageMagick 을 이용하여 이미지 크기를 변경하려면?
mimg = new MagickImage(openFileDialog1.FileName);
mimg.Resize(new Percentage(50));
또는
mimg.Resize(new Percentage(50), new Percentage(25));
또는
mimg.Resize(int TargetWidth, int TargetHeight);
같이 적용하면 됩니다. 비율을 유지하며 변경도 가능하고 각각도 조정이 가능합니다. 변경하는 몇가지 방법이 있습니다. 위와 같이 퍼센테이지로 지정하는 것과 타겟 이미지의 가로, 세로 크기를 직접 설정하여 변환하는 방법을 사용하시면 되는데요. 일반적으로는 퍼센테이지로 변환하는 것이 편리하죠.
물론 지정된 타겟 크기가 있다면 해당 크기로 바로 변환하는것도 가능합니다.
이미지 크기를 변경할 때 리사이즈 필터 (안티알리아싱, 선명도 등을 조절) 를 설정하려면??
FilterType.Mitchell 부분이 필터를 지정하는 부분인데요. 많은 종류의 필터를 제공하고 있으므로 필요에 따라 적정한 필터를 지정하여 변환에 사용하시면 좋을 것 같습니다. 각각의 필터에 따른 결과의 차이에 대하여도 나중에 한번 분석을 해봐와야 겠습니다.
ImageMagick 을 이용하여 그림의 밝기/채도/대비를 변경하려면?
우선 밝기를 조정하는 방법을 보면 간단하게 아래와 같은 방식으로 가능합니다.
//MagickImage.InverseLevel(max, min)
mImg.InverseLevel(new Percentage(100), new Percentage(0));
// 앞의 것을 내리면 전체적으로 어두워지고, 뒤의 것을 올리면 전체적으로 밝아진다.
InverseLevel 은 포토샵의 Level 과 같은 기능을 수행합니다.
여기서 InverseLevel 의 특성을 아는 것이 중요합니다. 기본적으로 ImageMagick 에서 Level 이라는 밝기 조정을 위한 명령이 존재하지만 제가 InverseLevel 을 사용한 이유는 그림의 전체 밝기, 어둡기를 컨트롤 하고 싶은데 Level 은 그렇지가 않은 결과를 가져다 줍니다. 어디까지를 블랙으로 볼 것이냐를 결정하는 듯한 변화인데요, 아래 그림으로 보시면 이해가 빠르실 거라 생각됩니다.
전자담배를 피는 입장에서 늘 불안한건 사용중인 전자담배를 어딘가에 놓고 오거나 고장나는 등의 이유로 대체할 기계가 없는 순간이 왔을 때 인것 같습니다.
전자담배는 연초 담배를 대신할 수 있는 훌륭한 기계이며 개인적인 생각이지만 연초와 비교했을때 건강상 분명 좋을 것이라 생각하기 때문에 사용하는 분들이 많을 것이라 생각합니다.
어쨌든 저역시 전자담배를 사용하는 유저이며 위에 언급한 불안감을 안고 살고 있습니다.
여러개의 제품을 구입하면 되기는 하지만 그럴만큼 돈을 투자하고 싶지 않기 때문에 하나만 늘 사용중이었습니다.
그런데 말입니다.
정말로 전자 담배를 회사에 두고 퇴근하는 일이 벌어졌습니다. 그것도 금요일 저녁에요...
주말동안 어찌 해야 하나 덜컵 겁이 나더군요.
그래서 당장 새로운 임시 기계를 만들기로 결정했습니다.
필요한 재료는
전자담배 액상을 채워 사용할 수 있는 무화기 (1453 이나 뭐 아무거나 상관 없습니다)
510 커넥터
버리는 USB 케이블
작은 푸쉬 버튼
레고 블럭 4*2 (??)
여기서 레고 블럭의 등장에 의아함을 느끼는 분이 계시겠네요 ㅋ. 물론 제목에도 써있기는 하지만요.
일단 이번에 제작할 전자 담배는 배터리 없이 보조 배터리에 끼워서 사용하는 방식으로 만들 생각입니다. 그렇게 되면 따로 충전을 할 필요도 없고 어디든 외장 배터리만 있으면 바로 연결해서 피울수 있기 때문입니다. USB 케이블 (길이 연장용) 을 이용하여 컴퓨터에 앉아서도 가능하겠죠. ㅋㅋ. 물론 가능한 환경이라면요.
자 먼저 레고 블럭의 안쪽을 다 뜯어내 준 뒤 구멍을 뚫어야 합니다. 안쪽을 뜯어 내는건 프라모델 제작용 정밀 니퍼 같은 공구를 이용하면 쉽게 뜯어낼 수 있고요. 구멍의 경우 드릴과 줄 등을 이용하여 노가다를 한다는 마음으로 뚫어 주시면 됩니다. 구멍은 드릴로 어렵지 않게 뚫을 수 있는데 USB 단자가 나올 부분은 좀 힘들었습니다.
내부 배치는 아래와 같이 됩니다.
아주 간단하죠? 연결하고 스위치를 누르면 무화기내의 코일이 뜨거워 질 겁니다.
510 커넥터를 연결하는 이유는 무화기를 교체할 수 있게 하기 위함인데요. 교체없이 코일만 갈아서 사용하실 수 있다면 간단하게 직결하여 사용하는 방법도 있겠습니다.
510 은 예전 중국 전자담배 회사에서 만든 ego 라는 제품의 품번이었는데요. 해당 제품의 연결부 규격이 거의 표준화 되면서 510 커넥터로 불리게 되었습니다. 알리 익스프레스에서 510 connector 로 검색하시면 개당 1000 원 미만의 금액에 구입하실 수 있습니다.
USB 케이블은 양쪽 끝에 두개가 5V +- 전원이므로 해당 두개의 선만 이용합니다.
무화기 쪽은 가운데 구멍 뚫려 있는 부분과 나머지 외부 전체에 + - 를 각각 연결하면 되는데 아무거나 연결하셔도 상관 없습니다. 코일 자체는 LED 처럼 극성을 띄는 것이 아니기 때문에 납땜하시기 편하신데로 가운데에 + 를 해도 되고 - 를 해도 됩니다.
다만 납이 잘 묻지 않을수 있으니 사포나 드레멜로 살작 표면을 갈아내 주신 뒤 플럭소를 발라주고 납땜을 진행하시면 쉽고 빠르게 납이 늘어 붙습니다. 너무 오래 인두로 지지고 있으면 합선을 막아주는 실리콘이 녹아버릴 수 있으니 짧고 정확하게 납땜을 하는 것이 중요합니다.
이렇게 하면 납땜이 완료가 됩니다.
내부에 본드를 부어 고정하고 말리면 완성입니다. (본드는 T-7000 본드가 사용되었습니다)
뒷판은 4*2 얇은 레고로 덮으면 마무리까지 깔끔.
샤오미 외장 베터리에 끼워봤습니다. 당연히 잘 맞네요. ㅋ
후기.
5V 가 코일에 너무 쎄군요. -_-;; 금방 탄맛이 확 올라옵니다. 퉤퉤.
3.7V 리튬 베터리에 직결하는 정도가 가장 무난한 것 같습니다. 물론 사용하시는 무화기의 저항 값에 따라 차이는 있겠으나 일반적인 1.8옴 정도의 무화기라면 5V 는 무리인 것 같습니다. 급한데로 짧게 짧게 피우기는 하였지만 추천 드리기는 어렵겠네요.
이번 강좌에서는 포토샵 스크립트를 이용하여 color fill 기능을 사용하는 방법을 알려 드리겠습니다.
포토샵에서 아주 많이 사용하는 기능이지만 일반적인 스크립트에서 구현이 되지 않아 답답하셨죠? 제가 올려드리는 함수를 스크립트 내에 포함 시키신 후 함수를 호출하여 사용하시면 간단하게 fillColor 기능을 사용하실 수 있습니다.
저는 Red, Green, Blue 를 각각 입력하여 Fill 할 수 있도록 개발을 하였습니다. foreground color 및 background 컬러를 이용하여 fill 할 수도 있지만 rgb 를 직접 입력하여 색상을 칠해 주는 것이 과정이 좀더 짧기 때문에 그렇게 사용합니다.
또 레이어에 알파 영역을 보호하고 실제 컬러 영역에만 Fill 할 수 있는 기능이 적용 되도록 하였습니다. 보통은 레이어 창에서 해당 기능을 활성화 하는데요. 제가 올려 드리는 스크립트를 통하여 간단히 해당 기능의 설정이 가능합니다.
function fill_color (r, g, b, prvT){
var idFl = charIDToTypeID( "Fl " );
var desc77 = new ActionDescriptor();
var idUsng = charIDToTypeID( "Usng" );
var idFlCn = charIDToTypeID( "FlCn" );
var idClr = charIDToTypeID( "Clr " );
desc77.putEnumerated( idUsng, idFlCn, idClr );
var idClr = charIDToTypeID( "Clr " );
var desc78 = new ActionDescriptor();
var idRd = charIDToTypeID( "Rd " );
desc78.putDouble( idRd, r );
var idGrn = charIDToTypeID( "Grn " );
desc78.putDouble( idGrn, g);
var idBl = charIDToTypeID( "Bl " );
desc78.putDouble( idBl, b );
var idRGBC = charIDToTypeID( "RGBC" );
desc77.putObject( idClr, idRGBC, desc78 );
var idOpct = charIDToTypeID( "Opct" );
var idPrc = charIDToTypeID( "#Prc" );
desc77.putUnitDouble( idOpct, idPrc, 100.000000 );
var idMd = charIDToTypeID( "Md " );
var idBlnM = charIDToTypeID( "BlnM" );
var idNrml = charIDToTypeID( "Nrml" );
desc77.putEnumerated( idMd, idBlnM, idNrml );
var idPrsT = charIDToTypeID( "PrsT" );
desc77.putBoolean( idPrsT, prvT );
executeAction( idFl, desc77, DialogModes.NO );
}
위의 코드를 가져가셔서 본인의 스크립트 내에 붙여 넣으신 뒤 바로 사용하시면 되는데요. RGB 각각의 색상과 투명영역을 보존하고 Fill 을 할 것인지 그냥 전체에 Fill 할 것인지를 선택할 수 있는 옵션으로 true, false 를 인자로 넣으시면 됩니다.
예를 들면 특정 레이어의 영역 내 color fill 을 하시려면 아래와 같이 하시는거죠.
var cDoc = app.actineDocument
cDoc.activeLayer = cDoc.layers[0]
fill_color(255,0,0,true) < -- 요 부분이 실제로 함수를 실행 시키는 부분입니다.
function fill_color (r, g, b, prvT){
var idFl = charIDToTypeID( "Fl " );
var desc77 = new ActionDescriptor();
var idUsng = charIDToTypeID( "Usng" );
var idFlCn = charIDToTypeID( "FlCn" );
var idClr = charIDToTypeID( "Clr " );
desc77.putEnumerated( idUsng, idFlCn, idClr );
var idClr = charIDToTypeID( "Clr " );
var desc78 = new ActionDescriptor();
var idRd = charIDToTypeID( "Rd " );
desc78.putDouble( idRd, r );
var idGrn = charIDToTypeID( "Grn " );
desc78.putDouble( idGrn, g);
var idBl = charIDToTypeID( "Bl " );
desc78.putDouble( idBl, b );
var idRGBC = charIDToTypeID( "RGBC" );
desc77.putObject( idClr, idRGBC, desc78 );
var idOpct = charIDToTypeID( "Opct" );
var idPrc = charIDToTypeID( "#Prc" );
desc77.putUnitDouble( idOpct, idPrc, 100.000000 );
var idMd = charIDToTypeID( "Md " );
var idBlnM = charIDToTypeID( "BlnM" );
var idNrml = charIDToTypeID( "Nrml" );
desc77.putEnumerated( idMd, idBlnM, idNrml );
var idPrsT = charIDToTypeID( "PrsT" );
desc77.putBoolean( idPrsT, prvT );
executeAction( idFl, desc77, DialogModes.NO );
}
요렇게 하시면 첫번째 레이어의 영역내에 255, 0 , 0 즉 red 가 채워지게 됩니다.
네번째 옵션에 true 를 주었으므로 투명 영역 안에는 당연히 칠해지지 않습니다. 딱 개체가 있는 영역만 색상이 칠해지죠.
자 color fill 어렵지 않으시죠? 사실 fill 하는 액션에서 opacity (투명도) 나 multiply, lighten 같은 컬러 합성 기능도 조금만 손보면 사용이 가능하지만 오늘은 그냥 색상을 칠하는 부분만 소개를 드립니다.
아두이노, Arduino 여기저기서 많이 들었을 겁니다. 이걸 해야 된다는 말이 귀에 못이 박히도록 이야기 합니다. 대충 뭔지는 알겠는데 개발자도 아닌 내가 과연 이걸로 뭘 할 수 있을까 싶기도 하죠.
아두이노에 대해 설명을 해드릴 필요가 있을만큼 인터넷에는 너무나 많은 아두이노에 대한 글들이 널리고 널렸습니다. 게다가 저처럼 적당한 수준의 지식만 가지고 있는 사람이 설명을 할 수 있을 만큼 실제로 단순한 장치도 아니지요.
오늘 저는 이 포스트에서 딱 한가지만 전달 드릴 생각입니다.
아두이노를 갖고 싶다는 마음 말이죠.
아두이노를 제가 정의한다면 다음과 같습니다.
"오직 내손에 의해 만들어지는 세상에서 가작 작은 컴퓨팅 프로세서"
아두이노는 정말 사용자가 프로그래밍을 해서 프로세서 칩에 데이터를 넣은뒤 동작을 시켜 주어야 동작하는 장치입니다. 다른 전자제품처럼 모든게 세팅되어 있지도 않고 만들어져 있지도 않습니다. 오직 나에 의해 만들어지는 것이죠.
그런데 어렵냐고요?
어렵다고 말하면 어렵고 쉽다고 말하면 이렇게 쉬운게 없습니다.
인터넷에는 너무나 많은 예제 프로그램들이 돌고 있고 아두이노 개발 환경을 설치하는 것만으로도 기본적으로 자체에서도 엄청난 양의 예제 코드를 제공합니다. 대충 코드의 흐름만 읽을 줄 알아도 개발을 시작할 수 있다는 이야기죠. 심지어 많은 경우에 전체 코드를 짜지 않고 변수나 값을 일부만 바꾸어도 내가 원하는 코드가 완성되는 경우가 대부분이니 코딩을 잘 몰라도 걱정 마시고 시작하셔도 됩니다.
우선 ARDUINO 를 사라!
자 그럼 아두이노를 처음 시작하는 분은 어떤 과정을 거쳐야 할까요?
전자제품(부품) 쇼핑몰에서 아두이노 패키지를 사야 할까요? 저는 비추입니다. 비싸고 불필요한 것들이 많습니다. 우선 아두이노 자체를 구입하세요. 제일 만만한건 아두이노 나노 또는 기본형인 아두이노 우노 입니다. 아두이노 나노와 우노는 생김새에는 차이가 많지만 사실상 차이가 없는 동일한 제품이라 생각하셔도 됩니다. 모든 코드가 호환되며 입출력 핀 수도 같기 때문에 브래드 보드 없이 바로 테스팅을 진행하려면 우노를, 브래드 보드에서 테스트가 끝나면 바로 자신만의 제품에 넣으려면 나노를 구입하시면 됩니다. 알리 같은 해외 쇼핑몰을 이용하시면 배송시간은 좀 걸리지만 3000원도 안되는 금액에 나만의 컴퓨팅 시스템을 만들수 있는 보드를 구입할 수 있답니다.
어짜피 이것 못해서 안달난 것 아니자나요? 주문해놓고 잊을 만할때 똭! 도착하여 마음을 다시 설레게 만들죠. 로또 사놓고 즐거워하는 시간은 길어야 일주일이지만 아두이노를 주문해놓고 몇주 동안 내손으로 만드는 기계장치를 상상하는 맛도 로또 못지 않답니다.
둘다 컴퓨터에 USB 로 바로 연결이 가능하고 USB 전원을 이용하여 동작이 가능하며 LED가 달려 있어 기본적인 동작 테스트가 가능하고 모든 연결 핀이 소켓으로 되어 있거나 표준 규격의 핀으로 구성되어 브래드 보드에 바로 장착하여 테스트를 할수 있기 때문입니다.
아두이노로 뭔가를 해보겠다면 필요한 것들
만약 제가 처음 시작하는 분께서 구입하셔야 할 것들을 안내 해 드린다면 아래와 같을 겁니다.
아두이노 NANO (필수)
브래드 보드 (NANO 제품을 구입한 경우)
점퍼 케이블 (필수, 하지만 없으면 만들어도 됨)
가변저항 (볼륨)
푸쉬 버튼, 토글 스위치, 슬라이드 스위치
저항 (1.4k, 4.7k, 100)
LED (다리 있는것, 없는 것)
아마 이 정도가 기본일 것 같습니다. 추가로 좀더 재미있는 것들을 해보고 싶다면
서보모터 (9g, 3pin)
부저
DC 모터 드라이버 (ESC 라고 불리우는 것)
무선 데이터 송수신 보드 (2.4ghz RF 또는 bluetooth)
조이스틱
스텝모터
IR LED (송신 , 수신)
터치패드
초음파 거리 센서
요렇게 부품들이 있으시면 정말 할 수 있는것이 많죠. 사실 위의 부품들 전체를 알리에서 다 구입하더라도 1만원~2만원 정도면 구입할 수 있다는 것이 믿어 지시나요? ㅋㅋ 하지만 사실입니다. 물론 잘 구매 해야 겠고 중국에서 구입하면 배송되는 시간도 꽤 걸릴 거라서 시간을 두고 천천히 해나가시면 됩니다.
자 아두이노를 구입하셨고 수중에 아두이노가 있다면 다음 단계는 개발 환경을 설치하는 일 입니다. 아두이노 공식 사이트에서 다운 받으시면 되는데 오픈소스 개발환경이다 보니 사실 최신 버전을 꼭 받아야 할 필요는 없습니다. 또 어떤 부품은 이전 버전에서만 테스트 되었으며 특정 버전에서만 동작이 되는 제품도 있습니다. 개인적으로는 1.6.x 버전과 1.0.x 버전중에 자신에게 맞는 (튜토리얼 등을 참고하고 있는) 버전을 설치하시면 될 것 같습니다.
아두이노 예전 버전 받는 링크
전 별다른 이유는 없지만 1.6.7 버전을 설치하였습니다.
실제로 최신 버전을 타겟으로 개발되지 않은 라이브러리가 동작하지 않는 문제가 있으므로 반드시 최신 버전을 설치해야 할 필요는 없습니다. 1.0.x 대 버전에서만 동작하는 라이브러리가 있을 수도 있으므로 라이브러리 다운로드시 어떤 버전에서 동작했는지 확인이 필요합니다.
개발하는 순서는 다음과 같습니다.
코딩을 하고 (또는 예제를 열고) 현재 자신의 보드를 선택한 뒤 프로그래머를 선택하고 빌드하시면 됩니다.
참고로 잘못 선택한다고 고장나는 경우는 거의 없으니 두려워 하실 필요 없어요. 뭔가 원하는 데로 동작이 안된다면 처음부터 다시 확인해 보시면 됩니다. 프로그래밍 상의 오류는 아두이노 IDE 에서 컴파일 할때 다 잡아 줍니다. 장비와의 매칭 문제는 컴파일된 소스를 업로드 할때 잡히게 되어 있죠. 클럭 수 등은 보통 구입할때 알수 있지만 일반적인 경우가 대부분이므로 일반적인 값을 선택해 주면 됩니다. 예를 들면 아두이노 나노라면 16Mhz 가 일반 적인 옵션이죠.
아두이노 코딩의 기본 규칙은 아래와 같습니다.
처음에 현재 개발하고 있는 코드에서 사용할 라이브러리를 선언합니다. 그리고 각종 변수를 선언 해 줍니다.
void setup 이라는 함수가 나오는데 이 함수는 최초 딱 1번 실행이 되는 함수 입니다. 변수들의 초기값을 세팅해 주거나 시작하자마자 동작해야 하는 함수 등을 호출 해줄 수 있습니다.
그다음 void loop() 이라는 함수가 나오는데요. 이 함수가 실제로 아두이노를 동작시키는 함수 입니다.
loop 는 말그대로 반복하는 동작을 말하죠? loop 안의 내용이 계속해서 반복된다고 보시면 됩니다.
유사하고 같은 동작이 반복적으로 사용된다면 함수를 만들어 빼내고 loop 에서는 해당함수를 호출해 주는 방식으로 사용하게 됩니다. 이렇게 필요한 기능들을 잘 생각해서 함수를 아래로 쭉쭉 추가해 나갈 수 있습니다.
라이브러리 설치는 어떻게 하는 것인가!!!
인터넷에 궁금한 것을 찾다 보면 라이브러리를 설치하라고 나오면서 경로를 링크해놓은 경우가 많습니다. 들어가 보면 github 같은 사이트에 올라온 경우도 있고 직접 라이브러리를 압축 파일로 올려놓는 경우도 많이 있습니다. 일단 기본 예제 외에 무선 통신이나 좀 신기한거를 하려면 대부분 누군가 개발해놓은 라이브러리를 이용해야 하는 경우가 많은데요. 처음 할때는 마냥 햇갈립니다. 어떻게 하라는 건지 말이죠.
최신 버전은 라이브러리를 개발 환경 (개발 툴) 에서 직접 검색하여 설치 할 수 있도록 되어 있는데요. 예전 방식으로 그냥 복사해서 붙여넣는 것도 간단하고 쉽습니다.
제가 설치한 1.6.7 버전 기준으로 설명을 드릴께요
다운로드 받은 압축파일 , github의 경우 download zip 과 같은 버튼이 있습니다. 일단 다운로드 받으신 뒤 압축을 해제하여 주세요.
이렇게 압축 해제된 폴더들 (압축파일이 아닙니다)을 복사해서 내문서>arduino>library 폴더에 복사해서 붙여 넣으시면 끝! 입니다.
참쉽죠?
요렇게 하신 뒤에 arduino sw 를 재실행 하시면
요렇게 설치된 라이브러리의 예제가 보이는 것을 확인할 수 있답니다.
예제 파일을 열어보시면 라이브러리를 불러들이는 방법이나 간단한 사용방법 등이 코드로 설명이 되어 있으니 그냥 복사해서 새로운 ino 창에 붙여 넣고 사용하면 되는 것이죠.
보신것처럼 간단합니다.
아두이노는 이렇게 SW 를 구성하는 것으로 끝이 아니라 점퍼 케이블과 브래드 보드 등을 이용하여 원하는 동작이 되는지 확인하는 과정과 최종 제품으로 만들어가는 과정이 모두 완료 되어야 하나의 프로젝트가 마무리 되었다고 볼 수 있습니다.
원하는 결과대로 잘 동작 할 경우 그 만큼 만족도로 아주 높습니다.
손톱만큼 작은 OELD 에 내가 만들고 있는 프로그램의 화면을 출력할 수도 있죠.
(OELD 스크린을 연동하는 예제는 따로 포스팅 하도록 하겠습니다)
대표적으로 저는 아두이노로 RC카 송수신기를 만들어 가지고 놀았습니다. 말하자면 RC 카의 무선 조종 장치를 만들고 차량에 그 신호를 받아 차량을 컨트롤 할 수 있도록 하는 장치를 만들었습니다. 아주 간단(??)하지만 재미있는 작업이었습니다.
아답터 없이는 1분도 사용이 불가능한 수준이어서 아얘 빼버린지 오래입니다. 사실상 데스크톱이죠.
어제는 아파트에서 전기 점검을 한다고 하기에 망했다 싶었습니다.
두시간 정도 걸린다는데 저는 배터리가 없으니 노트북이 꺼질 수 밖에 없는 상황이었던 것이죠.
문득... 재미있는 생각이 들었습니다.
"이거 배터리 몇개 직렬 연결해서 전원 포트에 끼우면 켜지는거 아냐?"
ㅋㅋ
생각만 해도 너무 재미있었습니다. 배터리로 아답터 대신 노트북을 켠다고요?? 말도 안되죠.
네. 그럼 당장 시작해야죠.
제 작업실에서 굴러다니는 RC 카 배터리 두개를 가져 왔습니다.
1개당 2S1P 인 Li-PO 배터리로 7.4V 이므로 이녁석 두개를 직렬 연결하면 14.8V 가 됩니다. 물론 만충시키면 배터리당 8.4V 이므로 직렬로 연결하면 16.8V가 되는데 이정도면 노트북도 켜지겠다 싶더군요.
제 노트북 전원 아답터는 19V 짜리이지만 실제로 대부분읜 컴퓨터 부품의 전원 소스가 3.3V ~ 12V 정도를 사용하는 것을 감안하면 켜지겠다 싶었습니다. 게다가 노트북용 배터리 자체가 없기 때문에 충전용으로 사용되는 전류 없이 완전히 컴퓨터에만 사용되기 때문에 가능할 것 같았죠.
사실 안켜져도 손해볼것도 없없습니다. 안켜진다면 말이죠.
정격 전압보다 낮은 전원소스를 넣어서 전자기기가 죽는 경우는 거의 없다고 보셔도 됩니다.
한가지 주의 할 것은 RC 카용 LI-PO 배터리 자체가 방전률이 무시무시하게 큰 만큼 작업하면서 합선이 되지 않도록 테스트를 해야 했습니다. 또 한가지는 노트북 아답터 짹은 일반적인 5V, 12V 제품과 모양이 다른경우가 많기 때문에 구경이 맞는 DC 짹이 있는지를 먼저 확인해보아야 합니다.
뒤적뒤적
뒤적
거린 끝에...
부품 통을 10여분간 뒤진 후 정당한 잭을 찾았습니다.
준비는 완료 되었습니다.
오늘 사용될 재료는 아래와 같습니다.
RC 카 용 2S1P 7.4V LI-PO 6000mha 배터리
TX30 짹 2개 (암놈)
적당한 크기의 핀헤더가 달려있는 전선
노트북 DC 잭와 크기가 맞는 정채불명의 DC짹 (숫놈)
Traxxas 짹 --> XT30 짹 연결 케이블 (제 RC 카를 traxxxas 잭으로 변경해 놓았기 때문이죠)
저 두개의 배터리가 각각 용량도 차이가 크고 이미 7.5v 정도로 전압이 많이 떨어진 상태라 테스트를 오래 하지는 않았는데요. 저렇게 노트북과 듀얼 모니터까찌 usb 전원으로 켜지고도 남네요.
정말 재밌지 않습니까? 그동안 왜 노트북을 데스크탑처럼 사용하면서 아답터에 그렇게 신경썼는지 모르겠네요. ㅋㅋ
아... 테스트를 하면서 저도 웃었습니다. 너무 재밌어서요..
물론 동작 중 저전압 문제로 노트북이 꺼진다거나 하는 불상사가 염려되어 각 7.2v 미만으로 떨어질때까지 돌려본 것은 아닙니다만 급할때 배터리도 없고 아답터도 없으면 저런 케이블 하나 만들어서 rc 카 배터리와 함께 가지고 다니면 어디서든 노트북을 켤 수 있다는 것은 정말 재미있는 사실이 아닌가 생각됩니다.
참고로 위에 말씀 드렸던 아파트 정전 사태에 대비해서 rc 카 배터리를 만충 시켜서 사용했는데요. 노트북을 켜고 듀얼 모니터로 사용하면서 약 2시간 가량 사용하고 나니 배터리당 7.3v 정도로 떨어져 있는 상태에서 다시 집에 전기가 들어왔고 일상으로 복귀를 하였습니다. 물론 어떤 프로그램을 사용하느냐, cpu 가동률이 얼마인가에 따라 다르겠지만 급하게 사용하기에는 너무 재미있고 쓸모있는 경험이었습니다.
다음에는 휴대용 외장 배터리로 이런 시츄에이션이 가능한지 테스트를 해 볼 계획입니다.
생각만 해도 너무 즐겁지 않으신가요? ㅋㅋ
재미 있으셨으면 공감 부탁드리고 궁금하신 부분이 있으면 뎃글로 남겨 주시면 답변 드리겠습니다.