본문 바로가기

전체 글62

파이썬(Python) 사용자 키보드 입력받는 방법 파이썬 프로그램을 하다보면 종종 사용자의 입력을 받아서 로직을 처리해야 하는 경우가 있습니다. 그럴때는 input() 함수를 사용하면 됩니다. 사용자의 나이를 입력으로 받는 예제코드 입니다. def validate(age): if age < 0: return False return True while True: try: age = int(input("Please enter your age: ")) if validate(age): break else: print("Age should not be less than 0.") except ValueError: print("Invalid input.") 코드 설명을 드리면, 입력값이 양수만 가능하기 때문에 input()에서 받은 사용자 입력값을 int 형으로 변.. 2020. 9. 8.
파이썬(Python) 슬라이싱(slice) 이해하기 슬라이스(Slice)의 사용법은 아주 간단합니다. 먼저 기본 사용법에 대해서 알아보죠. items[start:stop] # 리스트의 start 인덱스에서 stop-1 인덱스까지 슬라이싱 items[start:] # 리스트의 start 인덱스에서 리스트의 마지막까지 슬라이싱 items[:stop] # 리스트의 처음부터 stop-1 인덱스까지 슬라이싱 items[:] # 리스트 전체 아이템들 반환(복사본) 예제 코드를 같이한번 볼께요. items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] items[2:5] # 인텍스 2에서 인덱스 5까지(인덱스 5는 제외) 슬라이싱 # [2, 3, 4] items[5:] # 인덱스 5에서 끝까지 슬라이싱 # [5, 6, 7, 8, 9, 10] ite.. 2020. 9. 8.
파이썬(Python) 여러개 변수들 값 체크하기 여러개의 변수들 중에 원하는 값이 있는지 확인하는 방법을 알려드릴께요. 만약 변수 x, y, z 가 아래와 같이 값이 할당 되어있을때, x = 1 y = 2 z = 3 값 2가 아래 변수들 중에 들어있는지 확인하기 위해서 가장 직관적인 방법은 x, y, z에 모두에 대해서 값 2가 맞는지 확인을하면 되죠. if x == 2 or y == 2 or z == 2: print('found') 조금 더 쉽게하려면 x, y, z를 튜플(tuple)에 넣어서 확인하면 되요. if 2 in (x, y, z): print('found') 또는 Set에 넣어서 확인 할 수 도 있어요. 검사할 변수의 수가 많다면 해싱(hashing)을 사용하는 Set을 사용하는것이 속도면에서 유리합니다. if 2 in {x, y, z}:.. 2020. 9. 8.
라즈베리파이 4 공식 데스크탑 키트 개봉기 얼마전 지인으로부터 라즈베리파이 4 데스크탑 키트(Raspberry Pi 4 Computer Desktop Kit)를 득템했습니다. 키보드와 마우스가 같이 들어있고 메모리와 기타 케이블들이 같이 제공되는 세트에요. HDMI를 지원하는 모니터만 있으면 바로 연결이 가능할것 같습니다. 공식사이트응 여기 입니다. 박스는 아래처럼 꽤 커요. 아무래도 키보드와 관련 서적이 들어있어서 포장이 큰 것 같아요. 박스를 열어보았습니다. 포장박스들 색상이 통일감 있어 보이네요. 키보드와 마우스, 케이스가 같은 컬러톤으로 제공이 되서 한 세트라는 인상을 줍니다. 하지만 플라스틱 마감은 약간 장난감같은 느낌입니다. 키감이나 조작감도 인상적이지는 않습니다. (그래도 귀엽기는 합니다) 메모리 카드도 들어있어서 바로 라즈베리를 시.. 2020. 9. 8.
라즈베리파이 제로 시작하기 이번 포스팅에서는 Raspberry Pi Zero W 모델(블루투스, 와이파이 지원)에 OS를 설치하는 방법을 알아볼께요. 기본적인 설치 방법은 라즈베리파이 3/4 를 설치하기와 거의 동일합니다. 우선 라즈베리파이 공식 홈페이지에서 자신의 컴퓨터에 적합한 Imager 프로그램을 다운로드 받습니다. 저는 맥을 사용하기 때문에 맥용을 받아서 설치 후 실행 하였습니다. https://www.raspberrypi.org/downloads/ Raspberry Pi Downloads - Software for the Raspberry Pi Download free software for Raspberry Pi, including Raspberry Pi Imager, Raspbian, and third-party O.. 2020. 9. 6.
PS3 컨트롤러로 서보모터 제어하기 [라즈베리파이(Raspberry Pi)] 이번 포스팅에서는 파이썬 코드를 통해서 PS3 컨트롤러로 서보모터를 움직일 수 있는 프로그램을 만들어 볼께요. 시작하기 전에 먼저 PS3 컨트롤러와 서보모터를 제어하는 포스팅을 읽어주세요. 본 포스팅은 아래 두 포스팅의 내용이 라즈베리파이에 적용되었다는 전제로 작성되었습니다. 2020/09/02 - [라즈베리파이] - 라즈베리파이(Raspberry Pi) 서보 모터 제어하기 2020/09/03 - [라즈베리파이] - 라즈베리파이(Raspberry Pi) PS3 컨트롤러 조작하기 Github에서 코드 받기 PS3 컨트롤러 조작하기 포스팅을 완료하셨다면 라즈베리파이에 ps3-controller 폴더가 존재할것입니다. 아직 읽어보지 않으셨다면 아래와 같이 코드를 받고 라이브러리를 설정해 주세요. 그리고 git.. 2020. 9. 4.
PS3 컨트롤러 조작하기 [라즈베리파이(Raspberry Pi)] 이번 포스팅에서는 라즈베리파이에서 PS3(플레이스테이션3) 컨트롤러를 실제 파이썬 코드로 조작하는 방법을 알아볼께요. 시작하기 전에 아래 두개의 포스팅에 나온 방법으로 라즈베리파이에 PS3 컨트롤러가 연결이 되어있어야 합니다. 추가적으로 쾌적한 터미널 개발 환경을 위해서 oh my zsh 설치도 추천드립니다. 또한 원격작업을 위해서 ssh 원격접속 환경도 만들어주세요. 2020/08/29 - [라즈베리파이] - 라즈베리파이(Raspberry Pi) 플레이스테이션(PS3) 컨트롤러 연결하기 2020/08/28 - [라즈베리파이] - 라즈베리파이(Raspberry Pi)에 oh my zsh 설치하기 2020/08/30 - [라즈베리파이] - 라즈베리파이(Raspberry Pi) SSH 원격연결 및 패스워드 .. 2020. 9. 3.
서보 모터 제어하기 [라즈베리파이(Raspberry Pi)] 오늘은 라즈베리파이로 서보모터를 제어해 볼께요. 제가 사용하는 서보모터는 Hitec HS-303 입니다. 가격은 약 2만원정도 합니다. 자세한 스펙은 아래와 같습니다. 전원은 5V로 인가하면 되고 회전각도는 180도 까지 가능하네요. Hitec HS-303 - Economy Servo Specifications Modulation: Analog Torque: 4.8V: 49.00 oz-in (3.53 kg-cm) Speed: 4.8V: 0.19 sec/60° 6.0V: 0.15 sec/60° Weight: 1.71 oz (48.5 g) Dimensions: Length:1.60 in (40.6 mm) Width:0.80 in (20.3 mm) Height:1.40 in (35.6 mm) Motor Typ.. 2020. 9. 2.
scp 명령으로 파일 전송하기 [라즈베리파이(Raspberry Pi)] 이번 포스팅에서는 터미널의 커맨드라인에서 scp(secure copy) 프로그램을 사용해서 라즈베리파이로 파일을 전송하는 방법을 알아볼께요. 원격데스크탑이나 FTP 같은 툴을 사용해도 되긴하는데 커맨드라인 명령어가 익숙해지면 훨씬 빠르고 간단하게 전송을 할 수 있어요. 시작하기 전에 라즈베리파이로 ssh를 사용해서 원격접속 설정을 해두어야 합니다. 다음 글을 참고해서 이 작업을 먼저 완료해주세요. 라즈베리파이(Raspberry Pi) SSH 원격연결 및 패스워드 없이 접속하기 scp 명령으로 파일 1개 전송하기 scp는 원격으로 파일을 전송할 수 있게 해주는 프로그램입니다. scp 명령은 전송할 파일 위치와 전송받을 목적지 위치를 명령인자로 넣어주면 됩니다. 즉, 명령의 실행은 아래와 같은 모습을 보이게.. 2020. 8. 31.
SSH 원격연결 및 패스워드 없이 접속하기 [라즈베리파이(Raspberry Pi)] 오늘 포스팅에서는 라즈베리파이를 다른 컴퓨터에서 SSH 접속을 하는 방법을 알아보겠습니다. 만약 자주 라즈베리파이로 연결을 하게 된다면 매번 패스워드를 입력하는게 꽤나 귀찮게 느껴지는데요, 그래서 암호없이 접속할 수 있는 방법도 알아볼께요. 준비단계 라즈베리파이를 처음 시작한다면 아래글들을 먼저 확인해주세요. 라즈베리파이(Raspberry Pi) 시작하기 라즈베리파이(Raspberry Pi) 무선랜 커맨드라인 연결하기 라즈베리파이(Raspberry Pi)에 oh my zsh 설치하기 그리고 라즈베리파이로 접속을 할 컴퓨터에 터미널을 설치해주세요. 저는 Mac 컴퓨터를 사용하고 있고 iTerm 터미널을 사용하고 있습니다. 기본 터미널이나 putty 등의 다른 터미널도 아래 방법은 동일하게 적용됩니다. 라즈.. 2020. 8. 30.
플레이스테이션(PS3) 컨트롤러 연결하기 [라즈베리파이(Raspberry Pi)] 이번 포스팅에서는 PS3 컨트롤러를 라즈베리파이에 블루투스를 통해서 무선 연결하는 방법을 알아볼께요. 컨트롤러를가 연결이 되면 로봇조종이나 게임 등 재미있는 것들을 많이 해볼 수 있을것 같아요. 준비물 시작하기 전에 OS가 설치된 라즈베리파이와 컨트롤러를 준비해주세요. 라즈베리파이에 아직 OS가 설치 되어있지 않다면 OS 설치 가이드 를 참고해서 설치를 진행해 주세요. 또한 저는 조금더 편한 터미널 환경을 위해서 Oh My Zsh 툴을 사용하기 때문에(Oh My Zsh 설치하기 참고) 라즈베리파이 기본 터미널 모습과 조금 다르게 보입니다. 블루투스가 지원되는 라즈베리파이 플레이스테이션(PS3) 컨트롤러 USB 미니 케이블 (컨트롤러와 라즈베리파이를 연결하기 위한 USB 케이블) sixpair 소프트웨어 .. 2020. 8. 29.
Oh My Zsh 설치하기 [라즈베리파이(Raspberry Pi)] 라즈베리파이로 프로젝트를 하다보면 터미널로 작업하는 경우가 굉장히 많습니다. 하지만 커맨드라인 명령에 익숙하지 않다면 터미널 사용이 많이 불편하고 진행을 더디게 하는 원인이 되기도 합니다. 그래서 좀 더 쉽고 빠르고 직관적으로 커맨드 명령을 사용할 수 있게 도와주는 도구인 Oh My Zsh(https://ohmyz.sh/)를 소개해 드릴께요. Oh My Zsh는 커맨드 명령을 쉽게 되와주는 수 많은 플러그인들과 터미널을 예쁘게 꾸며주는 다양한 테마들과 덕분에 그 사용자층이 아주 두터운 오픈소스 툴입니다. 설치 방법 설치는 아주 간단하게 진행이 됩니다. 우선 라즈베리파이의 인터넷 연결을 확인하고 업데이트를 진행해 줍니다. pi@raspberrypi:~ $ sudo apt update && sudo apt .. 2020. 8. 28.