삼성 아틱 (ARTIK) 710S와 충돌/리미트 센서 파이썬 예제

메이커 2018-09-11 (화) 09:23 6년전 3204  

충돌 센서 사용하기

 

충돌 센서 혹은 리미트 스위치는 3D프린터에서 많이 사용됩니다. 


본 튜토리얼의 전체 PDF는 다음의 링크에서 참고하실 수 있습니다. 

 

https://goo.gl/JVMp9q 

 

1.    GPIO의 출력 전압이 5V로 되어 있는지 확인 후, 다음과 같이 점퍼를 이동합니다.

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536643
 

2.    하드웨어 연결은 다음과 같습니다.

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536643
 

3.    터미널에서 파이썬 코드를 다음과 같이 작성합니다.

import time

 

OUTPUT = 'out'

INPUT = 'in'

HIGH = 1

LOW = 0

 

def reg(pin):

    try:

        exp = open('/sys/class/gpio/export','wb',0)

        exp.write(str(pin))

        print('Registion Successful: pin%d' %pin)

        #exp.close()

    except IOError as e:

        #print('Registion Error: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def unreg(pin):

    try:

        uexp = open('/sys/class/gpio/unexport','wb',0)

        uexp.write(str(pin))

        print('Unregistion Successful: pin%d' %pin)

        uexp.close()

    except IOError as e:

        #print('Unregistion Error: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def pinMode(pin, mode):

    try:

        direction = open('/sys/class/gpio/gpio%d/direction' %pin,'wb',0)

        direction.write('out' if mode == OUTPUT else 'in')

        #print('pin%d setted at %s' %(pin,'out' if mode == OUTPUT else 'in'))

        direction.close()

    except IOError as e:

        #print('CANNOT SET PIN MODE: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def digitalWrite(pin,value):

    try:

        val = open('/sys/class/gpio/gpio%d/value' %pin,'wb',0)

        val.write(str(value))

        val.close()

    except IOError as e:

        #print('WRITE ERROR: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def digitalRead(pin):

    try:

        file = open('/sys/class/gpio/gpio%d/value' %pin,'rb',0)

        value = file.read()

        file.close()

        return int(value)

    except IOError as e:

        #print('READ ERROR')

        print('Error: %d - %s' %(e.errno,e.strerror))

        return 0

 

def analogRead(pin):

    filePath = '/sys/devices/platform/c0000000.soc/c0053000.adc/iio:device0/in_voltage%d_raw' %pin

    print(filePath)

    try:

        file = open(filePath,"rb",0)

메카리워즈 Image Map


모바일 버전으로 보기