지돌이의 블로그 입니다!

피곤해서 누웠는데 창문으로 밝은 빛이...★...ㅠㅠ

블라인드 내리기 귀찮아서 언제 전동블라인드 만들어야지... 생각만 하다가 휴일이 된 김에 만들었네요~

블라인드 제조사는 기억이 안납니다.. 뒤지면 나올텐데.. 뭐 다들 비슷할거라 생각해서 PASS하고..

사용한 부품은 아래와 같습니다.

  • 스테핑 모터 : 17HS4401 (토크 : 40N.cm 으로써 토크가 큰걸 골랐습니다. (블라인드 무거움..))

  • 모터 드라이버 : DRV8825 모듈 (vref=0.7V 으로써 current limit를 1.4A으로 정했습니다.)

  • 제어 : Arduino Pro mini

  • 릴레이모듈(필요없지만.. 혹시나 해서 보호회로 구현하려고 넣음.. FET가 없어서 그렇지 그냥 FET쓰거나

모터드라이브 Shutdown하는게 더 나아요...)

처음에는 줄이랑 모터랑 같이 쓰려고 했는데 그건 안되겠더라구요.. 줄이랑 벨트랑 엇갈릴수밖에 없는 구조라.. 일단 저 부분을 톱으로 잘랐습니다
쓱삭쓱삭...
대충 제어부는 이런데.. 뚜껑이 안덮힘...ㅠㅠ 땜질하는게 귀찮아서 가능한부분은 저..선으로 연결했습니다. 제어는 잘 찾아보면 있는 푸시스위치..
고정은 걍 고무줄...^^ 한 사람이면 패하겠거니와 두 사람이면 능히 당하나니 삼겹 줄은 쉽게 끊어지지 아니하느니라 (전도서 4:12) 처럼... 여러줄로 하니 꽤나 잘 고정되었습니다. 
설치 후... 음... 음.... 이걸 어떻게....ㅋㅋㅋㅋ 

누워서 블라인드 내리는것도 안되고.. (짦음..) 뭐 나중에 원격으로 제어할 수 있게 해야죠 뭐..

근데.. 언제할지...ㅋㅋ 걍 전선 길게 늘려서 스위치를 머리맡으로 할거같음..

소스... (원래 소스는 아니고 지금 수정중인건데 아직 적용은 못해봄.. 처음에는 낮은 속도(주파수)로써 높은 토크로 동작하고 서서히 속도를 올려갑니다.)

/*
 * BlindMotorController.c
 *
 * Created: 2019-06-05 오후 11:27:21
 * Author : jichan
 */ 

#include <avr/io.h>
#include <avr/interrupt.h>

#define F_CPU 8000000
#include <util/delay.h>

static volatile unsigned int pwm_step = 0;
static volatile unsigned char pwm_step_ms = 0;

static void updatePwm() {
    uint8_t icr_val = 249 - pwm_step;
    ICR1H = 0x00;
    ICR1L = icr_val;
    OCR1AH = 0x00;
    OCR1AL = icr_val / 2;
}

ISR(TIMER1_OVF_vect)
{
    if(pwm_step_ms < 16)
        pwm_step_ms++;
    else{
        pwm_step_ms = 0;
        if(pwm_step < 125)
        {
            pwm_step++;
            updatePwm();
        }
    }
}

int main()
{
    unsigned char sw_state = 0;

    // 1 PD0 : RXD
    // 0 PD1 : TXD
    // 1 PD2 : SW1
    // 1 PD3 : SW2
    // 1 PD4 : X
    // 0 PD5 : OUT
    // 0 PD6 : OUT (En, Active Low)
    // 0 PD7 : OUT (DIR)
    // PB1,PB2 : OUT
    DDRD = 0xF2;
    PORTD = 0xFF;
    DDRB = 0x02; // PB1 OUT
    PORTB = 0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=0xFF
    // OC0A output: Disconnected
    // OC0B output: Disconnected
    TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
    TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (0<<CS00);
    TCNT0=0x00;
    OCR0A=0x00;
    OCR0B=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 1000.000 kHz
    // Mode: Fast PWM top=ICR1
    // OC1A output: Non-Inverted PWM
    // OC1B output: Disconnected
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer Period: 0.2 ms
    // Output Pulse(s):
    // OC1A Period: 0.2 ms Width: 0.1005 ms [199,100]
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (1<<WGM11) | (0<<WGM10);
    TCCR1B=(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0;
    ICR1L=0;
    OCR1AH=0;
    OCR1AL=0;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2A output: Disconnected
    // OC2B output: Disconnected
    ASSR=(0<<EXCLK) | (0<<AS2);
    TCCR2A=(0<<COM2A1) | (0<<COM2A0) | (0<<COM2B1) | (0<<COM2B0) | (0<<WGM21) | (0<<WGM20);
    TCCR2B=(0<<WGM22) | (0<<CS22) | (0<<CS21) | (0<<CS20);
    TCNT2=0x00;
    OCR2A=0x00;
    OCR2B=0x00;

    // Timer/Counter 0 Interrupt(s) initialization
    TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);

    // Timer/Counter 1 Interrupt(s) initialization
    TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (1<<TOIE1);

    // Timer/Counter 2 Interrupt(s) initialization
    TIMSK2=(0<<OCIE2B) | (0<<OCIE2A) | (0<<TOIE2);

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // Interrupt on any change on pins PCINT0-7: Off
    // Interrupt on any change on pins PCINT8-14: Off
    // Interrupt on any change on pins PCINT16-23: Off
    EICRA=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
    EIMSK=(0<<INT1) | (0<<INT0);
    PCICR=(0<<PCIE2) | (0<<PCIE1) | (0<<PCIE0);

    // USART initialization
    // USART disabled
    UCSR0B=(0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (0<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80);

    // Analog Comparator initialization
    // Analog Comparator: Off
    // The Analog Comparator's positive input is
    // connected to the AIN0 pin
    // The Analog Comparator's negative input is
    // connected to the AIN1 pin
    ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
    ADCSRB=(0<<ACME);
    // Digital input buffer on AIN0: On
    // Digital input buffer on AIN1: On
    DIDR1=(0<<AIN0D) | (0<<AIN1D);

    // ADC initialization
    // ADC disabled
    ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

    // SPI initialization
    // SPI disabled
    SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

    // TWI initialization
    // TWI disabled
    TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

    sei();

    while(1) {
        unsigned char cur_sw_state;
        if((PIND & 0x04) == 0)
        {
            cur_sw_state = 1;
        }
        else if((PIND & 0x08) == 0)
        {
            cur_sw_state = 2;
        }else{
            cur_sw_state = 0;
        }
        if(cur_sw_state != sw_state)
        {
            pwm_step = 0;
            pwm_step_ms = 0;
            updatePwm();
            TCNT1H=0x00;
            TCNT1L=0x00;
            switch(cur_sw_state)
            {
            case 1:
                PORTD &= ~0x40;
                PORTD |= 0x80;
                break;
            case 2:
                PORTD &= ~0xC0;
                break;
            default:
                PORTD |= 0x40;
            }
            _delay_ms(125);
        }
        sw_state = cur_sw_state;
    }
}


Comment +0

몇일전에 '신은 죽지 않았다' 란 영화를 봤습니다.

기독교인 학생(조쉬)과 신을 부정하는 무신론자 (래디슨)교수의 맞대결!




영화 내내 정말 너무 멋있고 마음에 와닿는 말들과 성경구절들이 많았습니다.



"내 삶이 다 주님것이니 기도하는 겁니다.

모든 건 곧 사라지죠. 돈, 명예 성공..."


"영원한 건 없죠. 생명도 잠깐이죠.

예수님만 영원하시며 이렇게 말씀하세요."


"'누구든지 사람 앞에서 나를 시인하면 나도 하늘에 계신 내 아버지 앞에서 그를 시인할 것이요''


"'나를 부인하면 나도 하늘에 계신 내 아버지 앞에서 그를 부인하리라'"



마태복음 10장 32~33절 말씀입니다.

예수님을 시인하면 그분도 우릴 시인하시고 예수님을 부인하면 그분도 우릴 부인하실 것입니다.

우리 믿는 자들은 당당히 외쳐야 합니다.

예수님은 살아계십니다!


마태복음 10장 32~33절 말씀이 이 영화를 대표하는 말씀 구절인거 같습니다.



주인공 조쉬가 교회에 와서 목사님께 자신의 상황을 이야기 합니다.






하나님이 살아계심을 한순간 부정한다면 그의 학점과 인생과 여자친구... 모두 붙잡을 수 있었을 것입니다.

하지만 그는 그렇지 않습니다. 하나님을 절대 포기할 수 없었습니다.

결국 그는 하나님을 증거하겠단 결심을 합니다.


이후 그가 하나님을 증거하는 방법은... 영화를 보세요!ㅎㅎ

스포가 될거 같아서 이만...


아! 하나님을 믿지 않는 사람은 승승장구 하고 잘사는것 같은데

하나님을 믿는 사람이 오히려 고난을 받는 것처럼 보이나요?

맞습니다. 그럽니다. 하지만... 당연합니다.

아들)

어머니는...

늘 기도하며 믿음이 강건했고

평생 착하게 살았고

나쁜 짓 한번 안 했는데

결국 이렇게 됐잖나요

어머니는 착한사람 난 나쁜사람인데

어머니는 치매환자가 되었고

난 승승장구 잘 나가거든요


어머니)

사탄은 가끔 사람들을 편히 살게 해주지

하나님께 못 가게 하려는 거야

근데 그 곳이 죄의 감옥이다

달콤한 유혹에 속아 떠나기 싫겠지

그래도 문은 열려있단다

하지만 어느 날...

그 때가 되면

감옥문은 닫힐거고

그걸로 끝이야

영원히 갇히는 거야


이 부분은... 정말 모두에게 말해주고 싶은 부분입니다.



아, 정말 이 영화를 보고 큰 감동과 결심을 하게 되었습니다.

나도 하나님을 증거하는 삶을 살아야겠다!


주인공은 그저 다짐만 하는것이 아니라, 열정만 갖는것이 아니라

그 다짐과 열정으로 최선을 다합니다.

수많은 책을 보며 하나님을 증거하기 위해 노력합니다.

여기서 깨달았습니다.

열정도 중요하지만 그 이후 노력이 따라오는것도 매우 중요하다고...


예수님은 하나님을 우리들끼리만 알고 믿으라고 말씀하시지 않으셨습니다.

가서 전하라고 말씀하십니다.

우리는 하나님의 말씀을, 예수님의 보혈을 전하고 말해야할 사명을 가졌습니다.

이 영화를 보고... 제 자신을 돌아보게 되었습니다.

그리고... 결심합니다! 하나님을 증거하는 삶을 살겠다고!

내 삶을 통해, 내 입을 통해, 내 행실을 통해... 내 모든것이 하나님을 증거하는 삶이 되길 소망합니다.


[신은 죽지 않았다] - 다운로드

http://movie.naver.com/movie/bi/mi/basic.nhn?code=122193

우리모두 '굿 다운로더'가 되요~ㅎ

Comment +0

[시] 강

일상/글/시2015.09.05 20:26

어제 쓴 시...ㅋ


이지찬


넓은 강 앞에 서있는 나

그 반대편에 서있는 너


이 강 당장 해엄쳐 너에게 갈까

언제 올지 기약없는 배를 기다릴까


해엄쳐 갈까 하지만

너에게 닿기 전 빠질까 두려워


배를 기다릴까 하지만

배가 오기 전 너가 가버릴까 두려워


어찌할빠 몰라 헤매이는 나에게

누가 정답을 알려 주었으면...


'일상 > 글/시' 카테고리의 다른 글

[시] 강  (0) 2015.09.05
이겨내라!  (0) 2015.07.31
[시] 길 잃은...  (0) 2015.07.31
요즘 쓴 시들...  (0) 2015.07.31
[시] 2014년 12월 9일에 쓴 시들~  (0) 2015.07.31
나의 시. 밤거리, 그 끝을 향해  (0) 2015.07.31

Comment +0

이겨내라!

일상/글/시2015.07.31 20:12

씨앗이 싹터 세상에 나오면
강한 빗줄기도 맞고 뜨거운 여름 햇살도 받는다.
강한 빗줄기에 약한 줄기가 부러저 버리거나
강한 햇살에 타버릴 수도 있겠지만
그 모든것을 이겨내면 결국 꽃이 핀다!


씨앗도 자기가 원해서 심어진 것이 아니고
우리도 우리가 원해서 태어난 것이 아니다.

어떤 씨앗은 비옥한 땅에 묻히고
어떤 씨앗은 시멘트 가루에 묻히기도 한다.

하지만
그 시멘트 가루 속에서도 씨앗은 커서 꽃이 된다.


내가 어디서 태어났는지
어떤 상황인지가 중요한게 아니라
나의 의지가 중요한 것이다.

견디고 이겨내라!
그럼 꽃이 될것이다!


'일상 > 글/시' 카테고리의 다른 글

[시] 강  (0) 2015.09.05
이겨내라!  (0) 2015.07.31
[시] 길 잃은...  (0) 2015.07.31
요즘 쓴 시들...  (0) 2015.07.31
[시] 2014년 12월 9일에 쓴 시들~  (0) 2015.07.31
나의 시. 밤거리, 그 끝을 향해  (0) 2015.07.31

Comment +0

2015.05.30. 12:22



길 잃은

이지찬

갈곳이 없어 방황하는 그들

그 어린 양들

모두가 그건 잘못된 길이라고

비난하며 손가락질 한다

하지만 그들을 그 길로 내몬건 누구인가

바로 손가락질 하는 당신들이 아닌가

상처받은 그대들이여 돌아오오

아픔을 잊어다오

사랑하는 그대들이여 돌아오오

미움을 잊어다오



길 잃어 방황하는 어린양.
흔히들 말하는 비행 청소년.
그들을 길가로 내몬건 그들 자신이 아닙니다.
바로 이 사회! 어른들! 부모들!
그 연약한 마음 속 깊은 슬픔과 아픔을 안고 살아가는 그들.
그 연약한 마음을 숨기기 위해 강인한 '척' 하는 그들.
아이들을 사랑해 주세요.
아이들은 당신의 꿈을 이루기 위한 도구도
당신보다 작고 낮은 사람도
당신보다 못한 사람도
당신의 것도 아닙니다.


'일상 > 글/시' 카테고리의 다른 글

[시] 강  (0) 2015.09.05
이겨내라!  (0) 2015.07.31
[시] 길 잃은...  (0) 2015.07.31
요즘 쓴 시들...  (0) 2015.07.31
[시] 2014년 12월 9일에 쓴 시들~  (0) 2015.07.31
나의 시. 밤거리, 그 끝을 향해  (0) 2015.07.31

Comment +0

2015.04.23. 18:27



즘 쓴 시들입니다...

이번에 쓴 시들은 다른 글을 읽고 영감을 얻어 썼습니다.



4월 17일 문학시간에...

김춘수씨의 '꽃' 이란 시를 읽고 영감을 얻어 글을 써 봤습니다.


아래는 원작입니다.




이지찬

내가 그녀를 알기 전에는

내 마음은 다만

풀밭에 지나지 않았다


내가 그녀를 알게 되었을 때

내 마음에 씨앗이 되어

꽃이 되었다


나는 오직

그녀만의 꽃이 되고 싶다

그녀는 나에게 나는 그녀에게

잊혀지지 않는 꽃이되고 싶다


음... 약간 '그녀'란 표현이 어올리지 않는단 생각이 좀 듭니다.

원작에는 '그' 이지만 그냥 내가 남자라서 '그녀'로 바꿔 보았는데...



관심

이지찬

그가 나의 이름을 불러주기 전에는

나는 다만

한 사람에 지나지 않았다


그가 나의 이름을 불러 주었을 때

그 이름은 나에게로 와서

내가 존재하게 되었다


그가 나의 이름을 불러 준 것처럼

나도 그의 이름을 불러 주어

그에게로 가서 나도

그의 존재가 되고 싶다


우리들은 모두

존재하기 원한다

나는 너에게 너는 나에게

관심이 되어 존재의 이유가 되고 싶다


음... 이것두 뭔가 20%부족한 느낌?ㅋㅋ




이건 오늘! 4월 23일. 이것두 문학시간에...

장정일씨의 '라디오와 같이 사랑을 끄고 켤 수 있다면'을 읽고 영감을 얻었습니다.

요즘 사람들의 너무나 쉽고 일회적인 만남... 그걸 사랑이라 하는.. 그런걸 비판한 내용입니다.




나의 사랑

이지찬

무의미하고 거짓된 이 세상에서

사람들은 서로 '사랑'을 한다


이런 세상속에서 나는,

'사랑'하고 싶지 않다


이런 세상속에서 나는,

"사랑"하고 싶다.


진실로 마음을 함께하는

진실한 "사랑"을 하고 싶다


난, 안다

흙탕물 속에서 앞이 보이지 않아도

언젠가 그 "사랑"을 만날 것이란 것을...



'일상 > 글/시' 카테고리의 다른 글

[시] 강  (0) 2015.09.05
이겨내라!  (0) 2015.07.31
[시] 길 잃은...  (0) 2015.07.31
요즘 쓴 시들...  (0) 2015.07.31
[시] 2014년 12월 9일에 쓴 시들~  (0) 2015.07.31
나의 시. 밤거리, 그 끝을 향해  (0) 2015.07.31

Comment +0

2015.03.14. 15:13



리마1급 1501회를 방금 보았네요~^^ 

사실 전 2급이 없는데 잘못 신청해서 1급으로 신청해서 이렇게 시험을 보았네요...ㅋ 


우선... 과목이 1,2,3이 있는데 1,2는 리눅스기본?(파일시스템같은것도 나오고... 네트워크도 나오고... 프로세스도 나오고... 뭐 그랬습니다.) 

과목3에서는 서버구축... 이게 어려웠어요..ㅜㅜ 

제가 해본것은 쉬운데 안해본게 대부분이라... 

sendmail, apache, dns server, dhcp server, nfs, nis, inet뭐 이런것들이 나왔습니다. 

방금 보고 왔는데도 잘 기억이 안나네요...ㅜㅜ 


좋은 결과 보기를 기대합니다..ㅎ 


리마 보시려는 여러분도 모두 잘보세요~^^

Comment +0

2015.02.19. 06:41



고린도전서 10장 20절-32절을 보는데... 

아.. 모르겠네요. 


28절을 보면 이것이 제물이라 말하거든 알게 한 자와 및 양심을 위하여 먹지말라... 

29절에는 내가 말한 양심은 너희의 양심이 아니고 남의 양심이니 내 자유가 어찌 남의 양심으로 판단을 받으리오... 

30절에는 내가 감사함으로 참예하면 어찌 감사함을 비방받으리오.... 

31절에는 너희가 무엇이든지 마시고 먹든지 하나님의 영광을 위하여 하라... 


내 양심에 문제가 없다면... 

하나님께 감사하고 하나님께 영광을 올려드린다면... 

먹어도 문제가 없단 뜻인가?? 

아.. 헷갈리네요..ㅠㅠ 


혹시라도 제사 음식을 먹게 된다면 그냥 감사함으로 먹어야 되겠네요. 

어짜피 여기서 안먹을 수는 없으니.. 

Comment +0

2015.02.15. 22:28



구운귤이 맛있다는 말을 듣고 해 보았는데...


하.. 하하.. 겉으로 보기에는 구워졌는데..
맛이... 많이 먹으면 좀 느끼한거 같습니다.
아, 구운 방법은 가스불에다가 직화냄비? 그걸로 했습니다.
집에서 군고구마 해먹는.. 그걸로요.
진짜 제주도 사람 아니면 비추합니다.ㅎ
혹시라도 맛이 궁금하다면 조금만 해서 드시길 바랍니다.
한 2명이서 귤 1개정도?ㅎㅎ

밖에서 고기같은거 장작에다 석쇠로 구워먹을때 한번 해보시는건 좋을거 같네요~



'일상 > 일상' 카테고리의 다른 글

리눅스 마스터 1급 1차 봤습니다.  (0) 2015.07.31
크리스찬이 제사음식을 먹어도 될까요?...  (0) 2015.07.31
구운귤 그 후...  (0) 2015.07.31
[HW] 말도 안되는 오류가 날 때..ㅠㅠ  (0) 2015.07.31
헌혈해요~  (0) 2015.07.31
크리스마스의 진짜 의미!  (0) 2015.07.31

Comment +0

2015.01.21. 21:21



 CC2500 송신은 잘 되는데 수신이 안되던 일이 지난 몇일간 있었습니다...

정말... 멘붕이었죠..ㅠㅠ

분명히 맞는데... 문제가 없는데...

데이터 수신이 안되는 겁니다...

레지스터 설정/확인 다 되는데요...

혹시나 해서 라즈베리파이랑 다른 CC2500모듈이랑 연결한 뒤

같은 소스로 테스트를 해 보았는데...

헐.. 됩니다..ㅠㅠ!!!!!!!!!ㅎㅎ

기쁨 80%, 어이없음 20%이네요..ㅋㅋ

쨋든...


자꾸 말도 안되게 안될때에는!

칩을 바꿔보세요...


오늘 아침에 이것때문에 기도했는데 기도가 먹혔나 봐요..ㅋㅋ

아, 감사합니다. 정말.. 이것때문에 꽉 막혀서 진도를 못내고 있었는데..ㅠㅠㅎㅎ


'일상 > 일상' 카테고리의 다른 글

리눅스 마스터 1급 1차 봤습니다.  (0) 2015.07.31
크리스찬이 제사음식을 먹어도 될까요?...  (0) 2015.07.31
구운귤 그 후...  (0) 2015.07.31
[HW] 말도 안되는 오류가 날 때..ㅠㅠ  (0) 2015.07.31
헌혈해요~  (0) 2015.07.31
크리스마스의 진짜 의미!  (0) 2015.07.31

Comment +0