기본적으로는 아래 블로그 참조

http://usn-pioneer.tistory.com/79


1. keil arm 설치

아래 주소에서 MDK-ARM 설치

https://www.keil.com/download/product/


2. sdk설치

sdk는 아래 주소에서

https://www.nordicsemi.com/eng/nordic/Products/nRF51-SDK/nRF518-SDK/46230

sdk는 아래 폴더에 설치됨(예제파일도 여기서 볼 수 있음)

C:\Keil_v5\ARM\Device\Nordic

 

3. nRFgo Studio 설치

이걸 설치하면 jlink 디버거도 다운 가능

https://www.nordicsemi.com/eng/Products/Bluetooth-R-low-energy/nRF51822


4. j link 디버거 구매 주소 - jlink와 호환 가능한 싼 모듈

http://www.devicemart.co.kr/33262

J Link 는 정품을 구매해야함

http://www.eleparts.co.kr/EPXBPBNC


5. 예제 실행 방법은 아래 주소

http://usn-pioneer.tistory.com/81

nRFgo Studio 를 이용하여 soft device를 설치해야 하는 것 같음



Posted by 공놀이나하여보세
,

본인은 Windows PC와 Ubuntu PC 2대를 사용 중으로, Windows에서 RDP 접속으로 Ubuntu를 개발용 PC로 활용하고 있다.

그런데 Ubuntu 14.04에서는 xrdp가 기본적으로는 동작하지 않는 문제가 있다. Windows에서 원격 접속하면 회색 화면에 마우스 커서만 표시될 뿐 그 다음 화면으로 넘어가지 않는다.

xrdp가 14.04에서 기본으로 설치되는 Desktop 환경을 지원하지 않기 때문이다. 

해결 방법은 여러가지 있겠지만, 가장 간단한 방법은 xrdp가 지원하는 Desktop 환경인 xfce4을 설치하는 것이다.

아래 순서대로 정리해 보았다. 

1. sudo apt-get install xrdp

  (여기까지만 수행하고 원격 접속해 보면 회색 화면만 보게 된다.)

2. sudo apt-get install xfce4

3. sudo nano /etc/xrdp/startwm.sh

. /etc/X11/Xsession를 삭제 또는 주석 처리(맨앞에 #추가)하고 아래와 같이 수정한다.

Ubuntu14.04에 Xsession이 없어서 생기는 문제라고 한다.

#!/bin/sh

if [ -r /etc/default/locale ]; then
  . /etc/default/locale
  export LANG LANGUAGE
fi

#. /etc/X11/Xsession
. /usr/bin/startxfce4

 

4. sudo /etc/init.d/xrdp restart



출처 : http://abydos.tistory.com/3

'Embedded > NVIDIA Jetson' 카테고리의 다른 글

nvidia jetson tk1 초기 설정법  (0) 2015.11.28
Posted by 공놀이나하여보세
,

nvidia jetson 초기 설정법


1. 로그인 아이디 / 비밀번호 : ubuntu/ubuntu

2. NVIDIA Installer 설치

- cd NVIDIA-INSTALLER

- sudo ./installer.sh

3. sudo reboot

4. 완료~!!




출처 동영상 

https://www.youtube.com/watch?v=ghqM8pzJZxg



'Embedded > NVIDIA Jetson' 카테고리의 다른 글

xrdp 원격 접속 설정 (회색 화면 나올 때)  (0) 2015.11.28
Posted by 공놀이나하여보세
,

Coursera 사이트

R Programming 2015. 11. 26. 10:25
Posted by 공놀이나하여보세
,

안녕하세요


오늘은 USB 5포트 충전기 NEXT 05AC 사용기를 남겨 보고자 합니다.


제가 다양한 모바일 디바이스를 사용하고 있기 때문에 


당연히 충전기도 많이 사용하고 있습니다.


기존에는 5구짜리 멀티탭에 충전기를 꽂아두어 책상도 지져분해지고, 


여행을 다닐 때도 여러개의 충전기를 챙기다 보니 너무 귀찮았는데요


이번에 USB 5 포트 충전기로 인해서 매우 편리해졌습니다.




35W 지원이고 5개의 USB포트를 지원하고 있습니다.

연결되는 기기의 필요한 충전량을 자동으로 감지해준다고 합니다.





제품 상세 사양입니다.


100~240V, 50~60Hz 입력 지원을 한다고 하니 웬만한 나라에서는 다 사용할 수 있을 것 같습니다.


 



충전 케이블을 5개 다 꽂아봤는데요 

이 작은 충전기 하나가 모든 제품들을 다 충전시켜 줍니다.




 


5개의 제품을 연결해 보았습니다.

LG G패드, 아이패드에어2, 아이폰5, LG G4, 샤오미 충전기 다섯개를 충전시켜 봤는데 

모두 충전이 잘 되는 것을 확인할 수 있었습니다.


제품의 전체적인 마감도 깔끔하고 

크기도 충전기 두개정도의 크기이기 때문에 휴대성도 매우 좋습니다.

가격도 저렴하니 가격대 성능비는 괜찮다는 생각이 듭니다.


요즘처럼 다양한 제품을 많이 사용하게 되는 상황에서는  

누구나 꼭 하나씩은 가지고 있어야 하는 제품이 아닌가 싶습니다.


*이 블로그는 제품을 무상으로 제공받아 작성하였습니다.

Posted by 공놀이나하여보세
,

tone+ HBS900

카테고리 없음 2015. 6. 16. 14:15

안녕하세요

LG전자 커뮤니케이터 최재혁입니다.



*잠실대교가 보이는 한강인데 너무 예쁩니다.


요즘 자전거 타는 것에 조금씩 취미를 가지고 있는데요.

맨날 사무실 좁은 책상에서 모니터만 쳐다보고 있다가 어느 날 자전거를 타고 한강에 나갔는데 이렇게 한강이 넓고 예쁜 것이 아니겠습니까?

게다가 자전거를 타고 운동을 하고 나니 너무나 상쾌했습니다.



*한강에서 친구들 만나면 너무 즐거워요.


그리고 자전거를 타면 친구들을 만나서 즐겁게 수다도 떨 수 있어요.



* 한강에서는 2000원이면 즉석 라면을 먹을 수 있습니다.

 

제가 한강을 좋아하는 가장 큰 이유는 바로 한강에 있는 편의점에서만 사먹을 수 있는 즉석 라면입니다.

물이 보글보글 끓을 때 날계란을 넣으면 정말 맛있는 라면이 완성됩니다.




* 너무 예쁜 LG 워치 어베인과 LG G4입니다.


자전거를 타고 땀을 흘린 후 배가 고플 때 친구들과 함께 시원한 한강을 보며 라면을 먹으면 정말 꿀맛입니다.




* LG워치 어베인 LTE가 있으면 자전거를 타면서 통화도 가능합니다.


제가 자전거를 탈 때 필수품이 있는데 바로 LG워치 어베인 LTE 입니다. 자전거를 타면서는 스마트폰을 꺼내서 보기가 힘든데, LG 워치 어베인  LTE는 유심칩이 내장되어 있고 자체 마이크와 스퍼커도 들어 있기 때문에 스마트폰이 없이도 통화가 가능합니다.

그래서 자전거를 타고 가다가 전화가 와도 멈추지 않고 자전거를 타면서 통화를 할 수 있습니다.




* LG 워치 어베인 LTE와 Tone+ HBS900을 바로 연결할 수 있어요.


물론 한 손을 놓고 자전거를 계속 타면 위험하기 때문에 자전거를 탈 때는 LG 워치 어베인 LTE에 내장된 블루투스를 이용해서 블루투스 헤드셋인 Tone+ HBS900을 바로 연결하여 사용합니다. LG 워치 어베인 LTE로 누구한테 전화가 왔는지 바로 확인 후, 이어폰을 귀에 바로 꽂고 통화를 할 수 있어서 자전거를 탈 때 아주 유용해요.




* LG 워치 어베인 LTE에서 바로 답장도 보낼 수 있어요.

 스마트폰에서 가장 중요한 건 카카오톡이라고 해도 과언이 아닌데요. 이 역시 집에 스마트폰을 두고 왔더라도 LG 어베인 LTE만 있으면 카톡 확인 뿐만 아니라 내장된 나랏글 또는 천지인 키패드를 통해서 답장을 보낼 수 있으니 간편한 복장으로 운동을 하기에 너무 좋습니다.


* LG 워치 어베인 LTE로 자전거를 탄 거리, 속도, 경로 저장 사진 입니다.


게다가 이렇게 LG 워치 어베인 LTE에는 GPS와 9축(자이로/가속도/나침반), 기압센서, 심박센서가 내장되어 있기 때문에 자전거를 탔던 경로, 거리와 평균속도, 평균 심박수도 저장이 되기 때문에 매번 자전거를 탈 때마다 내 실력이 얼마나 늘었는지 내가 얼마나 오래 탔는지 어떤 경로를 거쳐 탔는지 알 수 있어 매우 유용합니다.



* 스마트폰은 그냥 저 가방 안에다가  지갑이랑 같이 넣어 두었는데 꺼낼 일이 없네요.


원래 시계는 간지가 중요한데요. LG워치 어베인 LTE는 원형 디스플레이에 스테인리스 스틸 제질의 메탈 바디이기 때문에 상당히 고급스럽고 이쁩니다. 게다가 메탈 바디의 특성상 스크래치, 부식에 강하다고 하니 운동을 할 때도 걱정이 없습니다.





* 여의도에서 트윈타워를 배경으로 LG G4를 이용해서 사진도 찍었습니다.


이제서야 스마트폰을 꺼낼 때가 되었습니다

친구들과 만나서 인증샷을 찍지 않으면 섭섭하죠.

LG G4를 이용하면 남자들 넷이 모여도 샤방한 사진을 찍을 수 있어요.


저처럼 답답한 일상이 지겨우신 분들은 주말에 강 바람이 시원하게 부는 한강에서 라이딩 어떠세요?


Posted by 공놀이나하여보세
,

1. 군집화 : 유사한 아이템을 같은 군집에 넣고 유사하지 않은 아이템을 다른 군집에 넣음

- 문제 : 텍스트를 유사도를 계산할 수 있는 대체물로 변형해야 한다는 점

- scikit-learn : 군집화를 지원하는 라이브러리


2. 게시물의 관련도 측정

(1)  하지 말아야 하는 방법 : levenshitein distance

(2) 어떻게 해야 하는가 

- 단어 주머니(bag-of-words) : 게시물의 모든 단어에 대해, 각 단어의 출현을 세어 벡터(vector)로 나타낸다.


scikit-learn라이브러리를 사용하여 군집화 예제 설명


3. K-means clustering 방법

   >>> num_clusters = 50
   >>> from sklearn.cluster import KMeans
   >>> km = KMeans(n_clusters=num_clusters, init='random', n_init=1,
   verbose=1)
   >>> km.fit(vectorized)


Posted by 공놀이나하여보세
,

2장은 분류법에 대한 소개 정도를 하는 챕터이다.


(1) 홀드 아웃 : 하나는 모델을 훈련시키고 다른 하나는 테스트에 사용

(2) 교차 검증(cross-validation) : 

- 단일 잔류 : 극단적인 교차 검증의 형태로 하나의 예를 제외한 모든 데이터로 모델을 학습하고, 이 모델이 남은 하나의 예를 잘 분류하는지 보는 것. 100배 더 가중된 일을 해야함

- x중첩(x - fold) 교차 검증 : x는 작은 숫자로 예를 들면 5 정도이다. 5개의 중첩 교차 검증을 수행하고자 전체 데이터를 다섯 그룹으로 나눈다. 즉 전체 데이터의 20% 정도를 남겨둔다.

(3) 최근접 이웃 분류

- 먼저 데이터 셋을 나누어 두고 새로운 데이터가 들어오면 이 데이터와 가장 가까운 데이터셋 몇개를 찾아 대충 어느 범주에 들어 있는지 찾는다..

- k최근접 이웃 분류 : 가장 가까운 하나의 점이 아닌 k개 만큼 가까운 점들을 고려함. 일반적으로 k는 작지만 데이터셋이 매우 크다면 큰 숫자로 할 수도 있다.



Posted by 공놀이나하여보세
,

아래에 자세한 코드가 있음

출처 : http://stackoverflow.com/questions/25351488/intermittent-python-thread-error-main-thread-is-not-in-main-loop


from Tkinter import *
import tkFont
import os
import glob
import time
import threading
import Image 
import Queue


def update_temp(queue):
    """ Read the temp data. This runs in a background thread. """
    while True:
        #   28-000005c6ba08
        i = "28-000005c6ba08"
        base_dir = '/sys/bus/w1/devices/'
        device_folder = glob.glob(base_dir + i)[0]
        device_file = device_folder + '/w1_slave'

        tempread=round(read_temp(),1)

        # Pass the temp back to the main thread.
        queue.put(tempread)
        time.sleep(5)

class Gui(object):
    def __init__(self, queue):
        self.queue = queue

        #Make the window
        self.root = Tk() 
        self.root.wm_title("Home Management System")
        self.root.minsize(1440,1000)

        self.equipTemp = StringVar()   
        self.equipTemp1 = StringVar()
        self.equipTemp2 = StringVar()       

        self.customFont = tkFont.Font(family="Helvetica", size=16)

        #   1st floor Image
        img = Image.open("HOUSE-PLANS-01.png") 
        photo = ImageTk.PhotoImage(img)

        Label1=Label(self.root, image=photo)
        Label1.place(x=100, y=100)

        #   2nd floor
        img2 = Image.open("HOUSE-PLANS-02.png")
        photo2 = ImageTk.PhotoImage(img2)

        Label1=Label(self.root, image=photo2)
        Label1.place(x=600, y=100)

        #   Basement image
        img3 = Image.open("HOUSE-PLANS-03.png")
        photo3 = ImageTk.PhotoImage(img3)

        Label1=Label(self.root, image=photo3)
        Label1.place(x=100, y=500)

        #   Attic Image
        img4 = Image.open("HOUSE-PLANS-04.png")
        photo4 = ImageTk.PhotoImage(img4)

        Label1=Label(self.root, image=photo4)
        Label1.place(x=600, y=500)

        #   House Isometric Image
        img5 = Image.open("house-iso.png")
        photo5 = ImageTk.PhotoImage(img5)

        Label1=Label(self.root, image=photo5)
        Label1.place(x=1080, y=130)

        #Garage Temp Label
        Label2=Label(self.root, textvariable=self.equipTemp, width=6, justify=RIGHT, font=self.customFont)
        Label2.place(x=315, y=265)

        print "start monitoring and updating the GUI"

        # Schedule read_queue to run in the main thread in one second.
        self.root.after(1000, self.read_queue)

    def read_queue(self):
        """ Check for updated temp data"""
        try:
            temp = self.queue.get_nowait()
            self.equipTemp.set(temp)
        except Queue.Empty:
            # It's ok if there's no data to read.
            # We'll just check again later.
            pass
        # Schedule read_queue again in one second.
        self.root.after(1000, self.read_queue)

if __name__ == "__main__":
    queue = Queue.Queue()
    # Start background thread to get temp data
    t = threading.Thread(target=update_temp, args=(queue,))
    t.start()
    print "starting app"
    # Build GUI object
    gui = Gui(queue)
    # Start mainloop
    gui.root.mainloop()


Posted by 공놀이나하여보세
,

제이펍의 '라즈베리파이 시작하기' 라는 책에 라즈베리파이로 아두이노 구동을 위한 내용이 잘 정리 되어 있습니다.


책의 내용을 다 옮기긴 어렵겠지만 기본적인 것에 대해 말씀드려볼까 합니다.

저는 처음에 둘을 연결하려면 뭔가 선을 따줘야 할거라고 생각했습니다.

물론 제대로 된 통신을 하려면 SPI통신을 이용해야할 거라고 생각합니다.(아직 해보진 않았습니다만..)

하지만, 책을 보니 그냥 시리얼 통신을 이용했더군요.

게다가 시리얼 통신을 위해서 점퍼선을 연결할 필요도 없습니다.

그냥 USB케이블 하나를 연결하면 됩니다.



저는 귀찮아서 샤오미 배터리를 전원으로 쓰고 usb wifi동글로 무선 연결을 해두고 맥북에서 원격 접속으로 작업을 합니다.

여튼 이렇게 선 하나만 연결합니다.



sudo apt-get install arduino 

arduino IDE를 다운 받습니다.

마지막으로 IDE에 uart 출력을 c로 코딩합니다.

-> 버튼을 누르면 알아서 컴파일이 되고 아두이노로 다운로드하고 실행이 됩니다.


라즈베리파이에서 serial 입력을 받아 print하는 코드를 python으로 짭니다.

그리고 실행하면 위의 사진 처럼 아두이노가 보내는 데이터를 출력해줍니다.


간단하네요 ㅋㅋ


자세한 내용은 책을 참조하시거나 인터넷을 뒤져 보시길..


Posted by 공놀이나하여보세
,