0. 회로에 연결되는것
뭐가 됐든 뭔가를 읽어올수 있는것은 전부 빨간 전선으로 연결해봤고,
뭐가 됐든 뭔가를 제어할 수 있는것은 초록 전선으로 연결해봄. 기차역도 초록전선으로 제어할 수 있지만, 회로를 이용하여 기차역의 활성화 비활성화를 조절하여 열차 시스템을 더 최적화 할정도면 이 글에서 유용한 정보를 얻기는 힘들거라고 생각함.
1. 기본 논리 연산, AND ,OR, XOR
우선 다음처럼 조건을 만족하면 초록색 1을 출력하면서, 전구에 불이 들어오게 간단하게 설정을 해줬음. 전구가 지금 초록전선으로 연결되어있는데, 중간에 빨간전선으로 바꿈. 참고하삼. 그걸 못찍었네
이후 왼쪽에 OR회로, 오른쪽에 AND 회로를 만들어봄.
왼쪽의 OR회로의 내부 구조는 이런식으로 되어있음, 하나라도 조건이 만족된다면을 저런식으로 구현하는거지.오른쪽의 AND회로의 내부 구조는 이런식으로 되어있음, 둘 다 조건이 만족된다면을 저런식으로 구현하는거지.
논리 신호를 구현하고 있어서 덩달아 XOR도 구현해봄. 요거는 잘 안쓰임. 팩토리오에서 회로로 뭔가를 제어할때는, 보통
N가지 조건중 한가지라도 만족한 경우나 N가지 조건이 모두 만족한 경우로 제어를 하거든.
다른 회로 겜도 포함해서 XOR 신호가 쓰이는 경우는 마크 출입문 정도밖에 기억에 없네.
왼쪽에 철판을 더 추가해서 둘다 참이 되게 해봄. OR 과 AND가 불이 들어오고, XOR은 불이 꺼진 모습을 보면 잘 구현 됐다고 말 할 수 있겠다.
이렇게 구현된 AND와 OR의 특징은 병렬로 계속해서 조건을 늘려나갈 수 있음. 자세한건 직접 해보면서 배우는게 좋지 않을까라고 생각함.
2. 카운터, 래치, 기억소자 등등..
논리회로를 한번쯤 공부해본 사람이면 플립플롭이나 래치라는 단어를 들어봤을거임.
대충 이런 딱봐도 복잡해보이는 녀석이다.
뭐, 종류를 말하자면 SR플립플롭이고, 가장 간단한 기억소자면서... + 1비트밖에 기억못하는 등 여러가지 제약이 많은 건데
팩토리오에선 이런 기억소자가 더 간단하게 구현된다.
짠 기억소자의 구현이 끝났다. 심지어 이거는 1비트의 제약이 있지도 않다. integer가 허용하는 범위 내에서 전부 기억할 수 있다.
실제 사용을 테스트 해봤다.
우선 투입기의 활성화 조건을 없앴고,손 내용물 읽기를 체크해주고, 손 내용물 읽기 모드는 펄스로 해줬다.
여기서 펄스와 유지를 간단하게 설명하면, 펄스는 동작을 실행하는 순간 1틱만 신호를 내보내고, 이후는 보내지 않는 것이다.
유지는 동작을 수행하는 동안 항상 신호를 출력하는 것이다.
보통 투입기 손 내용물을 읽는것은, 투입기의 작동회수를 기억하기 위해서니까 '펄스'형태의 읽기를 자주 쓴다.
그리고 테스트를 위에서 왼쪽 상자에 철판 200개를 넣어주었다.
산술연산 조합기 출력 신호를 보면 값이 저장되는 것을 확인할 수 있다.
기억 소자의 기억용 전선은 어떤 색을 사용하건 저장하는데에는 큰 문제가 없다.
마찬가지로 값이 잘 저장되는 모습을 볼 수 있다. 전선을 분리하는 것과 분리하지 않는 것에 약간의 차이가 존재하는데, 조금 있다 한가지 예시를 보여줄 것이다.
그리고, 이렇게 값을 저장하는것을, 특정 개수에 도달하면 초기화 하고 싶을때는 다음처럼 Modular 연산을 이용하면 된다.
위 경우에는, 저장한 값이 200이 넘어갔다면, 200으로 나눈 나머지가 저장되게 될 것이다.
아까 전선을 분리하는것과 분리하지 않는것에 차이가 있다고 했는데, 그것을 확인하기 위해, Modular를 적용한 기억소자를 선 분리여부만 다르게 하여 하나 더 만들어줬다.
이후 기억소자에서 뽑아낸 값을, 수량비교 조합기로 넣어서. 나눈 값과 일치하면 초록색 1을 출력하게 해줬다. 나머지 연산을 했는데, 어케 같아질수 있냐라고 할수도 있지만, 좀 있다 결과를 보면 알 것이다.
이후 마찬가지로, 출력된 초록 신호를 저장하기 위해 기본적인 기억소자를 하나 더 달아줬다.
그리고, 기억소자에 초록색 신호가 저장되어있다면, 전구색이 바뀌게 설정해줬다.
이후, 테스트를 위해 철판을 양쪽에 200개씩 넣어주었다.
철판이 다 옮겨진 결과를 보면, 선을 분리 안한 오른쪽에 불이 켜진걸 확인할 수 있다. 조금 난해할 수 있는데,
오른쪽같은 경우에는, 빨간전선에 철판 199를 저장하고 있다가, 투입기에서 1틱에 철판 1신호가 들어오는 순간에, 빨간 전선에는 철판 200의 신호가 1틱만큼 흐르게 되고, 기억소자에서 200이 입력되었기 때문에 이걸 다시 0으로 초기화하게 된다. 연산 틱의 개념을 이용하여 투입기의 펄스와 같은 기능을하게 끔 출력을 할 수 있는것이다.
이걸 이용하면 간단한 시계도 만들 수 있다. 연결한 시점부터, 초 분 시간 일 단위로 값을 저장해주는 회로다. 이 값을 기반으로 디스플레이만 구현해주면 이쁜 시계를 만들 수 있다.
2-1. SR 래치
편의상 이런 간단한 구조가 있다. 묶음 투입기는 빠른속도로 철상자에 철판을 공급하는 역할을 하고, 빠른 투입기는 느린속도로 철 상자에서 철판을 소비하는 역할을 한다. 여기서, 철상자에 철판이 100개 이하로 떨어지면 공급을 '시작'하고, 200개 이상이 된다면, 공급을 멈추고 싶다고 생각해보자.
우선 철상자에 철판이 100개 아래로 떨어지면, SET 신호, 여기서는 초록색 신호를 1 출력해주었다.
이후, 철판이 200개가 넘어가면 RESET신호, 여기서는 빨간색 신호를 1 출력해주었다.
앞선 두개의 출력을 다른 연산기의 입력에 연결해주고, 기억소자 선을 분리해서 연결해준다. 이후, 이 조합기의 출력을 제어를 원하는 물건, 지금의 경우에 묶음 투입기에 연결해준다.
이후, 조합기 내용을 다음처럼 세팅해주면 된다.
투입기는 초록색 신호가 들어왔다면 작동하게 해주었다.
철판이 200개가 넘어갔을때, 공급을 멈춘 시점이다.
철판이 다시 100개 미만으로 떨어지자, 공급을 다시 시작하는 모습이다.
몇가지 기본이되는 회로들이고, 이걸 기반으로 대부분의 제어는 구현할 수 있다.
회로는 생각보다 간단하니, 우리모두 회로를 활용해보는건 어떨까.

꿀맛 혹시 청사진 있음 ?
매번 직접 설치해서 청사진은 없네 - ㅇ
ㅊㅊㅊ
ㅊㅊㅊㅊㅊ
졸라어렵네
회로이론의 기초이지만 그 기초를 이해하는것만 어느정도 커버되면응용할게 많아져서 6개인가? 그 기본적인 논리회로는 알아두면 존나 편함