본문 바로가기

전체 글

[라즈베리파이] 현재 GPIO 출력값을 읽어와 토글 시키는 방법 라즈베리파이를 시작하면서 참 많은 것들을 배우게 되었네요. 해보고 싶은 것들은 많지만, 기초부터 탄탄하게 다지는 중입니다. GPI 포트로 센서의 입력을 받고, GPO 포트로 LED나 부저 등을 단순 제어하는 방법에 대해서는 충분히 익혔다고 생각합니다. GPIO로 단순히 True/False와 같은 출력을 보내는 것은 할 수 있지만, 마지막 출력 상태를 확인해서 toggle 시키려고 하니 어떻게 구현 해야 할지 감이 오지 않더군요. 결국은 방법을 찾아내서 이렇게 누군가를 위해 블로그로 기록 중입니다. 이번 시간에는 LED를 토글링(toggling) 하기 위해 현재 GPIO 출력값을 읽어오는 방법에 대해서 기록하고자 합니다. 아울러, not 문법을 통해서 토글링하는 방법까지 설명드리겠습니다. [C라면 XOR .. 더보기
[Python] 표준입력시 NameError: name 'XXXX' is not defined 에러 메시지 발생시 조치사항 새로운 것을 시작하는 것은 항상 어렵습니다. C로 밥을 벌어먹고 살지만, python은 또 새롭네요. 오늘은 python에서 input() 함수로 표준입력을 받을때 NameError: name 'XXXX' is not defined 라는 에러가 발생할 때 조치하는 방법에 대해서 설명드리겠습니다. [스크립트] 아래는 아주 간단한 python 스크립트입니다. 표준입력으로 받은 메시지를 표준출력으로 echo 시키는 아주 간단한 2줄짜리 스크립트입니다. python 문법적으로도 틀린게 없습니다. cmd = input() print(cmd) 여러분들은 위의 스크립트가 잘못되었다고 생각하시나요? 저는 아무리 눈씻고 찾아봐도 오류를 찾을 수 없었습니다. [실행] 위의 스크립트를 아래와 같은 명령을 이용하여 실행했습니.. 더보기
[라즈베리파이] 적외선 센서로 인체의 움직임이 감지되면 부저가 울리는 python 예제 오늘 제가 재미로 만들어본 것은 적외선 센서로 인체가 감지되면 능동 부저가 울리는 스크립트입니다. 라즈베리파이로 가장 먼저 손쉽게 할 수 있는게 GPIO 제어입니다. GPI로 IR 센서 입력을 받고, 인체가 감지되면 GPO로 능동부저를 울리는 아주 간단한 구조입니다. 별반 어려운 것도 없고 특별한 것도 없지만, 우리 아들이랑 도둑놀이하면서 즐거운 시간을 보냈습니다. 그럼 어떻게 회로구성을 했고, 스크립트를 어떻게 작성했는지 설명드리겠습니다. [준비물] 준비물은 아주 단촐합니다. 저항이나 컨덴서 같은 부품은 전혀 필요없습니다. IR 센서 : 인체감지를 위한 센서입니다. 집에서 흔히 사용하는 센서등에 널리 사용되는 인체감지 센서입니다. 능동 부저 : 전원만 입력하면 소리가 나는 active buzzer를 사.. 더보기
[Python] ms 단위 sleep 주는 방법 라즈베리파이를 시작하면서 python도 같이 공부하며 기록중입니다. C는 상당히 능숙한데 python을 배우려고 하니 막히는 부분들이 좀 있습니다. python으로 작성한 프로그램의 1초 단위 delay를 ms단위로 바꾸고 싶은데 방법이 당장 떠오르지 않더군요. [python으로 초단위 delay 주는 예제] import RPi.GPIO as GPIO import time GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(2, GPIO.OUT) while True: GPIO.output(2, True) time.sleep(1) GPIO.output(2, False) time.sleep(1) 위의 예제는 python으로 초단위 delay를 주는 예제입니.. 더보기
라즈베리파이로 active buzzer 제어하는 방법 지난 시간에는 라즈베리파이를 이용해서 LED를 제어하는 방법에 대해서 기록했었습니다. 오늘은 라즈베리파이를 이용해서 부저음을 낼 수 있는 방법에 대해서 기록하고자 합니다. [부저] GPIO를 이용하여 부저음을 내기에 앞서 부저에 대해서 간단하게 설명드리겠습니다. 부저(buzzer)는 소리를 낼 수 있는 부품으로 2가지 종류가 있습니다. 동작 방식에 따라서 능동 부저(active buzzer)와 수동 부저(passive buzzer)로 나뉩니다. [능동 부저] 능동 부저란 내부에 부저 신호를 발생시킬 수 있는 기능이 있어서, 전원만 연결해주면 고정된 주파수의 소리가 발생하게 됩니다. 동작 전압만 인가하면 소리가 나기 때문에 간단하게 소리를 낼 수 있지만, 고정된 주파수로만 소리가 나기 때문에 주파수를 바꿀.. 더보기
[라즈베리파이] GPO 포트로 LED 제어하기 약 20년 전 대학교 전자전기컴퓨터학부에 처음으로 입학했을 때, 전자공학실험수업에서 '빵판'이라는 것을 처음 접했을 때가 아직도 기억납니다. 그 당시 수업을 진행하는 대학원생분이 '빵판'이라는 단어가 조금 생소하지만 별명이 아니고 정식 명칭이고 영어로는 'Bread Board'라고 진지하게 이야기하던 게 참 인상 깊었네요. 약 20년이 지난 지금! Firmware 개발자로 현업에서 경력을 쌓은지도 십 년이 넘는 지금! 라즈베리파이를 접하면서 또 다시 빵판에 손을 대고 있는 지금의 제 모습을 보면 제 운명은 '빵판'을 벗어날 수 없다는 느낌이 자꾸 드네요. 그래도 정말 축복과 같은 것은, 저는 제 일에 참 만족하고 일을 할 때 가장 행복감을 느낀다는 것입니다. 놀면서 배우고, 배우면서 일하는 저에게 일은 .. 더보기
[라즈베리파이] sudo: python: command not found 에러 발생시 조치방법 라즈베리파이로 python을 공부하기 시작하고 처음 겪는 문제들에 대해서 정리를 해두고자 합니다. 아주 초보적인 문제이고 아주 간단한 해결 방법들이지만 처음 시작하는 분들에게는 도움이 될지도 모르겠다는 생각으로 기록을 남기고자 합니다. [문제1 : python command not found 에러 발생] 라즈베리파이에서 최초로 python script를 작성해서 실행하려 하였는데, "python command not found"와 같은 에러가 뜨면서 실행되지 않는다면 제법 당황스러울 수 있겠습니다. 혹은 기존 라즈베리파이에서는 잘 동작하던 python script를 다른 라즈베리파이에 복사해서 수행하려 할때 이런 에러가 뜰 수도 있습니다. 이런 문제가 발생하는 이유는 python script를 수행시킬 .. 더보기
[라즈베리파이] Ubuntu Linux에 FTP 서버 설치 지난 시간에는 라즈베리파이에 Samba Server를 설치하는 방법에 대해서 기록했습니다. 오늘은 FTP Server를 설치하는 방법에 대해서 기록해두고자 합니다. 컴퓨터와 컴퓨터 사이에 파일을 교환하는 방법은 여러가지가 있겠습니다. 아래는 대표적인 파일 교환 프로토콜들이며, 상황에 따라서 장단점을 가집니다. [Windows 공유폴더] Windows PC와 Windows PC 사이의 파일 교환이라면 윈도우즈 공유폴더가 가장 편리합니다. [SCP] Linux PC와 Linux PC 사이의 파일 교환이라면 SSH에 기반한 scp 명령으로 손쉽게 파일을 교환할 수 있겠습니다. [Samba Server] 서버가 Linux PC이고, 클라이언트가 Windows PC라면 Linux 서버에 SAMBA server를 .. 더보기