글이 길어져서 죄송합니다. 일부러 그런 것은 아닌데 쉽게 생각했던 엠비언트 라이트 구축이 생각보다 변수도 많고 어려운 점이 많았습니다. 저와 같은 실수를 반복하지 않으시길 바라는 마음에서 최대한 자세히 기록해둡니다.
부품 연결전 소프트웨어적인 작업들(아두이노 코딩, 라즈베리파이 프로그램 설치)
부품을 다 연결하고 나면 USB 연결이 까다롭기 때문에 컴퓨터로 해야 할 작업들을 미리 해줍니다. 아직까지 코딩에 대한 깊은 이해가 부족한 상황이라서 일단 눈동냥으로 맹목적으로(?) 따라 해 봅니다. 코딩을 위한 용어들이 크게 어렵지는 않은 것 같은데 일단은 하라는 대로 하면 됩니다. 초보중의 초보인 저도 했으니 다들 하실 수 있을 겁니다.
아두이노 IDE(스케치) 설치
아두이노에 우리가 원하는 명령어들을 입력하려면 프로그램이 필요합니다. 보통 스케치라고 많이들 표현하시는 것 같아요. 저는 맥을 사용하니까 운영체제에 맞는 해당되는 프로그램을 다운받아서 설치하시면 됩니다.
설치를 하고 나면 또 하나의 작업이 필요합니다. 보통 정품으로 불리는 아두이노를 사용하시는 분들은 드라이버를 정식으로 지원하고 있어서, 별다른 조치없이 코딩이 가능합니다. 하지만 저처럼 중국발 짭두이노(?)를 구입하신 분들은 드라이버를 별도로 설치해줘야 맥에서 인식이 가능합니다.
제가 쓰는 맥은 두가지인데 아이맥의 경우는 시스템 업데이트가 현재까지 잘 지원되고 있어서, Big Sur(11.2.3.)까지 버전이 올라가 있습니다. 블로그를 보면 모하비 이후의 버전에는 짭두이노에 대응하는 드라이버가 지원되고 있어서 설치하지 말라고 되어있습니다. 거실에는 아이맥이 없어서 구형 맥북으로 작업하다 보니 드라이버 설치가 필요합니다. (맥북은 El Capitan에서 멈춰있음..)
위의 링크를 따라가시면 ArduinoCode 파일이 있습니다. 그대로 복사하셔서 스케치 프로그램에 붙여 넣기 하면 됩니다.
세부적인 코딩에 대한 내용은 전혀 알수없습니다. 다만 아는 것은 총 LED 개수를 입력하는 것과, LED에 정보를 제공할 핀을 정할 수 있다는 것 정도입니다. 일단 이거 두 개만 수정하면 아두이노에서 할 일은 끝입니다.
아래, 위, 오른쪽, 왼쪽 모두 합하면 총 245개의 LED가 설치되었습니다. 그리고 아두이노 나노의 데이터핀이 전부 비어있으므로 기본으로 세팅되어있는 6번 핀과 연결하도록 합니다. 그래서 스케치 프로그램에서 LED 숫자와 데이터핀을 변경해줍니다. 어떤 핀이든 상관없습니다.
위의 과정을 제가 왜 하는지 어떤 원리로 작동을 하는지 알수는 없습니다. 그저 선배님들이 하라는 대로 그대로 하는 중입니다. 소위 말하는 아두이노 코딩을 위한 국룰 세팅인 보드 선택(Arduino Nano), 프로세서(ATmega326P Old Bootloader), 포트까지 잘 선택해줍니다.
라이브러리 매니저를 열어서 fastled 를 검색해서 제일 최신 버전으로 설치해줍니다. 저는 3.4.0 버전을 설치했습니다. 이제 거의 다 왔습니다. 할 일은 동그라미 쳐져있는 화살표를 누르고 업로드 완료가 될 때까지 기다리는 것입니다. 일단 여기까지 하면 아두이노 세팅은 끝!!
라즈베리파이 프로그램 설치하기(HyperBian)
라즈베리파이를 구동할 프로그램도 SD카드에 설치해야 합니다. 먼저 프로그램을 다운받아주시고..
텍스트 편집기를 열어서 위의 코드를 복사합니다. WIFI 이름 부분에는 사용하시는 공유기의 SSID를 입력해주시면 되고, PASSWORD도 잘 입력해 주면 됩니다. 한 가지 유의할 사항은 확장자를 txt가 아닌 conf로 해줘야 합니다. 저는 처음에 만든 파일이 확장자 가리기가 되어있어서 텍스트 파일인지 모르고 저장했다가 알고 보니 conf가 아니었습니다. 이를 꼭 확인하신 다음에 SD카드의 boot로 옮겨주시면 됩니다.
여기까지 어려운 것은 없으셨죠? 부품 연결 부분을 이어서 쓸려고 했더니 내용이 좀 길어졌습니다. 너무 늘어지면 보기에 불편하실 수도 있으니 일단 3편은 여기까지 정리합니다. (기다리시는 분이 계실지 모르겠지만.. 생각보다 돌발상황이 많이 발생했습니다. 수습 중인 일도 많고, 나름 고민하고 있는 부분도 있어서 여기서 잠시 끊어가겠습니다. 죄송합니다. ㅠㅠ)