MicroProcessor_SBC/Arduino

Arduino With Tinkercad Circuit - 004_아두이노를 고급지게 사용하려면?

LonleyEngineer 2021. 10. 26. 22:00
반응형

 

원래 글을 쓰기 시작한 이유는 틴커캐드를 이용하여 서킷 시뮬레이터에서 코딩하고 보드에 올려서 잘 돌아가는지 검증하는 과정에 대해 쓰는 것이 목적이었습니다.

글을 쓰다보니 써야할 것들이 너무 많은 것을 보니 저도 잘 모르고 있었던 부분도 많아서 배우고 정리하면서 공유하면 좋겠다 싶은 부분이 많은 것 같습니다.

 

이러다가 지쳐서 본론은 못쓰고 넉다운 되는 것은 아닌가 걱정도 되네요.

 

일단 그래도 시작했으니 이번 글도 작성해보겠습니다.

 

제목은 거창하게 뽑았습니다. 아두이노를 고급지게 사용하려면?

말은 고급지게 인데 알고보면 밑바닥을 알아야 한다는 내용이 될 것 같습니다.

엄밀히 따지면 중급자 이상이 되고자 하는 분이라면 꼭 알아야 할 내용이겠네요.

 

아두이노의 모토 자체가 배경지식이 부족한 사람이라도 쉽게 학습하고 사용할 수 있도록 하는 것인데요. 활용 범위가 넓다 보니 결국은 알아야 할 것도 많아집니다.

인터넷 상에 널린 예제만 따라하면 그냥 거기서 끝나는 것들이 많을 겁니다. 예제에 대한 부분은 정말 널리고 널렸는데요. 저역시도 나중에는 널리고 널린 예제를 다시 해보는 것이 목표입니다만 이번 글에서 제가 하고 싶은 이야기를 하시는 분들은 많이 없는 것 같습니다.

 

그도 그럴 것이 초심자를 대상으로 한 것들이 대부분이라 그럴 것이라고 생각합니다.

하지만 중급이상이 되려면 꼭 알아야 할 부분이 있습니다.

제가 지금은 전혀 다른 직종에 종사하고 있지만 예전에 초급엔지니어로 콧물 훌쩍거리며 상급자가 하는 것들을 어깨넘어 배울 때 딱 한가지 잘배웠다 싶은 것이 있어서 기술해보겠습니다.

 

1. 데이터시트(Datasheet)를 잘보자

첫번째는 바로 데이터시트(Datasheet)를 봐야 한다는 것입니다.

데이터시트는 칩이든 부품이든 제조사에서 개발한 후 사용자에게 전기적, 물리적 특성과 동작 방법, 동작환경 등에 대해 알려주기 위해서 기술한 문서입니다.

내용을 보면 하얀 것은 종이고 검은 것은 글씨다 싶을 정도로 이해안가는 말들도 많이 써있고 마이크로 컨트롤러나 마이크로 프로세서 같은 경우는 1000페이지 이상의 문서도 많습니다.

 

제 상급자는 마이크로컨트롤러나 마이크로프로세서 범주에서 대표적인 8비트 16비트짜리 하나 정해서 그 문서를 정독하고 활용할 수 있으면 해당 직종에서 롱런(Long-Run)할 수 있다고 했습니다.

그만큼 중요하고 기초가 되면서 고급스킬을 다질때까지 써먹을 수 있다는 말이겠지요.

저도 콧물 훌쩍거리던 초급엔지니어 단계에서 이직하는 바람에 아직 데이터시트 하나를 독파하지 못했지만 취미단계에서도 데이터시트는 꼭 찾아보고 있습니다.

 

서설도 길고 아두이노 그냥 쓰면 되는데 뭐 그리 밑바닥 내용이 중요하냐고 할 수 있겠지만 데이터시트가 중요하지 않다면 아두이노 공식홈페이지에서 데이터시트를 따로 링크까지 걸어주며 제공할 필요가 있는가를 생각해보면 좋을 것 같습니다.

 

위는 아두이노 공홈의 UNO 보드 페이지 입니다.

Tech specs 부분에 Microcontroller에 ATmega328P 라고 되어 있는 부분이 있습니다.

링크가 걸려있는데요. 링크를 클릭해보면

 

 

위와 같이 622페이지의 PDF 문서가 나옵니다. 말 그대로 하얀 것은 종이고 검은 것은 글씨라는 말이 맞겠다 싶은 문서입니다. 이렇게 대부분의 데이터시트 기술문서는 한글로 된 것을 본 경험이 없습니다. 한글도 이해가 안될 수 있는 기술문서인데 영어로 되어 있다니 더 힘들 수 있지만 문서의 내용을 모두 안보더라도 필요한 부분만 잘 찾아 볼 수 있다면 초급에서 중급으로 넘어갈 수 있다고 생각합니다.

 

 

처음엔 Features 라고 해서 개괄적 스펙에 대한 설명이 쭉 나옵니다.

무슨 말인지 몰라도 그냥 계속 봅니다. 저는 다른 부분보다는 이부분은 꼭 봅니다.

스펙이나 이후에 나올 내용이 대충은 감이 오기 때문입니다.

 

그 뒤로 쭉쭉 넘어가면 ATmega에 대한 핀이 어떻게 나오는지 설명이 되어 있네요.

 

그 뒤로는 각 핀에 대한 기능 설명도 되어 있고요

그 뒤로가면 ATmega 마이크로 컨트롤러 내부의 구조에 대한 블록다이어 그램도 있고요.

그 뒤로가면 마이크로 컨트롤러 내부에 동작에 관계된 레지스터들에 대한 설명도 쭉쭉 나오고요.

동작을 하는데 필요한 입력신호에 대한 타이밍 다이어그램도 나오고요.

내부 메모리 구조도 나오고요.

중간중간 동작을 위한 코드를 어떻게 할지에 대한 의사코드(Pseudo code)도 나옵니다.

뒤로 더가면 전기적 특성에 대한 것도 나오고요.

심지어 읽어도 모를 어셈블리어도 나오네요.

 

이렇게 정말 상세한 데이터들을 기록한 것이 데이터시트입니다.

 

 

마이크로컨트롤러의 데이터시트 외에 아두이노 공홈에 여러 센서를 탑재한 Nano 33 BLE Sense 페이지를 보면 위와 같이 센서칩에 대한 데이터시트도 공유되어 있는 것이 보입니다. 중요하지 않다면 공홈에서 친절히 링크를 걸어두지 않았을겁니다.

 

이 데이터시트들을 끼고 있으면 근본적인 동작 방법에 대한 감이 쌓이고 16비트 마이크로컨트롤러를 넘어 요즘 나오는 64비트 프로세서까지 이해하는데 거기서 거기라서 금방 이해된다는 상급자의 말이 있었기에 저도 동감하고 공유해봅니다.

 

 

 

2. 회로도(Schematics)를 잘보자

 

다음으로 하고 싶은 이야기는 회로도 부분입니다.

 

아두이노는 오픈소스 플랫폼이기 때문에 친절히 회로도까지 공개되어 있습니다.

 

위는 UNO보드의 페이지 입니다. Documentation 부분에 회로도(Schematics)를 PDF로 제공해주고 아래는 Pin이 어떻게 나와있는지도 친절히 알려줍니다.

https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf

 

PDF파일에는 위와 같이 상세한 회로도가 나와 있으니 업계에서는 호환보드를 막 찍어내기도 좋겠네요.

 

회로도가 중요한 이유는 기능 확장 시 내가 어느 핀을 써야할지 어디에 어떻게 연결해야 할지 알 수 있습니다. 데이터시트에 명시된 전기적 특성을 보고 회로도에 맞춰서 구성을 해주면 올바른 기능동작을 시키는데 수월하기 때문에 회도로도 꼭 볼 필요가 있습니다.

 

 

 

이렇게 전문가들이 보면 잘 알지도 못하는 놈이 헛소리 한다 싶을지도 모르는 말을 적어보았습니다. 하지만 이 부분은 꼭 필요한 부분이라고 생각해서 공유해봅니다.

초급을 벗어나 조금 더 고급지게 아두이노를 사용하고 싶다면 데이터시트와 회로도를 보며 코딩까지 해보는 연습을 해보는 것을 꼭 추천합니다.

 

※ 다음 글부터는 꼭 틴커캐드를 활용하는 방법에 대해 쓰고 싶었는데 또 한가지가 생각나서 사족이 될 수 있는 글을 작성해보려고 합니다. 그것은 아두이노와 LED을 연결할 때 왜 저항을 써야 하는가 입니다.

 

※ 저는 비전문가이기 때문에 정확하게 쓰려고 노력해도 오류가 있을 수 있습니다. 오류가 있다면 날선 비판 보다는 댓글로 지적해주시면 감사히 받아들이도록 하겠습니다.

반응형