안녕하세요~!


이번시간엔 아이로드i7 전동킥보드에 대해 포스팅하겠습니다.



최근에는 'Smart Personal Mobility' 라는 트랜드에 맞춰서

전동킥보드, 세그웨이, 전동 자전거 등등 관련 제품들이 우수수 쏟아지기 시작했습니다.


예전부터 꼭 하나쯤 사보고싶어서 이것저것 조사하던것 중에 하나가 바로 전동킥보드 였습니다.

세그웨이는 균형감각이 부족한 저한테 너무 어려울것 같아서.. 접어두었고, 전동자전거는 가격이 너무 부담스럽더라구요ㅋㅋㅋ


먼저 수많은 제품들 중에 디자인과 가격, 출력, 무게, A/S 에 초점을 맞춰서 몇가지 제품들을 추려봤었는데요,



그 외에도 고려해야할 사항들이 너무 많더라구요ㅠㅠ


근처에 샵이 있다면 한번 쯤 타보고 결정했으면... 하는 생각이 있었지만,

샵이 없으니ㅠㅠ 관련 카페나 블로그들을 보면서 후기들을 꼼꼼히 읽어봤어요~


타이어가 고무타이언지, 공기타이어인지,

브레이크는 EABS인지 디스크 브레이크인지,

쇼바 유무에 따른 승차감은 어떤지,

실제 사용시 등판각도는 어떤지,

등등..


수도 없이 많은 리뷰들이 있어서 더 고민스럽던 찰나!


Image result for 아이로드 i7


'아이로드' 제품이 눈에 확 들어오더라구요ㅋㅋ

출력이나 타이어 크기면에서는 조금 부족하겠지만, 

카본  파이버라 동급 크기에 비해 무게도 가볍고,

가격도 판매가는 99만원인데, 예약구매로 진행하면 59만원? 정도에 판매를 하더라구요ㅎㅎ


뿐만 아니라 이 아이로드 제품은 기존에 잭핫(JackHot) 이라는 명칭으로 초판이 되었어요!

아마 이번 아이로드 i7제품이 잭핫의 7번째 버전...? 정도 될거에요


때문에 매 버전별로 사용자의 피드백을 받아 충분히 문제점이 보완됐을거라 생각하고 구매를 했지요ㅋㅋㅋ


모 업체에 구매요청을 했더니 블랙 색상의 재고가 하나 남아있어서

당일 발송이 가능하다고 하더라구요ㅋㅋㅋ


두근두근하면서 바로 질렀지요!!!




바로 다음날 배송이 왔는데, 생각보다 크기가 어마어마하더랍니다....ㄷㄷ



내부 포장박스는 이런식으로 되어있어서 꽤나 깔끔한 편이었어요ㅎㅎ

그리고 저 박스는 잘 보관해두셔야 나중에 A/S받기가 쉽답니다~




그리구 박스 안에 보시면 킥스탠드와 랜치, 충전기가 다 들어있으니,

조립하실때 꺼내쓰시면 됩니다~

(충전기는 30V 2A에요!)

킥스탠드는 왼쪽 앞쪽에 나사 하나를 풀고 홈에 맞춰 끼운뒤,

다시 나사를 쪼으시면 되요



개봉하고 손잡이, 컨트롤 패널, 후미등 조립 후의 i7 모습!

박스는 큰데, 막상 개봉해보면 생각보다 크진 않지만,

처음 써보시는 분들이라면 크다고 느끼실수도 있어요~



요고는 계기판인데, 보시면 

'00' 위치에는 속도가,

'2' 라는 위치에는 기어 단수, (1~3단)

그 아래 파란 패널은 전원버튼을 한번씩 누를 때 마다 바뀝니다ㅎㅎ

키로수, 운행시간, 등등



그리고 요 부분이 바로 전 버전에 비해 개선된 부분인데,

바로 쇼바와 쇼바 덮개가 생겨서 승차감도 좋아지고, 디자인도 상당히 깔끔해졌어요~!


그리고 접는 부분도 보시다싶이 한번만 딸깍 재끼면 접을수 있게 되어있어서 편합니다ㅋㅋ



무부하에서는 최대속력이 27km/h로 나옵니다~!

상당히 만족스러운 성능이에요ㅋㅋ



이런저런 장점들이 있는반면 단점들도 있는놈이라 구매하실때 꼼꼼히 체크하시고 구매하세요!


장점

- 가격대비 무게, 출력이 상당히 괜찮은 편

- 디자인이 깔끔함

- 생각보다 경사가 있는 등판각도에서도 출력이 나쁘지 않음

- 방수가 되서 비가 오더라도 사용 가능

- 전동 브레이크와 수동브레이크 함께 사용가능
- 솔리드 타이어라 바람걱정 없음

- 동급 타이어크기 대비 승차감이 뛰어남



단점

- 타이어가 작아 비오는 날에 타면 조금 미끄러울수도 있음

- 후미등이 별도의 전원을 이용해 불이 들어옴

- 손잡이가 작지만, 적응되면 괜찮음

- 수동 브레이크의 제동력이 썩 좋지는 않음



다음엔 실제 야외 주행에 대한 의견을 알려드릴게요~!!


'잡담 > Review' 카테고리의 다른 글

아이로드 i7 주행 후기  (0) 2017.04.17
아이로드 i7 스탠드 STL 파일  (27) 2017.04.04
Onion 5불짜리 리눅스 서버  (0) 2017.03.27
펜 플러스(ADP-611) 사용기  (1) 2017.03.18
아이폰7 로즈골드 구매후기  (0) 2017.03.04



안녕하세요~


이번 시간엔 Onion사에서 나온 초소형 Linux 서버에 대해 한번 볼까합니다


제품 이름은 Omega2+ 이구요,

이 제품을 처음 보게 된 곳은 Kickstarter 였습니다


그때 포스트를 보고 이건 진짜 나오면 대박날 물건이다 싶었는데,

사실 배송이 진짜 될까 싶기도 하고 장난감 같아보여서 Pre-order를 걸어뒀죠ㅋㅋ



그러다 메일이 한 통 오더니, 배송준비가 됐으니 주소를 알려달라 하더라구요ㅋㅋㅋ


배송지를 입력하고 2주나 지났을까요?

Kickstarter에서 나온 제품이라 큰 기대를 안했었는데,

받고보니 진짜 대박 아이템인듯 합니다ㅋㅋㅋ






주문당시 아두이노 확장 독(Dock)을 추가해서 두개가 배송이 됐네요~



이게 본체랍니다~! 

Omega2+ 제품이구요, 추가모듈 필요없이 이자체로도 무선을 지원한답니다!!

저는 여기에 안테나만 추가로 달았습니다



요고는 아두이노 독이구요, 

Micro 5pin이 있어서 시리얼 연결 & 전원공급이 가능합니다.

그 외에도 USB인터페이스, DC 인풋, 아두이노 핀아웃 등이 있네요



요고는 장착 사진이랍니다~



PC랑 연결하면 오른쪽 위에 보시다싶이 주황색 불이 들어옵니다


자 그럼 어떻게 세팅하는지 한번 살펴봅시다



# 1


작업환경 꾸미기


먼저, 기존 라즈베리같은 경우에는 micro-SD카드에 Linux를 다운받아 설치하는 형태였지만,


이놈은 아무 추가 장치없이, 내부에 이미 Linux가 펌웨어처럼 임포팅이 되어있답니다...ㄷㄷ

진짜 물건이에요ㅋㅋㅋㅋㅋ


우선 초기 세팅을 위해서는 무선 연결이 필요한데, 그 전에


Windows -> Bonjour 설치

Mac OS -> 아무 설치 필요 없음

Linux -> Zeroconf Service 설치


가 필요하답니다.


# 2


무선 Access Point 접속하기


위 프로그램들을 다 받으셨다면, 이제 연결을 해볼까요?



먼저 PC에서 무선 설정에 들어가신다음,

'Omega-알파벳들'

을 클릭해주세요!


암호는 12345678 이랍니다ㅋㅋㅋㅋ 


연결하셨다면, 인터넷창을 켜시고,


http://omega-알파벳들.local

(알파벳들 = 무선상에 뜨는 기기번호에요~! 저의 경우 '43FF'입니다)

or


http://192.168.3.1


로 접속하시면 Omega2의 설정 GUI로 넘어가게 된답니다



# 3


인터넷을 통한 GUI 세팅



처음 접속하면 위와 같은 화면이 나옵니다.

Start를 눌러주세요~



자 여기서 로그인 아이디와 암호는

root / onioneer


랍니다~



그리고 정말 대단한게, AP로 사용되면서도 동시에 주변 와이파이까지 잡을수 있어요ㄷㄷ...

신기방기ㅋㅋㅋ

본인 주변에 공유기가 있다면 잡아서 잘 설정해두세요!



그 다음에는 기기등록인데, 이부분은 아이디가 없어 귀찮으시다면 넘어가도 됩니다



저는 그냥 귀찮더라도 가입하고 입력했지요ㅋㅋㅋ



입력이 마무리되면 이제 펌웨어 업데이트와 인터넷을 통해 코딩과 제어가 가능하도록 해주는

console을 설치한답니다.



완료될때까지 절대 파워를 뽑지마세요~!!

벽돌됩니다...!



자 마무리가 되면 주황색 LED가 깜빡이다가 꺼지게 될거에요!

이때 전원을 뽑았다 다시 켜면 또 다시 깜빡이면서 설치가 된답니다


약 4분정도 걸리니 인내심을 가지세요ㅋㅋㅋ



다 설치하시고 다시 주소로 연결하면


http://192.168.3.1


위와 같이 새로운 로그인 창으로 넘어갑니다!

계정 로그인은 똑같이 


root / onioneer


로 입력하면 됩니다.




따란~!!


진짜 잘 만들었다 생각이 드는부분이 바로 여기였어요.

웹페이지만으로 데스크탑 GUI를 잘 구현했더라구요


# 4


GUI 터미널을 이용한 GPIO 제어


간단하게 코딩을 한다기 보다 GPIO TOOL을 이용해 GPIO테스트만 한번 해보겠습니다.



보시면 가운데 GUI로 Omega2가 보이죠?

그 옆에 진한 회색핀들을 클릭하면 그 핀을 제어할 수 있습니다.


그리고 Input으로 쓸지, Output으로 쓸지는 Direction에서 설정하시면 되구요,

값은 아래 Value에서 바꿔주면 바로바로 업데이트가 된답니다ㅋㅋ



Value에서 1로 설정하면 해당핀의 LED불빛이 들어오게 되지요^^


더 많은 기능들과 코딩을 하고싶지만,,,

밀린 일들이 너무 많아서ㅠㅠ 


다음 포스팅에서는 Terminal로 연결해서 실제 코딩을 통해 GPIO핀을 제어해보도록 하겠습니다!


- 끝 -



'잡담 > Review' 카테고리의 다른 글

아이로드 i7 스탠드 STL 파일  (27) 2017.04.04
전동 킥보드 아이로드 i7  (0) 2017.04.03
펜 플러스(ADP-611) 사용기  (1) 2017.03.18
아이폰7 로즈골드 구매후기  (0) 2017.03.04
인텔 리얼센스 (Real sense) 사용기  (7) 2016.10.11



이번시간에는 아두이노의 고급 기능 중 인터럽트에 대해 알아보겠습니다~


아두이노를 이용하여 Working prototype이나 기타 기능이 있는 기기를 제작하실 때, 가장 많이 쓰는 부분이


1) Analog Input을 이용한 센서값 획득과


2) 버튼을 이용한 digital Input


3) Digital Output을 이용한 LED나 모터의 제어


요렇게 세가지가 아닐까 합니다.


가끔 아두이노를 이용해서 뭔가 만들다보면,

제어해야할 부품들은 많은데, 이 많은 것들을 어떻게 컨트롤 해야하나 막막할때가 있죠?


예를들어 LED가 3개라면, 가장 단순하게는 버튼 3개를 이용해서 각각을 켰다 껐다 하면 되겠지요ㅎㅎ


그럼 만약 제어할게 10개가 넘어가면.....????



결국엔 이런 형태의 참사가 일어나지 않을까요ㅋㅋㅋㅋㅋㅋㅋㅋ



요즘 수많은 디자인 트렌드를 보더라도 단순한 외형이지만, 다양한 기능이 가능한 형태의 제품을 선호하는 것 같아요~

가장 쉽게 예를 들 수 있는건 누가 뭐래도 아이폰!!



단지 버튼 하나만으로 지문인식, 홈 버튼(짧게 누르면), 앱 리스트(두번 누르면), 시리(꾹 누르면), 스크린샷, 등등...


어떻게 저렇게 많은 기능들이 버튼 하나로 가능할까요??? 신기하지요...

그럼 아두이노에서는 이런 기능을 못만드는 걸까요??


가능합니다!


이번시간에 볼 내용이 바로 버튼 하나로 여러개의 기능기 가능하도록 코딩을 해보는 것입니다.


먼저 몇가지 준비물이 필요한데요,


1) 아두이노


2) 택트 스위치


3) 저항


4) LED 3개



# 1



먼저 버튼을 이용해서 digital Input에 연결해봅시다.


흔히 스위치를 세팅하는 방법에는 크게 두가지가 있어요!


1) 풀업 스위치(Pull-Up) : 누르지 않았을때 1의 값이 입력되고 눌렀을 때 0이 되는 세팅





2) 풀다운 스위치(Pull-Down) : 누르지 않았을때 0의 값이 입력되고, 눌렀을 때 1이 되는 세팅





어떤 세팅을 쓸지는 본인이 원하는데로 하면 되겠지만,

특별한 이유가 없다면, 풀다운 스위치를 쓰시길 추천합니다 (항상 5V의 전압때문에 전류를 낭비할 이유가 없겠지요...?)


이게 풀업, 풀다운이 되는 이유는 전기의 단순한 특성때문이에요~

전류는 저항이 작은쪽으로 흐르려하기때문에 이걸 잘 고려하시면 회로를 이해할 수 있을겁니다.



# 2


이제 3개의 LED와 저항을 이용해서 Digital Output 부분의 회로를 구성해봅시다,






자 이제 LED 세팅도 끝났으니, 코딩을 해볼까요?



# 3


우선 코딩을 하기에 앞서서 한 가지 생각을 해봅시다.


과연 버튼 하나를 이용해서 어떻게 멀티펑션을 할 수 있을까요?


그 키는 바로! 버튼을 누르는 시간횟수에 따라 설정할 수 있답니다.


짧게 누름, 길게 누름, 여러번 누름에 따라 기능을 나누려면 어떻게 해야할까요..?


바로 인터럽트(Interrupt)를 이용하는 것입니다.


인터럽트란, 영어로 '방해하다', '중단하다' 의 의미를 가지는데 


실제로 메인 코딩 "void loop()" 이 돌아 가는동안 이 인터럽트에 digital input이 생기면


메인 코딩에서 벗어나 지정된 특수 함수를 먼저 실행하고 다시 메인 코딩으로 돌아가게 된답니다.


그럼 이 인터럽트가 왜 필요하죠?




인터럽트 없이 버튼의 누름 시간만 카운팅해서 쓴다면 사실 코딩이 복잡해질 뿐만 아니라, 제대로 동작하지 않는 경우가 발생합니다.


우리가 버튼을 누르면, 메인코딩에서 벗어나 버튼을 누른 순간의 시간(T1)을 기록하는 함수를 실행하고,

다시 버튼에서 손을 뗄 때 시간(T2)을 기록하는 함수를 다시 실행하게끔 만듭니다.


그럼 T2-T1 이 일정시간을 못넘기면 짧은 버튼,

T2-T1이 일정시간을 넘기면 긴 버튼이 되겠지요ㅎㅎ


그럼 버튼을 누른 횟수는 어떻게 확인할까요?


단순합니다! 

카운팅 변수를 하나 생성하고,

버튼을 눌렀을때 카운팅 값을 하나씩 올려주면 되겠지요?


때문에 여기서는 스위치의 아웃풋을 digital input과 interrupt핀 두개에 동시에 연결해줘야 합니다.





# 4


자 그럼 코딩을 한번 살펴봅시다.


  1. /* Multi-function button program example.
     * 
     * This code is able to extend single digital button action to multi functional action
     * According to press time, and press number.
     * 
     * This code works with pull down button setting.
     * If you want to use pull up setting, 
     * 
     * change digitalRead(button) == HIGH
     * to digitalRead(button) == LOW
     * 
     * Copyrights @ Gerinimo
     * http://geronimob.tistory.com
     */
    //declare led connected pins
    uint8_t LED[] = {5,6,9};
    uint8_t i_led = 1;

    //mapping values of brightness
    uint8_t brightness[] = {B00000000,B00100000,B01000000,B01100000,
                            B10000000,B10100000,B11000000,B11111111};
    uint8_t i_brt = 0;

    //declare button( digital 16 = 
    const int button = 16;

    //stores if the switch was high before at all
    volatile int state = LOW;

    //storing the button state for short press mode
    volatile int state_short = LOW;

    //storing the button state for long press mode
    volatile int state_long = LOW;

    //stores the time each button went high or low
    volatile unsigned long current_high;
    volatile unsigned long current_low;


    void setup()
    {
      pinMode(LED[0], OUTPUT);
      pinMode(LED[1], OUTPUT);
      pinMode(LED[2], OUTPUT);
      pinMode(13, OUTPUT);

      pinMode(button, INPUT);
      attachInterrupt(0, read_button, CHANGE);
      Serial.begin(9600);

      digitalWrite(13,HIGH);
    }

    int i = 0;

    void loop()
    {
      if(state_short == HIGH)
      {
        //do something when button 0 was pressed short ...

        i_brt = (i_brt+1) %  8;
        state_short = LOW;
        
        //end
      }    
      if(state_long == HIGH)
      {
        //do something when button 3 was pressed long ...
        digitalWrite(LED[i_led],LOW);
        i_led = (i_led+1) % 3;    
        i_brt = 0;
        state_long = LOW;
        
        //end
      } 

      analogWrite(LED[i_led],brightness[i_brt]);
    }


    //is called when the Interrupt Pin is pressed or released (CHANGE Mode)
    void read_button()
    {
      //cycles through the buttons to find out which one was pressed or released

      //if this is true the button was just pressed down
      if(digitalRead(button) == HIGH)
      {
        //note the time the button was pressed
        current_high = millis();
        state = HIGH;
        return 0;
      }
      //if no button is high one had to be released. The millis function will increase while a button is hold down the loop function will be cycled (no change, so no interrupt is active) 
       if(digitalRead(button) == HIGH && state == HIGH)
      {
        current_low = millis();
        if((current_low - current_high) > 1 && (current_low - current_high) < 300)
        {
          state_short = HIGH;
          state = LOW;
        }
        else if((current_low - current_high) >= 300 && (current_low - current_high) < 4000)
        {
          state_long = HIGH;
          state = LOW;
        }
      }
    }



먼저 LED는 PWM으로 제어하기 위해서 5,6,9번 핀에 연결했습니다.


동작하는 순서는 단순해요ㅎㅎ


버튼을 짧게 누르면 이미 맵핑해둔 값을 이용해 PWM으로 LED의 밝기를 변화시키구요,


버튼을 길게 누르면 컨트롤이 현재 LED가 아니라 그 옆에 있는 다른 LED로 변하게 됩니다.


즉 짧게 누르면 6번 핀의 LED 밝기가 변하고,


길게 한번 누른 뒤에 짧게 누르면 9번 핀의 LED 밝기가 변하게 된답니다^^



아니 이게 대체 무슨소리여....라고 생각이 드시면


다른것 보다도 각각의 불리언들의 값이 언제 변하는지를 잘 살펴보세요!


언제, 어떻게 변하는지, 그리고 변하면 어떻게 되는지에 초점을 맞춰 코드를 살펴보시면 이해될겁니다!


아래 사진은 이해를 돕기위한 버튼과 언터럽트와 불리언의 타이밍 그래프 입니다.




모르시겠으면... 다시 읽어보시고,


그래도 모르시겠다면 댓글을 남겨주세용ㅎㅎ


- 끝 -



안녕하세요~!


이번시간에는 delay() 함수와 millis()의 차이에 대해 살펴보겠습니다.


일반적으로 LED를 깜빡이거나, 단순한 ON/OFF의 반복이 지속될때는 delay()함수를 많이 이용하죠?


아두이노 Blink 예제를 보셔도 delay()함수를 이용해 LED를 켰다 껐다 한답니다.


그럼 만약에 LED 두개를 엇갈려서 1초 간격으로 껐다켰다 하려면 어떻게 할까요?


아래 그래프처럼 보이게 만들어 봅시다.


자 그럼 LED1은 1초동안 깜빡이고, 그 중간 타이밍에 LED2를 깜빡이면 되니 직관적으로 코드를 짜보면



const uint8_t LED1 = 10;
const uint8_t LED2 = 11;

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
}

void loop() {
  //LED1 Blink
  digitalWrite(LED1,HIGH);
  delay(1000);
  digitalWrite(LED1,LOW);
  delay(1000);

  //LED2 Blink
  digitalWrite(LED1,HIGH);
  delay(1000);
  digitalWrite(LED1,HIGH);
  delay(1000);
  }


이런식이 될텐데, 실제로 이 코드를 돌려보면 원하는 형태로 움직이지 않는답니다.

아마 아래와 같은 식으로 켜졌다 꺼졌다 할겁니다.


이렇게 되는 이유는 바로 delay()함수때문인데요, delay()함수가 실행되면 

해당 시간(ms)동안은 아무런 동작도 하지않고 그냥 정지! 상태입니다.


즉, delay()함수뒤에 그 어떤 코드가 있더라도 실행이 되지않는답니다!



그럼 이를 해결할수 있는 방법은 두 가지가 있어요.


1) delay()함수를 쓰되, 최소 시간단위로 쪼개서 코딩하는 법


2) millis()를 써서 특정 시간이 되면 특정 기능을 실행


먼저 1번 방법부터 봅시다.


# 1 


최소 시간단위로 쪼갠다는게 무슨 의미냐 하면, 

상태가 변하는 순간부터 다음 상태가 변하는 순간까지의 시간을 단위시간이라 하고,

이를 기준으로 코딩한다는 겁니다.


맨 처음 그림에서 보면 상태는 500ms 마다 변하고있죠?

그럼 최소단위시간은 500ms가 된다는겁니다.


이에 맞게 코딩을 해보면,


const uint8_t LED1 = 10;
const uint8_t LED2 = 11;

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
}

void loop() {

  digitalWrite(LED1,LOW);
  digitalWrite(LED2,LOW);
  delay(500);

  digitalWrite(LED1,HIGH);
  digitalWrite(LED2,LOW);
  delay(500);

  digitalWrite(LED1,HIGH);
  digitalWrite(LED2,HIGH);
  delay(500);

  digitalWrite(LED1,LOW);
  digitalWrite(LED2,HIGH);
  delay(500);
}


이런 식으로 짜면 딱 맞게 동작하겠죠?


하지만, 여전히 delay()함수때문에 이 외의 코드를 추가한다거나,

analog 신호를 읽어올때는 제대로 실행이 되지 않는답니다.



# 2


그렇다면 delay함수때문에 뒤의 코드가 실행이 되지 않는다면 어떻게 하면 될까요?


우선 delay()함수를 좀 더 뜯어서 살펴보면,



int delay_time = 500;


while(delay_time < 500){

  //Nothing.. just wait

  delay_time++;

}



이런 식으로 빈 while루프가 특정 시간이 되기전까지 무한히 도는 형식의 코딩이 된답니다.


하지만 임의로 우리가 delay함수 내부의 while루프에 특정한 코딩을 할 수가 없기때문에, 

위 함수의 형식을 빌려와서 void loop() 메인 루프에 그대로 덧씌워 delay()함수를 모사한다면

조금 더 자유로움 delay()함수를 사용할 수 있게 되겠지요.



그럼 어떻게 할까요?


단순합니다. 매 루프마다 millis()라는 함수를 사용해서 현재 아두이노의 시간이 몇 ms인지 파악하고,

그 시간이 우리가 원하는 지정된 시간 이상이 되면 특정 함수를 실행하는 거죠.


단, millis()는 조금만 시간이 지나도 숫자가 매우 커지기때문에,

가장 큰 길이의 데이터 형태인 long을 사용하고,

음수의 시간데이터는 나오지 않기 때문에 unsigned를 붙혀 데이터의 가용범위를 늘립니다.


자, 그럼 LED 1개를 깜빡이는 코드를 millis()로 구현해보면,



const uint8_t LED1 = 10;


// Set timer

unsigned long pre_time = 0;

unsigned long cur_time = 0;


// Set LED status

boolean state_led1 = 0;


// Set duration

const int duration = 1000;


void setup() {

  pinMode(LED1, OUTPUT);


  // Initialize previous counter time

  pre_time = millis();

}


void loop() {


  // Update current time in every loop

  cur_time = millis();


  // If time gap between previous and current goes over the duration,

  // run digital write!

  if(cur_time - pre_time >= duration){


    // Change the boolean state.

    state_led1 = ~state_led1;


    digitalWrite(LED1,state_led1);


    // Update previous counter time.

    pre_time = cur_time;

  }


  else{

    // Do something...

  }

  

}



이런 코드가 나오게 됩니다. 

시간을 계속 업데이트하고,

-> 지정된 시간만큼의 차이가 나는지 확인

-> 만약 차이가 아직 안나면 else()구문으로 넘어가 평소 작업 수행

-> 막약 차이가 나면 if()구문 안의 작업을 수행

-> 작업 완료되면 pre_timer를 현재 값으로 업데이트 해주고 if()구문 끝


이 예제는 LED가 1개일때 사용하는 예제이구요, 

위에서 언급되었던 LED 2개를 번갈아가며 켜는 예제의 경우는

위의 코드를 보고 한번 짜보세요^^


하지만 이러한 millis()의 경우도, 완벽한 해결책이 되지 못할때가 많습니다.

예를 들어 else()구문의 코드가 굉장히 오래 걸려 100ms 가 걸렸다면, 

LED는 100ms이하의 속도로 깜빡거릴수가 없겠죠..?


이런걸 해결하는 방법이 바로 '타이머(Timer)' 랍니다.

타이머와 관련된 자료는 여기서 볼 수 있습니다^^


궁금하신 점이 있으시면 댓글 남겨주세요~!


그리고 도움이 되셨다면 공감 버튼 한번만 눌러주세요^^


안녕하세요^^


이번시간엔 아두이노는 아두이노인데, 블루투스가 함께 내장된 아두이노인 블루노(Bluno), 그 중에서도 비틀(Beetle)에 대해 포스팅을 해보도록 하겠습니다.



(주말이라 교회 모임가기전에 간만에 카페에서 여유롭게 포스팅을...!ㅎㅎ)


먼저 블루노 비틀은 위와같이 생긴 칩이고, 블루투스가 되는 모듈도 있고, 안되는 모듈도 있으니 잘 확인하시고 구매하시기 바랍니다^^


우선 하드웨어 스펙부터 살펴볼게요


이 제품은 위키(wiki)가 정말 잘 되어있어서 여기만 보셔도 무난할 듯 하지마,

 처음부터 쭈욱 설명드리도록 하겠습니다!



먼저 메인 MPU로는 ATmega 328을 사용하고 있습니다. 때문에 기존 아두이노와 같이 사용이 가능하구요, 다만 물리적으로 핀이 좀 적게 나와있어서 불편할 수도 있지만, 복잡한 시스템을 만드실게 아니라면 충분하실 듯 하네요ㅎㅎ



그럼 한번 만들어 볼까요?


# 1


무선 정보 설정하기


먼저 블루노 비틀은 블루투스를 사용하기때문에, 컴퓨터나 핸드폰에서 장치를 찾을 수 있습니다.



저는 윈도우에서 확인했습니다만, 보시면 'Bluno'라는 이름이 보이시죠?

바로 기본적으로 세팅된 이름이 'bluno'로 되어있기 때문이랍니다.


사실 사용하는 목적에 따라 블루투스 이름을 바꿔주는게 사용하기도 편하겠죠?

그럼 어떻게 이름을 바꾸는지 알아봅시다.


먼저, 'AT-command'라는 몇몇 명령어들이 있습니다.

이를 이용하면 이름, 통신속도, 암호화방법, 등등 수많은 옵션들을 바꿀수 있답니다.



이름을 바꾸려면 먼저 비틀을 PC와 연결하고, 아두이노IDE를 실행합니다.



먼저 보드 세팅을 UNO로 맞춰주시고, (비틀은 UNO로 맞춰져있더라구요~)

포트를 맞춰서 잡아주세요ㅎㅎ


그 다음은 시리얼 모니터를 켜셔서 아래와 같이 

"No line ending"

을 선택해주시고, Baudrate도 115200으로 설정해주세요~!

그리고 +++를 입력하시고, 

아래처럼 'Enter AT Mode'라는 말이 뜨면 AT-command mode로 들어간겁니다.

만약에 안뜬다면, 설정을 다시 한번 확인해보세요^^



자 그럼 AT-command mode에 접속했으니, 명령이 잘 먹히는지 확인해봅시다.

AT-command를 사용할때는 line설정을 또 바꿔줘야합니다.

"Both NL & CR"

을 선택하셔야해요!!


그런 뒤 AT를 입력하면 아래처럼 OK라는 문구가 뜨면 성공!



이제 이름을 바꿔볼까요~?


이름은 

AT+NAME=원하는 이름

이렇게 설정하시면 됩니다.



그리고 세팅을 마치고나서는 AT-command mode를 나가야겠지요?


AT+EXIT을 입력해서 설정을 마칩니다.


그리고 PC나 폰에서 확인하시면 이름이 변경되어있을거에요~!

혹시나 변경이 안되어있으면, 블루노를 껐다 켜시거나, 

PC나 폰의 Bluetooth를 껐다 켜보시면 될겁니다.


그 외에 몇가지 설정해야할것들이 더 있는데, 보통의 블루투스는 페어링할때 암호를 필요로한답니다.

하지만 모드를 HID connection로 변경하면 암호를 입력하지 않아도 연결이 되요~!


이 외의 많은 명령어들이 있는데, 포스팅의 마지막에 둘테니 한번 참고하세요^^



# 2


아두이노에서 사용할 수 있는 기능들


자 이제 제대로 블루노를 사용해볼까요?


사실 함수는 대단한것들이 있지는 않아요~

Serial 함수를 통해 데이터를 보내면 자동으로 블루노 하드웨어에 있는 블루투스 칩으로 데이터가 전송이 되고, 

이 블루투스 칩에서 전달받은 데이터를 무선으로 쏴준답니다ㅎㅎ


참 쉽죠잉~!


# 3


스마트폰을 통한 무선 시리얼 모니터링



자 그럼 테스트를 한번 해볼까요?


먼저 아두이노에서 Serial통신을 세팅해서 1초에 2번 아날로그 데이터를 전송하도록 코딩을 합시다.


void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

}


void loop() {

  // put your main code here, to run repeatedly:

  Serial.println(analogRead(A0));

  delay(500);

}


위 코드를 업로드 하고, 폰에서 앱을 다운받습니다.


안드로이드나 아두이노나 Bluno를 검색하면 앱이 나올거에요~^^

저는 아이폰이라서 앱스토어에서 검색하니 Bluno terminal이라는 앱이 있더라구요



앱을 다운받아 실행하고, 따로 페어링이나 옵션을 설정안해도 자동으로 연결이 된답니다. (신기신기..)



그리고 이 블루투스로 전송되는 신호는 PC에서도 모니터링이 된답니다.



Debug 세팅이 ON이 되어있다면 가능한거구요, 이 설정을 끄면 PC에서는 모니터링이 안됩니다.

아래 AT 명령어에서 11번을 참고하세요^^


이상으로 테스트는 끝!



# 4


블루노를 위한 AT 명령어들 (AT-command sets)



1. "AT+FSM" change the working mode

AT+FSM=FSM_TRANS_USB_COM_BLE<CR+LF>USB-UART BLE transparent mode
AT+FSM=FSM_HID_USB_COM_BLE_AT<CR+LF>USB-UART BLE HID mode
AT+FSM=?<CR+LF>Request the working mode (default: FSM_TRANS_USB_COM_BLE)

여기서 Transparent mode블루노  <ㅡ>  블루노 의 통신을 할때를 의미합니다.

이때는 블루노 하나는 Central로, 또 다른 하나는 Peripheral로 설정을 해야한답니다. (11번 설정 참고!)

HID mode는 블루노 <ㅡ> 스마트폰. PC등과 연결할때 필요한 설정입니다^^


1*. "AT+KEY" to simulate pressing some buttons in HID mode, read FAQ 16 below for How to use HID mode.
AT+KEY=keyValue0<CR+LF>To simulate one button was pressed
AT+KEY=keyValue0+keyValue1<CR+LF>To simulate two buttons was pressed
AT+KEY=keyValue0+keyValue1+keyValue2<CR+LF>To simulate three buttons was pressed


2. "AT+ROLE" change the CENTRAL-PERIPHERAL configuration

AT+ROLE=ROLE_CENTRAL<CR+LF>BLE CENTRAL mode
AT+ROLE=ROLE_PERIPHERAL<CR+LF>BLE PERIPHERAL mode
AT+ROLE=?<CR+LF>Request the CENTRAL-PERIPHERAL configuration (default: ROLE_PERIPHERAL)


3. "AT+MIN_INTERVAL" change the minimum connection interval

AT+MIN_INTERVAL=10<CR+LF>Recommended minimum connection interval (10ms) for PC and Android
AT+MIN_INTERVAL=20<CR+LF>Recommended minimum connection interval (20ms) for IOS
AT+MIN_INTERVAL=?<CR+LF>Request the minimum connection interval (default: 10)


4. "AT+MAX_INTERVAL" change the maximum connection interval

AT+MAX_INTERVAL=10<CR+LF>Recommended maximum connection interval (10ms) for PC and Android
AT+MAX_INTERVAL=40<CR+LF>Recommended maximum connection interval (40ms) for IOS
AT+MAX_INTERVAL=?<CR+LF>Request the maximum connection interval (default: 10)


5. "AT+UART" change the baud rate of UART

AT+UART=115200<CR+LF>Set the baud rate to 115200
AT+UART=?<CR+LF>Request the baud rate of UART (default: 115200,8,N,1)


6. "AT+BIND" bind another BLE chip. BLE can only connect to the BLE chip with this MAC address

AT+BIND=0x0017ea9397e1<CR+LF>Set the BLE binding (destination) MAC address to 0x0017ea9397e1
AT+BIND=?<CR+LF>Request the binding (destination) MAC address (default: 0x8A6D3B8A6D3B)


7. "AT+CMODE" set whether the connection of BLE is binding or arbitrary

AT+CMODE=UNIQUE<CR+LF>BLE can only connect to the BLE chip with binding(destination) MAC address (see "AT+BIND" command)
AT+CMODE=ANYONE<CR+LF>BLE can connect to any other BLE chips
AT+CMODE=?<CR+LF>Request the binding connection mode(default:ANYONE)


8. "AT+MAC" Request MAC address

AT+MAC=?<CR+LF>Request MAC address of the BLE


9. "AT+NAME" Set the name

AT+NAME=DFBLEduinoV1.0<CR+LF>Set the name of BLE to "DFBLEduinoV1.0".The length is limited to 13 Bytes or below
AT+NAME=?<CR+LF>Request the name of the BLE (default: DFBLEduinoV1.0)


10. "AT+RESTART" restart the BLE

AT+RESTART<CR+LF>Restart the BLE chip


11. "AT+SETTING" change the default setting (new in BLE firmware 1.6)

AT+SETTING=DEFAULT<CR+LF>Restore the default settings, same as PERIPHERAL mode
AT+SETTING=DEFPERIPHERAL<CR+LF>Restore the default settings for PERIPHERAL mode
AT+SETTING=DEFCENTRAL<CR+LF>Restore the default settings for CENTRAL mode
AT+SETTING=?<CR+LF>Request the setting mode (default: DEFPERIPHERAL). If the settings are changed by AT command, "UNKNOWN" will be replied.



12. "AT+BLUNODEBUG" When Bluetooth is connected and BLE chip(CC2540) received the UART message from MCU(ATMEGA328), send the UART message not only to the Bluetooth, but also to the USB port. So that when Bluetooth is connected, we can use the serial monitor to get the UART message. (new in BLE firmware 1.6)

AT+BLUNODEBUG=ON<CR+LF>Turn on the BLUNO DEBUG so that when Bluetooth is connected, we can use the serial monitor to get the UART message.
AT+BLUNODEBUG=OFF<CR+LF>Turn off the BLUNO DEBUG so that wireless programming will be more stable.
AT+BLUNODEBUG=?<CR+LF>Request the BLUNO DEBUG state (default: ON)

여기서 이 Debug function을 활성화 시키면, 블루투스로 전송하는 신호를 시리얼 모니터를 통해 어떤 신호가 나가는지를 모니터링(디버깅)할 수 있게 도와주는 설정이랍니다.

크게 필요한 경우가 아니라면, 안정적인 데이터 전송을 위해 꺼주세요~! 왜냐하면 블루투스 하나로 보낼 신호를 USB포트를 통해서 한번 더 보내주기 때문에 신호가 꼬이거나, 왜곡되는 현상이 발생할 수 있답니다!


13. "AT+USBDEBUG" When Bluetooth is connected and BLE chip(CC2540) received the Bluetooth message from IOS or Android device, send the data not only to the UART, but also to the USB port. So that when Bluetooth is connected, we can use the serial monitor to directly get the Bluetooth message. (new in BLE firmware 1.6)

AT+USBDEBUG=ON<CR+LF>Turn on the BLUNO DEBUG So that when Bluetooth is connected, we can use the serial monitor to directly get the Bluetooth message from IOS or Android device.
AT+USBDEBUG=OFF<CR+LF>Turn off the USB DEBUG so that wireless programming will be more stable.
AT+USBDEBUG=?<CR+LF>Request the USB DEBUG state (default: OFF)


14. "AT+TXPOWER" Change the Transmitted Power which will change the signal range. (new in BLE firmware 1.6)

AT+TXPOWER=0<CR+LF>Change the Transmitted Power to fit the iBeacon calibration. (4, 0, -6 -23 is acceptable)
AT+TXPOWER=?<CR+LF>Request the Transmitted Power (default: 0)


15. "AT+IBEACONS" Enable the iBeacons feature(new in BLE firmware 1.6)

AT+IBEACONS=ON<CR+LF>Enable the iBeacons feature.
AT+IBEACONS=OFF<CR+LF>Disable the iBeacons feature.
AT+IBEACONS=?<CR+LF>Request whether the iBeacons feature is enabled. (default: ON)


16. "AT+VERSION" the version of the firmware(new in BLE firmware 1.6)

AT+VERSION=?<CR+LF>Request the version of the firmware.


17. "AT+RSSI" Request the RSSI of the BLE (new in BLE firmware 1.6)

AT+RSSI=?<CR+LF>Request the RSSI of the BLE(if there is no connection, "-000" will be returned)


18. "AT+MAJOR" Set the major number of the iBeacons (new in BLE firmware 1.6)

AT+MAJOR=0<CR+LF>Set the major number of the iBeacons to "0". (0 to 65535 is acceptable)
AT+MAJOR=?<CR+LF>Request the major number of the iBeacons.(default "0")


19. "AT+MINOR" Set the minor number of the iBeacons (new in BLE firmware 1.6)

AT+MINOR=0<CR+LF>Set the minor number of the iBeacons to "0". (0 to 65535 is acceptable)
AT+MINOR=?<CR+LF>Request the minor number of the iBeacons.(default "0")


20. "AT+EXIT" Exit the AT Command Mode (new in BLE firmware 1.8 ),

AT+EXIT<CR+LF>

Exit the AT Command Mode.

네 이제 진짜 끝!ㅎㅎ


첫째날

# 대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소


둘째날

# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor -> 숙소


셋째날

# 세인트폴 대성당 -> 스카이가든 -> 런던탑 -> 타워브릿지(템즈 강) -> 에미레이트 스테디움 -> Poppies Fish&chips 

-> 타워브릿지 -> 숙소


넷째날

# 빅토리아 역(옥스포드 튜브) -> 커버드 마켓 -> 크라이스트 처치 -> 엘리스 샵 

-> University Church of St. Mary the Virgin -> Radcliffe Camera ->  Nando`s -> 방황 -> 런던 -> 숙소



하루가 지나고 둘째날이 되면 조금 덜 설렐줄 알았는데, 아침 일찍부터 눈이떠지더군요ㅎㅎ




# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor ->  숙소


숙소에서 길따라 쭉쭉 걸어가다보니 말로만 듣던 베이커가(Baker Street)이 보입니다ㅏㅎㅎ



나름 사진좀 찍어보겠다고 찍었는데 전봇대만 없었어도... 나름 구도가 괜찮았는데ㅠㅠ

아무튼 저 건물사이 코너를 지나서 쭉 걸어가다보면!



짜잔~! 보이시나요...??

잘 안보이시죠??



그럼 이제 보이시나요ㅎㅎㅎ

아마 셜록 드라마나 소설을 보시는 분이라면 꼭 한 번쯤 가고싶은 곳일거에요!

바로 셜록의 집이랍니닼ㅋㅋ



실제 촬영지나 셜록이라는 인물이 지내던 곳은 아니구요,,,

셜록홈즈 드라마나 소설에 나오는 내용을 기반으로 박물관으로 만들어 둔 곳이랍니다ㅎㅎ



사실 저는 막 덕덕덕 스러울 정도로 셜록을 챙겨보진 않지만, 

나름 관심을 가지고 보던 책과 드라마여서 꼭 한 번쯤은 와보고싶어서

일정에 우겨넣었답니다ㅎㅎㅎ



개장시간은 매일 오전 9:30 ~ 오후 6:00까지라고 합니다.

늦게가면 줄이 길것 같아서 아침 첫 일정으로 잡고 왔지요~


우선 입장하기 전에 1층 기념품샵에서 입장권을 구매하셔야해요~!

위에 사진에서 큰게 입장권이랍니다



아침 일찍갔다고 생각했는데도 사람들이 꽤나 있더라구요,,

그치만 저희는 제일 먼저 입장해서 좋은점들이 많았어요ㅎㅎ



바로 요 사진~! 

사람이 없을때가 없기때문에, 처음 입장할때 말고는 아무도 없는 사진을 찍을수가 없다고 합니다ㅠㅠ

나름 뿌듯하긴 했지만, 지금와서 보니 왜 굳이 저걸 위해서,,,라는 생각이 들기도 하네요

건물이 총 4층인지라 보고나서 계단따라 올라가는데ㅔㅔ.



깜놀.....!!

계단뒤에 숨어있는 밀랍인형이 있더라구요... 정말 심쿵

무섭긴 한데

자세히 보니깐 와 정말 잘만들었다 싶더라구요ㅋㅋㅋㅋ




층마다 돌다보면 이런 셜록이 사용했던 물품들이 꽤 많이 전시되있습니다~



아마 셜록 시리즈를 좀 알고 계신분들은 이 소품들을 보면서 

어떤 씬에 나왔던 도구다!

라고 번뜩 떠오르실거에요ㅎㅎ

저는 저 총보고 번뜩!



그리고 신기했던게 3층에 가시면 창가에 방명록이 있어요ㅋㅋㅋ

여기도 저희가 처음가서 맨 먼저 이름이 있어요~


혹시나 싶어 앞장을 넘겨봤는데, 대부분 한국인이었답니닼ㅋㅋㅋㅋㅋㅋㅋ



둘러보면 밀랍인형이 꽤 많은데, 보여드리기가 섬뜩한것들이 많아서 못올리겠네요ㅠㅠ

그나마 이런 인형들이 조금 무난한 설정이었어요~



박물관을 다 돌고나면 뭐니뭐니해도 기념품이겠죠~?ㅎㅎ

별에별 기념품을 많이 팔고있었는데, 저는 샷잔을 모으고있어서

셜록 샷잔 하나와 셜록빠순이 친구를 위한 키체인을 샀어요^^


그렇게 아침일찍부터 셜록박물관을 둘러보고는

다음 일정인 포토벨로 마켓을 향해 출발~!



# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor ->  숙소



포토벨로마켓은 길거리 시장이라고 보시면 되요~

상인들이 나와서 먹을거리부터 옷, 기념품 등등 잡다한것도 많이 판답니다^^

특히 포토벨로마켓은 토요일에 핫하다고들었는데,

이 날이 토요일이었지욯ㅎㅎㅎ


잔뜩 기대를 안고 Baker Street Station에서 지하철을 타고 가기로 했습니다.



워우... 뭔가 느낌있는 지하철이더군요..



왠지 모르게 스파이더맨 시리즈중에 리저드맨 시리즈가 떠오르더라구요

그 교수가 지하에서 연구하던 장소같기도 해서ㅎㅎ



언뜻 봐도 굉장히 오래되보이는 지하철이었죠??ㅎㅎ

옆에있던 판떼기를 살펴보니 1863...?! 허허허헣ㅎㅎ

저때부터 지하철이 다녔을까요....??ㅋㅋㅋ


아 참 지하철을 타다보니 머릿속에 자꾸 한 문장이 맴돌아요ㅋㅋㅋ

"Mind the gap!"

"승강장과 열차사이 간격이 넓으니 발조심하세요"라는 뜻인데,

문이 열리면 저 문장이 3~4번은 반복되면서 무의식중에 박혀버렸나봐요ㅎㅎ



따란~! 드디어 도착!!

Ladbroke Station에서 내려서 올라오기만 하면 바로 포토벨로마켓 거리가 시작됩니다ㅎㅎ

아무것도 못먹었던터라 매우 배가고팠는데...ㅠㅠㅠ

맛있는게 많고, 꽤 긴거리에 걸쳐서 가게가 있다고 해서

어어어어엄청 맛있어보이는 가게가 아니면 휙휙 넘어갔어요ㅋㅋ



이것두 맛있어보여 군침이 돌았지만... 과감히 패쓰..!!

무슨 족발같은거였어요ㅋㅋㅋ



그러던찰나!!

눈에 띈것이 있었으니 바로 소세지 샌드위치(...?)!!!

짭잘한 맛이 먹고싶던때에 있었던 가게ㅎㅎ

이름이 초리조!(Chorizo) 라는거 였는데 소세지긴 한데 엄청 짠 소세지였어요ㅋㅋㅋ



그래도 혹시나 길가다 더 맛있는집이 나올수도 있으니 하나만 사서 노나먹었는데...

바보같이 초리조를 길에 흘려버렸답니다ㅠㅠㅠㅠ


하지만 상당히 깨끗하게(?) 흘려서...

그리고 먼지도 없었고 무엇보다 배가 고파서...

네...ㅎㅎ 잘 먹었습니다! 데헷~!



그러고 길가다가 들리고싶었던 가게가 있었어요!

바로 Whittard of Chelsea 

여기는 대단하다기 보단, 찻집이에요ㅎㅎ


상당히 오랜기간동안 있었던 체인 찻집인데, 런던가면 꼭 사보라는 말에 들어가봤답니다.

원하는 티를 시음해볼수도 있고, 이거 향좀 맡을수 있냐 물어보면

엄청 친절하게 설명까지해주면서 차를 건네더라구요ㅋㅋㅋ


나름 기분좋게 찻잎이랑 차 우려먹는 거름망(?)을 사서 돌아다녔지요



근데....누가 그랬어요....길다고....

우린 초리조 하나밖에 못먹었는데 이렇게 포토벨로마켓이 끝나면 어쩌라는거죠ㅠㅠㅠㅠ

젠장!!!


여러분 맛난거 보이면 그냥 막 드세요ㅋㅋㅋㅋ


고르지말고 그냥 먹는게 답입니다..

다 먹고 배부른데 맛있는게 보인다구요??

또 드세요~! 먹는게 남는거에요ㅋㅋㅋㅋ


이제 배고픈 몸을 이끌고 하이드파크로 가볼까요!


아 참!! 그리고 여행 동선 짜실때, 북쪽 -> 남쪽으로 이동하시면 

상당히 눈부시고 역광이라 사진이 잘 안나온답니다!!

되도록이면 남쪽 -> 북쪽으로 동선을 선정하시길 추천합니다^^



# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor ->  숙소



이제 하이드파크로 가야할텐데, 처음엔 쉽게쉽게 걸어가면 될줄 알았는데 이게 정말 무지막지하게 커요....!!

진ㅉㅏ 걸어가면 각오하고 가세요...ㅋㅋㅋ

저희는 아침부터 걸어다녀서 너무 힘들었답니다ㅠㅠ


여기가 바로 하이드파크 초입이랍니다ㅎㅎ

이때까지만 해도 그렇게 큰 줄 몰랐....



걷다보니 중간에 호수도 엄청 크게 있고,

진짜 강아지랑 산책하는 분들이 엄청 많더랍니다ㅋㅋㅋ

사람만한 리트리버를 데리고오신분도 있고









부부끼리 사이가 좋아보여서 한장 찍었는데, 잘 나온거같아욯ㅎㅎㅎ

얘들도 커플인데 갈라놓고 올껄 그랬나봐요ㅠㅠ



그렇게 다리가 터져라 걸으며 남동쪽으로 공원을 나와 조금만 더 걸어가면 해롯 백화점이 나온답니다ㅎㅎ




# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor -> 숙소




요기 앞에 보이는 곳이 바로 해롯 백화점입니다.

근데,, 뭔가 심상치 않은 분위기가 흐르더라구요;;

당시 반 트럼프시위가 런던에서도 있었거든요ㅠㅠ

피켓까지 들고 구급차도 왔다갔다해서ㄷㄷ...


그리고 백화점 가도 저희가 볼게 없을것 같아 패쓰...!!

일정을 파괴하고 다른곳을 향해 갔습니다ㅋㅋㅋㅋ



처음에 버스를 타고 목적지를 향해 가고있었는데,

버스기사 아저씨께서 갑자기 다음 정류장이 마지막 정류장이라고 내리라 하더군요ㅠㅠ

무슨 상황인지 파악이 안되 런더너들께 물어봤는데 그분들도 어리둥절....??!?

알고봤더니 반트럼프 시위때문이었다능....!!!


급하게 버스에서 내리는바람에  Whittard에서 샀던 차를 통째로 두고왔답니닿ㅎㅎㅎㅎ

내 20유로ㅠㅠㅠㅠ


슬픈마음을 접어두고 꿋꿋히 걸어서 목적지까지 걸어갔습니다.



그 곳은 바로 햄리스(Hamleys) 라는 장난감 가게입니다ㅎㅎ

건물이 꽤 높아서 위에서 내려오면서 구경하니 볼 거리가 꽤 많더라구요



이건 맨 꼭대기층에 있는 레고 모델(?)들이랍니다ㅎㅎ



인상적이었던게, 다른 인형가게들과 달리 인형이 가죽밖에 없어욬ㅋㅋㅋㅋ

첨에 보고 흠칫...! 했는데, 

그 자리에서 바로 솜을 넣어 만들어준답니다ㅎㅎ



일정이 파괴되서 방황하던때 다시 Whittard 가게를 찾아 돌아다녔어요ㅋㅋㅋ

차를 너무 사고싶어서..



가던길에 보이는 애플 샵!

건물이 너무 멋져서 들어가봤어요ㅋㅋㅋ






내부공간이 엄청 넓고 2층구조더라구요~!

샌프란시스코에서 갔던 애플샵과 비슷한 느낌이었네요ㅎㅎ



다른 Whittard 가게에서 차를 사고 나오니 Fortnum & Mason 이 코앞에!

때마침 정시에 도착했더니 정문 시계탑에서 인형들이 나와 춤을 추고는 다시 들어가네요ㅎㅎ

여기도 차로 유명하답니다.



내부 공간이 상당히 넓고, 저 종탑에 돌아가면서 판매하는 모든 차가 있답니다ㅎㅎ

향을 맡아볼 수도 있고, 뒷편에 아저씨께서 친절히 차를 내려주기도 한답니다^^


차 뿐만 아니라 다과나, 간식거리류를 많이 팔아서 지인분들 선물을 사기에는 딱 좋은 곳인것 같아요!

저는 집에서 마실 블렌딩 티와 레몬커드를 샀는데, 진짜 맛있어요ㅋㅋㅋㅋ

더 사올걸 그랬나봐요ㅠㅠ




# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor ->  숙소





이날 진짜 3만보를 걸었던가요...

이번엔 버킹엄 궁정을 향해 노예처럼 걷고 또 걸었답니다ㅠㅠㅠ


도착하고나니 해질무렵이라 잔잔한 느낌...?



원래 근위대 교대식을 할때 구경을 많이 하실텐데,

시간도 지났고 그걸 보는게 무슨 의미가 있나....

싶어서 쿨하게 찍고 턴~!


근데 경비보는 근위병들 멋지긴 하더라구요ㅋㅋㅋ



# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor ->  숙소





웨스트민스터 사원을 향해 가던 길, 어제 봤던 경찰마들이

차에 실려가고있더라구요ㅋㅋㅋ

이 또한 문화 충격..!!



길 가다 얻어걸린 사진이라지요ㅋㅋㅋ 저 멀리 보이는 빅벤!

역시 영국은 이런 느낌의 사진이 어울리는 도시!!

폰 배경사진으로 걸어두고 다닌답니닿ㅎㅎ



여기는 웨스트민스터 대성당입니다.

정말 웅장하죠??

하지만 길거리 돌아서기만 하면 이런 멋진 성당이 천지빼까리라서
나중에 되면 그러려니...한답니다ㅋㅋㅋㅋ



사실 이 웨스트민스터 대성당이 의미있었던 이유는

기독교인이라면 한번쯤 들어보셨을

'웨스트민스터 신앙고백서'가 발생하게 된 곳이라 신기했었답니다.


이 신앙고백서를 위해 당시 성직자분들이 모여 

약 1000회 이상의 회의를 통해 종교적 신념 39가지를 정리했다고 하지요ㅎㅎ


그것이 바로 '소요리 문답' 과 '대요리 문답' 이랍니다.



여기는 국회의사당!

뭔가 으리으리하죠??ㅎㅎㅎ



# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor ->  숙소




아..드디어 하루의 마지막을 행복하게 장식할 저녁...!

Hawksmoor 라는 레스토랑을 갔답니다.


진짜 저녁먹으러 갈때만큼은 서로가 버스를 간절히 원해서

다리 안아프게 잘 타고 왔답니다ㅋㅋ


아마 Hawksmoor가 여러지점이 있을텐데,

저희가 간 지점은


Seven Dials

라는 지점이었어요!



처음에 입장하고나니 예약시간보다 이르게 와서,

바에 앉아 바텐더와 수다를 떨며 맥주를 홀짝홀짝ㅎㅎ



그러다 자리가 생겨서 앉았는데,

참 우리같은 아시아인은 하나도 안보이더군요...

그래서일까요 막 옆테이블에서 쳐다보면서 얘기를 하는것만 같은...?


그럼 어때 내가 돈주고 왔는걸!

난 맛있는걸 먹고 가야겠어ㅋㅋㅋ



저 두 요리가 정말 맛있었답니다...ㅠㅠㅠ 또 먹고싶어ㅠㅠ

하나는 바게뜨빵에 무슨 참치마요 같은걸 발라먹는 음식인데,

알고보니 고등어를 이용해 만든 소스(?) 더라구요ㅎㅎ


짭짤하게 정말 꿀맛..!



하지만 이 관자요리가 제일 대박이었습니다!!!

꼭 시켜드세요!!

나눠먹지 말고 혼자 시켜서 다드세요!!!


마늘향이 확 나면서 엄청나게 부드럽답니다ㅠㅠ



요건 스테이큰데.... 사실 너무 질겼어요ㅋㅋㅋㅋ

저거보다 옆에있는 버터 고구마 오븐구이가 더 맛있었습니다...



다 먹고나면 당연하다는 듯이 메뉴판을 다시 줍니다ㅋㅋㅋㅋ

디저트 때문이죠ㅋㅋㅋㅋ

왠지 그냥 먹고 바로 일어나면 흥이 깨질것만 같아 디저트를 시켰어요ㅋㅋ

땅콩버터가득한 아이스크림과 쿠키?? 같은 메뉴였답니다ㅎㅎ



저희가 시킨 메뉴는 요러하답니다ㅋㅋ

다행히 팁은 따로 안내도 자동으로 다 붙어나옵니다...쥬륵


이까지 왔는데, 그래, 이 돈 내고 먹어야지 어쩌겠습니까ㅠㅠ

그나마 돈 아끼는 방법은...!!

가게에서 Would you like something to drink?

라고 물으면, 당당하게 대답하세요!


Just Tap water Please :)



이렇게 둘째날도 무사히 여행을 마쳤답니다..!


포스팅 너무 힘들어ㅠㅠㅠㅠ

다음 포스팅은... 언젠가... 올라올겁니다... 아마두....??




이번시간에는 아두이노의 고급 기능중 타이머에 대해 알아보겠습니다~



만약에 아두이노에 LED를 달고 1초 간격으로 깜빡이고 싶다면 어떻게 하시나요??


아마 예제에 있는 Blink처럼 짜면 되겠지요?ㅎㅎ



// the setup function runs once when you press reset or power the board

void setup() {

  // initialize digital pin LED_BUILTIN as an output.

  pinMode(LED_BUILTIN, OUTPUT);

}


// the loop function runs over and over again forever

void loop() {

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);                       // wait for a second

  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second

}



자 그럼, 1초간격으로 LED는 깜빡이면서, 1초에 10번 아날로그 신호를 읽으려면 어떻게 해야할까요??


// the setup function runs once when you press reset or power the board

void setup() {

  // initialize digital pin LED_BUILTIN as an output.

  Serial.begin(9600);

  pinMode(LED_BUILTIN, OUTPUT);

}


// the loop function runs over and over again forever

void loop() {

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);                       // wait for a second

  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second


  Serial.println(analogRead(A0));

  delay(100);

}


먼저 딜레이를 줘서 깜빡이는것 까지는 이해가 되지요?

그럼 이 상황에서 시리얼 모니터를 켜보면.... 엥??

1초에 10번이 아니라, 거의 2초에 한 번 정도 업데이트가 되죠?


이유는 바로 이 delay()함수 때문이에요!

delay()함수가 실행되면 해당된 시간이 지나기전까지는 그 뒤의 코드로 넘어가지 않습니다.


그럼 도대체 어떻게 해야


1) 1초 간격으로 LED를 깜빡이면서,

2) 1초에 10번 아날로그 신호를 받는 것


이 가능할까요??


바로 타이머(Timer)를 이용하는 겁니다.


타이머란,

아두이노 회로의 오실레이터에서 생성되는 클럭을 이용해 물리적인 시간을 측정하는 것으로,

딜레이의 경우, delay(1000) 이면 1000ms동안 생성되는 클럭이 있더라도 아무 일을 못하는 경우지만, 

타이머로 1000ms을 준다면, 1000ms 주기의 클럭이 생길 때 마다 특정일을 하므로

멀티테스킹(멀티쓰레드)과 비슷한 효과를 줄 수 있습니다.



http://playground.arduino.cc/Code/Timer

위 페이지로 가시면, 타이머 라이브러리에 대한 설명이 있고,


https://github.com/JChristensen/Timer

위 페이지에서는 해당 라이브러리를 다운받을 수 있습니다.


다운받고 압축을 푸시면 폴더가 생길텐데, 이 폴더를 내 문서->Arduino->Library 폴더에 통째로 넣어주시고

아두이노를 다시 실행하세요!


예제에 가시면 Timer-master -> blink2 가 있을거에요

열어서 실행해보시면 딱히 변한거 없이 LED가 깜빡이는걸 보실 수 있을겁니다


그럼 1초당 10번 아날로그 신호 모니터링은 어떻게 할까요?


바로 every 함수를 사용하면 해결할 수 있습니다.




#include "Timer.h"


const int LED1 = 13;

const unsigned long PERIOD1 = 1000;    //one second


Timer t;                               //instantiate the timer object

Timer led;                            //timer for analogRead function.


void setup(void)

{

    Serial.begin(9600);

    pinMode(LED1, OUTPUT);

    t.oscillate(LED1, PERIOD1, HIGH);

    led.every(100,readData);

}


void loop( )

{

    t.update();

    led.update();

}


void readData(){

  Serial.println(analogRead(A0));

  return 0;

}



자 그러면 깔끔하게 해결이 되지요ㅎㅎ


다만!! 메인 루프에 딜레이를 넣는순간 모든 타이머들이 뒤로 밀려나기때문에 조심하셔야되요!


이상 타이머를 이용한 멀티테스킹이었습니다^^

오늘의 제품 사용기는 펜제너레이션 사의 디지털 펜펜 플러스(ADP-611) !!


디지털 펜이라.. 생소하시죠?? 처음들으면 뭔가 와콤 같은건가..? 라고 생각하실수도 있는데요, 네 와콤과 비슷한 기능을 합니다~! 다만, 다른점이 있다면 와콤과 달리 종이에다 글을 쓰면 그 글이나 그림들이 pdf파일로 저장이 된다는 것입니다


....?!


오호잉?!ㅋㅋㅋ 신기하지요??ㅎㅎ


그럼 한 번 살펴볼까요~?



오우.. 뭔가 고급스러워 보이는 포장이지요??ㅎㅎ

디지털펜중에 비싼것들이 무지 많지만, 성능과 가격을 따져보면, 이 Pen+(ADP-611)가 최고지 않을까 싶어요^^

Pen+와 노트 사진이랍니다



자 제품을 한 번 자세히 살펴볼까요~?

안에 보시면 리필심이 상당히 많이 들어있답니다ㅎㅎ 한 개 짜리는 제품구매시에 추가로 구매했는데, 이만큼 리필심이 있는줄 알았으면 사지말걸 그랬어요ㅠㅠ



펜 알맹이의 모습이에요~



보시면 뒤쪽에 인디케이팅을 해주는 삼각형 모양의 LED와 비프음을 내주는 스피커(?) 구멍이 있답니다ㅎㅎ

그림을 보시면 위에 블루투스 모양이 있지요??

바로 이 펜은 블루투스로 폰이랑 연결이 된다고합니다~!!

폰에 펜플러스 앱을 깔고나면 손쉽게 사용할 수 있습니다

앱 이름은 PENHUB이구요, 앱스토어, 구글 플레이스토어에 다 있어요!



블루투스 페어링을 위해서는 아래쪽 버튼을 꾹~~ 누르고있다보면 LED가 깜빡깜빡 거릴거에요~



페어링이 되기전엔 파란 불이다가,



페어링이 되면 짜잔~ 초록불이 들어온답니다ㅎㅎ


다만 단점이 있다면... 삐빅 삐빅 소리가 나는데, 생각보다 소리가 커서 도서관이나 이런데서 쓰기에는 불편했는데...

최근에는 펌웨어가 업데이트가 되서 비프음을 켜고끌수 있다고하네용ㅋㅋ

여기 서 한 번 확인해보시면 아실겁니다~



자 아직 설명을 제대로 못드렸는데, 이 Pen+는 종이에다 쓰면 된다고 말씀드렸는데, 유일한 단점이 있다면,

'아무 종이에다가 쓸 수 없다' 라는 것입니다.


바로 특수 용지가 필요합니다.

위 사진을 보면 뭐가 특별한지 잘 모르겠지요..??


한 번 확대해서 볼까요?



자세히 보시면 수많은 점들이 다다다다다다다다ㅏ다다다다다ㅏㅏㅏㅏ닥 찍혀있는데, 아무래도 이 점들이 위치나, 노트의 정보를 암호화 하고있는것 같다는 생각이 드네요ㅎㅎ


그래도 이 노트에 쓰면 정말 기가막히게 필압이나, 필체를 인식하기 때문에 물건이다 싶을거에요~


그럼 노트를 다 쓰면 전용 노트를 또 사야하나요??ㅠㅠㅠ

좀 비싸죠 다른 노트에 비해서...


하지만!! 방법이 있답니다.


바로 홈페이지에서 이런 종이를 파일로 무료 배포하고 있답니다!

http://www.pengenerations.com/pages/download.php?pageno=42


여기로 가시면 다운받으실 수 있는데, 프린팅할 때 설정을 잘 정하셔야 한답니다.

왜냐면 수많은 점들이 좁은 간격으로 있기때문에 300dpi 이상으로 인쇄해야했던걸로 기억합니다ㅋㅋ



아무튼 이상으로 Pen+(ADP-611)에 대한 간단한 사용후기입니다.


(사실 지금은 와콤펜으로 테블릿이랑 쓰고있어서 이 제품에 막 손이 가진 않네요...

테블릿이 있으신 분들은 구매하시기전에 한 번 고려해보시길ㅎㅎ)


'잡담 > Review' 카테고리의 다른 글

아이로드 i7 스탠드 STL 파일  (27) 2017.04.04
전동 킥보드 아이로드 i7  (0) 2017.04.03
Onion 5불짜리 리눅스 서버  (0) 2017.03.27
아이폰7 로즈골드 구매후기  (0) 2017.03.04
인텔 리얼센스 (Real sense) 사용기  (7) 2016.10.11


이번 포스팅에선 4일동안 있었던 런던에서 일을 담아보려합니다ㅎㅎ


첫째날

# 대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소


둘째날

# 셜록홈즈 박물관 -> 포토벨로 마켓 -> 하이드파크 -> 해롯 백화점 -> 버킹엄 궁전 -> 웨스트민스터 성당

-> Hawksmoor -> 숙소


셋째날

# 세인트폴 대성당 -> 스카이가든 -> 런던탑 -> 타워브릿지(템즈 강) -> 에미레이트 스테디움 -> Poppies Fish&chips 

-> 타워브릿지 -> 숙소


넷째날

# 빅토리아 역(옥스포드 튜브) -> 커버드 마켓 -> 크라이스트 처치 -> 엘리스 샵 

-> University Church of St. Mary the Virgin -> Radcliffe Camera ->  Nando`s -> 방황 -> 런던 -> 숙소




먼저 저희가 지낸 숙소는 Studio2Let 으로, Russell square 역에서 걸어서 약 7분 거리였습니다. 주변에 간단히 끼니를 떼울수 있는 Tesco Express 도 있었고(좀 작긴 했지만, 냉장음식이나 음료들은 충분히 있어요~!) 주요 목적지들이 근처에 있어서 나름 괜찮았답니다ㅎㅎ



도착했던날 저녁 테스코익스프레스에서 샀던 커리와 센드위치 그리고 맥주!!! 꿀맛!!



요 사진은 저희가 지냈던 숙소사진인데, 오른쪽에 보시다싶이 반원 모양으로 4층 높이의 건물이 쭈우욱 있습니다. 신기했던 점은 이 건물 하나를 각각의 여러 숙박업소들이 나눠서 관리하더라구요...! 자세히 보시면 집집마다 숙박업체 이름이 다 달라요ㅎㅎ





# 대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소



이제 유럽에서 첫날의 들뜬 마음을 끌어안고 대영박물관으로 걸어서 출바알~!!




Russell Square 공원을 가로질러 대영박물관을 향해ㅎㅎ

유럽에서 하나 신기했던점은, 위도가 높다보니 진짜 해가 빨리 떨어지고 아침인데도 약간 저녁노을지는것만 같은 느낌이 든답니다!! 되게 처음엔 신기했는데... 해가 빨리떨어지니깐 그만큼 일정을 빠르게 진행해야되서 매우 피곤했습니다ㅠㅠ



아무튼, 그렇게 15분가량? 걸어가면 대영 박물관(The British Museum)이 나타납니다ㅎㅎ

입장료는 무료 이니깐 걱정마시고 들어가세요!

입장시에는 간단한 짐검사가 있는데, 간단하게 하고 끝나니 걱정마시구요ㅋㅋ



따란~! 입장하고나서 찍은 박물관의 입구모습이에요. 아침일찍가서(10시쯤이었나..?) 사람이 그닥 많지는 않았답니다.

입장을 했으니 이제 제대로 돌아봐야지요ㅎㅎ



먼저, 규모에 깜짝 놀랐습니다... 이렇게 큰 박물관을 무료로 운영한다니... 크으~!

천장은 반투명 유리로 되어있어 간접조명이 정말 멋있었어요ㅋㅋ 



입장을 했으니 이제 투어를 해야하는데, 가이드가 없는 여행이니 한국어 가이드 디바이스를 빌려서 다녔습니다. 

가격은 아마 인당 5파운드였던걸로 기억합니다ㅎㅎ



자 이제 투어를 시작해볼까요~?

먼저 고대 이집트 문명의 방부터 시됩니다. 아마 박물관으로 입장하시고 나면 왼편에 있는 방이 고대 이집트 방이었을겁니다. 위 사진은 로제타 석비(Rosetta stone) 라 불리는 석판입니다. 


기원전 196년도에 제작된것으로 알려져있는데요, 뭐랄까... 기원전 이라는 단어는 역사책에서나 들어봤던 저에게 실제로 기원전 유물을 접한다는건 정말 신선한 경험이었습니다. 마치 다른 세상에 온것만 같은 느낌을 받았달까요..? 정말 잘 보존되어있는 유물이 많아서 감탄을 금치못했답니다ㅎㅎ



요기도 이집트 방에 있었던 작품중에 하나였는데, 피라미드에 있던 석판이었던것 같아요ㅋㅋ 자세히 보면 쐐기문자들이 깨알같이 박혀있는데 신기하지요 정말...!! (아마 글을 보시는분들도 직접 가셔서 보시면, 으와... 하실거에요ㅎㅎ)



이집트 방을 지나고나면 고대 그리스 방이 나옵니다ㅎㅎ 수 많은 석상들과 조각상들, 그리고 파르테논 신전을 모방해서 만들어둔 방과, 그 안에가면 각각의 그리스 신들의 조각이 동서남북에 맞게 잘 전시되어있고, 위치가 의미를 가진다고 합니다. (가이드를 들어면 알려줄거에요ㅋㅋㅋ 지금은 기억이 나지않습니다...)



요고는 그 다음방으로 이어지는 통로 중간에 있는 모아이 석상!




근데 정말 돌아다니다보면 봐도봐도 끝이 없답니다ㅋㅋㅋ 윗층에 가면 한국관도 있어서 도자기 작품과 한복, 한옥이 있었답니다. 달 도자기(?)였나 그런것도 있었어요ㅎㅎ


그치만 제대로 보시려면 반나절은 투자하시고 보셔도 질리지않으실거에요^^

저희는 3시간 정도 있었는데도 다 못봤다고 하지요... 돌다보면 배고프실텐데, 가운데 원통같은 건물 계단을 올라가시면 식당이 하나 있는데... 비쌉니다ㅠㅠ



물론 식당 말고도 1층에 뒷편으로 가시면 간단한 음료, 빵, 샌드위치를 팔기도 하는데 역시 비싸요.... 든든히 먹고 들어가시길 추천합니다ㅎㅎㅎ


멋지기도 하지만 한편으론 이 유물들 중 상당수가 전쟁 때, 아니면 도굴을 통해 모인것이라는 생각을 해보니 안타깝기도 했습니다만, 무료개방에다가, 수많은 학생들이 이 장소에서 역사책으로 배우는것이 아니라 눈으로 공부하는 모습들을 보니 교욱차원에서는 좋은것 같다는 생각이 들기도 했습니다.


자 이제 점심을 먹으러 가볼까요~!?




# 대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소


점심은 대영박물관에서 조금만 더 내려가면 있는 코벤트 가든에서 먹기로 했습니다.

가는길에 건물들을 둘러보는데, 역시 내가 꿈을 꾸는게 아니구나 라는 생각이 들더라구요ㅋㅋㅋ



요 길은 코벤트 가든으로 가는 길입니다. 보시면 건물들이 대부분 벽돌건물에, 상당히 오래된듯한 느낌이 들죠??ㅠㅠ 이런 건물 구경하는 맛에 유럽여행을 가는것도 있지않을까 싶네요ㅎㅎ



여기가 바로 코벤트 가든 입구랍니다ㅎㅎ 이때가 아마 2시쯤이었던것 같은데 해가 벌써 뉘엇뉘엇 넘어가는듯 했습니다ㅠㅠ 대낮에도 해가 머리위에 오지않아요ㅋㅋㅋ



들어가면 1층과 2층, 지하상가 요렇게 있는데, 가운데는 여기저기서 구매한 음식을 들고와서 앉아먹을수 있는 자리가 있습니다ㅎㅎ



ㅎㅎㅎ진짜 여기로 온 이유는 다름아닌 쉑쉑버거(Shack Shack Bugger)!! 한국에도 매장이 생겼댔지만 한번도 가본적이 없었다는....ㅠㅠ 여기서 싱글버거랑 밀크쉐이크랑 감자칩 이렇게 주문했던것 같아요ㅎㅎ 소스는 옆에서 맘껏 퍼올수 있답니다.

와 근데... 저 쉐이크는 정말 쫀득쫀득해서 잊혀지질 않아요ㅋㅋㅋ



식사도 마쳤으니~ 또 구경을 나서야겠지요ㅎㅎ 코벤트가든을 가로질러서 나가면 또 하나의 마켓이 있는데, 바로 쥬빌레 마켓입니다. 여기는 약간 여러 국가에서 이민오신분들이 장사를 주로 하셨어요.


저도 유럽오자마자 백팩의 지퍼가 터지는 바람에.... 난감하던 차에 여기서 싼 값에 가방하나를 건졌지요ㅎㅎ 덕분에 무사히 유럽여행을 마칠수 있었다고 합니다~~


저희는 어지간히 멀리 갈 것 아니면 대중교통을 안타는 여행컨셉으로 다녔어요ㅎㅎ(사실 돈아끼려 한거고.. 탈줄도 몰라요...)

무튼 다음 목적지를 향해 또 뚜벅뚜벅!!




대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소


한 20분 걸었나요...? 드디어 트라팔가 광장에 도착했습니다~!



파노라마로 찍어본 트라팔가 광장인데요, 보이시나요..? 오른쪽 음료수 통이ㅋㅋㅋㅋ 쉑쉑버거 쉐이크인데 양이 너무 많아서 이때까지 먹고있었답니다ㅋㅋㅋ


여기 광장은 내셔널겔러리 코앞이구요, 많은 사람들이 광장에 앉아서 예술활동을 하고있답니다~

그리고 이 광장에서 유명한 건 아무래도 저 사자 동상이지 싶어요ㅎㅎ 물론 올라가지마라는 표지는 있다지만, 다들 올라가거나 옆에서 사진을 찍는다고 하네요ㅎㅎ 저희는 그런 취미는 없던지라.. 바로 내셔널 겔러리로 이동~!




대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소



트라팔가 광장에서 뒤돌아보면 보이는 내셔널겔러리~! 이 또한 입장료는 무료랍니다^^

다만 오디오가이드는 추가금액을 지불해야해요ㅎㅎ

하지만 저희는 http://www.tourya.com/ 이곳에서 mp3파일로 오디오가이드를 받아왔지요ㅋㅋㅋ


하지만... 박물관 배치가 엄청 바뀌어서 순서는 전혀 도움이 안되고 작품을 찾아다니면서 들었답니다ㅠㅠ 

그래도 없는것 보다는 낫겠지요ㅎㅎ


정말 내셔널 겔러리의 대표그림이라 할 수 있는

얀 반 에이크의 '아르놀피니 부부의 초상'




이 작품은 레오나르도 다빈치의 미완성 작품이었어요~

이 분 작품은 작은방에 따로 크게 세 작품인가? 전시되있었던거같아요ㅎㅎ



레오나르도 다빈치의 또다른 작품!

이 작품의 쌍둥이 작품이 루브르 박물관에도 있어요~! 오디오가이드에서 언급이 되었는데 루브르가서 보니 왠지 반갑더라구요ㅎㅎ



박물관 안에서 그림을 그리시는 아저씨ㅎㅎ



이건 뭔가 유명한 그림이라고 했었는데, 

조지 스텁스의 '휘슬 재킷'이라고 한답니다~!



조르주 쉐라의 '그랑자트 섬의 오후'



고흐 '해바라기'



모네 수련

이건 사실 맛보기랄까요..?

나중에 프랑스 오랑주리 미술관에서 수련연작을 보시면 입이 쩍 벌어지실거에요...

수련 연작은 프랑스 포스팅에서 보여드릴게요^^



이건 나가는 길에 본 작품인데, 세부묘사가 상당히 디테일해서 찍어봤습니다ㅋㅋ



확대해서 봐도 뭔가 디테일이 살아있다능....





대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소


그렇게 박물관을 둘러보고 나오니 이미 해는 저 언저리로 사라지고 없더군요...ㅋㅋㅋ
박물관을 나와 미친듯이 또 걸어서 런던아이를 보러 갔답니다.

근데 누가 그랬나요,,겨울 유럽은 코트만 입고 다녀도된다고...!!
미친듯이 추웠습니다ㅠㅠㅠ 코트말고 패딩입고 다니세요ㅋㅋㅋ
코트입고다니는 분들른 런더너들밖에 없어욬ㅋㅋ


다리를 건너는동안 본 런던아이입니다.

아쉽게도 이날은 수리중이라 운행을 안하더군요ㅠㅠㅠ



대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소



다리를 마저 건너와 런던아이 밑에서 템즈강을 두고 서있으니 앞에 빅벤이 보이더군요ㅎㅎ



가까이서 본 빅벤~!



그리고 나름 런던의 상징인 2층버스와 빅벤을 동시에 찍으려했으나... 아이폰 카메라의 한계로 못찍었답니다ㅠㅠ

슬프지만 다음 여행때나 도전해봐야겠어요


대영박물관 -> 코벤트가든/쥬빌레 마켓 -> 트라팔가 광장 -> 내셔널 겔러리 -> 런던아이 -> 빅벤 -> 숙소



집으로 가는길에 말타는 경찰을 봤답니닿ㅎㅎㅎ 세상 신기...



여긴 또 어딘가요... 뭔가 해리포터라 찍긴 했는데 잘은 모르겠습니다.. 허허


그리고 집에 오는길에 이 날씨에 계속 코드입는건 무리다 판단해서 근처에 있는 '프리마크(Primark)'에 들려서 옷을 사기로 했답니다....ㅋㅋㅋ 여기가 정말 옷이 저렴하더라구요~!

이날 하루만 의도치 않은 쇼핑이ㅠㅠㅠ 가방도 사고, 옷도 사곸ㅋㅋㅋ 

그래도 기모 가득한 집업후드 하나 덕분에 유럽여행하는 내내 따듯하게 잘 다녔네요^^



하루가 정리하니 엄청 길었네요ㅋㅋ 이렇게 어느세월에 다 정리할지ㅠ



아무튼 다음 포스팅에서 봬요~

여행의 준비


어떤 여행이 되던지간에 가장 중요한 것은

- 경비

- 코스

이 두가지가 아닐까 생각합니다.


먼저, 앞서 말씀드렸다싶이 이번 유럽여행에서 남자 둘이서 여행을 했을때 아끼고 아껴서 인당 230만원가량 들었습니다...!

여행 기간은 1/19 ~ 2/1 까지 총 12박 14일 일정이었고, 해당 경비에는 식비, 교통비, 개인 선물비용, 등등 모두 포함한 비용이었습니다ㅎㅎ


코스는 


한국 출국 -> 중국 경유 -> 영국 런던 (+ 근교 옥스포드) 4일 -> 벨기에 브뤼셀 (+근교 브뤠헤,겐트) 3일 -> 프랑스 파리(+루앙) 5일 -> 중국 경유 -> 한국 입국


의 일정으로 다녀왔습니다!



저렴하게 갈 수 있었던 이유중 하나는 비행기값에서 상당금액을 아껴서 그랬던것 같네요.

보통 해외여행을 하면 특정 국가에 입국해서 그 국가에서 출국하는 식의 티켓이 대부분일텐데요, 저희는 in/out국가를 다르게 잡았어요~! 이렇게 In/Out이 다르게 되면 보통 공동운항이 많아서 상대적으로 저렴한 금액에 갈수 있지요!


그리고 또 하나의 팁은 날짜를 하루 앞,뒤로 당기다 보면 특정날짜에만 상당히 저렴한 금액의 티켓이 있을수도 있답니다.


저는 \486,000 에 런던 In/ 파리 Out 티켓을 끊었습니다.

아! 그리고 티켓을 보실땐 스카이스캐너보다는 플라이트그래프! (https://fltgraph.co.kr/)를 추천합니다ㅎㅎ 훨씬 보기에도 쉽고 상당히 많은 수의 티켓들을 잘 찾아주더라구요^^


숙소를 정할때도 돈을 아낄수 있습니다. 보통 에어비엔비를 이용하면 저렴하게 구할 수 있구요, 또 하나의 방법은 호텔 비딩을 이용하는 방법입니다. 저는 이부분은 룸메이트가 진행해서 잘 모르지만... 블로그를 보시고 참고하시길ㅎㅎ(http://blog.naver.com/whi506/220832259818)


환전 하실때는 아마 다들 잘 아시겠지만, 우리은행에서 위비뱅크, 신한은행에서 써니뱅크 등을 이용하시면 환전시 환전수수료가 꽤 크게 감면이 되니 꼭! 꼭! 참고하시길 바랍니다^^


모든 준비를 마치고 오전 9시 비행기라 전날 일찍 올라가서 밤을 새려고 새벽시간에 인천공항에 도착했습니다.


새벽시간엔 처음이라... 불꺼진 곳이 많아서 상당히 무서웠습니다ㅠㅠㅠㅠ

그렇게 공항철도에서 나와 티켓팅하는 건물쪽으로 가면 지하1층(?)이 맞을텐데 아실지 모르겠지만 찜질방이 있어요!!ㅎㅎ 무려 취침이 가능하고 씻을수도 있어서 행복하게 발걸음을 옮겼는데...



아니 이게 무슨소리요....!!!ㅠㅠㅠㅠ 새벽에 갈곳도 없고 핸드폰 베터리도 다되어가는 다급한 순간인데....ㅜㅜ 주변을 보니 저와 같은 처지의 사람들이 많더라구욯ㅎㅎㅎ 어쩔수 없이 티켓팅을 하는 3층으로 발걸음을 옮겼더니 상당수의 고객분들이 의자에 앉아 주무시더라구요... 저도 자연스럽게 콘센트옆에 자리를잡고 한숨붙혔죠...ㅋㅋㅋㅋ


그렇게 아침이 되고, 티켓팅을 마치고 수속을 하려고 들어가는데...



읭...??? 지난번 올때도 있었던것 같은 풍선이 천장 같은자리에 박혀있더군요ㅎㅎㅎ


빠르게 수속을 마치고 전철을 타고 탑승동으로 넘어갔습니다~! 바로 샤워실이 있기때문이죠ㅋㅋㅋㅋ

탑승동으로 가시면 정확히 기억은 안나지만 어떤 라운지 쪽으로 올라가는 에스컬레이터를 타고 한층 올라가면 우칙편에 있답니다.


하지만....왜이리 출국날 되는게 없던지... 하필 샤워실도 보수관계로 문을 닫았더라구요...ㅠㅠ

그렇게 찝찝한 몸을 끌고 비행기에 탔습니다~! 항공편은 중국동방항공!

소문과는 달리 나름 괜찮았습니다. 다만... 국제선인데 엔진이 하나밖에 없는 비행기를 타고가서 불안하긴 했지만..


요 사진은 한국 -> 중국넘어가는 비행기였구요, 국제선은 찍은 사진이 없네요ㅠㅠ




작아도 있을건 다 있습니다만, 220V 콘센트는 안꽂힙니다....!! 110V 변환 젠더 꼭 챙겨다니세요ㅎㅎ



한참을 날아가던 중 구름이 너무 이뻐서 한 장 찍었지요ㅎㅎ

그리곤 다시 기절.... 대략 13시간의 비행이었을거에요ㅋㅋㅋ



도착하는 동안의 비행기! 괜히 가로등이 켜진 런던을 보니 심장이 두근두근....!!


입국심사를 마치고 우리가 예약했던 Studio2Let 이라는 숙소를 향해 갔습니다.

공항에서 터미너 4번 방면에서 지하로 가면 이렇게 지하철 승차장이 나옵니다.



런던은 참 재미있었던게, 다회용 교통카드를 발급받을 수 있는데 (카드 현금 다 되었던걸로 기억합니다...) 이름이 Oyster Card 라고 합니다ㅎㅎㅎ 뜬금없이 왜 굴일까 라는 생각이 들었던...ㅋㅋㅋ


무튼 승강장에 가면 자판기에서 판매하니 구매하셔서 쓰면 되구요, 시간에 따라, 또 구역에 따라 이용금이 꽤 달랐어요! Zone 1 / 2 / 3 / 4 / 3 / 2 / 1 순으로 지하철역이 배치되었던것 같은데 출퇴근시간엔 요금이 비싸지니 그것두 고려하시고 이용하세요!!


저희 숙소는 Russell Square 근처라 여기서 내려서  테스코 익스프레스에 들려 간단한 저녁과 다음날 아침거리를 구매했습니다. 진짜 숙소에 도착하니 두근두근하는 마음보단 피로가 앞서서 한국사람들과 연락하고는 바로 잠들었던것 같아요ㅋㅋㅋ



요기가 숙소 사진이구요, 생각보다 잘 되어있어서 좋았어요~! 다만,,, 케리어끌고 엘리베이터가 없는 3층이라 첫날과 마지막날이 힘들긴 했지만, 중심지와 가까운데다, 역도 바로 코앞이라 짱짱!!


그렇게 하루가 지나갔습니다ㅎㅎ


다음날 런던 여행은 다음 포스팅에서 보여드릴게요^^

+ Recent posts