Package: pyneospider
pyneospider네오스파이더를 Python을 통하여 제어하면서 학습할 수 있는 라이브러리입니다.INSTALLPython 3버전(>=3.6)을 기준으로 작성되었으며, 설치해야하는 패키지는 다음과 같습니다.$pipinstallpyserial
$pipinstallpyneospiderNeoSpiderpyneospider라이브러리 안에NeoSpider클래스가 있습니다.해당 클래스를 인스턴스화 하여 사용하시면 됩니다.교구의 대한 내용은 아래의 링크를 참조하시면 됩니다.http://neo3ds.com/goods/goods_view.php?goodsNo=1000000071NeoSpider 메서드 소개[public method]: 📤출력1. connectComport와 연결할 수 있는 메서드입니다.@paramscomport: 컴포트 작성 파라미터baudrate: 보드레이트 설정 파라미터ex) connect('COM3')frompyneospiderimportNeoSpider# 라이브러리 importns=NeoSpider()# 인스턴스화ns.connect('COM3')# COM3번과 연결 -> Comport 번호는 사용자마다 상이함2. closeComport 연결 해제 메서드입니다.ex) close()frompyneospiderimportNeoSpiderns=NeoSpider()ns.connect('COM3')ns.close()# Comport 연결 해제3. move3-1. move네오스파이더 이동 구동할 수 있는 메서드입니다.@paramsdirect: 방향을 정하는 파라미터0 -> 정지1 -> 앞으로2 -> 왼쪽으로3 -> 오른쪽으로4 -> 뒤로ex) move(1)frompyneospiderimportNeoSpiderimporttime# 시간 라이브러리 importns=NeoSpider()ns.connect('COM3')ns.move(1)# 앞으로 이동time.sleep(3)# 3초 지연ns.move(0)# 정지ns.close()3-2. move_secs네오스파이더 이동 구동할 수 있는 메서드입니다.@paramsdirect: 방향을 정하는 파라미터0 -> 정지1 -> 앞으로2 -> 왼쪽으로3 -> 오른쪽으로4 -> 뒤로secs: 움직일 시간ex) move_secs(1)frompyneospiderimportNeoSpiderimporttime# 시간 라이브러리 importns=NeoSpider()ns.connect('COM3')ns.move_secs(3)# 앞으로 3초간 이동ns.close()4. stop네오스파이더 구동 정지 메서드입니다.ex) stop()frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.move(1)time.sleep(3)ns.stop()# 정지ns.close()5. tone네오스파이더SOUND모듈제어 메서드입니다.@paramsoctave: 옥타브 (0~7)note: 음계 ('도', '도#', '레', '레#', ..., '시')duration: 시간/sex) tone(3, '도', 0.3)frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.tone(3,'도',0.3)time.sleep(0.2)ns.tone(3,'도',0.3)time.sleep(0.2)ns.close()6. num_rgb_led네오스파이더 모듈에 있는 RGB LED를 각각 제어할 수 있는 메서드입니다.@paramsnum: 모듈 위치 (0~7)r: 빨강색 세기 정도 (0~255)g: 초록색 세기 정도 (0~255)b: 파란색 세기 정도 (0~255)ex) num_rgb_led(2, 70, 100, 130)frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.num_rgb_led(0,50,0,0)ns.num_rgb_led(2,0,50,0)ns.num_rgb_led(4,0,0,50)ns.num_rgb_led(6,50,0,50)time.sleep(3)# 연결 해제되기 전에 확인하기 위한 지연ns.close()7. all_rgb_led네오스파이더 모듈에 있는 RGB LED 모두를 제어할 수 있는 메서드입니다.@paramsr: 빨강색 세기 정도 (0~255)g: 초록색 세기 정도 (0~255)b: 파란색 세기 정도 (0~255)ex) all_rgb_led(50, 100, 150)frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.all_rgb_led(0,0,100)time.sleep(3)ns.close()8. all_rgb_led_off네오스파이더 모듈에 있는 RGB LED 모두 OFF 메서드입니다.ex) all_rgb_led_off()frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.all_rgb_led(0,0,100)time.sleep(3)ns.all_rgb_led_off()time.sleep(2)ns.close()9. output_motor네오스파이더OUTPUT외부모터제어모듈 제어 메서드입니다.:warning:D5번에 값을 주면 D6번에 값을 0으로 주어야 합니다. 반대로도 동일합니다.@paramsd5: digital 5 pin 제어 (0~255)d6: digital 6 pin 제어 (0~255)ex) output_motor(150, 0)frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.output_motor(0,150)time.sleep(3)ns.close()10. head_angle네오스파이더 고개를 제어하는 메서드입니다.@paramsangle: 고개 각도 (50~130)ex) head_angle(60)frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')ns.head_angle(60)time.sleep(3)ns.close()[public method]: 📥입력입력에는 값을 한번 받아야 하는 경우도 있지만, 보편적으로 지속적으로 받아야 하기에 while문과 함께 쓰이는 경우가 많습니다.:warning:아직 라이브러리의 안정성 문제로 인하여 입력 값들이 지연되는 경우가 있습니다.print출력을 통하여 값을 확인을 꼭 해주세요.1. get_gas_sensor가스 모듈의 값을 가져옵니다. (0~1023)frompyneospiderimportNeoSpiderimporttimens=NeoSpider()ns.connect('COM3')try:# 강제 종료를 위한 try~except 예외 처리whileTrue:# 무한 루프 while문gas_value=ns.get_gas_sensor()#가스 센서값 변수에 담기print(gas_value)# 가스 센서값 확인exceptKeyboardInterrupt:# `ctrl + c` 강제 종료시 처리할 부분print('강제 종료')ns.close()exceptExceptionase:# 에러 발생시 처리할 부분print("에러:{}".format(e))ns.close()ns.close()함수 호출 부분을 제외하고는 아래 부분부터는 코드를 생략하겠습니다.:warning:정확한 값을 가져오기 위해서는 해당 모듈이 네오스파이더에 꽂아 있어야합니다.2. get_cds_sensor조도 센서 모듈의 값을 가져옵니다. (빛의 밝기 정도 -> 어두우면 값이 높고 밝으면 낮음, 0~1023)3. get_temp_sensor온도 센서 모듈의 값을 가져옵니다. (변환된 온도값):warning:온도 센서에서 오래 켜두면 PCB의 과열로 인하여 온도가 조금씩 높아지는 현상이 발생하기도 합니다.4. get_vibe_sensor진동 센서 값을 가져옵니다. (0~1023)5. get_input_sensor외부 INPUT 모듈 값을 가져옵니다. (0~1023):warning:INPUT 모듈은 GAS 모듈과 동일한 핀을 사용하고 있습니다. 2개를 동시에 사용하면 올바르지 못한 값을 가져올 수 있습니다.6. get_left_infrared왼쪽 적외선 센서의 감지를 했는지 결과를 리턴합니다. (감지시 True / 미감지시 False)7. get_right_infrared오른쪽 적외선 센서가 감지를 했는지 결과를 리턴합니다. (감지시 True / 미감지시 False)8. get_ultrasonic초음파 센서가 감지한 거리값을 가져옵니다. (단위 cm / 소수점 2자리까지 허용)9. get_motion모션 센서가 감지 했는지 결과를 리턴합니다. (감지시 True / 미감지시 False)[private method]🔒1. __check_sum데이터를 검증하기 위한 메서드입니다.@paramscheck_list: 검증할 2차원 리스트@return sum_value & 2552. __write_data시리얼로 데이터를 보내기 위한 메서드입니다.3. __init_data데이터 초기화 메서드입니다.4. __read_data데이터 수신 메서드입니다.5. __read_thread데이터 수신 메서드를 상시적으로 확인하기 위해서 있는 Thread:Daemon 메서드입니다.