슈퍼미니프라 가오가이가를 수령해 가조까지는 순식간에 완료했습니다.
다른 많은 분들의 완성샷을 보니 최소한 부분도색은 해야겠다 싶어 저도 도색 작업에 착수했습니다.

우선 킷 자체에서 유일한 거슬림 포인트인 갸레온 이마의 좌우 정중앙 접합선을 퍼티로 수정했습니다.


저는 수지접착제로 접합선 수정하는걸 선호합니다만, 슈퍼미니프라의 경우 재질이 ABS라 수지접착제를
사용하면 자칫 킷 자체가 흐물흐물해져 망칠 수 있기에, 어쩔 수 없이 퍼티를 사용했습니다.
퍼티작업 안좋아하는데 ㅜㅜ


전체 도색은 슈퍼미니프라 특성상 과분할 것 같고..

금색 파츠만 오버코팅으로 도색하기로 했습니다.



먼저 퐁퐁물에 프라를 잘 세척해 말려준 후 서페이서 올린 후 약 4시간 건조했습니다.



서페이서 건조 후 유광 블랙으로 하지 작업을 해줍니다.

하지 유광블랙을 먼저 작업해주느냐 안해주느냐에 따라 최종적으로 광이 달라진다고 하지요.



유광 블랙 하지도색을 약 6시간 건조 후 메탈릭 실버를 도포했습니다.

이 사진을 찍고 나서야 가오가이가 헬멧의 뿔을 도색 안했다는걸 알아채버렸습니다.

그래서 헬멧 뿔은 유광 블랙 하지작업 없이 그냥 메탈릭 실버를 올리게 되었죠.

나중에 완성 후 광빨 비교를 해보면 좋은 샘플이 될 것 같습니다.



24시간 푹~ 건조시킨 후 클리어 옐로우를 오버코팅 했습니다.

헬 엔드 헤븐 전용 손파츠의 경우 달롱넷 '리아'님의 작품을 보고 감동받아 저도 클리어 그린으로 도장하려고 했는데..

도료를 잘못샀습니다. 이건 클리어 그린이 아니라 그냥 청록색인데 ㅜㅜ

분명 클리어그린이라고 팔았으면서 왜 이런 사태가......



현재 에나멜 먹선 작업까지 마치고 피막 형성을 위해 숙성 건조중입니다.

어차피 취미 작업은 주말에만 가능하기 때문에 건조 시간은 충분하겠지요.


마무리로 이번주 토요일엔 우레탄 클리어로 마감을 하고 콤파운딩 하여 광빨 작업을 진행할까 합니다.

주말이 기다려지네요 이힛~


반다이에서는 식품완구(이하 식완) 카테고리의 '슈퍼 미니프라' 라인업으로 최근 핫한 아이템을 쭉쭉 뽑아주고 있습니다.


우리 기억속의 식완은 보통 '슈퍼조인트', 또는 '알파벳로봇' 등으로 남아있는 허접하고 싸구려틱한

원색의 단순한 장난감 로봇이 대부분일 것입니다.


하지만 최근의 아이들은 이런 식완에 관심이 없습니다. 아니, 프라모델이라는 취미 자체가 스마트폰, 컴퓨터, 게임기에 밀려

아이들의 관심 범주에 들기 어렵다는게 더 정확하겠지요.



반다이는 최근 이러한 실정을 타파하고자, 철저하게 '아저씨들의 추억속 로봇'을, 식완치고는 다소 높은 가격에 발매하며,

그 높은 가격이 납득이 될 정도의 고품질 설계로 발매하고 있습니다.


이러한 슈퍼 미니프라의 최근작 중 하나가 바로 오늘 포스팅할 '용자왕 가오가이가' 입니다.

선라이즈 용자로봇 시리즈의 마지막 작품이며, 수많은 열혈 슈퍼로봇 매니아들에게 인정받는 명작 애니메이션의 주역메카입니다.



이번 슈퍼미니프라 가오가이가는 총 4개의 번호로 분류되어 있습니다.

1번에 주역메카인 가이가를 시작으로, 2번부터 4번까지는 합체메카인 스텔스가오, 라이너가오, 드릴가오 그리고 전투공간

생성 툴인 디바이딩 드라이버가 나뉘어 들어있습니다.


킷 자체에 대한 상세한 리뷰는 이미 많은 분들께서 포스팅하셨으므로, 저는 우선 제 작업의 가조립 리뷰만 진행하겠습니다.



수령한 슈퍼미니프라 대박스 사진입니다.

가오가이가 세계관의 에너지 원천. 용기를 에너지로 바꿔주는 G스톤이 그려있습니다.

박스 컬러또한 G스톤의 이미지에 맞추어 녹색입니다.



식완이라 스케일이 작은만큼 어지간한 접합선은 눈감아주려 했으나, 갸레온의 머리 한가운데 접합선은

접합선이라기에 무리가 있을 정도로 많이 벌어지더군요.

베이직 퍼티로 매꾸고 사포질을 마쳤습니다.

이 외에는 특별한 일 없이 스트레이트로 가조립 했습니다.



갸레온/가이가 다음으로 라이너 가오를 조립하는데...

Aㅏ... 도색 불량품이 걸렸네요.

한쪽 어깨 끝부분의 도색이 불량으로 되어있고, 몸통쪽으로는 심한 도색뭉침이 발견되었습니다.



다행히 라이너 가오는 좌우 대칭형 부품으로 결합되기 때문에

일단 도색 불량인 부분을 등쪽으로 가도록 재조립했습니다.

추후 아크릴 도료를 조색하여 원래 도색면과 같은 색으로 재도색할 예정입니다.

(가이가 얼굴 조형이 참~ 잘생겼는데 크기도 그렇고 단색이라 잘생김이 사진으로 표현되지 않아 아쉽네요..)



스텔스 가오와 드릴 가오까지 모두 퓨젼한 모습.

스케일이 작은만큼 관절 강도가 잘 확보되는 편이며, 이번 가오가이가의 경우 관절이 심할정도로

빡빡한 부분도 있습니다. 가동 중 파손이 우려되는 부분은 사포로 약간씩 갈아주며 조립했습니다.



대각선 측면입니다. 어느쪽에서 보아도 원작 애니메이션의 프로포션을 충실히 보여줍니다.

우락부락하고 다부진 모습이 듬직듬직 하죠.

아내도 보더니 건담보다 더 멋있다고 했습니다.

(이게 저 기분좋으라고 한 소린지 어떤지는 잘 모르겠습니다;;)



뒷모습입니다. 거대한 스텔스기가 똻!!

드릴가오의 캐터필러가 똻!!


가조립까지의 킷에대한 포인트는 다음과 같습니다.


1. 장점

 - 왠만한 설정색은 부품분할로 전체의 약 90% 가량이 사출색만으로 구현됨.

 - 부품분할이 없는 경우 부품에 도색이 미리 되어 제공됨.

 - 완전변형/합체를 최소한의 루즈로 구현함.

 (가이가와 가오머신들로 파이널퓨젼 시 스텔스가오의 에어덕트 부품 단 두개만 루즈로 남습니다.)

 - 초합금혼의 완벽한 설계를 그대로 스케일다운한 완벽에 가까운 설계.


2. 단점

 - 도색 불량이 종종 발견됨. (제 경우 라이너 가오 한쪽 도색불량, 가오가이가 마스크의 한쪽 눈 도색 불량이었습니다.)

 - 관절 강도가 지나치게 타이트 하여 조립 또는 가동 중 파손이 우려되는 부분이 많음.

 ( 갸레온의 송곳니 / 퓨전 시 가이가와 스텔스가오 결합부 / 드릴가오 라이트 / 드릴가오 발 결합부 등)

 - 가조 시에는 관절강도가 매우 타이트 하나, 폴리캡이 없는 ABS 킷이므로 시간 경과에 따라 관절 마모가 우려됨.

 - ABS 재질로 인해 도색 방식이 다소 제한적임.

 - 드릴가오와 스텔스가오의 유리창 부품은 클리어 부품에 도색을 제공하지만, 런너와 연결되는 게이트 부분은 도색이 비게

 되므로 눈여겨 보자면 거슬림. 언더게이트였다면 더 좋았겠지만 식완임을 감안하면 어쩔 수 없는 부분.


일단, 저는 흰색과 검은색 파츠는 사출색 그대로 사용하고, 금색을 포함한 일부 색상을 부분도색으로 완성하고자 합니다.

클리어 부품에 도색이 비는 부위 정도만 수정해주고 가능한 킷 자체의 맛을 그대로 살리고싶습니다.


가조립 소감에 장단점을 나누어 놨지만, 개인적으로는 완성도와 만족감이 매우 높은 좋은 킷이라 생각됩니다.

식완임에도 합체킷으로써, 파이널퓨전 시 18Cm 정도가 되는 크기라서 HGUC 건프라와 비슷한 크기를 보여주니 크기면에서도 매우 만족스럽구요. 도색을 진행하는 것이 벌써부터 기대됩니다.

초딩때부터 중딩때까지는 로봇은 건담이 최고다!! 라고 믿고 살았으나, 고등학생 시절 넷츠고 영화동 자료실에 올라왔던

420p 화질의 가오가이가 파이날을 접하고나서는 이 좁은 가슴에 두 열정이 숨쉬게 되었습니다.


리얼로봇 대표 '건담' vs 슈퍼로봇 대표 '가오가이가'


건담이야 제 블로그에 포스팅도 꽤 많고, 저 외에도 수집하는 분들이 많아 정보도 많겠지만

가오가이가는 유독 완성품 또는 레진 제품이 대다수를 이룹니다.


오늘은 제가 보유하고 있는 가오가이가 관련 프라모델 & 레진킷을 소개하는 포스팅입니다.


순서는 제가 킷을 입수한 순서대로 나열합니다.



 

1. 아오시마 1:144 스타가오가이가



MG 페담 프레임을 이식하여 낙지관절을 완전 개조해준 녀석인데.. 서페이서 올리고 건조중 어머니께서 부서진 고물인줄 알았다고 분리수거 쓰레기장으로 사라져버린 비운의 킷입니다.



약올라서 같은 킷을 다시 주문해 보유중인데 아직 분리수거의 데미지가 남아있는지 여태 미개봉으로 남아있네요.


지금은 구할래도 구할 수 없는 레어 킷이 되었죠.




2. 고토부키야 D스타일 가오가이가



초딩 졸업한 이후로는 SD 프로포션을 선호하지 않아서 많이 망설였지만, 가오가이가니까 샀습니다.


물론 가조립 한 후 도색까지 하고싶은 욕구가 전혀 들지않아 그대로 박스에 담아 창고 어딘가에....




3. 고토부키야 로보뮤지엄 #41 레진 가오가이가 스테츄


e0013828_49fa5e83843c6.jpg

 

e0013828_49fa5fbc0a874.jpg


한창 대학원에서 논문쓰느라 바쁜 시절에 구입했기에, 지금은 창고 안 어느 박스에 잠들어있는지도 모르는 레진킷입니다.


뭐 곧 아파트 입주하고 보유 프라모델들 창고에 정리하다보면 툭 튀어나오지 싶네요...;;




4. 대륙제 SD 제네식 가오가이가


비라이센스 제품이므로 코멘트 및 사진은 추가하지 않습니다.




5. 슈퍼미니프라 가오가이가 !! 

 

KakaoTalk_20170330_142051495.jpg

 

예약에 실패해서 못구하나보다 싶었는데, 너무 감사한 달롱넷 회원 '마스터류'님께서 저렴한 가격에 양도해주셔서

직구 + 배송비 정도의 완전 착한 가격으로 구하게 되었습니다.

 

 

 

보유하고 있는 가가가 킷들이 아직 미개봉 상태로 쌓여있지만, 이번 슈퍼미니프라 가가가는

특별 케이스로 바로 제작에 들어가야겠습니다.

원문 출처 : 당근로리야스님 블로그 (http://blog.danggun.net/799)

 

클래스 마샬링을 할일이 없엇 신경을 안쓰다가 요번에 스카이프 api나 제가 직접 마샬링 해볼까 해서 클래스 마샬링을 정리해 보았습니다.

근데 왜이렇게 자료가 없지?
겨우 찾은것이 비주얼C++ 팀블로그인데....네...영어입니다 ㅡ.-;
(참고 : Visual C++ Team Blog - Inheriting From a Native C++ Class in C#)

일단 변환방법이 마음에 들지가 않아서 위글에 있는 내용을 그대로 사용하여 만들고 자료를 더 찾는다면 파트2로 돌아오 겠습니다 ㅎㅎㅎㅎ
그전에 이 글은 크게 2부분으로 나누어 설명할 예정입니다.

어찌됬건 프로그래머라면 일단 샘플부터 만들고 생각해야 하지 않겠습니까?

 
1. C++ DLL 만들기

C#에서 노출 시킬 클래스가 담겨있는 C++ DLL을 만들겠습니다.

1-1.프로젝트 생성

프로젝트 이름은 꼭 "cppexp"로 합니다.
진입점 문제 때문인데 해결방법은 있으나....좀더 편한 테스트 환경을 위해 "cppexp"로 합니다 ㅎㅎㅎ



1-2.코드 넣기(CSimpleClass.h)

클래스 이름도 "CSimpleClass"로 바꿔 줍니다.
샘플 코드와 마찬가지로 저도 해더에 모든  코드를 넣습니다.

아래 코드는 전체 코드입니다-_-;
잘 모고 따라하시길 ㅎㅎㅎ

// cppexp.h
#include <stdo.h>
#pragma once
 
using namespace System;
 
class __declspec(dllexport) CSimpleClass {
public:
      int value;
      CSimpleClass(int value) : value(value)
      {
      }
      ~CSimpleClass()
      {
            printf("~CSimpleClass\n");
      }
      void M1()
      {
            printf("C++/CSimpleClass::M1()\n");
            V0();
            V1(value);
            V2();
      }
      virtual void V0()
      {
            printf("C++/CSimpleClass::V0()\n");
      }
      virtual void V1(int x)
      {
            printf("C++/CSimpleClass::V1(%d)\n", x);
      }
      virtual void V2()
      {
            printf("C++/CSimpleClass::V2()\n", value);
      }
};

빌드를 돌려보면 별다른 문제 없이 dll이 생성됩니다.

여기서 생성된 "cppexp.dll", "cppexp.lib" 이 두개 파일이 중요합니다.

2. C# 샘플 만들기
이 샘플코드를 사용하기 위해서는 C#쪽에서 해야할 작업이 많습니다.
프로젝트는 아무것이나 상관없으나 이샘플자체가 콘솔응용프로그램이므로 'C# 콘솔 응용프로그램'으로 프로젝트를 생성합니다.

2-1. CSimpleClass 클래스 생성
cppexp.dll를 직접 핸들릴할 클래스입니다.

아래코드는 클래스의 전체 코드입니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
 
namespace ConsoleApplication1
{
    [StructLayout(LayoutKind.Sequential, Pack = 4)]
    public unsafe struct __CSimpleClass
    {
        public IntPtr* _vtable;
        public int value;
    }
 
    public unsafe class CSimpleClass : IDisposable
    {
        private __CSimpleClass* _cpp;
 
        // CSimpleClass constructor and destructor
        [DllImport("cppexp.dll", EntryPoint = "??0CSimpleClass@@QAE@H@Z", CallingConvention = CallingConvention.ThisCall)]
        private static extern int _CSimpleClass_Constructor(__CSimpleClass* ths, int value);
        [DllImport("cppexp.dll", EntryPoint = "??1CSimpleClass@@QAE@XZ", CallingConvention = CallingConvention.ThisCall)]
        private static extern int _CSimpleClass_Destructor(__CSimpleClass* ths);
        
        //      void M1();
        [DllImport("cppexp.dll", EntryPoint = "?M1@CSimpleClass@@QAEXXZ", CallingConvention = CallingConvention.ThisCall)]
        private static extern void _M1(__CSimpleClass* ths);
 
        public CSimpleClass(int value)
        {
            //Allocate storage for object
            _cpp = (__CSimpleClass*)Memory.Alloc(sizeof(__CSimpleClass));
            //Call constructor
            _CSimpleClass_Constructor(_cpp, value);
        }
        public void Dispose()
        {
            //call destructor
            _CSimpleClass_Destructor(_cpp);
            //release memory
            Memory.Free(_cpp);
            _cpp = null;
        }
        public void M1()
        {
            _M1(_cpp);
        }
    }
}


"??0CSimpleClass@@QAE@H@Z"와 같은 알수 없는 코드들은 코드의 진입점입니다-_-;
이 방법으로 클래스를 마샬링 하기 위해서는 위와같이 진입점 코드가 있어야 합니다.
진입점 코드는 어떻게 찾느냐? 아까 말했던 .lib파일을 메모장으로 열어보시면 나와 있습니다.

0CSimpleClass : 0클래스 이름 이 생성자
1CSimpleClass : 1클래스 이름 이 파괴자
나머지 함수들은 이름으로 검색하면  코드를 알수 있습니다.

이 클래스를 만들면 "Memory.Alloc"와 "Memory.Free" 같은 곳에서 에러가 납니다.
"Memory"라는 클래스가 없기 때문이죠 ㅎㅎㅎ


2-2. Memory 클래스 생성

Memory이 클래스는 내용이 어떤것인가 하고 찾아보았습니다.
C#에서 동적 메모리 할당을 위해 사용하는 클래스 샘플입니다.

닷넷에서는 메모리관리는 특별한 경우를 제외하면 가비지컬랙터가 처리합니다.
이 가바지컬랙터를 거치지 않고 사용할수 있게 하는 샘풀이죠.
말이 샘플이지 이대로 쓰는대 전혀 손색이 없습니다.

참고 : MSDN - A.8 동적 메모리 할당

아래 코드는 클래스 전체 코드 입니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    using System;
    using System.Runtime.InteropServices;
    public unsafe class Memory
    {
        // Handle for the process heap. This handle is used in all calls to the
        // HeapXXX APIs in the methods below.
        static int ph = GetProcessHeap();
        // Private instance constructor to prevent instantiation.
        private Memory() { }
        // Allocates a memory block of the given size. The allocated memory is
        // automatically initialized to zero.
        public static void* Alloc(int size)
        {
            void* result = HeapAlloc(ph, HEAP_ZERO_MEMORY, size);
            if (result == null) throw new OutOfMemoryException();
            return result;
        }
        // Copies count bytes from src to dst. The source and destination
        // blocks are permitted to overlap.
        public static void Copy(void* src, void* dst, int count)
        {
            byte* ps = (byte*)src;
            byte* pd = (byte*)dst;
            if (ps > pd)
            {
                for (; count != 0; count--) *pd++ = *ps++;
            }
            else if (ps < pd)
            {
                for (ps += count, pd += count; count != 0; count--) *--pd = *--ps;
            }
        }
        // Frees a memory block.
        public static void Free(void* block)
        {
            if (!HeapFree(ph, 0, block)) throw new InvalidOperationException();
        }
        // Re-allocates a memory block. If the reallocation request is for a
        // larger size, the additional region of memory is automatically
        // initialized to zero.
        public static void* ReAlloc(void* block, int size)
        {
            void* result = HeapReAlloc(ph, HEAP_ZERO_MEMORY, block, size);
            if (result == null) throw new OutOfMemoryException();
            return result;
        }
        // Returns the size of a memory block.
        public static int SizeOf(void* block)
        {
            int result = HeapSize(ph, 0, block);
            if (result == -1) throw new InvalidOperationException();
            return result;
        }
        // Heap API flags
        const int HEAP_ZERO_MEMORY = 0x00000008;
        // Heap API functions
        [DllImport("kernel32")]
        static extern int GetProcessHeap();
        [DllImport("kernel32")]
        static extern void* HeapAlloc(int hHeap, int flags, int size);
        [DllImport("kernel32")]
        static extern bool HeapFree(int hHeap, int flags, void* block);
        [DllImport("kernel32")]
        static extern void* HeapReAlloc(int hHeap, int flags,
           void* block, int size);
        [DllImport("kernel32")]
        static extern int HeapSize(int hHeap, int flags, void* block);
    }
}
코드에 [DllImport("kernel32")]가 있는데 이소리는 커널을 불러다 사용한다는 소리입니다.
운영체제에 따라 작동안할수도 있다는 것입니다 ㅡ.-;;

어찌됬건 이렇게 "Memory"라는 클래스를 만들고 유징하시면 에러는 사라 집니다.

2-3.테스트 코드
이제 준비가 끝났습니다.
2-1.에서 'M1()' 만 마샬링을 해두었으므로 'M1()'만 호출이 가능합니다.

프로그램의 진입점인 'Main()'으로 가서 다음 코드를 추가 합니다.


CSimpleClass sc = new CSimpleClass(10);
using (sc)
{
    //M1 calls all of the virtual functions V0,V1,V2
    sc.M1();
}


3.확인
빌드를 돌리면 
"Unsafe code may only appear if compiling with /unsafe"
이런 에러가 납니다.
비관리 코드를 사용하기위한 옵션을 켜라는 소리입니다 ㅡ.-;;

3-1.비관리 코드 사용 옵션
프로젝트 속성 > 빌드 > 안전하지 않는 코드 허용
옵션을 켜줍니다.



 
3-2. 출력 확인
화면이 순식간에 꺼진다면 알아서 화면 챙기시고 ㅋㅋㅋㅋ(그냥 중단점만 걸어도 됩니다-_-a)


정확하게 출력 되는 것을 볼수 있습니다.

5.마무리
위에 내용들을 정확하게 이해했다면 샘플에 나와있는 다른 클래스 맴버들도 마샬링을 할수 있습니다.
당연한 이야기지만 클래스는 무조건 통으로 마샬링해야 합니다.
안그러면 사용을 할수 없어요.


샘플 프로젝트

 

 Projects.zip

 

 

 

Arduino tips

Arduino mega 2560

2016. 12. 27. 09:48
  • Arduino(아두이노) ?

Arduino(이하 아두이노)란 오픈소스를 기반으로 한 단일보드 마이크로컨트롤러로 완성된 보드와 관련한 개발도구 및 환경을 말합니다. 이탈리아에서 2005년 고안되었으며, 하드웨어에 익숙치 않은 학생들이 자신의 디자인을 쉽게 제어하기 위해 제안된 제품입니다.


처음엔 AVR 기반으로 설계되어 현재까지도 아트멜 AVR 계열 보드가 보편적이며, ARM계열의 제품 또한 존재합니다.


정품은 이탈리아 제품이지만, 중국제 저가 호환보드가 많이 있으며, 국내에선 '오렌지보드'라는 호환 제품이 있습니다.

성능은 약간씩 편차가 있지만 크게 두드러지진 않으며, 중국제 호환보드는 아무래도 마감이 좀 정교하지 못한 반면, 국산 호환보드인 오렌지 보드는 마감도 훌륭하며 아두이노 우노 R3와 완벽호환되는 특징도 있습니다.


  • 아두이노 보드의 종류

아두이노 개발을 처음 공부할때 아두이노 보드의 선택에서 많은 분들이 고민하십니다. 아두이노 보드는 2016년말 현재 17가지 종류가 있으며 사용 목적에 따라 각 보드의 선택또한 중요합니다.


일반적으로 아두이노 관련 공부를 처음 하실때는 아두이노 우노를 많이 선택하며, 더 많은 제어 핀과 퍼포먼스를 필요로 할 때는 아두이노 메가를 선택하는 경우도 있습니다.


제 경우 아두이노 메가로 처음 아두이노에 입문하였습니다.


기본 아두이노 보드 외에도 이더넷 쉴드, 와이파이 쉴드, 블루투스 쉴드 등 보드에 체결하여 기능을 확장하는 확장보드도 있으니 이 부분은 아두이노 홈페이지의 제품정보(https://www.arduino.cc/en/Main/Products)를 확인하시는게 더 정확하겠습니다.


  • Arduino Mega 2560

제가 처음 아두이노에 입문한 메가2560 보드는 아두이노 우노 보드에 입출력핀과 퍼포먼스를 확장한 보드입니다.

형상은 다음 그림과 같습니다.




아두이노는 포럼 활동이 활발하며, 각종 정보가 많아 초심자도 쉽게 공부할 수 있다는 장점이 있습니다.

제 경우엔 아두이노 관련 서적은 한권도 없이 포럼과 네이버 카페를 참고하여 공부하고, 관련 프로젝트를 진행하고 있습니다.


  • Ethernet shield

아두이노는 소스 코드를 빌드하여 업로드 하기 위해 USB 케이블을 사용합니다. 이 USB 케이블로 전원또한 인가되며, USB 케이블이 아닌 일반 DC 전원 잭도 포함하고 있습니다. USB 케이블로 PC와 연결되어 있으면 이 USB 케이블을 이용하여 PC와 시리얼 통신이 가능합니다. 하지만 제 경우 다수의 아두이노 보드를 하나의 PC로 제어해야 하며, 데이터 송수신의 명확성을 위하여 TCP/IP 통신 패킷으로 각 아두이노 메가 보드를 제어해야 했습니다.


이때 필요한 것이 Ethernet shield(이하 이더넷 쉴드) 입니다.

아두이노 메가(또는 우노)보드 위에 체결하면 일반 랜 케이블을 이용하여 local network을 통한 제어가 가능해집니다.

이더넷 쉴드에 대한 예제 코드 또한 쉽게 구할 수 있으며, 아두이노에서의 이더넷 서버/클라이언트 생성이 매우 쉽습니다.


이더넷 쉴드는 아두이노 메가(또는 우노)의 9~12번 핀(SPI communication pin)을 사용합니다.

제 프로젝트에서 사용하는 IC 중 TLC5940 이라는 LED 제어 드라이버 IC는 아두이노 메가의 9, 11, 12번 핀을 사용하기 때문에 소스코드 작성에 약간의 주의가 필요했습니다.


이더넷 쉴드가 송/수신한 정보를 아두이노 보드에서 처리할때 11, 12번의 SPI 핀을 사용하기 때문에, 이 신호가 TLC5940 IC에는 노이즈 신호로 들어가기 때문입니다. TLC5940을 제어할 때 송/수신이 발생하면 TLC5940이 오작동을 일으키게 됩니다.


제 경우, 송/수신 중 TLC5940 제어를 해야하는 시점에서 Boolean flag를 통해 송/수신을 잠시 중단한 후 IC제어가 끝난 시점에서 다시 송/수신을 재개하는 방식으로 처리하였습니다.







업무상 필요에 의해 갑작스럽게 아두이노를 사용하게 되었습니다.

갑자기 시작했지만, 다행히 넷상에 정보가 워낙 방대하기에 찾아가며 공부하기는 수월하더군요.

지금은 프로젝트에서 사용하기에 계속 하겠지만, 프로젝트가 끝나면 기껏 공부한 내용을 잊어버릴까 싶어 블로그에 아두이노 카테고리를 만들어 그간 공부한 내용 및 제 프로젝트에 대한 로그를 남기고자 합니다.


아두이노 카테고리의 첫글은 간단히 이정도 선에서 마무리 합니다.


오랜만에 도색 완성작을 포스팅하는 것 같습니다.


연애 시작부터 결혼까지 순식간에 달려 1년, 또 신혼생활 열심히 달려 결혼 1주년이 다되어갑니다.

신혼집 여건도 그렇고.. 저야 취미이지만 같이사는 사람에게 신너냄새는 실례이기 때문에 락카와 에나멜계 도색은 이제 Bye~

그리하여 아크릴 물감을 이용한 붓도색으로 도색 방법을 변경하기로 하였습니다.


아크릴 도색 첫 도전작으로 기동전사 건담 0083 스타더스트메모리즈의 GP 시리즈를 작업하게 되었습니다.


 

GP-01F 풀버니언



GP-02A 사이사리스

 



GP-03S 스테이맨

 


오키스 유닛


 

GP-03D 덴드로비움


Mobile suit Gundam 0083 GP-Series

 

(마지막 사진은 클릭하시면 큰 이미지로 보실 수 있습니다.) 


재직중인 회사 친한 형님이 퇴사를 하게되었는데, 자리에 묵혀두던 덴드로비움을 던져주며 퇴사 선물로 도색해달라더군요.

덴드로비움 가조하고있는데 며칠 후 출장갔다 회사에 복귀하니 자리에 1,2호기가 와있었습니다.


덕분에 아크릴 붓도색 첫도전의 제물은 고민없이 결정되었습니다.


작업 목표는 아크릴 첫 도전인 만큼 프라모델 킷은 순수 가조로, 대신 아크릴 붓도색을 이용하여 현재 실력으로 

표현할 수 있는 바를 모두 표현해보는 것입니다.


작업 순서는 순수가조 → 기본색 밑도장 → 먹선 및 1차 웨더링 → 유광 마감제 도포 →  데칼링

 → 2차 웨더링 → 무광 마감제 도포 순으로 진행했습니다.


현재 거주중인 신혼집이 워낙 작아 대부분의 제 개인짐을 부모님댁에 두고있습니다.

문제는 촬영용 배경지 또한 부모님댁에...;;


고작 배경지 하나 가지러 부모님댁 왔다갔다 하는게 귀찮기도 해서 촬영 배경이 다소 허접합니다.

촬영 바닥은 나무식탁이고, 뒷배경은 베란다 미닫이문입니다.

완성한 킷들은 의뢰한 형에게 전달 예정인지라 아마 재촬영이 없을듯 하여 그 점은 좀 아쉽네요 ^^;;


이번 작업으로 아크릴 물감의 특성에 대해서 어느정도 감을 익혔으니, 이제 가족 눈치 안보고 도색작업도 할 수

있을 것 같습니다. 아크릴 물감 냄새도 안나고 참 좋네요.


가족 눈치에 도색여건이 힘드신 분들께 강추드립니다~


Ps. 프라모델 킷을 제공해주신 A.K.I님의 새직장에서의 새출발을 축하드립니다.