ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [7~8ํšŒ์ฐจ-1] 4์กฑ ๋กœ๋ด‡ ๋ณดํ–‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธ๋™์ž‘
    ๋กœ๋ด‡๊ต์œก/7~8ํšŒ์ฐจ_๋กœ๋ด‡๋ณดํ–‰ 2020. 9. 12. 16:37

    1. Robot4 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

     

    Robot4.py
    0.00MB
    13-Robot4_setup.py
    0.00MB

     

      ์ง€๊ธˆ๊นŒ์ง€๋Š” PCA9685 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. PCA9685 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋„ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์ถฉ๋ถ„ํžˆ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„œ๋ณด๋ชจํ„ฐ์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์„œ๋ณด๋ชจํ„ฐ๊ฐ€ ์›€์ง์ด๋Š” ๊ฐ๋„๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฑฐ์™€ ์ •๋ฐ˜๋Œ€๋กœ ์›€์ง์ด๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ๋งŽ์€ ๊ฒฝ์šฐ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์ œ๋Œ€๋กœ ์›€์ง์ด๊ธฐ ์–ด๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค.

      ๊ทธ๋ž˜์„œ PCA9685 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•˜์—ฌ ์—ฌ๋Ÿฌ๋ถ„์ด ์‰ฝ๊ฒŒ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์›€์ง์ผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์งง์€ ๋ช…๋ น์–ด๋„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ์ „์— ๊ฑฐ๋ถ์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ์งง์€ ๋ช…๋ น์–ด๋ผ๊ณ  ๊ผญ ์ข‹์€ ๊ฒƒ๋งŒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ๊ฒช์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์งง์€ ๋ช…๋ น์–ด๋Š” ๋น ๋ฅด๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚˜์ค‘์— ๋‚ด๊ฐ€ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์˜ˆ์ œ ์†Œ์Šค(13-Robot4_setup.py) - ์ผ๋ถ€ ์ฝ”๋“œ ์ƒ๋žต  
    from Robot4 import *

    r = Robot4()
    r.setPWMFreq(50)

    r.ServoL(1,80)
    sleep(1)
    r.ServoL(1,90)
    sleep(1)
    r.ServoL(3,80)
    sleep(1)
    r.ServoL(3,90)
    sleep(1)
    r.ServoR(2,80)
    sleep(1)
    r.ServoR(2,90)
    sleep(1)
    r.ServoR(4,80)
    sleep(1)
    r.ServoR(4,90)
    sleep(1)
    1~4๋ฒˆ ์ฑ„๋„์˜ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์›€์ง์—ฌ๋ณด๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

    11~14๋ฒˆ ์ฑ„๋„์˜ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์›€์ง์ด๋„๋ก ์ˆ˜์ •ํ•˜์—ฌ ์‹คํ–‰ํ•ด๋ณด์„ธ์š”.
    r.ServoL(1, 80) - 1๋ฒˆ ์ฑ„๋„์˜ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ 80๋„๋กœ ์ œ์–ด
    r.ServoR(2, 80) - 2๋ฒˆ ์ฑ„๋„์˜ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ 80๋„๋กœ ์ œ์–ด

     

    r.ServoL(์ฑ„๋„, ๊ฐ๋„) - ๋กœ๋ด‡์˜ ์™ผ์ชฝ์— ์œ„์น˜ํ•œ 1, 3๋ฒˆ, 11, 13๋ฒˆ ๋ชจํ„ฐ๋ฅผ ์ œ์–ด
      โ†˜ r.sl(์ฑ„๋„, ๊ฐ๋„)๋กœ ์ค„์—ฌ ์“ธ ์ˆ˜ ์žˆ์Œ

    r.ServoR(์ฑ„๋„, ๊ฐ๋„) - ๋กœ๋ด‡์˜ ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•œ 2, 4๋ฒˆ, 12, 14๋ฒˆ ๋ชจํ„ฐ๋ฅผ ์ œ์–ด
      โ†˜ r.sr(์ฑ„๋„, ๊ฐ๋„)๋กœ ์ค„์—ฌ ์“ธ ์ˆ˜ ์žˆ์Œ

     

    13-Robot4_short.py
    0.00MB

     

    ์˜ˆ์ œ ์†Œ์Šค(13-Robot4_short.py) - ์œ„ ์ฝ”๋“œ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •
    from Robot4 import * 

    r = Robot4() 
    r.setPWMFreq(50) 

    r.sl(1,60) 
    sleep(1) 
    r.sl(1,90) 
    sleep(1) 
    r.sr(2,60) 
    sleep(1) 
    r.sr(2,90)
    ์งง์€ ๋ช…๋ น์–ด์˜ ํ™œ์šฉํ•˜๋Š” ์˜ˆ๋ฅผ ์ž˜ ๋ณด๊ณ  ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์ œ์–ดํ•ด๋ณด์„ธ์š”.

     

    2. 4์กฑ ๋กœ๋ด‡ ๋ณดํ–‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

     

    14-foward.py
    0.00MB
    15-back.py
    0.00MB
    16-left.py
    0.00MB
    17-right.py
    0.00MB

     

    ์˜ˆ์ œ ์†Œ์Šค(14-foward.py)
    from Robot4 import *

    r = Robot4()
    r.setPWMFreq(50)

    #๊ธฐ๋ณธ์ž์„ธ
    r.sl(1,50)
    sleep(0.5)
    r.sr(2,50)
    sleep(0.5)
    r.sl(3,90)
    sleep(0.5)
    r.sr(4,90)
    sleep(0.5)

    r.sl(11,90)
    sleep(0.5)
    r.sr(12,90)
    sleep(0.5)
    r.sl(13,90)
    sleep(0.5)
    r.sr(14,90)
    sleep(0.5)

    while True:

        #์ „์ง„1~2  
        r.sr(12,60) #์•ž ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        r.sl(13,60) #๋’ค ์™ผ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        sleep(0.05)
        r.sr(2,60) #์•ž ์˜ค๋ฅธ์ชฝ ์•”
        r.sl(3,60) #๋’ค ์™ผ์ชฝ ์•”
        sleep(0.05)
        r.sr(12,90) #์•ž ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        r.sl(13,90) #๋’ค ์™ผ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        sleep(0.05)

        #์ „์ง„2
        r.sl(11,60) #์•ž ์™ผ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        r.sl(14,60) #๋’ค ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        sleep(0.05)
        r.sr(2,90) #์•ž ์˜ค๋ฅธ์ชฝ ์•”
        r.sl(3,90) #๋’ค ์™ผ์ชฝ ์•”
        sleep(0.05)

        #์ „์ง„3
        r.sl(1,60) #์•ž ์™ผ์ชฝ ์•”
        r.sr(4,60) #๋’ค ์˜ค๋ฅธ์ชฝ ์•”
        sleep(0.05)
        r.sl(11,90) #์•ž ์™ผ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        r.sr(14,90) #๋’ค ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        sleep(0.05)
       
        #์ „์ง„4
        r.sr(2,60) #์•ž ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        r.sl(3,60) #๋’ค ์™ผ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        sleep(0.05)
        r.sl(1,90) #์•ž ์™ผ์ชฝ ์•”
        r.sr(4,90) #๋’ค ์˜ค๋ฅธ์ชฝ ์•”
        sleep(0.05)
        r.sr(2,90) #์•ž ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        r.sl(3,90) #๋’ค ์™ผ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        sleep(0.05)
     
    ๋กœ๋ด‡์ด ์™ผ์ชฝ์œผ๋กœ ๊ฐ„๋‹ค๋ฉด 2, 4๋ฒˆ ์„œ๋ณด๋ชจํ„ฐ์˜ ๊ฐ๋„๋ฅผ ์ž‘๊ฒŒ ์›€์ง์ด๋„๋ก ์กฐ์ •
           ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ„๋‹ค๋ฉด 1, 3๋ฒˆ ์„œ๋ณด๋ชจํ„ฐ์˜ ๊ฐ๋„๋ฅผ ์ž‘๊ฒŒ ์›€์ง์ด๋„๋ก ์กฐ์ •

     


     

    ์˜ˆ์ œ ์†Œ์Šค(15-back.py)
    from Robot4 import * 

    r = Robot4()
    r.setPWMFreq(50)

    #๊ธฐ๋ณธ์ž์„ธ
    r.sl(1,50)
    sleep(0.5)
    r.sr(2,50)
    sleep(0.5)
    r.sl(3,90)
    sleep(0.5)
    r.sr(4,90)
    sleep(0.5)

    r.sl(11,90)
    sleep(0.5)
    r.sr(12,90)
    sleep(0.5)
    r.sl(13,90)
    sleep(0.5)
    r.sr(14,90)
    sleep(0.5)
      
    #์ค€๋น„์ž์„ธ
    r.sl(1,50) #์•ž ์™ผ์ชฝ ์•”
    r.sr(2,50) #์•ž ์˜ค๋ฅธ์ชฝ ์•”
    r.sl(3,50) #๋’ค ์™ผ์ชฝ ์•”
    r.sr(4,50) #๋’ค ์˜ค๋ฅธ์ชฝ ์•”
    sleep(0.5)

    while True:

        #ํ›„์ง„1
        r.sl(11,60) #์•ž ์™ผ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        r.sr(14,60) #๋’ค ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        sleep(0.05)
        r.sl(1,90) #์•ž ์™ผ์ชฝ ์•”
        r.sr(4,90) #๋’ค ์˜ค๋ฅธ์ชฝ ์•”
        sleep(0.05)
        r.sl(11,90) #์•ž ์™ผ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        r.sr(14,90) #๋’ค ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ๋‚ด๋ฆผ
        sleep(0.05)

        #ํ›„์ง„2
        r.sl(1,50) #์•ž ์™ผ์ชฝ ์•”
        r.sr(4,50) #๋’ค ์˜ค๋ฅธ์ชฝ ์•”
        sleep(0.05)

        #ํ›„์ง„3
        r.sr(12,60) #์•ž ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        r.sl(13,60) #๋’ค ์™ผ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        sleep(0.05)
        r.sr(2,90) #์•ž ์™ผ์ชฝ ์•”
        r.sl(3,90) #๋’ค ์˜ค๋ฅธ์ชฝ ์•”
        sleep(0.05)

        #ํ›„์ง„4
        r.sr(12,90) #์•ž ์™ผ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        r.sl(13,90) #๋’ค ์˜ค๋ฅธ์ชฝ ๋‹ค๋ฆฌ ์˜ฌ๋ฆผ
        sleep(0.05)
        r.sr(2,50) #์•ž ์˜ค๋ฅธ์ชฝ ์•”
        r.sl(3,50) #๋’ค ์™ผ์ชฝ ์•”
        sleep(0.05)

     

     

    ์˜ˆ์ œ ์†Œ์Šค(16-left.py)
    from Robot4 import * 

    r = Robot4()
    r.setPWMFreq(50)

    #๊ธฐ๋ณธ์ž์„ธ
    r.sl(1,50)
    sleep(0.5)
    r.sr(2,50)
    sleep(0.5)
    r.sl(3,90)
    sleep(0.5)
    r.sr(4,90)
    sleep(0.5)

    r.sl(11,90)
    sleep(0.5)
    r.sr(12,90)
    sleep(0.5)
    r.sl(13,90)
    sleep(0.5)
    r.sr(14,90)
    sleep(0.5)

    while True:

        #์ขŒํšŒ์ „1
        r.sl(11,60)
        r.sl(1,100)
        sleep(0.05)
        r.sl(11,90)
        r.sr(12,60)
        sleep(0.05)
        r.sr(2,90)
        r.sr(12,90)
        sleep(0.05)

        #์ขŒํšŒ์ „2
        r.sl(3,130)
        r.sr(4,50)
        sleep(0.05)
         
        r.sr(2,50)
        sleep(0.05)


        r.sl(1,60)
        r.sr(2,60)
        sleep(0.05)

        r.sl(3,90)
        r.sr(4,90)
        sleep(0.05)



     

     

    ์˜ˆ์ œ ์†Œ์Šค(17-right.py)
    from Robot4 import * 

    r = Robot4()
    r.setPWMFreq(50)

    #๊ธฐ๋ณธ์ž์„ธ
    r.sl(1,50)
    sleep(0.5)
    r.sr(2,50)
    sleep(0.5)
    r.sl(3,90)
    sleep(0.5)
    r.sr(4,90)
    sleep(0.5)

    r.sl(11,90)
    sleep(0.5)
    r.sr(12,90)
    sleep(0.5)
    r.sl(13,90)
    sleep(0.5)
    r.sr(14,90)
    sleep(0.5)

    while True:

        #์šฐํšŒ์ „1
        r.sr(12,60)
        r.sr(2,100)
        sleep(0.05)
        r.sr(12,90)
        r.sl(11,60)
        sleep(0.05)
        r.sl(1,90)
        r.sl(11,90)
        sleep(0.05)

        #์šฐํšŒ์ „2
        r.sr(4,130)
        r.sl(3,50)
        sleep(0.05)
         
        r.sl(1,50)
        sleep(0.05)


        r.sr(2,60)
        r.sl(1,60)
        sleep(0.05)

        r.sr(4,90)
        r.sl(3,90)
        sleep(0.05)

     

     

    ๋Œ“๊ธ€

Designed by Tistory.