제주도에서 비오는 날 서핑보드를 셀은 소나타를 봤다

물 다 들어 올텐데....

728x90

시큐어 코딩 적용하다가 직업병이 도진다.


너무나도 많은 소스 코드에 적용하다 보니

ctrl +c 와 ctrl + v , 마우스 더블클릭의 조합으로 인한 손가락의 마비증상이...


왼쪽 새끼손가락이 아프다 ㅠㅠ

자꾸 힘을 줘서 뻗다보니 무리가 가는가보다

아직도 많이 남았는데... 오늘은 그만할까?


코딩을 한창 할 때는 타자치는 손가락이 아픈데...

728x90

BUILDING THE RECEIVER

리시버 만들기


After some comments of Mahjqa 

Mahjqa의 코멘트들 후에

I’ve changed the default cabling 

and added a reverse power protection circuit. 

나는 몇가지 기본 케이블을 바꾸고 리버스 파워 프로텍션 서킷 하나를 추가했다


First impression is good. 첫인상은 꽤 좋았다

 Also, I saved myself a lot of headaches to change the programming connector pinout 

to the standard Atmel ISP pinout.

또한 커넥터 핀아웃에서 스탠다드 Atmel ISP 핀아웃으로 바꾸는 프로그래밍하는 많은 골치거리들에서 벗어났다


For the end users the greatest change is that 

엔드 유저들에게 큰 변화가 있는데

LEGO power functions cables can easily be soldered into the board, 

레고 파워 펑션 케이블들은 쉽게 보드로 납땜이 쉽다

AND these have the power connection as well! 

그리고 전원연결도 한다

In the original design I hadn’t thought people would like to use 

the Power Functions cables 

because they’re bulky, but I was wrong. 

원래 디자인에서 나는 생각하지 못한게 

사람들이 파워펑션을 사용한다라는 것이다

왜냐하면 사람들은 많아서 내가 틀렸다

Now you can also hook up PowerFunction servos!

지금 당신또한 파워펑션 서보스에 훅업될 수 있다(빠질 수 있다)



------

그림 : New receiver circuit board – Now with power on terminals!

새로운 리시버 서킷 보드 - 지금 터미널에 전원이 들어와있다


그림 : Open PowerFunctions Receiver for Mahjqa

Mahjqa를 위해 파워펑션 리시버를 열었다


------


Hooray! I finished my troubles with the motor driver. 

올레! 나는 모터드라이버로 문제를 해결했다

I switched to other types 

(first something from TI, then back to ONsemi again with a different type)

 to solve my issues with resetting the driver, 

나는 드라이버 세팅을 바꾸며 이슈를 해결하기 위해 다른 타입로 바꿨다

(첫째로 TI 부터 뭔가 바꿨다 그리고는 다른 타입으로  ONsemi로 다시 돌어왔다 )


if anyone is interested I can provide you with details… 

만약 누군가 내가 자세한 사항을 제공하기를 원하면

For now I’m happy I can finish the receiver I was planning to build for Mahjqa, 

as I would have liked to finish it weeks ago

지금은 그저 내가 Mahjqa를 위하여 내 리시버 빌드하는 계획을 세운것을 끝내는데 만족한다

일주일 전 내가 끝내기를 원했던것 처럼


------

The last few weeks I’ve been trying to control the LVM8548 to NOT shutdown the outputs;

지난 몇주간 나는 LVM8548이 출력에의해 Shutdown 안되는것을 제어하기위해 노력했다

 I tried several schemes, from resetting the driver once in a while 

to adding series resistors to the output to nog driving the outputs continuously high 

when going full throttle to … leaving the LVM8548 at rest; 

몇가지를 시도했다. 

LVM8548이 리셋에서 full throttle(밸브를 활짝열기)로 갈 때

출력에 저항들을 추가하여 드라이버를 잠시 리셋하는것부터 

출력을 지속적으로 높게하는 nog driving(짧은 운전)까지

 



The problem is that the automatic restore is not functioning, 

문제는 자동으로 복구되는게 제대로 작동하지 않았다

you have to restore the driver by pulling all inputs low.

당신을 모든 입력을 낮게 당김으로 드라이버를 복구시켜야한다

 

In normal behavior this happens once every pwm cycle when you’re pwm-ing both inputs. 

정상적인 동작에서 당신이 입력들이 모두 PWM-ing일 때 모든 PWM 사이클에서 한번은 일어난다 

When one input is constantly high (full throttle forward / backward) 

the driver does not reset. 

하나의 입력이 지속적으로 높으면(full 스로틀이 전진 또는 후진) 드라이버는 리셋되지 않는다

There is no way to check whether something is going on. 

어떻게 그게 일어나는지 체크해 볼 방법이 없다

Now I’ve switched to the DRV8835 from TI.

지금 TI에서 DRV8835로 바꿨다 

The part is ridiculously small, 

and I bought a hot air soldering station to be able to solder it, 

and made a new layout. 

웃길정도로 작은 부분인데 납땜을위해 뜨거운 공기로 납땜하는(hot air soldering station)기기를 하나 샀다

그리고 모습이 새롭게 바뀌었다


The preliminary results are promising, 

유망한 예비결과,

although a direct connection of the motor to the outputs still shuts down the driver. 

물론 모터의 직접연결에서 출력은 여전히 드라이버 shuts down


A small inductor in series (‘chokes’ the inrush current) helps, 

시리즈안의 한개의 작은 인덕터가 돕는다('chokes' 현재 유입되는)

I’ve ordered some ferrites to test, and hopefully that will be the end of redesigning.

나는 테트스를 위해 몇가지 페리티를 주문했다

그것이 리디자인을 끝내기를 바란다


23-8

I’ve been messing around with some software issues lately, 

나는 최근에 몇가지 소프트웨어 이슈를 놓치고 있었다


had a tough time trying to find a bug in my code 

where the output pwm duty cycle of one channel depended on 

the state (on/pwm/off) of the other channel. 

다른 채널의 상태(on/pwm/off)에 의지하는 출력 PWM 듀티 사이클 코드에 있는  버그를 찾는데

꽤 시간을 허비했다


The reason was that the 8548 driver is ‘reset’ 

when all 4 inputs are low, and needs an extra 7us to start up when inputs are asserted. 

이유는 모은 4개의 입력이 낮(low)고 입력이 검증(asserted)된 다른 여분의 7us 하나가 시작될 때

 8548 프라이버가 리셋이었다


Now, when I’m pwm-ing both channels, 

at the end of one period both channels have been set to ‘float’ 

지금 나는 두채널이 'float'로 셋되는 한 기간(period)의 끝에서 두 채널 모두를 PWM-ing한다

e.g. all inputs low. 

예를들면 

When re-asserting the inputs,

the motor driver needs an extra 7us to start. 


모터 드라이버가 시작하기위한 하나의 엑스트라 7us가

다시 검증된 입력들의 모든 입력이 low다


This is roughly 10% of the complete pwm period, 

이것은 대략 PWM 기간(period)의 10%이다

so it was clearly noticeable. 

Fixed this in software. 

Will be testing more elaborately soon….

곧 좀 더 정교한 테스트를 가쳐

이 소프트웨어가 고쳐짐을 확실히 공지할만하다


-----


Lego PCB still in tape. Two other boards for size reference.

레고 PCB는 여전히 테잎로 쌓아놨다. 두 다른 보드들은 크기를 가늠하기 위함이다


Open PowerFunctions Receiver for Mahjqa

Mahjqa를 위해 파워펑션 리시버를 열었다


New receiver circuit board – Now with power on terminals!

새로운 리시버 서킷보드 - 지금 터날에 전원이 공급 됨


Glueing the block, using other bricks for alignment

다른 블로의 위치를 정하기위해 블록을 붙임(glueing) 


MIcrocontroller and motor driver

마이크로 컨트롤러와 모터 드라이버


Wiring passing through opening

오프닝을 지나는 선작업


receiver, power supply, button

리시버(수신기), 파워 서플라이(전원공급기), 버튼


Gutted bric, 3.2mm removed from base

베이스에서 분리된 3.2mm, 초라한 조각(bric)


------------------


BUILD LOG

12-6-2012

Gutted a lego brick at tkkrlab, 

tkkrlab에서 초라한(?) 레고 조각

and cut the bottom off to fit a regular LEGO plate at the bottom. 

그리고 한 일반적인 레고조각의 바닥에 맞추려고 바닥이 잘림

The space left inside is minimal. 

안쪽에 작은 공간을 남겼다

Very curious how this will work out mechanically.

이것이 기계적으로 동작할지 매우 궁금함

13-6-2012

PCB’s have arrived from ITeadStudio! 

PCB가 ITeadStudio로부터 도착함

I didn’t take into account the ribs inside the LEGO brick, 

나는 레고벽돌안에 ribs account(?)에 넣어두지 않았다

so it fits nearly when removing all ribs. 

그래서 모든 ribbs를 제거할 때 이것은 대부분 맞는다

I might try to do a redesign to make it fit easier. 

아마 쉽게 맞추도록 리디자인을 해야 할 것 같다

Now I’m waiting for the components to arrive…

지금 난 그것을 위한 콤퍼넌트를 기다리고 있다.


728x90

To verify the working of my own receiver I tested some transmitters and the LEGO receiver. 

갖고있는 리시버가 제대로 동작하는지 확인하기 위해

몇개의 트랜스미터랑 레고 리시버를 테스트한다

Below are some results from measurements.

아래에는 분석한 결과들이다

All measurements of IR data were made using a TSOP4136 receiver 

and viewing the output on my scope.

TSOP4136리시버로 분석하고 내 스코프에 분석된 모든 IR결과를 보여준다



--------------------------------

Which transmitter uses which commands?

트랜스미터가 사용하는 명령어(command)는?

8879 (dual jog)

8879 (듀얼 조그)

This remote uses ‘increment PWM’ and ‘decrement PWM’ commands from Single Channel Mode 

when jog wheels are turned. 

조그휠이 돌아가면 'PWM증가'나 'PWM감소' 명령이 싱글채널모드에서 동작한다


when only one ‘stop’ button is pressed this is sent using the ‘Brake Then Float’ command 

from Single Channel Mode (PWM mode), 

한개의 '스톱'버튼이 눌려지면 'Brake Then Float'명령어를 사용하여 전송한다. 

싱글채널모드에서(PWM모드)


when both ‘stop’ buttons are pressed  Combo Direct Mode is used with both channels set 

as ‘Brake Then Float’.

두개의 '스톱'버튼이 눌려지면 '콤보 다이렉트모드'는 두 채널과 함께 사용된다. 'Brake Then Float'처럼 설정되어...


---------------------------------

8885 (dual joystick)

8885 (듀얼 조이스틱)

This remote uses Combo Direct Mode for all commands. 

이방식은 모든 명령어(command)를 콤보 다이렉트모드를 사용한다.

This remote sends the joystick state continuously if one of the joysticks is used. 

이것은 하나의 조이스틱이 사용되면 조이스틱의 상태를 계속 보낸다 

I found it remarkable that it sent the command ‘float’ to the output 

이것 'float' 명령을 출력으로 보낸다는것을 찾아냈다.

when the joystick was released, as this is the default action if a timeout happens 

조이스틱이 릴리스되면 타임아웃이 일어났을때 처럼 기본액션같다면

(i.e. when no joystick is pressed or when IR reception is interrupted).

(예를들어, 조이스틱이 아무것도 눌려지지 않았거다 IR 수신이 방해받았을 때)

Edit: at first I assumed that missing one IR message would cause a timeout. 

Then Philo  pointed out that it takes more than a second to timeout, 

so the float command DOES make sense!

주 : 처음 가정하기를 하나를 놓쳤다. IR메세지의 원인이 타임아웃일거라는.

그런데 필로가 지적해줬다 그것이 1초보다 더 걸렸다고.

그래서 float 명령이 맞아떨어졌다

(이게 당췌 뭔뜻인지...)


----------------------------------

IR Transmission timing

IR전송 시점(타이밍)

On the last page of the LEGO IR specification a lot of figures 

and text is dedicated to a very nice timing schedule 

많은 기능들과 글자로 정의된 매우 멋진 타이밍스케줄이 

레고 IR 스펙에 마지막페이지에 있다

where the outputs of different transmitters do not overlap in time

when several channels transmit at the same time 

여러 채널에서 같은 전송이 동시에 일어날 때

거기에 서로다른 트랜스미터의 출력들을 시간내에 겹치지 않아야 한다 


(see the spec for a clearer choice of words ;) ) . 



Although this scheme is very nice, 

물론 이 방법은 꽤 좋다

it is not implemented in both measured PowerFunction transmitters.

이것은 구현되지 않았다. 파워평션 트랜스미터에서



Upper drawing: from norm. 

상단 그림 : normal(일반?)

Lower drawing: how LEGO remotes are implemented 

하단 그림 : 레고 리모트가 구현됨

(not to scale, just illustrating the difference in timing principle)

(스케일이 아니라 타이밍규칙에서 다르게 그려짐)



------------------------------

The time between messages is increasing at higher channel numbers, but the delay is fixed;

메세지 사이의 시간은 증가한다 가장 높은 채널 번호들에서 하지만 지연(delay)는 정해져있다. 

the spec describes a different time delay between message 1-2, 2-3 

and message 3-4,4-5 and 5  to subsequent messages. 

스펙에서는 메세지 1-2, 2-3과 메세지 3-4,4-5 그리고 5 사이의 다른 시간 지연(delay)은 다음 메세지로 간다


Only one delay time is used in the ‘real’ transmitters. 

오직 한 지연(delay)시간은 '실제(real)' 트랜스미션 안에서 사용된다


At first I thought the delay between messages would dictate the timeout time 

for the receiver 

처음에 생각하기를 메세지들 사이의 지연(delay)은 리시버의 타임아웃을 위해 나뉠것이다 

(some functions have timeout, 

which means that if no IR messages arrive anymore, 

the output is turned off). 

몇몇 기능들은 타임아웃이 있다

그 의미는 IR메세지들이 더이상 도착하는게 없으면 출력은 꺼진다



My assumption was that missing one message would ‘time out’ the receiver,

내 가정은 잃어버린 한 메세지는 리시버에서 '타임아웃'일 것이다 

but later I found that the timeout  is given as 1.2s. 

하지만 나중에 찾은 타임아웃은 1.2초로 주어졌다

This also clarifies the transmission of ‘output float’ by the joystick transmitter,

이것으로 조시스틱 스랜스미터의 "outof float"의 전송은 분명해졌다

that makes the receiver more responsive that waiting for a timeout.

그것이 리시버를 타임아웃을 대기하여 더 응답하게 만든다

Values below were measured from startbit to startbit for both power functions transmitters.

아래에 측정된 값들은 시작비트(startbit)사이에서 두개의 파워펀션트랜스 미터들이다



 오늘은 졸려서 여기까지 ㅠㅠ


------------- 2차

Characterization IR Receiver

IR 리시버 정의하기


After I implemented the firmware for my own receiver 

내 리시버를 위해 펌웨어를 올린 뒤에

I wanted to check some properties of the LEGO IR Receiver. 

나는 레고 IR리시버의 몇가지 속성을 체크하고 싶었다


One of Tkkrlab‘s members owns the 8884 LEGO receiver 

Tkkrlab의 한 멤버가 8884 레고 리시버를 갖고 있었다

so I was able to see what exactly the LEGO receiver is doing. 

그래서 레고리시버가 어떻게 동작하는지 제대로 볼 수 있었다


This was very interesting; 

이것은 매우 흥미롭다

the LEGO norm is sometimes not completely clear in how things should be implemented. 

레고 늠은 때때로 어떤 것이 설치됨에 따라 완전히 클리어(제대로 동작)하지 않는데

Verifying with the ‘original’ receiver showed some inconsitensies, 

and raised some questions.


오리지날 리시버도 아래 대로 검사해보니 

몇몇 일관되지 않는 결과를 보여주고 궁금중이 생겼다


PWM, frequency, duty cycle and number of steps

PWM, 주파수, 동작사이클, 스텝의 수


The first step was looking at the output PWM frequency. 

첫번째 단계는 PWM 주파수를 살펴봤다

I monitored the ‘C1′ and ‘C2′ signals which drive the motor

나느 드라이브 모터의 C1과 C2 신호를 모니터했다


The used PWM frequency is 1150Hz. 

그것의 PWM 주파수는 1150Hz였다.


I’m using 13kHz myself (necessary to enable servo control from same timer), 

내꺼는 13KHz를 쓰는데(같은 시간에 servo조작이 가능함은 필수다)


I’ll have to see if this gives any change in power efficiency.

나는 전원가지고 몇가지 변경을 주어 결과를 봐야했다



DutyCycle, jog remote control

DutyCycle(동작주기), 조그 리모컨


Next, I used the 8879 ‘speed remote control’ to step through the PWM cycles. 

다음으로 나는 8879의 '속도조절'을 사용해 PWM 사이클을 살펴봤다


First, a bit of background info. 

첫째로 작은 배경지식하나.

I read the LEGO protocol document, and in all PWM descriptions the description 

레고 프로토콜 문서안의 모든 PWM설명에는

‘PWM 1′ to ‘PWM 7′ are used between stop and full throttle. 

PWM1에서 PWM7은 멈춤과 모두사용 스로틀(밸브)를 사용한다


These are PWM values (duty cycles) I recorded when moving the jog forward / backward

조그를 앞으로/뒤로 움직일 때 내가 기록한 PWM 값들은(동작주기는) 


Now this is weird; 

결과는 조금 이상하다

first of all, 

첫째로

we’re seeing that only 6 levels of PWM are used. 

PWM은 그저 6레벨만 사용하는것을 볼 수 있다

This is not only unexpected from the documentation, 

이것은 문서에 적혀있는 내용과는 달랐다

it is also giving less resolution for control to the users. 

또한 사용자들이 제어(control)하는데 적은 결정사항을 준다.

(결국 문서와는 달리 6가지 레벨만 사용가능하다는 거구만?)


Secondly, 

둘째로

the PWM is starting at 26%. 

PWM은 최소한 26%에서 시작한다

Why? I plotted the percentages, 

왜냐면 나는 퍼센테이지를 나열해봤다(플롯을 짜봤다)


and it seems that the fist step (13%) seems to be missing, for some reason. Weird.

그리고 그것은 이상하게도 몇가지 이유에 의해

첫번째 스템(13%)에서는 동작하지 않는것으로 보였다(missing)


Edit:  Philo pointed out that 

Edit: Philo가 다음사항을 지적해줬다.

in large builds the friction in the motor +  attached drive chain might be too large. 

커다란 빌드 안에서 모터안의 마찰(friction) + 부착된 드라이브 체인이 너쿠 컸다


To be sure that 

확실히 하기위해

the motor doesn’t stall at low PWM values this first step might  have been skipped. 

모터는 낮은 PWM값에서 한칸(stall)이 아니었다. 이 첫번째 단계는 아마 스킵되었나보다


In my receiver I do not skip it, 

내 리시버는 스킵하지 않았다

I’m guessing that lighter loads will be used, 

나는 낮은 부하에서 사용되었을거라고 추측하고

and I’d like to be able to give more control of PWM or servo position 

with the original remote.

원래 리모컨으로 PWM이나 servo 위치의 몇가지 제어(control)를 추가하고 싶었다.


Edit 2: Indeed I found that with lower voltages (7V) 

the first step of PWM generation gives very little torque. 

Edit 2: 사실 나는 낮은전압(7V)을 찾았다

PWM 세대(generation)의 첫번째 단게에서 아주 작튼 토크다


BUT: when you return from a higher PWM ratio, 

it gives you the possibility to let the motor ‘coast’ for a while.

“Brake then Float”


BUT: 더 높은 PWM 비율(ratio)에서 돌아왔을 때, 

그것은 잠시동안 모터 'coast'에 "Brake then Float"(딱점에서 멈춤??)의 가능성을 준다.

In the protocol, 

프로토콜에 따르면

two ways of disabling the motor are mentioned: 

모터를 정지(disabling)시키는데에는 두가지 방법이 있다

‘float’ and ‘Brake then float’. 

'float'와 'Brake then float'이다


With an H-bridge motor controller, 

both ‘float’ and ‘brake’ can easily be implemented, 

H-bridge 모터 컨트롤러에서 'float'과 'brake'는 쉽게 장착할 수 있다


but the timing for ‘brake then float’ was not described in the protocol. 

하지만 프로토콜에서는 'brake then float'에 타이밍은 설명되지 않았다


I struggled a bit myself with this feature,

나는 이 기능에서 분투했다 

because all other messages (PWM, direct pin control, float, full forward / backward)

 can be turned into output signals to the H-bridge without memorizing previous states. 

왜냐하면 모든 다른 메세지(PWM, 직접 핀제어, float, 전진/후퇴)는 

출력신호에서 H-bridge까지 이전상태의 기억없이   바뀔수 있다



The ‘brake then float’ state should take care that the receiver first brakes, then floats.

'brake then float' 상태는 첫번째 brake(로) 관리해야한다. 그러면 float이다

 

But then again,  how long should you brake? 

히지만 다시하면 얼마나 오랫동안 'brake'해야하는가?


Also, when floating and receiving a ‘brake then float’ command (red button on 8879 remote),

 should you brake again? Questions, questions. 

물론 floating과 수신(receiving)할 때 하나의 'brake then float' 명령(8879리모컨의 빨간버튼)은

brake를 다시 해야하는가? 질문들. 질문들.(질문만 늘어가는구만)


I connected a 5V supply to the C1 and C2 connections, current limited by 2 12kOhm resistors.

나는 5V를 공급하도록 C1과 C2연결사이에 연동했다, 2개의 12K옴저항이 현재 제한이다 

Now, the receiver could pull low, drive high, and float. 

지금 리시버는 낮음으로 끌어내리고(pull low), 높음으로 올리고(drive high), float이 가능하다


‘Float’ would mean both outputs were going to 5V, 

'Float'는 5V로가는 두가지 출력을 의미한다

brake would mean both outputs would be going to GND.

brake는 GND로 가는 두가지 출력을 의미한다

I captured a series of remote control actions in one picture to show what happens.

나는 리모콘의 액션의 연속을 한장의 그림으로 캡쳐해서 어떤 변화가 일어나는지 보여주겠다.


1. we’re coming from a ‘brake’ situation

1. 우리는 'brake' 상태에서 시작한다

2. Gradually moving forward and backward with jog knob, motor keeps running forward. 

   조그 손잡이(knob)로 점차 앞으로 그리고 점차 뒤로 움직이고 모터는 앞으로 동작을 계속하면

(모터방향이 앞으로고 조그로 왔다갔다)

PWM details are lost in the limited scope resolution

 제한된 범위(scope) 솔루션에서 PWM 세부사항들은 사리진다(리미티드 스코프 리솔루션에서 PWM 상세 조건들 몇개를 알 수 없다는 얘기인가)


3. Transition from going forward to backward; 

전진(forward)에서 후진(backward)로가는 전이; 

here the receiver ‘floats’ the output, it is neither pulled to GND nor pulled to battery voltage!

여기 리시버는 'floats' 출력이다, 이것은 GND로 당기지도 배터리 볼터로 당기지도 않는다


4. Gradually moving forward and backward with jog knob, motor keeps running backward

조그 손잡이로 점차 앞으로 점차 뒤로 움직이고 모터가 뒤로 계속 동작하면고 

(모터방향이 뒤로이고 조그로 왔다갔다)


5. Again transition to running forward, floating

  다시 전진으로 전이, floating


6. Running forward in PWM

   PWM에서 전으로 동작시킨다


7. Stop button pressed-> braking, and NOT going to float!

   정지버튼이 눌리고 -> braking(멈춤), 그리고 float로는 가지 않음


8. Going backward with 8885 remote control; full throttle

   8885리모콘 뒤로가도록 ; full throttle(밸브를 최대로)

9. Release joystick, output is floating

   조이스틱을 푼다(Release), 출력은 floating

10. Going forward with 8885 remote control; full  throttle

   8885리모콘 앞으로가도록; full throttle

11.Release joystick, output is floating

   조이스틱을 푼다(release), 추력은 float



Now what have we learned? 

우리가 배운게 무엇이냐

The LEGO engineers were probably confused themselves aswell 

레고의 엔지니어들도 아마 잘 헤깔린다는거


by the protocol description and did not implement a float action after a brake. 

프로토콜 설명과 아직 구현되지 않은 하나의 brake이후의 float 액션이


You don’t need a scope to verify this, 

당신은 이것을 검증하려고 스콥은 필요하지 않다

given that you’ve got both remotes 

당신이 가지고 있는 두개의 리모컨으로 -> 

-> try to rotate the axle of a (LEGO) motor after stopping;

한개의 (레고)모터가 멈춘뒤에 축을 돌려보려고 해 봐라;

 in ‘float’  it rotates with less friction than in ‘brake’. 

'float'에서는 그것이 'brake'일 때보다 적은 마찰로 돈다(rotates)

('brake'는 'break'의 과거형임)


For your information, 

my remote receiver DOES implement a brake, 

and then a float <grudge mode on>

내 리모트 리시버는 brake에서 장작되지 않는다

그리고 그러면 하나의 float <grudge 모드가 온>으로 된다

because I didn’t know the LEGO implementation in advance 

왜냐하면 나는 레고 장착을 먼저 알 수 없다

and spent quite some time programming this…<grudge mode off>.

그리고 <grude mode 오프>를 하는데 꽤 시간을 보냈다



728x90
오늘 그냥 서점에 들렀다.
딱히 뭔가 읽으려고 한 것은 아니었고 그냥 갔다.
훑는 중에 이건희 회장인지 전회장인지 하는 사람의 리더쉽 어쩌고 하는 책을 봤다.
글쎄... 돈대줄테니 이거 해 봐라고 한 사람도 칭찬받아 마땅하지만 그것을 가느예 한 기술자들 그들이 더 대단한거 아닌가?

그들이 기술력 확보를 못했으면 이정도까지 커 나갈 수 있었을까?
그들은 어디에서 조용히 자기할일을 하고 있을텐데 그 영웅들은 제대로 영웅대접을 받고는 있는지...
그들에게 고통이 있다면 해결하는게 덕을 본 자의 도리가 아닐까?

걍 문득 등 생각...

iPhone 에서 작성된 글입니다.
728x90

또 한번 사랑은... 가고
728x90
요즘 일본 대지진 이야기로 떠들석 한 가운데

일본 애니메이션 '도쿄 매그니규 8.0'을 봤다.

사춘기로 예민한 소녀 '미라이'
여름방학을 맞는데
그녀의 부모는 직장등으로 바빠 어딘가 갈 계획조차 갖고 있지 않다.
마침 동생 '유우끼'가 보고 싶다는 오다이바에서의 로봇전시회를 둘이서 가게되고
그곳에서 진도 8.0의 지진이 나고 '마리'라는 아줌마의 도움으로 함께
집으로 돌아오는 과정을 그린 애니메이션이다.

끝까지 얘기하면 스포일일테니...

지진이 난 후 참상을 보이기 보다는
사춘기에 한창 예민하고 불만이 많은 소녀의 성정드라마 느낌이랄까?
지진이 그렇게 참혹하게 보이지는 않는데
줄거리에서 벗어나 주변환경을 돌아보면 지금의 일본과 크게 다르지 않은 것 같다.

지진으로 가족,친구,집 등을 잃은 사람들.
곁에서 그들에게 힘이 되어주는  사람들.

그들에게 희망의 메세지를 전하는 듯한 영화다. 
728x90

센스쟁이 사원

2011. 2. 14. 21:13
오늘은 발렌타인 이라는 날이라고 하네

남자가 주는 날인지
여자가 주는 날인지
헤깔리는 와중에

우리의 부식(?)을 책임지는 사원이
센스를 발휘했다

커피와 차가 들어있는 함에
커피믹스 한통을 비워
그 안에 미니 초코바를 가득 넣어놨다

대성황을 이뤄 얼마안돼 동이났다

ㅋㅋㅋ

iPhone 에서 작성된 글입니다.
728x90

특이한 수유실

2011. 2. 14. 21:02


문막 휴게소에서
밥을 먹고 나오는데
문득 보이는 휴게실 표식이 웃겨서

iPhone 에서 작성된 글입니다.
728x90

The Sting 을 보고

2010. 12. 5. 23:17
늘 Sting 과 Shape of my heart 을 다르다 생각한 적이 없었다.
그래서 생각난 김에 한번 봤는데 
완전히 예상을 뒤집는 영화였다.

가사에 보면 
"He deals a card as a meditation"
(그는 기도하듯이 카드를 돌린다)
이렇게 시작해서 온통 카드 이야기인 노래여서
당연히 도박(gamble)에 대한 내용일 거라고 생각했고
처음부터 흘러나오는 스팅의 음악은 정말 많이 듣던 멜로디였다.
그런데,
The Sting 과  가수 sting은 완전 다르더군
The sting 사기라는 뜻이구만.

영화를 보는 내내 '범죄의 재구성'을 떠오르게 하면서 
감독은 이영화를 모티브로 했겠구나 하는 생각이 절로 든다.

마치 책을 읽는 듯한 느낌의 영화이다.
챕터로 나뉘어 그 주제별로 이야기가 전개된다.
좋은 책, 좋은 영화 예술은 역시 시간을 뛰어넘는 것 같다.
요새 유행인 3D도 컴퓨터 그래픽도 하나 없고 그 흔한 돌비 디지탈도 아닌데도 불구하고
그 내용이 참으로 꽉 차있어서 '명불허전'이 괜한 말이 아님을 실감했다.

비슷한 유형의 반전이 많이 나와서 몇몇 장면은 예상할 수 있었지만
아마도 이것역시 이 작품이 먼저 시도 한 것이었다는것에 다시 놀란다.

초반에 포커를 하는 장면이 나온다. 
그래서 '후반에는 노래와 함께 다시 이 장면이 나오겠구나'했는데 완전히 빗나갔다.

뭐 이래서 내용을 모르고 보는 명작의 재미? 가 있다인가? ㅋㅋㅋ
728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1932)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (158)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :