문제를 해결하기 위해

노트에 숫자들을

기록하여 사용했듯이


프로그램에서는 '변수'

숫자를 저장 하여 

사용할 수 있다.


'변수'

값을 저장할 수 있는 

메모리 공간이다.


각각의 변수에

5, 30, 3, 11, 8, 12 값을

저장하는 코드를 

작성해면

다음과 같다.


 

6번 줄 코드를 읽고 

말하는 방법은

아래와 같다.


1) 인트 퍼스트는 5.


2) 정수형 변수 first를

선언하고 

5로 초기화(저장) 한다.


1)보다는 2)형식으로

생각하고 코드를 작성하고

말하는 것을 권한다.


각각의 변수에

값들을 저장했다.


이제 노트에 적었던

방식대로


앞의 숫자보다  뒤에 있는 숫자가 작으면

또는 앞의 숫자가 뒤에 있는 숫자보다 크면(21)

앞의 숫자를 빈곳에 이동한다(22).

뒤에 있는 숫자를 앞으로 이동한다(23).

빈곳으로 이동했던 앞의 숫자를 뒤로 이동한다(24).



변수 first 값 보다 변수 second 값이 작으면

또는 변수 first 값이 변수 second 값 보다 크면(21)

정수형 변수 temp를 선언하고 변수 first값으로 초기화 한다(22).

변수 first에 변수 second 값을 저장 한다(23).

변수 second에 변수 temp의 값을 저장 한다(24).


이런 방식으로

나머지 부분을

작성해 주면 된다.


* 전체 코드



아래의 그림처럼

Run 메뉴 또는

Run 아이콘을

클릭하거나

Ctrl + F11 입력하여

작성한 코드를 실행해 보자.




* 실행결과


코드가 많아 보이지만,

단지 변수와 비교문으로

힘들지 않게

오름차순으로 정렬했다.


*참고

이클립스를 이용한 코드 작성 동영상이다.




짝수 출력은 다음 시간에~


이전글 - 2020/10/23 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #02 - 정렬 과정을 노트에 그려 보자

다음글 - 2020/11/23 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #04 - 짝수만 출력 하기 그리고 생각해 보기


















블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

취소함!


28일 네.관 필기 시험을 목표로

오늘 부터 공부 시작!


필기는 어렵지 않겠지만

그래도 문제보면

답을 바로 적을 수 있게

CBT를 이용하여

많이 풀어 볼 것이다.


책은 오래됐지만

......

......



부족한 부분은

유튜브 이용해야 겠다. 클릭





블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

문제

------------------------------------

5 30 3 11 8 12

<처리>

8 12 30


*


702 301 80 1000 1

<처리>

80 702 1000

------------------------------------


오름차순으로 정렬하기

5 30 3 11 8 12

<처리>

3 5 11 12 30 


어떻게 하면

작은 숫자에서 큰숫자

정렬 할 수 있을까?


처음에

제일 작은 숫자인 3

맨 앞으로 오면 된다.


그럼! 3이 제일

작은 숫자인지는 

어떻게 알까?


숫자를 하나 하나

비교하면

제일 작은 숫자를

알 수 있다.


5 30 3 11 8 12


5와 30을 비교하면 5가 작음

5와 3을 비교하면 3이 작음

3과 11를 비교하면 3이 작음

3과 8을 비교하면 3이 작음

3과  12를 비교하면 3이 작음


위 과정을 거치면

3이 제일 작은 숫자란 걸

알 수 있다.


제일 작은 3맨 앞으로

이동하면 된다.


제일 작은 숫자를 찾아서

맨 앞으로 이동했으니

다음으로 작은 숫자를 찾아서

그 다음 자리에 이동하면 된다.


정리하자면

비교하여 작은 숫자는 앞으로

앞에 있는 숫자는 작은 숫자 자리

이동하는 것을 반복하면 된다.


위 과정을 노트에

직접 그려 보는 것을

동영상으로 만들었다.

* 참고

이런 생각하는 과정이

처음임에도 다른 방법으로

생각을 한 분들도 있을 것이다.

많은 방법 중에 하나라고

생각하면 된다.


이제 코드로 직접

작성해 보자!


다.음 시간에~


이전글 - 2020/10/14 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #01 - 문제 인식하고 해결 가능한 방법 찾기

다음글 - 2020/11/20 - [EDU] - 작성중 언어를 본격적으로 배우기 전에! 맛보기 #03 - 노트에 정리한 생각을 코드로 작성하기(변수와 비교문 이용하여 오름차순 정렬하기)



블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

뉴 마이크로비트


올드 마이크로비트와

같은 가격으로 출시!



마이크, 스피커가

내장된 뉴~


올드에 마이크와 스피커

연결하기 귀찮았는데

너무나 좋다.


자세히 보기



다 좋은데!


마이크로파이썬

버전에 대한

이야기는 없다......


버전업 되어서

쓰레드라던가

블루투스 기느이

정상적으로

되었으면 좋겠다.


아래의 CLUE제품과

비교는 되지만!

그래도 훌륭하다고

생각한다.


확장 킷으로

디스플레이와

거리센서

만들어 줬으면

좋겠다.


adafruit CLUE


블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

언어를 본격적으로 배우기 전

어렵지 않게 시작했으면 

좋겠다는 생각으로

문제를 해결해 보면서 

맛보기 형식으로

글을 작성해 볼까 한다.


문제를 해결하면서 

알 수 있는 것들

1. 생각들을 어떻게 코드로 작성하고,

2. 변수를 이해하고,

3. 반복문을 이해하고,

4. 비교문을 이해하는것이다.

+ 5. @


사용할 언어자바이며

개발 환경툴이클립스 IDE

사용한다.


문제

------------------------------------

5 30 3 11 8 12

<처리>

8 12 30


*


702 301 80 1000 1

<처리>

80 702 1000

------------------------------------


'5 30 3 11 8 12'라는 것을

어떻게 하면

'8 12 30'으로 만들 수 있을까?


잠시 생각해 보자!

.

.

.

.

.

.



6개의 숫자3개의 숫자

줄어 들었다.


자세히 보니 작은 숫자에서

큰 숫자로 되어 있다.

또 보니 숫자가

짝수이다.


주어진 숫자를 

오름차순으로 정렬하여

짝수만 표시하면

되는 것이다.


두번째 예도 마찬가지로

오름차순으로 정렬된

짝수이다.


거꾸로

'짝수만 오름차순으로 정렬한다'

라고 생각해도 맞다.


이 작은 차이는 

코드를 작성하면서

자연스럽게 알게 될 것이다.


계속......


다음글 - 2020/10/23 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #02 - 정렬 과정을 노트에 그려 보자


블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.





마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 https://www.icbanq.com/ 

아이씨뱅큐 공식 카페 : https://cafe.naver.com/icbanq 

아이씨뱅큐 공식 블로그 : https://blog.naver.com/icbanq 

마이크로비트 공식 카페 : https://cafe.naver.com/bbcmicro 

나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ




블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.







마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 https://www.icbanq.com/ 

아이씨뱅큐 공식 카페 : https://cafe.naver.com/icbanq 

아이씨뱅큐 공식 블로그 : https://blog.naver.com/icbanq 

마이크로비트 공식 카페 : https://cafe.naver.com/bbcmicro 

나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ

블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.


아이씨뱅큐에서 진행하는 무상 체험단 활동을 하게 됐다. 제품 이름이 'Building Block Kit RUNNING:BIT'다. 야붐에서 나온 제품으로 레고와 호환 된다. 레고 마인드스톰 가성비 제품이라고 생각하면 될거 같다. 호환 레고도 좋지만 제품에 포함되어 있는 마이크로비트 확장보드인 super:bit가 가장 마음에 든다. 


[super:bit]


|배터리 일체형|4개의 DC 모터|8채널 서보 인터페이스|부저|RGB LED| 이것만으로도 추가적인 부품없이 무언가를 만들기엔 충분하다. 그리고 호환 레고 부품도 있어서 좋다. 그럼 런닝:비트 제품엔 무엇이 있는지 동영상으로 보자


[꽤 많은 테크닉 부품(호환 레고)과 슈퍼비트]


빌딩블록키트 런닝비트의 부품들을 보면 어렵지 않게 RC CAR를 만들 수 있다. 핸드폰을 이용하여 조종도 된다. 그럼 5 in 1중에 "Skilled remover"를 만들어 보자


http://www.yahboom.net/study/running:bit 접속

Download 부분에 있는 'Assembly_steps' 부분 클릭 후 PDF버전 또는 그림파일버전을 다운로드 받는다.


[Skilled remover 조립 과정]


타이틀은 모바일 슈터로 되어 있는데 다시 찾아 보니 "스킬드 리무버'다. 테크닉 조립이 처음인 지인이 조립했는데 50분 정도 걸렸다. 아래 사진은 완성하고 지인이 미니 피규어로 꾸민 것이다. 

[미니 피규어들의 자동차가 된 스킬드 리무버!!]


RC CAR를 조립했으니 휴대폰으로 조종해 보자

1. 홈페이지에 접속


2. 3. Robot course > D.Skilled remover > 5.iOS Bluetooth APP control.rar 다운로드 및 압축해제 하여  microbit-Mobile-shooter-iOS-Bluetooth-APP-control.hex를 마이크로비트에 다운로드 한다.

4. 왼쪽 모터는 M1에 연결, 오른쪽 모터는 M2, 그리고 서보는 S1에 연결 한다.


5. 핸드폰으로 QR코드를 읽어서 앱을 설치 한다.


이제 재미 있게 가지고 놀면 된다. 


gi

[핸드폰으로 RC CAR 조종하기]


이번 체험단 나의 미션은 블럭코딩이 아닌 파이썬을 이용한 코딩이다. 웹에디터로 파이썬 코드를 작성하면 좋겠지만, 슈퍼비트의 라이브러리를 사용하기 위해서는 특정 파일을 먼저 마이크로비트에 다운로드 후에 사용해야 한다. 


1. 1.Preparation before class > Python > 1.About python programming 클릭 후 다운로드 버튼을 클릭 한다.


2. Mu 에디터를 다운로드 후 설치 한다.


3. Mu 에디터를 실행 후에 간단한 코드를 작성하고 Flash 버튼을 클릭하여 마이크로비트에 문자열이 표시 되는지 확인 한다.



4. 하단 Download 메뉴에 있는 Superbit MicroPython library를 마이크로비트에 다운로드 한다.


5. 슈퍼비트 라이브러리를 이용한 코드를 작성 후에 Flash 버튼을 클릭하여 동작하는지 확인 한다.


이제서야 나의 미션을 할 수 있게 준비를 마무리 했다. 미션으로 다음 두가지를 할 예정이다.

* 마이크로비트 라디오 기능을 이용하여 RC CAR를 제어하기

* code.org 과정3에 나와 있는 미로 찾기 게임을 RC CAR를 이용하여 구현하기


미션들이 어렵지 않게 성곡 했으면 좋겠다.


마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 https://www.icbanq.com/ 

아이씨뱅큐 공식 카페 : https://cafe.naver.com/icbanq 

아이씨뱅큐 공식 블로그 : https://blog.naver.com/icbanq 



마이크로비트 공식 카페 : https://cafe.naver.com/bbcmicro 

나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ

블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

자세한 정보 


판매사로 부터 제공 받은 마이크로 비트를 이용한 드론이다. 어디서 많이 본 듯한 부품들이다. 지인이 다니던 학원에서 아두이노로 만들었던 드론 그것과 비슷하다. 아니 본체부분(FC) 부분만 빼고 똑같다. 찾아 보니 서민우 저자의 아두이노 드론과 같은 부품들이다. 


아두이노 드론 - 링크

마이크로비트 드론 - 링크


글을 쓰기 시작한 시점엔 이미 조립과 코드를 작성하여 드론을 작동은 시켜 봤다. 처음에 동작 하는걸 보려고, PID 테스트를 위한 도구를 설치 안하고 방안에서 동작 하다가 드론이 옆으로 날면서 의자 기둥에 부딪혀 날개가 부러졌다. 물론 지금은 구매를 하여 정상적으로 조립 되어 있다. 하하하^^;;;;;;;;;;;;;;;;;;;;;;;;


이미 저자로 부터 우리가 생각하는 잘 날으는 드론은 아니더라도, 뜨고 원하는 방향으로 이동되는 교육 제품이라고 들었고, 조금씩 한쪽으로 드론이 흐른것도 알고 있다. 현재의 코드로는 호버링 같은 기능은 하지 못한다. 


결론 부터 말하자면, 제공 되어진 설명서는 미분 적분에 대한 내용을 몰라도 PID 관련 부분에서 설명대로 따라서 하기만 하면 저절로 알게 된다. "아두이노 드론 만들고 직접 코딩하기"에서는 미분적분만 나와도 하기 싫었는데, 부담없이 할 수 있다. 즉 사칙연산과 조금의 생각을 할 줄 안다면 어렵지 않게  PID대한 개념을 이해하고 완벽하지는 않지만, 드론을 지면에서 띄우고 조정 할 수가 있다. 드론의 실제 실용적인 제품 보다는 교육적인 제품으로 보면 좋다.


이제부터 제공된 설명서를 처음 부터 보면서 이 제품에 대한 이야기를 써볼려고 한다. 마이크로 비트와 드론에 관심이 있는 분들에게 도움이 되었으면 좋겠다.

블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요

  본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.


 이번에는 퀵스타트가이드의 내용을 기본으로  IoT를 확장해 볼께요. 큰 특징OBLOQ 모듈이 연결된 마이크로비트에서 데이터의 흐름을 제어해요. 그래서 제어하고 싶은 만큼 마이크로비트를 추가하여 사용할 수 있어요. 쉽게 말해서 샤오미 홈킷에 보면 게이트웨이라고 보면 되요^^. 간단하게 흉내를 내는 정도라 생각하면 좋을 거 같아요.


[IoT 확장 구성]


 간단한게 정리하면 아래와 같아요.

    1. 일정 온도에 따라 릴레이에 연결된 제품을 'ON/OFF' 제어 할 수 있다.

    2. 움직임이 감지되면 서보 제어를 할 수 있다.

    3. 관련 제어는 파이언 언어로 프로그램을 만들어 사용한다. (옵션으로 안드로이드 앱으로 프로그램 만듬)

    4. 메인 마이크로비트와 서브마이크로비트의 통신은 라디오 통신을 사용한다.


 전부다 기능 구현을 다 못하더라도 이번 글에서는 각각의 마이크로비트에 연결된 릴레이와 서보 동작은 빼고 나머지 부분을 할 생각이에요.


먼저 EasyIot 토픽 설정부터 할께요.


[EasyIot topic 설정]


 방수 온도 센서를 위한 온도 topic과 동작센서를 위한 동작 topic! 그리고 디바이스 제어를 위한 제어 topic 3개를 만들어요.


[메인 마이크로비트 블록 코딩]


 메인에서 해야할 기능서브 마이크로비트에서 라이오 통신으로 보내진 온도와 동작 데이터각각에 topic에 게제(publish)하면 되요. 예를 들어 서브 마이크로비트에서 'TE:30.10' 데이터를 받으면 '온도' topic에 '30.10' 보내면 되고. 마찬가지로 데이터가 'MO:1' 라면 '동작' topic에 '1'을 보내면 되요. 또 다른 기능'제어' 메세지를 받으면 각각에 서브 마이크로비트에 보내면 되는데, 메인에서는 각각의 서브마이크로비트에 따로 보내는것이 아니라 각각의 서브마이크로비트에서 자기가 필요한 메세지를 확인해서 동작하기 때문에 메인에서는 간단하게 작성이 가능해요. 

* topic_0 & topic_1은 publish topic, topic_2는 subscribe 


[서브 마이크로비트 블록 코딩 : 방수온도센서]


 방수 온도 센서가 연결된 마이크로비트 블록 코딩이에요. '무한반복 실행' 블록에는 10초 단위로 온도 데이터를 보내면 되고, 메인에서 라디오로 보내진 데이터를 수신하면 즉, '온도 제어 데이터'가 오면 처리하면 되요.  ':' 문자를 기준으로 앞쪽은 타입이고 뒤쪽은 값이에요, 값에 따라 마이크로비트에 연결된 디바이스를 동작하면 되요.


[서브 마이크로비트 블록 코딩 : 동작 센서]


 동작 감지 센서 제어 부분과 데이터 타입('MO')만 다를뿐 나머지는 위에 있는 블록 코딩과 같아요.


[파이썬 코드]


 아직 파이썬 GUI프로그래밍 관련 지식이 없어서 간단하게 텍스트로 확인 할 수 있는 코드에요. 왼쪽은 전체 topic을 구독(subscribe)하는 코드이고, 오른쪽 코드는 제어 topic에 거제(publish)하는 코드에요. 


 'Gravity 마이크로비트 IoT 스타터 키트'에 마이크로비트 몇개를 추가 하고, 간단한 파이썬 코드를 이용하여 IoT를 확장해 봤어요. 시간 나는 대로 Microsoft Azure IoT안드로이드 앱도 만들어볼 생각이에요^^. 


 동작 영상으로 마무리해요.!



마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 https://www.icbanq.com/

아이씨뱅큐 공식 카페 : https://cafe.naver.com/icbanq

아이씨뱅큐 공식 블로그 : https://blog.naver.com/icbanq

마이크로비트 공식 카페 : https://cafe.naver.com/bbcmicro

나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ


블로그 이미지

두리뭉실 두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

댓글을 달아 주세요