HAKKO FX-888과 디지털의 만남! <FX-888D(70W)>

안녕하세요. 아이씨뱅큐 공구 담당자 DAISY 입니다!!!

 

 

혹시 지난 번에 소개해드린 스마트 인두기, WELLER WX1010을 기억하시나요?

최신 기술을 두루 탑재한 인두기답게 여러분의 관심을 아주 뜨~겁게 달궜는데요.

그 기세를 몰아! 이번에 소개해드릴 제품은 인두기계의 영원한 스테디셀러, HAKKO사의 FX-888D 입니다.

 

인두기계의 명품, 인두기계의 벤츠로 유명한 일본 HAKKO사의 제품은 백 마디 말이 필요없죠?

일단, 그냥 한 번 써보시면 압니다.

그럼 오늘의 포스팅은 여기서 마치겠습니다. 감사합니다^_^*

 

.

.

.

.

.

.

 

 

 

 

 

 

 

 

 

 

~~ 건방지게 포스팅을 마치고 싶지만, 그럴수는 없겠죠. 왜냐? 자랑하고 싶으니까!

 

 

저번에도 말씀드린 것처럼 저가 인두기로도 솔더링은 가능할지 모릅니다. 하지만 저가 상품과 비교할 수 없는 작업의 능률성, 제품의 내구성을 생각한다면 그 값어치는 충분하다고 생각합니다. HAKKO FX-888D 같은 경우는 작고 귀여운 외형 (100*200) 덕분인지 꼭 작업용이 아니더라도 RC카 정비나 PCB기판DIY, 등에 사용하시는 분들도 많더라구요. 그만큼 정교한 작업에도 무리없는 훌륭한 제품이라는 뜻이겠죠?

 

 

그렇다면 이제 본격적으로 FX-888D의 자랑거리를 늘어놓도록 하겠습니다.

FX-888D가 뭐지?

 

 

 

 

예전 FX-888이 아날로그 형식이었다면 FX-888D 디지털 형식의 본체를 가진 제품인데요.

과연 본체만 디지털로 바꼈느냐? 아니죠~ 기존 제품보다 출력을 30%나 향상한 대단한 제품입니다.

 

, 열전도가 우수한 T18 시리즈의 인두팁으로 우수한 열 회복은 물론! 더 낮은 온도에서 납땜이 가능하며, 부품의 열 영향이나 인두팁의 산화까지 줄일 수 있습니다.

 

게다가 UP / ENTER 단 두 가지 버튼으로 기계를 작동할 수 있으니 작동 자체가 얼마나 편리할지 상상이 되실 겁니다.

 

 

 

 뭐가 그렇게 편리한데?

 

 

 

 

바로 이 인두거치대!

인두거치대의 스펀지 수납부의 날카로운 부분을 제거해서 인두 수납 시, 손이 부딪치지 않게 설계했습니다.

인두 삽입구에 프로텍트 캡을 사용해 인두 거치시 발생하는 소음 역시 최소화 했구요.

 

, 한 개의 거치대에서 3가지 클리닝 방법이 가능하다는 것 역시 FX-888D의 크나큰 장점입니다.

 

 

 

 

 

 

 

그래도 가장 중요한 건 온도 아니겠니?

 

아직도 FX-888D의 작고 귀여운 외형이 믿음직스럽지 못한 분들 계신가요?

그렇다면 그런 걱정은 저~멀리 날려버리시길 바랍니다!

기본 탑재된 인두팁의 성능마저 대단한 FX-888D답게 아주 빠른 시간 안에 인두팁이 뜨겁게 가열되며,

15초만 기다려 주시면 300도를 돌파~ 최고 480도까지 올라가니, 무연납도 문제없이 땜질할 수 있습니다.

, 빠르게 납이 녹으니 산화도 덜 되고 인두기의 떨어진 온도가 바로바로 회복되니 모양도 예쁘게 잡힌다는 점!

 

 

 

 

 

 

 

다음으로 여태까지 이 글을 읽어준 여러분들에 대한 보답으로 한 가지 비밀을 알려드리도록 하겠습니다.

바로 이 제품을 가장 저렴하게 살 수 있고, 또 인두팁까지 공짜로 얻을 수 있는 곳인데요!

이게 바로 인터넷 최저가를 검색하면 나오는 페이지구요.

살펴보시면 해외 구매대행/ 해외 직구까지도 135,600원에 올라온 걸 보실 수 있죠.

 

 

 

 

 

 

 

 

. . .  짜잔!

 

 

 

 

 

 

 

 

저희 아이씨뱅큐에 오시면 135000이라는 파격적인 가격에!

 

 

 

 

 

 

바로 이 교체용 인투팁 T18 시리즈 중 PLATO T18-K / PLATO T18-3.5K 칼팁까지 무료로 증정한다는 사실!

아무도 모르셨죠?

 

 , 그럼 이제 이런 꿀팁까지 공유했으니 저의 임무는 다한 것 같네요.

그럼 오늘 저의 꿀팁 인두팁 포스팅은 여기서 마쳐야 할 것 같습니다.

다음 주에도 흥미롭고 알찬 내용으로 돌아오길 약속하며 안녕!~

 

 

**칼팁 무료 증정** HAKKO FX-888D(70W) :  http://www.icbanq.com/P005688453

**칼팁 할인 행사** HAKKO FX-951(75W) :  http://www.icbanq.com/P005688454 

 

 

 

신고

골라보는 재미가 있다: ICbanQ 커뮤니티/SNS 파헤쳐보기

안녕하세요, 아이씨뱅큐 마케팅 담당자 ALICIA 입니다.

 

오늘은 지난 번에 제가 언급했던 대로 아이씨뱅큐의 다양한 커뮤니티와 SNS에 대해 소개하고자 합니다. 담당하고 있는 저희도 여러가지 채널을 운영하고 있는지라 저희도 머리가 아픈데............ 이용하시는 고객 분들도 머리가 아프실 것 같아 ㅋㅋ 준비해 보았습니다. 진행되는 오프라인/온라인 행사나 ICbanQ 소식들은 모든 곳에 고루고루 전달해 드리지만 채널별로 차이가 미~~~~~~세하게 있으므로 필요한 정보를 찾아 골라보시면 더욱 효율적으로 전자관련 정보를 얻어가실 수 있으리라 생각됩니다.

 

 

 

 

NAVER BLOG [아이씨뱅큐 공식 네이버 블로그] http://blog.naver.com/icbanq

 

 

 

 

 

가장 먼저 소개해 드릴 커뮤니티는 바로 네이버 블로그 입니다. 대한민국인으로서 인터넷을 사용해 보신 분이라면 정말 이용해보지 않은 분들이 없을 정도로 많이 이용하시는 사이트이시죠?! 본래 DAUM TISTORY에 가장 먼저 블로그를 운영하기 시작했으나 더 많은 분들에게 저희를 알리고자 작년 가을부터 운영을 시작하게 되었습니다 :)  

 

네이버 블로그에서는 최근에 아이씨뱅큐에서 진행되었던 온라인 세미나들을 다시 시청하실 수 있습니다. 정기적으로 세미나를 진행 중인 인터그래텍 (Alitum Designer), LTC의 세미나들을 분리된 카테고리에서 찾으실 수 있으시며 기타 세미나도 다시보기를 시청하실 수 있습니다. 이 곳에서 찾기가 힘들다! 꼭 여기서 봐야하나??? 유튜브 채널도 없냐! 하시는 분들은 아이씨뱅큐 유튜브로 오시지요........ ㅎㅎㅎㅎ https://www.youtube.com/user/ICbanQ

 

또한 3D프린터와 관련된 각종 뉴스자료, 제품정보, 리뷰 빛 관련 영상들 시청 가능하시며 오픈소스하드웨어에 대한 정보는 따따블!

(NAVER CAFE에서 별도로 운영되던 마스보드 관련 자료들을 카페 폐쇄와 함께 옮겨왔으므로 마스보드에 관심이 있으신 분들이라면 더욱 환영! 합니다 :) 

 

 

 

 

 NAVER CAFE [전자/DIY/로봇/키트무상체험단] http://cafe.naver.com/icbanq

 

 

 

다음으로 소개해 드릴 커뮤니티는 NAVER CAFE 로 운영 중인 무상체험단 및 온/오프라인 교육관련 정보 카페 입니다! 다양한 제품들을 경험해 보고 싶으신데 주머니 사정이 여의치 않으시거나............. 어째나 저째나 공짜는 좋지 않습니까?! ( 제품을 무료로 드리는 대신 저희는 체험단 분들에게 포스팅을 원합니다!!! ) 체험단 모집을 시작하게 되면 가장 먼저 이 곳에 알려드리니 가입하시고 새로운 소식들을 기다려 보시는 것도 좋으실듯 합니다 :) 꽤 핫한 아이템들로 체험단을 진행하니 한번 확인 GOGO! 선정 팁을 드리자면 "계획" 부분을 구체적으로 쓰셔야 합니다 하핫. 카페에 들어가시는게 너~~~~~~~~~무너무 귀찮다! 하시는 분들은 페이스북에서도 즉각적으로 관련 공지들을 확인하실 수 있습니다 (페이스북 무상체험단 그룹: https://www.facebook.com/groups/1474174942848966/)

 

체험단 이외에도 현재 아이씨뱅큐에서 활발히 진행하려 하는 다양한 교육과정들을 만나보실 수 있습니다. 지난 번 진행했던 딤플주노 님의 아두이노 생초보 교육이 많은 관심을 가져주셔서 앞으로 이러한 교육을 많~~~~~~~~이 진행하려고 하니 얼른 즐겨찾기 추가하시지요.

 

 

 

 

DAUM TISTORY [아이씨뱅큐 다음 티스토리 블로그] http://icbanq.tistory.com/

 

 

 

 

모든 정보 총망라! 말이 필요 없습니다 ㅎㅎ 아이씨뱅큐에서 가장 오래 운영된 커뮤니티 입니다. 전자관련 유익한 정보들 총망라!

 

 

 

FACEBOOK [아이씨뱅큐 페이지] https://www.facebook.com/icbanq

 

 

 

 

 

 

 

페이스북을 이용하시는 분들이라면 다들 아실 거에요.... 페이지 좋아요! 누르시면 관련 정보들을 그 페이지에 들어가지 않아도 뉴스피드에서 늘 확인하실 수 있다는 사실! 관련 이벤트, 전자뉴스, 블로그에 올라오는 제품정보 등도 함께 확인이 가능합니다. 글읽는거 귀찮으신 분들은 요 페이지가 더 유용하시리라 짐작됩니다.

 

 

 

 

 

이거 썼다고 힘드네요 (ㅋㅋ). 취향별, 컨테츠별 원하는 커뮤니티에 참여하셔서 많은 정보 얻어가시길 바랍니다 :) 그럼이만!

관련문의사항은 alicia@icbanq.com 으로 보내주세요 -

 

신고

날리기만 할쏘냐? 탑블레이드 같은 대진이 가능한 드론하나 장만하시라. (국내생산임)

아이씨뱅큐 제품 담당자 LUCAS 입니다!

 

최근들어 드론에 대한 반응과 열기가 뜨거워 지고 있습니다. 드론 하면 아직까지는 오래 전 남자분이라면 한번쯤 다뤄 보셨을 법한, 프라모델이나 장난감 정도로 생각하시는 분들도 간혹 있는 것 같습니다. 물론 모델에 따라 차이가 있겠지만 , 그 생김새부터 남다른 드론은 장난감이란 단순한 개념이 아닌 우리의 실생활에 접목시켜 앞 으로의 발전 가능성이 무궁무진한 아이템이라 할 수 있습니다.

 

드론의 의미는 기체에 사람이 타지 않고 지상에서 원격 조종을 한다라는 점에서 무인항공기 라는 표현도 틀린 것은 아닙니다. 사람이 타지않는 이점은 또 어떻게 보면 , 인간이 수행할 수 없는 위험한 장소나 , 환경 등에 구애 받지 않고 정찰과 , 감시 , 구조 등 다양한 역할을 할 수 있습니다. 재미있는건 드론은  벌이 왱왱거리는 소리를 뜻한다는 또 다른 의미도 있었습니다.

 

간단하게 드론에 대해서 설명을 드렸으나, 아쉽게도 위에 언급한 내용과 같이 , 영화 월드인베이젼에서 나오는 외계인이 조작하는 환상적인 그런 드론은 아닙니다하지만 비용과, 기능에 따라 아직까지 많은 비용을 요구하는 드론 시장에 , 가족과 함께 즐길 수 있고 놀이문화 라고 해도 전혀 어색하지 않을 보급형 제품을 소개해 드리고자 합니다.

 

 

 

 

바로 이 녀석 인데요. 순수 국내 제작으로, 그간 해외제품의 불편했던 A/S 문제도 해결하고, 가성비, 품질, 사용방법도 아주 간단하며 따로 조립을 하지 않아도 되는 장점까지 있는 제품입니다. 요즘 저가의 중국산 드론을 찾으시는 분들이 많이 있지만, 드론의 특성상 부품을 따로 구입하거나, A/S 문제 때문에 많은 분들이 일회성으로 사용을 하고 계시더라구요. 그런 측면에서 드론파이터는 추가 구성품을 구하기 쉽고 A/S도 국내에서 이뤄지기 때문에 입문자드론 으로는 최적화 된 상품이라고 단언할 수 있습니다! 그리고 예전 프라모델 에서는 좀처럼 찿아보기 힘든 , 스마한 기능과 , 재미가 더해져 아이들이나 , 가정용으로 아주 많은 인기 몰이를 하고 있습니다.

 

 

 

 

 

 

 

드론파이터의 구성품 입니다. 배터리만 장착하면 바로 비행이 가능하고, 개성있는 4가지 커스터마이징 스티커까지 들어있으니, 나만의 유니크한 드론을 만들 수 있습니다. 또한 가장 많은 분들이 우려하시는 비행시간 문제도 조종기, 본체 호환이 가능한 3개의 배터리와, 배터리 부족시 드론본체 LED 색이 빨갛게 변하여 충전표시를 알아서 알려주니 추락의 위험도 감소 시킬수 있습니다. 비행시간은 30~40분 충전에 10분 가량 비행 할 수 있습니다.

 

 

 

 

SPECIFICATION​

제품명: 드론파이터

사이즈: 145 * 145 * 80 (mm)

배터리: 3.7 V 350mAh 리튬폴리머 배터리 (조종기배터리와 동일)

조종거리: 약 50m (사용환경 및 배터리 잔량에 따라 다소 차이가 있습니다.)

충전방식 및 시간: USB 충전케이블 (충전시간 약 30~40분)

런타임: 약 6 ~ 9분 ​

 파이터라는 이름에서 알 수 있듯이 적외선 센서를 활용하여 미사일 명중에 따른 컨트롤러 진동 반응과 다양한 배틀 방식까지 제공하니 아이들에게 선물해 주기에도 안성맞춤! 이라는 말씀을 드리며 이쯤에서 포스팅 마치겠습니다. 다양한 가격대의 드론들도 함께 취급하고 있습니다. 궁금한 점은 모두 문의해 주시면 친절히 답해드립니돠아.

 

 

 

 

 

 

 

구입안내

드론파이터 (기본패키지): http://www.icbanq.com/P005694312

드론파이터 (​파워패키지): http://www.icbanq.com/P005694311

드론파이터 (프로패키지): http://www.icbanq.com/P005688452

드론 전문 MALL: http://www.icbanq.com/shop/templete_list.asp?t_idx=108&LType=B

 

 

 

신고

TI, 3D 프린팅 및 리소그래피 애플리케이션에 적합한 최고속, 고해상도의 DLP® 칩셋 출시

TI (대표이사 켄트 전)는 3D 프린팅 및 리소그래피 애플리케이션에 적합한 최고의 속도와 해상도를 자랑하는 DLP9000X 칩셋을 출시한다고 밝혔다. 이 칩셋은 DLP9000X 디지털 마이크로미러 디바이스(DMD)와 새롭게 출시된 DLPC910 컨트롤러로 구성되며, 기존의 DLP9000 칩셋보다 5배 이상 빠른 연속 스트리밍 속도를 제공한다.[1] ) 이 DMD 및 컨트롤러 칩셋 제품은 현재 공급 중으로 구입 가능하며, 보다 자세한 정보는 www.ti.com/DLPspeed에서 확인할 수 있다. DLP9000X는 3D 프린팅, 직접 이미징 리소그래피(direct imaging lithography), 레이저 마킹, LCD/OLED 수리(repair), CTP(computer-to-plate) 프린터, 3D 머신 비전 및 하이퍼스펙트럴(초분광) 영상 등의 애플리케션에 이상적이다.

 

 

DLP9000X 칩셋의 주요 기능 및 장점
- TI DLP 제품 가운데 가장 높은 60Gbps 이상의 스트리밍 픽셀 속도를 제공하므로 도합 5배 이상의 빠른 노출 가능
- 4백만개 이상의 마이크로미러가 구성되어 있어 DLP9500 칩셋 대비 50%로 프린트 헤드 크기를 줄일 수 있으며, 또한 1mm2 미만의 최소 프린트 폭이 가능[2])
- 뛰어난 픽셀 로딩 속도로 실시간의 연속적인 고 비트 심도(high bit-depth) 패턴 전달이 가능하기 때문에 결과적으로 고해상도의 세밀한 영상 제공 가능
- 마이크로미러 임의의 열(row)을 로딩하는 방식을 적용하기 때문에 유연한 광 변조의 경우에도 사용 가능
- 400~700나노미터(nm)의 파장에 최적화되어 있어 다양한 감광성 수지(resin) 및 소재와 폭넓게 호환 가능


레이저, LED(light-emitting diode) 및 램프 등 다양한 방식의 광원 지원

TI는 개발자들이 혁신적인 제품을 시장에 빠르게 선보일 수 있도록 DLP 설계 네트워크를 통해서 포괄적인 디자인 하우스 에코시스템을 구축하고 있다. 여기에 소속된 외부 업체들은 하드웨어 및 소프트웨어 통합, 광학 설계, 시스템 통합, 시제품 개발, 제조 서비스 및 턴키 솔루션을 비롯하여 개발자를 지원할 수 있는 포괄적인 툴을 제공한다. DLP9000X 칩셋은 DLP Discovery D4100 키트와 유사한 아키텍처를 사용하고 있으므로 개발자들은 DLP9500 및 DLP7000 플랫폼을 최대한 활용할 수 있다.

 

신고

이것저것 다 사려고 고민말고 하나로 해결해라. 아두이노 완정정복 KIT (초급/중급/고급 실력따라!)

안녕하세요, 아이씨뱅큐 ME 슈퍼토미입니다 ~

 

 

어떤 제품을 블로거 분들에게 소개해해드릴까 하다가 신제품도 좋지만 아이씨뱅큐에서 꾸준히 인기를 유지하고 있는

제품을 한번 보여드리는게 어떨까하여 아두이노 키트에 대한 내용을 몇 자 적어봅니다.

 

아두이노를 처음 시작하시는 분들을 위한 제품으로써 Arduino Uno R3 보드를 기본으로 개발자들이 가장 많이 사용하는 디지털 , 아날로그 센서 및 7세그먼트  , LED ,저항, 서미스터 등이 기본으로 포함되어 있는 제품입니다. 게다가 관련 서적까지 포함되어 있으니 인터넷 뒤적뒤적 할 것 없이 한 번에 해결이죠. 아두이노 체험해 보신 분들을 아시겠지만, 많은 작업을 해보려고 해도 필요한 구성품이 얼마나 많은지... ㅡㅡ  게다가 라이트 버젼 / 스탠다드 버젼 / 프로 버젼, 세 가지의 버전으로 나누어져 있으니 개개인의 실력에 맞게 선택하여 구입하시면 될 듯합니다. 

 

 

                

 

 

 

아두이노 완전정복 교재는 구성품을 사용하여 서술 되어 있기 때문에 초보 엔지니어 및 워크샵 , 각종 교육용 교재로 사용하기 적합하다고 할 수 있습니다. 최근에는 코딩 및 소프트/하드웨어 교육을 담당하는 여러 학교에서도 각광받고 있습니다.

 (뿌듯)

 

 

또한 구성품에 손상이 가지 않도록 내구성이 우수한 유연성 플라스틱 케이스로 포장되어있으며 칸막이로 나뉘어져 있어 부품들을 보관하기가 아주 용이합니다. 그리고 Standard Pro set 10개 이상 구매하시는 고객 분들에 한 하여 , 요청 시 직접 교육하실 때 사용하실 수 있는 강의용 프리젠테이션 파일을 제공해 드립니다.

 

 

 

[시작이 반!  필수 부품들로 구성된 Light Set (라이트세트, 초급자 용)]

 

 

 

 

라이트 키트는 그야말로 전자 기초부품들로 구성된 스타트 키트라고 보시면 될 것 같습니다. 아두이노 완전정복 시리즈는 총 43개의 실험 test 자재가 포함되어 있으며 Light set 22번까지의 자재들을 제공합니다. Arduino 보드 중 사용 빈도가 가장 높은 UNO 보드를 채택 함으로써 , 온도 , 감지 , 모터 등과 같은 간단하고 비교적 누구나 쉽게 따라 할 수 있는 초급 키트입니다. 요즘은 예전과 달리 일부 교육기관 에서는 초등교육부터 Arduino를 가르치고 있기 때문에 , Light kit이러한 초급자가 사용하기에 아주 적합한 제품 인 것 같습니다.

 

 

 

​[아두이노의 심화 과정 , 중급자용 Standard Set]


 Standard Set Light Set 22개 구성품을 포함하여 , 모듈화 되어있는 고급 실험자재들을 추가 제공하며 35개의 상품으로 구성 되어 있습니다. LCD , 스테핑모터 , 적외선 리모컨 과 같이 기본적인 실험해서 벗어나 , 예제를 통하여 직접적인 제어를 할 수 있는 심화 과정의 KIT라 할 수 있습니다. 주로 중~고 생들에게 인기가 많으며 , 최근에는 대학교 관련 동아리에서도 많이들 선호하는 인기제품입니다.


 

 

 

 

 

 

[최신기술 총 출동! Xbee , 블루투스 모듈을 포함한 빵빵한   Pro Set]


Pro kit는 그야말로 최신기술을 접목시킨 full 패키지 라고 할 수 있습니다. 무선통신 규약 중의 하나인 Zigbee(지그비) 를 기반으로 한 XBee(엑스비) 모듈과 블루투스 모듈을 함께 제공하며 , 모든 실험자재를 포함한 43개의 품목으로 구성되어 있습니다. 전문학원 및 관련 업종의 엔지니어 들이 가장 많이들 선 호 하는 전문가형 단계라 보시면 될 것 같습니다.

 

 

 

 

 

 

이보다 더 쉬울 순 없다! 교재에서 사용된 챕터별 강의

 

 

 

 

 

 

아두이노를 시작하기가 꺼렸던 분이나 , 소량구매가 힘든 , 실험 자재를 별도로 구매하기 난해 했던 분들에게

안성맞춤 인 것 같습니다. 아두이노는 수년 전 부터 관련분야를 비롯한 여러 매체에 소개 되어 왔으며, 최근들어 라즈베리파이와 같은 픈하드웨어나 , 스마트 기기와의 연관성을 토대로 다시금 각광을 받고 있습니다. 무리하게 고가의 pro set가 아니더라도 스탠다드 정도의 구성이면 누구나가 쉽게 접할 수 있으니, 그 간 어떤 것부터 시작해야 할지 몰랐던 분들은 한번쯤 생각해 보셔도 괜찮을 것 같습니다.


라이트 세트 Light Set (초급자) : http://www.icbanq.com/P005537293/

​스탠다드 세트 Standard Set (중급자): http://www.icbanq.com/P005537300/

​프로 세트 (Pro Set (고급버젼): http://www.icbanq.com/P005537301/

신고

아이씨뱅큐에 자주자주 들러줘야하는 또다른 이유, 세카매!! [세미나카페매거진]

안녕하세요, 아이씨뱅큐에서 마케팅을 담당하고 있는 ALICIA 입니다!

오늘은 엄청나게 유용하지만! 한 번도 블로그에 소개된 적 없는 아이씨뱅큐만의 또 다른 매력, 세카매 에 대해 소개합니다 ~

 

아이씨뱅큐의 온라인 쇼핑몰을 자주 이용하시는 분들은! 아실 수도 있겠지만

<세카매>라고 하면 보통 분들은 세카매?새카매? 뭔가 검다는 거지??” 라고 생각하실 수도 있겠지만, 세카매는 바로 (아이씨뱅큐에서 운영하는) 전자업계의 다양한 컨텐츠를 접할 수 있는 온라인 커뮤니티 공간입니다 ^^ (ICbanQ 세카매: http://www.icbanq.com/bbs_net/main.aspx).

 

 

 

 

 

 

<세카매>는 바로 세미나/카페/매거진의 앞 글자를 따서 지은 아이씨뱅큐의 온라인 커뮤니티 입니다. 이름이 아주 딱 들어맞게 귀엽습니다 ~ ^^  <새카매> 페이지는 온라인 쇼핑몰 메인 메뉴에서도 아주 쉽게 찾을 수 있습니다.

 

 

 

온라인 세미나

리니어 테크놀로지, 인터그래텍, 페어차일드, 맥심 등 유수의 전자업계 온라인 세미나를 무료로 청취할 수 있으며, 이미 진행되었던 과거의 세미나들도 다시 시청하실 수 있습니다! (오오 대단하죠?!)

또한, Youtube 아이씨뱅큐 채널에 진행되었던 세미나들이 업데이트 되어 있으므로, 휴대폰으로 시청하기도 훨씬 편합니다! (https://www.youtube.com/user/ICbanQ) 얼른 구독을 신청해 주세요

 

 

 

 

무엇보다도 무료라는 점과 손쉽게 고급 정보를 얻을 수 있다는 점에서 많은 고객 분들에게 사랑 받고 있는 아이씨뱅큐의 서비스 입니다. 곧 새로운 온라인 세미나 들이 시작될 예정이니 꼭 한번 참여해 보세요~ 담당 엔지니어와 해당 세미나에 대한 실시간 Q&A 채팅은 기본! 설문조사 작성 후 가지게 되는 경품당첨의 기회는 덤! (http://www.icbanq.com/Seminar_Net_new/Seminar_Popular.aspx)

 

 

 

카페

또한 아이씨뱅큐는 파워블로거 제도를 운영 중입니다! (www.icbanq.com/pbloger/pbloger2.aspx)

해당 분야에 대해 해박한 지식과 열정을 가지신 분들께서 유용한 정보들을 글로 작성하여 올려주시는데요.. 정말 많은 분들이 애용하는 부분이기도 합니다! 또한 매달 진행되는 무상체험단의 컨텐츠들도 신속하게! 업데이트 되고 있으니 관심이 많으신 분들께서 자주 찾아주신답니다. 아두이노, 로봇, 반도체, 오픈PC, 라즈베리 등 다양한 분야의 정보를 제공 중입니다! 지금 바로 확인해 보세요 ~

 

 

매거진

엔지니어 분들이라면 날마다 쏟아져 나오는 신제품들을 파악하는 것이 필요하실 텐데요

여러 뉴스들이 섞여있는 온라인 뉴스포털도 머리 아프고그렇다고 신제품 뉴스만 찾아 다니자고 제조사 웹사이트를 뒤적거리는 것도 여간 귀찮은 일이 아니죠?! 이제 아이씨뱅큐에서 매일매일 새롭게 업데이트 되는 전자부분 신제품 뉴스도 확인해 보세요~ 기타 전자뉴스는 업데이트 되지 않고, 전자 업계의 신제품 소식이나 기업동향과 같은 소식들만 업데이트 되기 때문에 엔지니어 분들께는 꼭 보아야 할 중요한 뉴스들만 빠르게! 열람하실 수 있습니다.

(아이씨뱅큐 신제품뉴스: http://www.icbanq.com/ELECINFO_NET_NEW/Elec_SemiProd_List.aspx)

 

 

모르셨던 다양한 정보들을 접할 수 있는 기회! 아이씨뱅큐에서는 많은 분들께서 공유할 수 있는 커뮤니티를 만들고자 노력하고 있습니다. 다음 포스팅 때에는 운영중인 다양한 카페/블로그에 대해 소개해 드리도록 하겠습니다.

 

100111000100000 안녕!

 

 

 

신고

아이씨뱅큐 신사옥 안내! 이사완료~

 

안녕하세요, 아이씨뱅큐 입니다 :)

 

 

드디어 설레고도 고된 이사가 마무리 되었습니다.

금/토요일 ( 8월 28일과 29일 ) 정말 열심히 이사를 하였는데요...

특히나 힘들었던 부분은 재고들이었습니다 ^^;;

 

그래도 새로운 곳에서 일을 시작하니 한껏 산뜻하고 처음 일을 시작하는 느낌이 마구마구 들었습니다 :)

특히나 이번 아이씨뱅큐 신사옥은 탁 트인 멋진 풍경을 가지고 있습니다.

밖만 바라봐도 스트레스 해소가 될 것 같은 이 느낌!

 

 

먼저 주소먼저 확인해 주세요 :)

(이제 방문수령 고객 분들께서는 이쪽으로 가셔야겠죠?! )

 

 

 

 

A동은 스타벅스가 1층에 위치한 건물입니다 :)

고층용 엘리베이터를 이용해서 23층으로 가신 후 내리시면 바로 아이씨뱅큐가 보입니다 ~

(아직 현판을 달지 않은 관계로....................)  

 

 

 

 

 

유리문을 밀어서 들어오시면

 

 

바로 왼편에 리셉션!이 위치해 있습니다.

문의 후 방문 수령, 또는 담당자를 요청 해주세요 ~ :)

 

 

식물들도 데려오고~ 

 

 

 

 

무엇보다도 손꼽히는 것은 아이씨뱅큐 사옥의 경치! 입니다.

대한민국 3면이 바다로 둘러쌓여 있다면,

아이씨뱅큐는 멋진 전경이 3면으로 둘러쌓여 있습니다. 

 

 

 

 

 

 

이 곳은 대 회의실 입니다!

평소에는 사진과 같이 오픈된 공간으로 두고 조용한 회의 환경이 필요할 시에는

접혀있는 벽(?) 을 밀어 폐쇄된 공감으로 이용할 수 있습니다.

 

 

어때유? 멋있쮸?

 

 

또 하나의 자랑!

클라이밍 wall!!

저도 몇 번 해보았는데요.. ㅎㅎ

보기보다 힘이..ㅡㅡ;;;

한 번와서 해보고 가세요 :)

 

 

 

앞으로 방문 하시게 되면 멋진 전망, 놓치지 마세요!

더욱 노력하는 아이씨뱅큐가 되도록 하겠습니다!

감사합니다

신고

라즈베이파이로 텔레그램 봇 만들기[6] - 텔레그램 CLI(lua)에 메모 기능 넣기

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]

사용한 품목


1) 라즈베리파이B+ 베이직 키트: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005607887

 

들어가면서


 지난 포스팅까지는 텔레그램 CLI를 이용하기 위해 사용하는 lua와 sqlite3의 연동하는 방법과 간단한 코드를 봤다. 이제는 메세지를 받아서 어떤 메시지인지 확인하여 삽입(insert), 삭제(delete), 검색(select)하는 것에 대하 포스팅 하도록 하겠다. 

lua 문자열 처리


 

  특정 언어로 데이터베이스와 연동하기 위해서는 해당 언어의 문자열 처리방식에 대해 알아야 한다. 각 언어마다 문자열 처리 방식이 다르므로 lua의 문자열 방식에 대해 간단하게 알아보고 넘어가도록 하겠다. 아래 URL을 참고해도 좋다. 

http://lua-users.org/wiki/PatternsTutorial

http://namirde.blogspot.kr/2010/04/p11.html

http://lua-users.org/wiki/StringLibraryTutorial

일반적으로 문자열을 더하기 위해서 lua에서는 '..' 나 '+' 을 사용한다. 간단한 예이다.

a= 'world'

"hello"..a or "hello" + a    

 ==> "hello world"가 된다.

 

 데이터베이스의 데이터를 받아왔을 때 문자열인 경우도 있지만 숫자인 경우도 있다. 그러므로 문자열로 처리하기 위해서는 숫자를 문자열로 만들어주는 기능이 필요하다.

str = tostring("123")

 위에서도 언급했듯이 텔레그램 봇은 삽입, 검색, 삭제 기능이 있다. 그러므로 각 명령어를 받아서 쉘처럼 각 기능을 처리해야 한다. 텔레그램 자체는 문자열을 받는 것이므로 이 문자열을 잘라서 어떤 문자인지 판단해야 한다. 그러므로 문자열 자르는 기능, 특정 문자열을 찾는 기능, 문자열의 길이를 확인하는 기능이 필요하다.

string.sub(문자열, 시작 위치, 끝 위치)

  • 문자열에서 시작위치와 끝위치까지 자른다.

string.len(문자열)

  • 문자열의 길이를 구한다.

string.find(문자열, 찾는 문자열)

  • 문자열에서 찾는 문자열 찾아서 위치를 반환한다.

 

lua와 sqlite3을 연동한 텔레그램 메모 만들기


 이제 관련 문자열 만드는 것도 다 처리했으니 아래에 소스를 첨부한다. 그냥 빠르게 짜기 위해서 문자열 길이를 받고 자르고 해서 그렇게 좋은 효율을 가지는 코드는 아니다. 또한 나는 개발자가 아니므로 좋은 코드를 만드는 것보다 빠르게 코드를 만드는 것에 의의를 뒀다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
sqlite3 = require("lsqlite3")
db = sqlite3.open('memo.db')
function on_msg_receive(msg)
    memo_help_msg = "메모 [내용] [키워드]"
    no_msg = "[*] 번호 [*]\n"
    time_msg ="\n[*] 시간 [*]\n"
    content_msg = "\n[*] 내용 [*]\n"
    keyword_msg = "\n[*] 키워드 [*]\n"
    local m_msg = string.lower(msg.text) 
    local start_s, end_s = string.find(m_msg, "검색")
    local start_m, end_m = string.find(m_msg, "메모")
    local start_d, end_d = string.find(m_msg, "삭제")
    if(string.lower(msg.text)=="hello")then
        mark_read(msg.from.print_name, ok_cb, false)
        send_msg(msg.from.print_name, "world", oc_cb,false)
    elseif(msg.text=="올ㅋ")then
        mark_read(msg.from.print_name, ok_cb, false)
        local regdate = ""
        local content = ""
        local keyword = ""
        for row in db:nrows("SELECT * FROM test"do
            regdate = tostring(row.regdate)
          content = tostring(row.content)
          keyword = tostring(row.keyword)
          message = string.format("%s%s%s%s%s%s",time_msg,regdate,content_msg,
content,keyword_msg,keyword)
                  send_msg(msg.from.print_name, message, oc_cb,false)
        end
    elseif(start_s == 1 and end_s == 6) then
        mark_read(msg.from.print_name, ok_ck, false)
        default_query = "SELECT * FROM test "
        start_c, end_c = string.find(m_msg,"내용")
        start_k, end_k = string.find(m_msg,"키워드")
        start_t, end_t = string.find(m_msg,"시간")
        if( start_c == 8 and end_c == 13)then
            content_query = "where content like '%"
            content_to_find = string.sub(m_msg,15,string.len(m_msg))
            end_query = "%'"
            final_query = string.format("%s%s%s%s",default_query,content_query,
content_to_find,end_query)
            for row in db:nrows(final_query) do
             no = tostring(row.id)
               regdate = tostring(row.regdate)
             content = tostring(row.content)
             keyword = tostring(row.keyword)
             message = string.format("%s%s%s%s%s%s%s%s",no_msg,no,time_msg,
regdate,content_msg,content,keyword_msg,keyword)
                        send_msg(msg.from.print_name, message, oc_cb,false)
            end
        elseif( start_k == 8 and end_k == 16)then
            keyword_query = "where keyword like '%"
            keyword_to_find = string.sub(m_msg,18,string.len(m_msg))
            end_query = "%'"
            final_query = string.format("%s%s%s%s",default_query,keyword_query,
keyword_to_find,end_query)
            for row in db:nrows(final_query) do
             no = tostring(row.id)
               regdate = tostring(row.regdate)
             content = tostring(row.content)
             keyword = tostring(row.keyword)
             message = string.format("%s%s%s%s%s%s%s%s",no_msg,no,time_msg,
regdate,content_msg,content,keyword_msg,keyword)
 
             send_msg(msg.from.print_name,message,oc_cb,false)
            end
        elseif( start_t == 8 and end_t == 13)then
            send_msg(msg.from.print_name,v,oc_cb,false)
        end
    elseif(start_m == 1 and end_m == 6)then
        save_message = "\n[*] 저장 완료 [*]"
        start_memo, end_memo = string.find(m_msg,"메모%s+")
        start_memo, end_content = string.find(m_msg,"메.*%s")
        insert_content = string.sub(m_msg,end_memo+1,end_content-1)
        insert_keyword = string.sub(m_msg,end_content+1,string.len(m_msg))
        local tablefill = [[INSERT INTO test VALUES (NULL, datetime('now','
localtime'),']]..insert_content..[[',']].. insert_keyword..[[');]]
        db:exec(tablefill)
        send_msg(msg.from.print_name,"[*] 내용\t:\t"..insert_content.."\n[*] 
키워드\t:\t"..insert_keyword..save_message,oc_cb,false)
    elseif(start_d == 1 and end_d == 6)then
        save_message = "\n[*] 삭제 완료 [*]\n"
        start_memo, end_memo = string.find(m_msg,"삭제%s+")
        delete_id = string.sub(m_msg,end_memo+1,string.len(m_msg))    
        send_msg(msg.from.print_name,delete_id,oc_cb,false)
        local deletefill = [[DELETE FROM test where id =']]..delete_id..[[';]]
        db:exec(deletefill)
        send_msg(msg.from.print_name,save_message,oc_cb,false)
    end
end
function ok_cb(extra, succes,result)
end
cs

 

     명령어는 문자열에서 특정 문자(검색, 삭제, 메모)의 위치가 어디인지 판단하여 시작위치가 1이고 끝나는 위치가 6이면 문자열의 첫 두글자에 내가 찾는 문자가 있다는 것을 의미한다. 재밌게도 lua에서는 한글 한글자를 3바이트로 인식하는 것을 알 수 있었다.  

     예를 보도록 하자. 아래 그림과 같이 a라는 변수에 "테스트"를 넣고 string.find함수로 문자열의 위치를 찾았다. 아래 보는 것과 같이 "테"의 시작 위치가 1이고 끝나는 위치가 3이다. 응? 한글이 2바이트 인 것을 고려하면 시작위치가 1이고 끝나는 위치가 2이여야 하는데 3이다. 뭔가 다른게 잘못되어 그렇다고 볼 수 있는데 "스"와 "트"의 경우를 봐도 3바이트 인 것을 알 수 있다.

 

그래서 2글자로 이루어진 명령어(검색, 메모, 삭제)를 이용하기 때문에 그 string.find를 이용하여 해당 글자의 시작이 1이고 끝이 6인 것을 판단해야 한다. 하지만 '올ㅋ'는 그냥 문자열 비교를 했다. 그 이유는 올ㅋ의 경우 모든 리스트를 출력하는 것이기 때문에 추가적인 인자(정보)가 필요없다. 하지만 다른 명령의 경우는 메모를 하기 위해서는 [내용], [키워드]가 필요하고, 검색을 위해서도 어떤 종류(내용, 키워드)를 볼 지, 그 내용이 어떤 것인지 알아야 한다. 그러므로 검색이나 메모를 하기 위해서 앞 2글자가 검색, 메모, 삭제인 경우 뒤쪽의 인자들을 잘라서 처리해야 한다.

     이를 위해 아래와 같이 66, 67줄에 있는 string.find 명령어를 특정문자와 결합하여 정규표현식처럼 사용할 수 있다. 그러면 명령어의 포맷은 [명령종류][공백][인자1][공백][인자2]에서 명령어의 종류와 인자 1과 인자 2를 잘라서 가져올 수 있다.

        start_memo, end_memo = string.find(m_msg,"메모%s+")
        start_memo, end_content = string.find(m_msg,"메.*%s")

     그래서 아래와 같이 메모[공백]테스트1[공백]테스트2로 입력을 받는다.
그래서 이 명령을 받은 프로그램은 아! 지금 메모를 하고 내용으로는 테스트1,
키워드로는 테스트2를 넣구나라는 것을 알 수 있다. 




     이번은 검색[공백]키워드[공백]테스트2를 받는다.
 이를 받으면 텔레그램 봇은 "아! 키워드에 테스트2라는 단어가 포함된
메모를 검색하라는 거구나!"라고 판단한다.
여기서 나타나는 시간은 메모를 저장했을 때 당시의 시간을 입력한 것이다. 

 

     여기서 나타나는 시간은 메모를 저장했을 때 당시의 시간을 입력한 것이다. 그래야 내가 어떤 시점에 이런 메모를 썼다는 것을 알 수가 있고, 비슷한 메모를 구분 할 수 있는 근거가 된다고 생각한다. sqlite3의 테이블은 id, regtime, content, keyword로 나뉘어져 있다. id는 각 메모를 구분하기 위한 숫자이고, regtime은 메모를 저장할 당시의 시간, content는 내용, keyword는 내용을 구분할 수 있는 핵심 단어나 카테고리로 추후에 검색할 때 유용하게 사용할 수 있는 부분이라고 할 수 있다.

     아래 사진은 텔레그램 웹버전으로 명령을 내린 것이다. [*]으로 봇이 보내준 것인지 내가 내린 명령인지 쉽게 판단할 수 있을 거라 생각한다. 

 

 

 

 

 


마치면서


     이번 포스팅을 마치면서 lua와 sqlit를 연동하는데 어려움을 겪었다. 특히 아래처럼 특정 문자열은 정적으로 들어가고 특정 문자열을 동적으로 들어가는데 이를 합쳐서 db에 요청하는 것이 헷갈렸다.

"[*] 내용\t:\t"..insert_content.."\n[*] 키워드\t:\t"..insert_keyword..save_message

 sqlite3를 코딩하는 것도 lua를 코딩하는 것도 이번 텔레그램 봇을 만들면서 쓰는 것이 처음이라 더욱 생소했다. 하지만 이번 기회를 통해 특정언어를 사용하기 위해 먼저 데이터 형식에 대해 가장 먼저 알아봐야 한다는 사실을 알 수 있었다. 각 언어마다 데이터 형식과 처리방식이 다르기 때문이다. 이번 달에 포스팅은 이걸로 마치고 다음 포스팅에서는 궁극적으로 원했던 "짤방저장소"를 만들어 보도록 하겠다.

관련 상품


라즈베리파이2 보드: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005652343

라즈베리파이2 베이직 키트: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005655515

손톱두이노: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005668577

라즈베리파이 전용 방열판 (소): 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P002110427

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]

 

신고

라즈베이파이로 텔레그램 봇 만들기[5] - 텔레그램 CLI(lua)와 sqlite3 연동

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]

사용한 품목


1) 라즈베리파이B+ 베이직 키트: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005607887&LType=R

 

들어가면서


 지난 포스팅까지는 간단한 텔레그램 CLI를 이용하여 간단한 봇을 만들어봤다. 이제는 텔레그램을 이용한 메모장을 만들어보려한다. 나처럼 여러 장소에 메모를 적어서 관리를 잘 못하는 사람에게 도움이 될 거라 생각한다. 그리고 텔레그램 CLI의 사진 보내기 기능을 함께 쓰면 짤방저장소로 사용할 수 있어서 재밌을 것 같다.

luarocks


 

  lua에서 사용하는 module들을 관리하기 위해서 사용하는 패키지가 luarocks다. 리눅스 환경에서 apt-get install과 같은 느낌을 받았다. 그러므로 쉽게 설치하기 위해 luaroacks를 설치하도록 하자. 공식 홈페이지는 아래와 같다.

https://luarocks.org

 아래와 같은 순서대로 luarocks를 설치하도록 하자. 복사 하기 쉽도록 아래와 같이 명령어를 놔뒀다.

1
2
3
4
5
wget http://luarocks.org/releases/luarocks-2.2.2.tar.gz
tar zxpf luarocks-2.2.2.tar.gz
cd luarocks-2.2.2
./configure; sudo make bootstrap
sudo luarocks install luasocket
cs


아래 사진은 직접 위의 명령어를 입력하면서 나오는 결과를 함께 보여준다. 익숙하지 않는 환경을 설치하는 데 도움을 줄 수 있을 거라 믿는다.

 

 

그 다음에는 lua와 sqlite와 연동하는데 필요한 프로그램을 apt-get install로 하나, luarocks로 2개를 설치한다. 솔직히 이 중에서 어떤 것이 정말 필요한 것이고 쓸모 없는 것인지 판단이 안서지만, 모두 설치해서 환경설정에 관한 스트레스를 받지 않도록 하자.

1
2
3
apt-get install libsqlite3-dev
luarocks install luasql-sqlite3
luarocks  install lsqlite3 
cs

 

 

 

 

lsqlite3 사용, 그리고 기본적 문법


 관련 모듈을 설치했으면 이제 직접 lua와 sqlite3을 연동하도록 하자. 먼저 lua와 sqlite3를 연동하는 것을 성공하고 난 뒤에 텔레그램 CLI에 붙이도록 하자. 바로 소스에 넣으려고 했다가 문제가 발생할 수 있으니 하나하나 만들고 붙이는 방법을 택하여 알 수 없는 오류에 처하는 상황을 최대한 줄인다.

아래 코드와 같은 소스를 하나 만든다. 간단하게 설명하도록 하겠다.

sqlite3 = require("lsqlite3")

    • lsqlite3모듈을 불러와서 해당 인스턴스를 sqlite3에 저장한다.

local db = sqlite3.open('test3.db")

    • sqlite3는 test3.db라는 파일을 불러와서 연결 인스턴스를 db라는 변수에 저장한다.

db:exec[[

CREATE TABLE test(id, content);

INSERT INTO test VALUES (1, "Hello World');

INSERT INTO test VALUES (2, "Hello world');

]]

    • test3.db에 id,와 content 열을 만든다.


for row in db:nrows("SELECT * FROM test") do

    print(row.id, row.content)

end

    • [1, hello world], [2, hello world]를 출력한다.

db:close() 

      • 데이터베이스 연결을 끊는다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sqlite3 = require("lsqlite3")
local db = sqlite3.open('test3.db')
 
db:exec[[
  CREATE TABLE test(id, content);
  INSERT INTO test VALUES (1'Hello World');
  INSERT INTO test VALUES (2'Hello World');
]]
 
for row in db:nrows("SELECT * FROM test"do
  print(row.id, row.content)
end
 
db:close()
cs

 

 위 코드를 만들고 lua 파일명.lua를 실행하면 아래와 같은 결과가 나온다. 이는 test3.db에 테이블을 만들고 데이터를 입력하고 출력하는 작업을 보여준다. 

 

 

 


마치면서


 이번 포스팅에서 텔레그램 CLI와 sqlite3을 연동하기 위한 방법을 봤다. 텔레그램 CLI는 lua로 이루어져 있으므로 lua와 sqlite3 연동하기 위해 모듈을 쉽게 설치하도록 도와주는 luarocks를 설치했다. 이를 이용하여 설치 완료했고 간단하게 lua와 sqlite3를 연동하는 코드를 봤다. 다음 포스팅에서는 본격적으로 텔레그램에서 메시지를 받아서 sqlite3에 데이터를 넣고(insert) 빼고(delete) 보여주는(select)하는 것에 대해 알아보도록 하겠다.

관련 상품


라즈베리파이2 보드: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005652343

라즈베리파이2 베이직 키트: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005655515

손톱두이노: 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005668577

라즈베리파이 전용 방열판 (소): 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P002110427

 

 

 

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]

 

신고

[아이씨뱅큐 ICbanQ 파워블로거 2기] TFT-LCD에 X윈도우 없이 바로 창 띄우는 2가지 방법

 

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로아이씨뱅큐의 지원을 받아 작성되었습니다]


[ 사용한 품목 ]

 

- 라즈베리파이 B+, 로터리 엔코더 

- TFT-LCD

 

 

[ 내  용 ]

 

1. Python으로 작성한 Tkinter UI 띄우는 방법


  [목표] Python으로 작성안 GPIO제어 스위치 대화창을 TFT-LCD에 X윈도우 실행없이 바로 출력
    
    아래이 모든 작업은 /home/pi에 작성한다.  
    
       [ Tkinter UI파일 작성 후 저장]
$ sudo nano gui_switch.py

       -아래 파일 작성(라즈베리파이 쿡북 참조)-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from Tkinter import *
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
 
class App:
    
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.check_var = BooleanVar()
        check = Checkbutton(frame, text='Pin 18'
                 command=self.update,
                 variable=self.check_var, onvalue=True, offvalue=False)
        check.grid(row=1)
 
    def update(self):
        GPIO.output(18, self.check_var.get())
 
root = Tk()
root.wm_title('On / Off Switch')
app = App(root)
root.geometry("200x50+0+0")
root.mainloop()
 
 
cs
        
        [ start.sh 쉘스크립트 작성 ]
$ sudo nano start.sh
1
2
3
4
 
#!/bin/sh
openbox &
python /home/pi/gui_switch.py
cs
[ TFT-LCD에 띄우기 ]
$ sudo FRAMEBUFFER=/dev/fb1 xinit ./start.sh
       [인증 샷~~]



2. JAVA로 작성한 Swing UI로 띄우는 방법


  [목표]  java으로 작성안 UI 대화창을 TFT-LCD에 X윈도우 실행없이 바로 출력
    
    아래이 모든 작읍은 /home/pi에 작성한다.  
    
       [ Swing을 이용한 UI파일 작성 후 저장]
$ sudo nano hello.java

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
 
/**
 */
public class hello extends JFrame 
    implements ActionListener{
 
    JTextArea textArea;
    JButton buttonHello;
     
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
 
    private static void createAndShowGUI() {
        hello myFrame = new hello();
 
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         
        myFrame.prepareUI();
 
        myFrame.pack();
        myFrame.setVisible(true);
    }
     
    private void prepareUI(){
        textArea = new JTextArea();
        textArea.setEditable(false);
        JScrollPane panel = new JScrollPane(textArea);
        panel.setPreferredSize(new Dimension(300100));
         
        buttonHello = new JButton("Hello");
        buttonHello.addActionListener(this);
         
        getContentPane().add(panel, BorderLayout.CENTER);
        getContentPane().add(buttonHello, BorderLayout.PAGE_END);
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        textArea.setText("Hello from Raspberry Pi");
    }
 
}
cs

        
        [ 컴파일 하기]
         hello.java파일이 있는 같은 폴더에서 실행
javac hello.java


        [ start.sh 쉘스크립트 작성 ]
$ sudo nano hello.sh
1
2
3
4
 
#!/bin/sh
openbox &
java hello
s
[ TFT-LCD에 띄우기 ]
$ sudo FRAMEBUFFER=/dev/fb1 xinit ./hello.sh
       [인증 샷~~]



신고


티스토리 툴바