사용자를 최악의 적이자 가장 위험한 바이러스라고 생각하는 운영 체제 개발자의 말이 맞을 수도 있습니다. 그리고 그들이 틀렸을 수도 있습니다. 그들은 자신을 위해가 아니라 사용자를 위해 창작물을 만듭니다. 한마디로 모르겠다. 그러나 내가 확실히 아는 것은 S4A 프로그램이 Windows뿐만 아니라 Linux에서도 작동하는 것을 보고 싶다는 것입니다. Debian 배포판에서도 마찬가지입니다.

개발자 사이트에서 데비안 버전을 다운로드하여 이 프로세스를 시작합니다. http://seaside.citilab.eu/scratch/arduino. 다운로드한 모든 파일은 다운로드가 완료된 후 "다운로드" 또는 "다운로드" 폴더에 있습니다. Linux용으로 지정된 아카이브 파일은 아카이브 관리자가 압축을 풉니다. openSUSE에서 다운로드한 파일은 확장자가 deb이지만 동일한 아카이브 관리자인 Ark를 사용하여 압축을 풀 수 있습니다. KDE 4 그래픽 관리자가 있는 openSUSE에서는 파일을 마우스 오른쪽 버튼으로 클릭하고 "하위 폴더로 추출" 드롭다운 메뉴 항목을 선택하면 됩니다. 결과적으로 S4A라는 폴더가 나타납니다.

살펴보겠습니다.

쌀. 5.1. 다운로드한 S4A 폴더의 내용

확장자가 tar.gz인 두 개의 파일은 추가로 압축이 풀릴 수 있습니다.

쌀. 5.2. 아카이브된 파일 작업을 위한 드롭다운 메뉴

결과적으로 일련의 파일과 "usr"이라는 폴더가 아카이브 옆에 나타납니다. Linux에 대한 내 경험에 따르면 이 폴더에는 설치 시 루트 파일 시스템의 /usr에 있는 파일이 포함될 수 있습니다. 이 폴더를 열면

5장. Arduino, 비주얼 프로그래밍

실제로 그 안에 세 개의 폴더가 더 있습니다.

이 세 폴더는 "를 열면 볼 수 있는 섹션에 해당합니다. 루트 폴더» /usr 디렉토리에 있습니다.

쌀. 5.4. 파일 시스템의 usr 디렉토리 파티션

이전에 다운로드한 bin, lib 및 공유 폴더의 내용은 위에서 언급한 폴더에 있어야 합니다. 그러나 물론 간단한 사용자가 무언가를 변경하려면 파일 시스템아무도 허용하지 않습니다. 따라서 기본 메뉴 "시스템"섹션에서 " 파일 관리자", "파일 관리자(관리자 권한 포함)"가 있는 새 하위 메뉴를 엽니다. 이 관리자를 사용하면 모든 것을 전송할 수 있습니다. 필요한 파일운영 체제에. 아무것도 발명하지 않고 두 개의 탐색기에서 병렬로 폴더를 열고 파일이 나타날 때까지 필요한(모두 이름이 지정됨) 폴더를 순차적으로 열고 파일을 복사합니다.

5장. Arduino, 비주얼 프로그래밍

쌀. 5.5. openSUSE로 프로그램 파일 포팅

공유 폴더에는 많은 하위 폴더가 있고 파일 시스템에서 해당 폴더를 찾아야 하므로 특히 주의해야 합니다.

복사 후 메인 메뉴에서 프로그램을 찾을 수 있습니다. 그리고 실제로 개발 섹션의 응용 프로그램 탭(다른 프로그램이라는 다른 섹션이 있음)에 S4A 프로그램이 나타납니다. 그리고 실행할 수도 있습니다. 그러나 몇 번의 마우스 움직임 후에 멈추기 시작합니다 ...

터미널이고 openSUSE에는 루트 터미널이 있습니다. 이전에 Arduino 모듈을 연결한 수퍼유저를 대신하여 프로그램을 시작합니다. 그리고 그녀는 일합니다. 이제 일반적인 방법으로 시작할 수 있습니다.

Linux의 다른 배포판에서 작동은 위에서 설명한 것과 유사하지만 차이점은 그렇게 중요하지 않습니다. Fedora 14에서는 단순히 루트로 로그인하여 사용자를 변경했지만, 물론 그렇게 해서는 안 되지만 모든 것을 올바른 위치에 더 쉽게 배치할 수 있습니다.

Linux에 프로그램을 설치한 후 왜 설치했는지 봅시다.

첫째, 프로그램은 모듈과 함께 작동하여 모듈의 아날로그 및 디지털 입력에서 어떤 일이 일어나고 있는지 보여줍니다. 이미 좋은 것입니다. 그러나 이것이 중요한 것은 아닙니다. 중요한 것은 둘째, 프로그램을 사용하면 Arduino 언어로 코드를 작성하지 않고 프로그램을 어셈블할 수 있습니다.

프로그램이 작동하기 시작하면 왼쪽 창에는 작업 중인 "어셈블리" 필드인 중간 창으로 마우스를 가져가서 이동할 수 있는 여러 요소가 있습니다. Start라는 요소를 이동해 보겠습니다.

5장. Arduino, 비주얼 프로그래밍

쌀. 5.6. 원하는 프로그램 요소 전송

이제 바로 위의 상자에서 "control"이라고 표시된 키를 누르면 여러 가지 새로운 요소가 생깁니다.

쌀. 5.7. "컨트롤" 그룹의 요소 목록

이러한 요소 중 "항상" 요소를 선택하여 기존 요소로 전송하고 상단 컷아웃이 선반에 들어가도록 추가합니다.

5장. Arduino, 비주얼 프로그래밍

쌀. 5.8. 프로그램에 요소 추가

"이동" 키를 눌러 시작한 요소 세트로 돌아가서 "디지털 13 켜기" 요소를 선택합니다. 이 요소를 이동하여 이전 요소 안에 넣습니다.

쌀. 5.9. 디지털 출력 활성화 명령

"control" 요소 집합에서 "1초 대기" 요소를 가져와 "digital 13 on" 요소 아래의 "always" 요소 내부에 삽입합니다. 이 프로세스의 속도를 높이려면 대기 요소를 다시 삽입하고 이동 요소로 돌아가서 두 대기 요소 사이에 "디지털 13 꺼짐" 요소를 추가합니다.

쌀. 5.10. 그래픽 형태의 깜박임 프로그램

이 디자인이 생각나는 것이 있습니까? 첫 번째 프로그램을 일반 언어로 설명하기 시작했을 때 우리는 그렇게 썼습니다.

마우스 왼쪽 버튼으로 "시작" 요소를 두 번 클릭하고 Arduino 모듈을 봅니다.

지금까지 무음이었던 핀 13의 LED가 1초에 한 번씩 정기적으로 깜박입니다.

우리는 프로그램을 컴파일하고 실행했으며 이 프로그램에 따라 모듈이 작동하도록 만들었습니다. 그리고 우리는 단 한 줄의 코드도 작성하지 않았습니다. 이것이 내가 프로그래밍과 쓰기를 구별하는 것을 선호하는 이유입니다. 프로그램 코드.

5장. Arduino, 비주얼 프로그래밍

그러나 작동하는 것은 이전에 다운로드한 프로그램이고 우리가 조립한 프로그램이 아닐 수도 있습니다.

"시작" 요소를 다시 두 번 클릭하여 프로그램을 중지합니다. "1초 기다리기" 요소의 단위를 마우스 왼쪽 버튼으로 클릭해 보겠습니다.

쌀. 5.11. 프로그램 요소 설정 변경

(하단 요소에서와 같이) 숫자 5를 입력합시다. 프로그램을 실행해 봅시다... 그리고 혼동이 없는지 확인하십시오. LED가 5초마다 깜박입니다!

"라이브" 형식의 디지털 입력 작동을 테스트하지 않았습니다. 할 때가 되지 않았습니까?

S4A에서 프로그램을 빌드해 봅시다. 첫 번째 "벽돌"은 다음과 같습니다. 이전 프로그램. 다음 ... 우리는 조건을 충족해야합니다. 버튼이 눌려지면 LED를 켜고 그렇지 않으면 끕니다. 그러한 요소가 있습니다 - "만약 ... 또는 ..."입니다. 상단에는 "디지털 입력 ..."이 필요한 조건을 삽입할 수 있는 "중첩"이 있습니다.

쌀. 5.12. 프로그램 분기의 if 요소에 조건 추가

원하는 유형의 프로그램을 얻으려면 작업을 추가해야 합니다.

쌀. 5.13. 프로그램의 최종 구성

Arduino 언어로 작성된 프로그램과 비교하면 의식적으로 만들어진 유일한 차이점이라고 말할 수 있습니다. 버튼을 놓으면 LED가 켜지지 않고 눌렀을 때 LED가 켜집니다. .

5장. Arduino, 비주얼 프로그래밍

점검으로 넘어가야 할 때입니다. 그러나 먼저 약간의 경고.

예제에 표시된 다이어그램에서 버튼은 +5V 핀에 연결되어 있으므로 조금 다르게 켜는 것이 좋습니다.

특히 "체중"에 대한 모든 것을 확인하는 경우. 무작위 오류의 경우 내가 한 방식으로 나타날 수 있습니다. 연기가 모듈에서 나와 분위기를 매우 망칠 것입니다. 그리고 가장 정확한 방법은 어댑터 커넥터가 있는 브레드보드를 ​​사용하는 것입니다( 아두이노 나노, 나는 마이크로 회로에 적합한 소켓이 있다고 생각합니다).

브레드보드에서 올바른 연결을 확인하고 Arduino 모듈을 연결한 후 커넥터에 꽂을 수 있습니다. 컴퓨터 USB S4A 프로그램을 실행합니다. 디지털 입력과 접지 사이에 10kΩ 저항을 연결하면 판독값(프로그램의 오른쪽 창에서)이 "거짓, 거짓"과 "참, 참" 사이에서 무작위로 변경되는 것을 멈췄습니다. "시작"요소를 두 번 클릭하여 프로그램을 시작하고 기본 메뉴의 "편집"섹션으로 이동하여 단계별 실행을 추가합니다.

쌀. 5.14. 부록 단계별 실행디버그 루틴으로

"한 단계로 설정 ..."항목에서 실행 속도를 선택할 수도 있습니다. 그리고 지금은 버튼을 누르지 않은 상태에서 LED가 꺼지고 설정된 부분에서만 프로그램이 실행되는 것을 볼 수 있습니다.

5장. Arduino, 비주얼 프로그래밍

쌀. 5.15. 디버그 모드에서 프로그램 실행

오른쪽 상단 창에서 Digital1 입력의 상태(거짓)를 볼 수 있습니다. 입력은 바닥에 있고 입력은 낮은 논리 수준이며 프로그램의 관점에서 이것은 "거짓" 상태입니다. 버튼을 눌러봅시다.

쌀. 5.16. 버튼을 눌렀을 때 프로그램 작동

입력 "true"의 상태가 변경되고 LED가 켜지며 프로그램은 조건이 충족되는 부분으로 들어갑니다.

"컨트롤" 섹션의 주황색 요소에 주의를 기울이면

5장. Arduino, 비주얼 프로그래밍

조건을 삽입하기 위한 "중첩"이 있습니다.

조건은 다를 수 있습니다. 이상에서는 디지털 입력 상태의 변화를 조건으로 사용했습니다. 그러나 다른 조건도 있을 수 있습니다.

쌀. 5.17. 컨트롤에 조건을 추가하기 위한 중첩

그리고 한 가지 더 - 많은 요소 옆에 있는 "아래로" 검은색 화살표에 주의하십시오.

이 화살표를 마우스로 클릭하십시오...

쌀. 5.18. 가능한 센서 목록을 여는 화살표

그리고 우리는 예를 들어 이 경우에 사용된 입력을 변경할 기회를 얻습니다. 다른 경우에는 출력 핀 또는 아날로그 입력이 변경됩니다. 우리는 큰 선택 Arduino 모듈을 실험할 수 있는 기회. 그러나 모듈을 사용하는 이유는 무엇입니까? 우리는 여러 모듈을 사용할 수 있습니다. 이것이 유일한 방법이라고 말할 수는 없습니다. "suits" 탭으로 이동하여 기존 "suit"를 마우스 오른쪽 버튼으로 클릭하고 "switch to new object" 섹션을 선택하십시오.

다른 Arduino 모듈이 나타납니다. 가지고 계시다면 연결해 주시면 USB 포트, 그러면 당신도 그와 함께 일할 수 있다고 생각합니다.

5장. Arduino, 비주얼 프로그래밍

쌀. 5.19. 두 번째 Arduino 모듈 추가

그리고 마지막 발언. S4A 프로그램에서 우리가 하는 모든 일은 스크래치 프로그래밍 언어를 사용하여 수행합니다. 어때요?

28 09.2016

당신은 당신의 삶을 더 쉽게 만들 생각을 했습니까? 당신을 위해 일상적이고 일상적인 작업을 해결할 일이 있습니다. 할 수 있는 스마트 기기 유용한 기능예를 들어, 정원에 물을 주고, 방을 청소하고, 짐을 나릅니다. 이러한 작업을 해결할 수 있습니다. 그러나 구입하는 것만으로는 충분하지 않습니다. 모든 산업용 로직 컨트롤러 또는 마이크로 회로는 특정 일련의 작업을 수행하기 위해 "두뇌"가 필요합니다. 우리의 경우 Arduino 프로그래밍 언어가 작업을 수행하는 데 적합합니다.

이 기사에서 다음을 배우게 됩니다.

안녕 친구들! 저를 모르시는 분들을 위해 제 이름은 Semyon Gridin입니다. 당신은 나에 대해 읽을 수 있습니다. 오늘의 기사는 두 가지 주요 프로그램에 전념할 것이며, 이 프로그램 없이는 더 이상의 진전과 상호 이해가 없을 것입니다.

프로그래밍 언어에 대한 일반적인 설명

위에서 썼듯이 우리는 두 가지 인기 있는 개발 환경을 고려할 것입니다. 와 유추하여, 로 나눌 수 있다 그래픽 편집기그리고 스마트 메모장. 이것은 Arduino IDE 및 FLprog 프로그램입니다.

개발 환경의 기본은 Processing / Wiring입니다. 이것은 일반적인 C++이며 기능과 다양한 라이브러리로 보완됩니다. 운영을 위한 여러 버전이 있습니다. 윈도우 시스템, Mac OS 및 Linux.

그들의 근본적인 차이점은 무엇입니까? Arduino IDE는 프로그램 코드를 설명하는 개발 환경입니다. 그리고 FLprog는 CFC CoDeSyS와 유사하여 다이어그램을 그릴 수 있습니다. 어떤 환경이 가장 좋습니까? 둘 다 나름의 방식으로 좋고 편리하지만 컨트롤러에 대해 진지하게 생각하고 싶다면 C와 같은 언어를 배우는 것이 가장 좋습니다. 그들의 주요 장점은 알고리즘의 유연성과 무제한입니다. 나는 Arduino IDE를 정말 좋아합니다.

아두이노 IDE에 대한 설명

배포판은 다음에서 다운로드할 수 있습니다. 공식 웹 사이트. 아카이브를 다운로드하면 100MB가 조금 넘습니다. 설치는 Windows용 모든 응용 프로그램과 마찬가지로 표준입니다. 모든 유형의 보드용 드라이버가 패키지에 설치되어 있어야 합니다. 그리고 이렇게 생겼어요 작업 창프로그램들.

Arduino 개발 환경은 다음으로 구성됩니다.

  • 코드 편집기;
  • 메시지 영역;
  • 텍스트 출력 창;
  • 자주 사용하는 명령에 대한 버튼이 있는 도구 모음;
  • 여러 메뉴

아두이노 IDE 설정

아두이노 개발 환경에서 작성된 프로그램을스케치. 스케치는 생성된 프로그램 코드의 색상 강조 표시가 있는 텍스트 편집기로 작성됩니다. 아래 그림의 간단한 프로그램의 예.

로 추가 기능을 추가할 수 있습니다.도서관,특별히 설계된 코드입니다. 기본적으로 개발자로부터 접근이 차단된 상태입니다. 매체는 일반적으로 표준 세트점차적으로 보충할 수 있습니다. 그들은 하위 디렉토리에 있습니다도서관아두이노 디렉토리.

많은 라이브러리가 폴더에 있는 예제와 함께 제공됩니다.예시.메뉴에서 라이브러리를 선택하면 원천윤곽:

아두이노

#포함

#포함

이것은 지시입니다. 일종의 지시입니다. 헤더 파일개체, 기능 및 라이브러리 상수에 대한 설명과 함께. 대부분의 일반적인 작업을 위해 많은 기능이 이미 개발되었습니다. 저를 믿으십시오, 그것은 프로그래머의 삶을 더 쉽게 만듭니다.

전자 보드를 컴퓨터에 연결한 후. 우리는 수행 다음 설정- 연결할 Arduino 보드와 Com-port를 선택합니다.

아두이노

void setup() ( // 디지털 핀 13을 출력으로 초기화합니다. pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000) );

무효 설정()(

// 디지털 핀 13을 출력으로 초기화합니다.

핀모드(13, 출력) ;

무효 루프()(

디지털 쓰기(13, 높음) ;

지연(1000) ;

디지털 쓰기(13, LOW) ;

지연(1000) ;

그래서 그건 그렇고, 가게에서 온 보드의 성능을 확인하는 것이 편리합니다. 빠르고 쉽습니다.

편리한 것이 하나 더 있습니다. 라고 불린다직렬 모니터 (직렬 모니터). 플랫폼으로 전송된 데이터를 표시합니다.아두이노.나는 보통 그들이 나에게 주는 신호를 본다 다양한 센서보드에 연결됩니다.

라이브러리 연결

존재하다 다른 방법들사용자 정의 기능을 추가합니다. 라이브러리를 포함하는 세 가지 방법이 있습니다.

  1. 라이브러리 관리자 사용
  2. .zip 파일로 가져오기
  3. 수동으로 설치합니다.

1. 라이브러리 관리자를 사용합니다.프로그램의 작업 창에서 스케치 탭을 선택합니다. 그런 다음 라이브러리 추가 버튼을 클릭합니다. 도서관 관리자가 우리 앞에서 열립니다. 창이 이미 표시됩니다 설치된 파일서명으로설치된,그리고 설치할 수 있는 것들.

2. .zip 파일로 가져오기.종종 인터넷에서 zip 확장자를 사용하여 아카이브에 압축된 라이브러리 파일을 찾을 수 있습니다. 여기에는 .h 헤더 파일과 .cpp 코드 파일이 포함됩니다. 설치하는 동안 아카이브의 압축을 풀 필요가 없습니다. 스케치 - 라이브러리 연결 - .ZIP 라이브러리 추가 메뉴에서 충분합니다.

3. 수동 설치.먼저 아두이노 IDE 프로그램을 종료합니다. 먼저 아카이브의 압축을 풉니다. 그리고 확장자가 .h 및 .cpp인 파일을 아카이브와 동일한 이름의 폴더로 전송합니다. 폴더를 루트 디렉토리에 놓습니다.

내 문서\Arduino\라이브러리

FLPprog에 대한 설명

FLprog는 기능 블록 또는 래더 다이어그램으로 작업할 수 있는 무료 타사 프로젝트입니다. 이 환경은 프로그래머가 아니라 사람에게 편리합니다. 다이어그램과 기능 블록을 사용하여 알고리즘을 시각적으로 시각적으로 볼 수 있습니다. 배포판은 다음에서 다운로드할 수 있습니다. 공식 웹 사이트.

나는 오랫동안 프로젝트를 지켜왔다. 사람들은 지속적으로 새로운 기능을 추가하고 이전 기능을 변경하면서 개발 중입니다. 저는 이 환경에서 관점을 봅니다. 두 가지 중요한 기능을 수행하기 때문에:단순성과 사용 용이성.

여러분과 함께 간단한 프로젝트를 만들어 봅시다. 출력 13을 LED로 전환합니다.

만들다 새로운 과제. 에 상단 창필요한 수의 입력 및 출력을 추가하고 이름을 설정하고 보드의 물리적 입력 또는 출력을 할당합니다.

편집 캔버스에 필요한 요소인 개체 트리에서 필요한 요소를 꺼냅니다. 우리의 경우 간단한 RS 플립플롭을 사용하여 켜고 끌 수 있습니다.

알고리즘을 생성한 후 컴파일 버튼을 클릭하면 프로그램이 IDE에 기성품 스케치를 제공합니다.

우리는 Arduino 시리즈 컨트롤러에서 알고리즘을 개발하기 위한 프로그램의 가능성과 편의성을 고려했습니다. 구조 다이어그램과 시각적 그림을 만들 수 있는 프로그램도 있습니다. 그러나 나는 사용하는 것이 좋습니다 텍스트 에디터왜냐하면 그러면 당신이 더 쉬울 것이기 때문입니다. 어떤 환경을 선호하며 그 이유는 무엇입니까?

9월 22일 크라스노다르 세미나에 참석했습니다. "터치 패널 컨트롤러 ARIES SPK". 우리는 유행과 아름다운 호텔"브리스톨". 매우 흥미롭고 시원했습니다.

세미나의 첫 번째 부분에서는 OWEN 제품의 가능성과 장점에 대해 들었습니다. 도넛으로 커피를 마신 후. 배고파서 이것저것 다 먹고 도넛과 쿠키와 과자를 샀어요 =)

세미나의 2부에서는 점심식사 후에 우리가 발표되었습니다. 웹 시각화에 대해 많은 이야기를 들었습니다. 이러한 추세는 탄력을 받기 시작했습니다. 물론 모든 인터넷 브라우저를 통해 장비를 제어하십시오. 그것은 정말로 멋있어요. 그건 그렇고, 장비 자체는 여행 가방에 있습니다.

가까운 시일 내에 CoDeSys 3.5에 대한 일련의 기사를 게시할 예정입니다. 따라서 관심 있는 사람이 있으면 구독하거나 방문하십시오. 나는 항상 행복할 것이다!

그건 그렇고, 나는 다음 기사가 Arduino 전자 보드에 관한 것이라는 것을 거의 잊었습니다. 흥미로울 것입니다. 놓치지 마세요.

다음 기사에서 뵙겠습니다.

진심으로, 그리딘 세미.

Arduino 호환 보드는 C와 구문이 매우 유사한 배선 언어로 프로그래밍됩니다. 그러나 내 개인적인 경험이 언어는 11-13세 어린이가 마스터하기 어렵습니다. 특히 그 이전에 어린이가 블록을 데스크탑으로 드래그하여 LabView에서 프로그램을 만든 경우에는 더욱 그렇습니다. 로봇을 좋아하는 많은 아이들은 시각적 프로그래밍 언어인 Scratch에 대해 잘 알고 있으며, 이를 기반으로 이미 교육을 위한 많은 솔루션이 있습니다. 이러한 Arduino용 솔루션 중 ArduBloсk라는 Java로 작성된 도구가 만들어졌습니다.

예, 일부 사람들은 Scratch for Arduino(s4a)가 여전히 존재하며 Arduino 프로그래밍을 위한 매우 간단한 그래픽 환경이라고 말할 수도 있습니다. 그러나 Scratch는 Arduino를 플래시하지 않고 다음을 통해서만 제어합니다. USB 케이블. Arduino는 컴퓨터에 의존하며 자율적으로 작동할 수 없습니다. 자신의 프로젝트를 만들 때 Arduino의 자율성은 특히 로봇 장치를 만들 때 가장 중요합니다.

그렇다면 ArduBlock은 무엇입니까?그래픽 프로그래밍 환경입니다. 러시아어로 거의 완전히 번역되었습니다. 하지만 ArduBloсk에서 하이라이트는 이것 뿐만 아니라 우리가 작성한 ArduBloсk 프로그램이 Arduino IDE 코드로 변환된다는 사실입니다. 이 프로그램은 Arduino IDE 프로그래밍 환경에 내장되어 있습니다. 즉, 플러그인입니다!

아래는 Arduino IDE에서 깜박이는 LED와 변환된 프로그램의 예입니다. 프로그램의 모든 작업은 매우 간단하며 모든 학생이 이해할 수 있습니다.


프로그램을 작업한 결과 아두이노를 프로그래밍 할 수 있을 뿐만 아니라 텍스트 형식 Arduino IDE이지만 표준 명령을 작성하기 너무 게으르면 빠른 마우스 조작으로 ArduBlok에서 간단한 프로그램을 빠르게 스케치하고 Arduino IDE에서 디버그해야 합니다.

ArduBlok을 설치하려면 아래 지침을 따라야 하지만 여전히 탬버린으로 춤을 추어야 합니다. 최신 버전 Arduino IDE 이 플러그인은 작동하지 않습니다. 탬버린으로 춤을 추고 싶지 않다면 Arduino IDE 1.6.11용으로 이미 통합된 ArduBloсk 도구로 아카이브를 다운로드하는 것이 좋습니다. 이 버전은 설치가 필요하지 않습니다. 편리한 위치에 폴더의 압축을 풀고 Arduino IDE를 실행하기만 하면 됩니다. 그리고 잊지 마요설치 가상 기기 Java, 이 플러그인의 정상적인 작동을 위해 필요하며 공식 웹사이트에서 Java를 다운로드할 수 있으며 설치에는 1-2분이 소요됩니다.

ArduBlock과 함께 Arduino IDE 1.6.11 다운로드

탬버린으로 춤을 추기 위한 지침:시작하려면 공식 웹 사이트에서 Arduino IDE를 다운로드하여 설치하십시오.아두이노 보드 작업 시 설정 처리 아두이노 우노. 이 작업을 수행하는 방법은 동일한 사이트 또는암페르케 또는 YouTube에서 시청하세요. 글쎄, 우리가이 모든 것을 알아 냈을 때 공식 웹 사이트에서 ArduBlok을 다운로드해야합니다. 여기 .

그런 다음 다운로드한 파일의 이름을 ardublock-all과 "documents" 폴더로 변경합니다. Arduino > 도구 > ArduBlockTool > 도구 폴더를 만들고 후자에는 다운로드하고 이름을 바꾼 파일을 던집니다. ArduBlok은 모두를 위해 작동합니다 운영체제, Linux에서도 XP, Win7, Win8에서 개인적으로 테스트했으며 모든 예제는 Win7용입니다. 프로그램 설치는 모든 시스템에서 동일합니다.

이 강의는 C에서 Arduino 시스템을 프로그래밍하는 데 필요한 최소한의 지식을 제공합니다. 배경 정보. 다른 시스템에서 C로 프로그래밍한 사람들은 이 기사를 건너뛸 수 있습니다.

다시 말하지만 이것은 최소한의 것입니다. 포인터, 클래스, 문자열 변수 등에 대한 설명 이후 수업에서 제공됩니다. 이해가 되지 않는 부분이 있어도 걱정하지 마세요. 앞으로의 수업에서 많은 예제와 설명이 있을 것입니다.

아두이노 프로그램의 구조.

Arduino 프로그램의 구조는 매우 간단하며 최소한의 형태로 setup()과 loop()의 두 부분으로 구성됩니다.

무효 설정()(

무효 루프() (

setup() 함수는 컨트롤러의 전원을 켜거나 재설정할 때 한 번 실행됩니다. 일반적으로 변수 및 레지스터의 초기 설정은 여기에서 이루어집니다. 함수는 프로그램에 아무것도 없더라도 프로그램에 있어야 합니다.

setup()이 완료되면 제어가 loop() 함수로 넘어갑니다. 무한 루프에서 본문(중괄호 사이)에 작성된 명령을 실행합니다. 실제로 이러한 명령은 컨트롤러의 모든 알고리즘 작업을 수행합니다.

C 언어의 원래 구문 규칙.

; 세미콜론표현식은 임의로 많은 수의 공백, 줄 바꿈을 포함할 수 있습니다. 식의 끝 기호는 "세미콜론" 기호입니다.

z = x + y
z=x
+y;

( ) 중괄호함수 또는 표현식 블록을 정의합니다. 예를 들어, setup() 및 loop() 함수에서.

/* ... */ 주석 블록반드시 닫으십시오.

/* 이것은 주석 블록 */

// 한 줄 주석, 닫을 필요가 없으며 줄 끝까지 유효합니다.

// 이것은 하나의 주석 행입니다.

변수 및 데이터 유형.

변수는 셀입니다. 랜덤 액세스 메모리정보가 저장되는 곳. 프로그램은 변수를 사용하여 중간 계산 데이터를 저장합니다. 계산을 위해 다른 형식의 데이터, 다른 비트 심도를 사용할 수 있으므로 C 언어의 변수는 다음과 같은 유형을 갖습니다.

데이터 형식 비트 깊이, 비트 숫자 범위
부울 8 허위 사실
8 -128 … 127
서명되지 않은 문자 8 0 … 255
바이트 8 0 … 255
정수 16 -32768 … 32767
부호 없는 정수 16 0 … 65535
단어 16 0 … 65535
32 -2147483648 … 2147483647
서명되지 않은 긴 32 0 … 4294967295
짧은 16 -32768 … 32767
뜨다 32 -3.4028235+38 … 3.4028235+38
더블 32 -3.4028235+38 … 3.4028235+38

데이터 유형은 필요한 계산 정확도, 데이터 형식 등에 따라 선택됩니다. 예를 들어 100까지 세는 카운터의 경우 긴 유형을 선택할 필요가 없습니다. 작동하지만 작업에 더 많은 데이터와 프로그램 메모리가 필요하고 더 많은 시간이 걸립니다.

변수 선언.

데이터 유형이 지정되고 그 뒤에 변수 이름이 옵니다.

intx; // int 유형의 x라는 변수 선언
플로트 너비 상자; // float 유형의 widthBox라는 변수 선언

모든 변수는 사용하기 전에 선언해야 합니다.

변수는 프로그램의 어느 부분에서나 선언할 수 있지만 프로그램의 어느 블록에서 사용할 수 있는지에 따라 다릅니다. 저것들. 변수에는 범위가 있습니다.

  • void setup() 함수 이전의 프로그램 시작 부분에서 선언된 변수는 전역으로 간주되며 프로그램의 어느 곳에서나 사용할 수 있습니다.
  • 지역 변수는 for 루프와 같은 함수 또는 블록 내에서 선언되며 선언된 블록 내에서만 사용할 수 있습니다. 이름은 같지만 범위가 다른 여러 변수가 가능합니다.

인트모드; // 변수는 모든 함수에서 사용할 수 있습니다.

무효 설정()(
// 빈 블록, 초기 설정이 필요하지 않음
}

무효 루프() (

긴 수; // count 변수는 loop() 함수에서만 사용할 수 있습니다.

for (int i=0; i< 10;) // переменная i доступна только внутри цикла
{
나는 ++;
}
}

변수를 선언할 때 초기값을 설정할 수 있습니다(초기화).

정수 x = 0; // 변수 x는 초기 값 0으로 선언됩니다.
문자 d = '아'; // 변수 d는 문자 코드 "a"와 동일한 초기 값으로 선언됩니다.

~에 산술 연산와 함께 다른 유형데이터는 자동으로 데이터 유형으로 변환됩니다. 그러나 항상 명시적 변환을 사용하는 것이 좋습니다.

intx; // 정수 변수
나서지 않는; // 문자 변수
인츠; // 정수 변수

z = x + (int) y; // 변수 y를 int로 명시적으로 변환

산술 연산.

관계 작업.

논리 연산.

포인터에 대한 작업.

비트 연산.

& 그리고
| 또는
^ 독점 또는
~ 반전
<< 왼쪽으로 이동
>> 오른쪽으로 이동

혼합 할당 작업.

옵션 선택, 프로그램 관리.

IF 문괄호 안의 조건을 테스트하고 다음 표현식 또는 블록을 실행합니다. 중괄호조건이 참인 경우.

if (x == 5) // x=5이면 z=0이 실행됩니다.
z=0;

if (x > 5) // 만약 x >
(z=0; y=8; )

다른 경우라면두 가지 옵션 중에서 선택할 수 있습니다.

if (x > 5) // x > 5이면 블록 z=0, y=8이 실행됩니다.
{
z=0;
y=8;
}

{
z=0;
y=0;
}

그렇지 않으면- 여러 항목을 선택할 수 있습니다.

if (x > 5) // x > 5이면 블록 z=0, y=8이 실행됩니다.
{
z=0;
y=8;
}

else if (x > 20) // x > 20이면 이 블록을 실행합니다.
{
}

else // 그렇지 않으면 이 블록이 실행됩니다.
{
z=0;
y=0;
}

스위치 케이스- 다중 선택. 변수(예제에서는 x)를 여러 상수(예제 5 및 10에서)와 비교하고 변수가 상수와 동일한 블록을 실행할 수 있습니다.

스위치(x)(

사례 5:
// x = 5인 경우 코드가 실행됩니다.
부서지다;

사례 10:
// x = 10인 경우 코드가 실행됩니다.
부서지다;

기본:
// 이전 값이 일치하지 않으면 코드가 실행됩니다.
부서지다;
}

FOR 루프. 구성을 통해 주어진 반복 횟수로 주기를 구성할 수 있습니다. 구문은 다음과 같습니다.

for(루프 시작 전의 동작;
주기를 계속하기 위한 조건;
각 반복이 끝날 때의 작업) (

// 루프 본문 코드

100회 반복 루프의 예.

(i=0; 나는< 100; i++) // начальное значение 0, конечное 99, шаг 1

{
합계 = 합계 + 나;
}

WHILE 루프. 연산자를 사용하면 구성으로 사이클을 구성할 수 있습니다.

동안(표현식)
{
// 루프 본문 코드
}

대괄호 안의 표현식이 참인 동안 루프가 실행됩니다. 10회 반복에 대한 루프의 예.

x = 0;
동안 (x< 10)
{
// 루프 본문 코드
x++;
}

하는 동안종료 조건이 있는 루프입니다.

하다
{
// 루프 본문 코드
) 동안(표현식);

표현식이 참인 동안 루프가 실행됩니다.
부서지다- 루프 종료 연산자. 실행 중단에 사용 루프를 위해, 동안, 동안.

x = 0;
동안 (x< 10)
{
if (z > 20) break; // z > 20이면 루프를 종료합니다.
// 루프 본문 코드
x++;
}

이동무조건 점프 연산자입니다.

레이블1로 이동; // metka1로 전환
………………
메트카1:

계속하다- 루프 본문의 끝까지 문을 건너뜁니다.

x = 0;
동안 (x< 10)
{
// 루프 본문 코드
(z > 20) 계속하면; // z > 20이면 루프 본문의 시작 부분으로 돌아갑니다.
// 루프 본문 코드
x++;
}

배열.

배열은 여러 변수가 순차적으로 저장되는 메모리 영역입니다.

배열은 다음과 같이 선언됩니다.

정수 나이; // 10의 배열 유형 변수정수

부유물; // 100개의 부동 변수 배열

선언할 때 배열을 초기화할 수 있습니다.

정수 나이 = (23, 54, 34, 24, 45, 56, 23, 23, 27, 28);

배열 변수는 다음과 같이 액세스합니다.

x = 연령; // x에는 배열의 요소 5의 값이 할당됩니다.
연령=32세; // 배열 요소 9는 32로 설정됩니다.

배열 요소는 항상 0부터 번호가 매겨집니다.

기능.

함수를 사용하면 다른 데이터로 동일한 작업을 수행할 수 있습니다. 기능에는 다음이 있습니다.

  • 그녀가 부르는 이름;
  • 인수 - 함수가 계산에 사용하는 데이터.
  • 함수에서 반환된 데이터 유형입니다.

setup() 및 loop() 함수 외부의 사용자 정의 함수를 설명합니다.

무효 설정()(
// 코드는 프로그램이 시작될 때 한 번 실행됩니다.
}

무효 루프() (
// 메인 코드, 루프에서 실행
}

// functionName이라는 사용자 정의 함수 선언
type functionName(유형 인수1, 유형 인수1, … , 유형 인수)
{
// 함수 본문
반품();
}

두 인수의 제곱의 합을 계산하는 함수의 예입니다.

int sumQwadr (int x, int y)
{
반환(x* x + y*y);
}

함수 호출은 다음과 같이 진행됩니다.

d=2; b=3;
z= sumQwadr(d, b); // z는 변수 d와 b의 제곱의 합입니다.

기능은 내장, 사용자 정의, 플러그인일 수 있습니다.

매우 짧지만 이 데이터는 Arduino 시스템용 C 프로그램 작성을 시작하기에 충분해야 합니다.

이 수업에서 마지막으로 이야기하고 싶은 것은 C 프로그램을 어떻게 스타일링하는 것이 관례인지입니다. 스타일.

주요 목표 외부 디자인프로그램은 형식 오류의 수를 줄이기 위해 프로그램의 가독성을 향상시키는 것입니다. 따라서 이 목표를 달성하기 위해 모든 권장 사항을 안전하게 위반할 수 있습니다.

C 언어로 된 이름.

데이터 유형을 나타내는 이름은 대소문자를 혼합하여 작성해야 합니다. 이름의 첫 글자는 대문자(대문자)여야 합니다.

신호, 타임카운트

변수 이름은 대소문자를 혼합하여 작성해야 하며, 첫 글자는 소문자(소문자)입니다.

범주: . 북마크를 할 수 있습니다.

전문가 및 아마추어 개발에 널리 사용되는 마이크로컨트롤러 모듈용 기존 소프트웨어 개발 도구 검토로 기사 시작아두이노, 저자는 그 중 하나를 자세히 설명합니다.FLProg, 전기 및 전자 공학을 전문으로 하지만 프로그래밍 언어를 모르는 사용자를 위해 설계되었습니다. 프로그램에 규정된 모든 작업은 이러한 전문가에게 친숙하고 친숙한 기존의 그래픽 기호로 이 시스템에 표시됩니다.

공식 개발 환경 아두이노 모듈 Arduino IDE( 쌀. 하나).

프로그래밍은 C 언어의 방언인 ProcesSing / Wiring 언어로 이루어집니다(대신 C ++). 실제로 환경은 프로그램 텍스트를 기계어 코드로 번역하고 모듈의 마이크로컨트롤러에 로드할 수 있는 일반 텍스트 편집기입니다. Arduino IDE의 대안은 AVR 제품군의 마이크로컨트롤러용으로 설계된 AVR Studio 통합 환경입니다( 쌀. 2). 어셈블리 언어로 프로그램을 개발하고 디버깅하는 데 사용되지만 C 컴파일러도 연결할 수 있으며 2006년 Atmel Studio로 이름을 변경했습니다.

시각 프로그래밍 언어의 출현으로 라디오 아마추어뿐만 아니라 많은 전문가들이 기꺼이 언어를 전환했습니다. 이 유형의 기존 개발 도구는 조건부로 세 가지 유형으로 나눌 수 있습니다.

FBD(Function Block Diagram)는 IEC 61131-3 표준의 그래픽 프로그래밍 언어입니다. 프로그램은 위에서 아래로 순차적으로 채워진 회로 목록입니다. 체인은 라이브러리 블록으로 구성됩니다. 블록(요소)은 서브루틴, 기능 또는 기능 블록(AND, OR, NOT, 트리거, 타이머, 카운터, 아날로그 신호 처리 블록, 수학 연산등).

각 회로는 컴퓨터 화면에서 각 블록의 출력을 다음 블록의 입력에 연결하는 별도의 블록으로 구성됩니다. 체인 내에서 프로그램은 블록이 연결된 순서대로 엄격하게 블록을 실행합니다. 프로그램은 체인의 마지막 블록의 출력에서 ​​얻은 결과를 내부 변수에 쓰거나 컨트롤러 출력으로 보냅니다. FBD 언어로 된 프로그램의 시각적 표현의 예는 다음과 같습니다. 쌀. 7.

LAD(래더 다이어그램)는 LD 및 RKS라고도 하는 래더 논리 언어입니다.

이 언어의 구문은 릴레이 기술로 만들어진 논리 노드를 설명하는 데 편리합니다. 이 언어는 산업 기업에서 일하는 자동화 전문가를 대상으로 합니다. 컨트롤러의 논리를 시각적으로 표시하여 시스템의 실제 프로그래밍 및 시운전을 용이하게 할 뿐만 아니라 컨트롤러에 연결된 장비의 빠른 문제 해결을 용이하게 합니다. 릴레이 논리 언어의 프로그램은 전기 엔지니어를 위한 시각적이고 직관적인 형식으로 논리 연산을 형식으로 제시합니다. 전기 회로닫힌 접점과 열린 접점이 있습니다. 이러한 회로에서 전류의 흐름 또는 부재는 논리 연산의 결과에 해당합니다(전류가 흐릅니다-참, 전류가 흐르지 않음-거짓). LAD 언어로 된 스키마의 예는 다음에서 제공됩니다. 쌀. 여덟.

LAD 언어의 주요 요소는 접점으로, 릴레이 또는 버튼의 접점 쌍에 비유할 수 있습니다. 접점 쌍은 논리 변수로 식별되고 이 쌍의 상태는 변수 값으로 식별됩니다. 상시 폐쇄 및 상시 개방 접점 요소가 있습니다. 전기 회로에서 평상시 닫힘 및 평상시 열림 푸시 버튼과 비교할 수 있습니다.

이 접근 방식은 전기 엔지니어가 자동화 시스템 개발에 쉽게 참여할 수 있는 매우 편리한 것으로 판명되었습니다. 플랜트 프로젝트를 개발할 때 컨트롤러 작동 알고리즘에 작업을 쉽게 연결할 수 있습니다. 현장 설치를 서비스할 때 유지 보수 직원이 모든 사소한 일에 대해 "센터"에서 프로그래머를 호출하지 않고도 시스템 작동을 쉽게 확인하고 문제를 찾아 수정할 수 있는 것이 매우 중요합니다. 오늘날 이러한 개발 도구의 도움으로 거의 모든 산업 자동화 시스템이 생성됩니다.

이러한 개념을 기반으로 FLProg 프로그램 개발 시스템은 Arduino 마이크로 컨트롤러 모듈과 함께 작동합니다. 이 모듈은 무선 아마추어뿐만 아니라 학교 서클 및 교육 실험실과 같이 매우 유용한 장치의 신속한 개발 및 디버깅에 매우 편리합니다. 한 가지 장점은 프로그래머가 필요하지 않다는 것입니다. Arduino 모듈을 컴퓨터에 연결하고 개발 환경에서 직접 준비된 프로그램을 다운로드하면 충분합니다.

현재 Arduino 마이크로 컨트롤러 모듈( 쌀. 9) 뿐만 아니라 이를 보완하는 모듈(예: 센서 및 액추에이터)도 있습니다. 또한 인터넷(예: 웹사이트 http://robocraft.ru/) 이러한 모듈을 기반으로 하는 수많은 기성 프로젝트를 찾아 필요에 맞게 조정할 수 있습니다.

현재 FLProg 시스템은 다음과 함께 작동합니다. 다음 버전모듈: Arduino Diecimila, Arduino Duemila-nove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano(ATmega168), Arduino Nano(ATmega328), Arduino Pro Mini, Arduino Pro(ATmega168), Arduino Pro (ATmega328), 아두이노 UNO. 최근 목록에 등장했으며 인텔 보드갈릴레오 2세대. 앞으로 이 목록을 보충하고 STM 마이크로컨트롤러를 기반으로 하는 모듈을 추가할 계획입니다.

FLProg를 만들기 위해 Siemens, ABB, Schneider Electric의 프로그래머 경험과 프로그래밍 환경 개발이 사용되었습니다. 동시에 산업용 컨트롤러로 작업하기 위한 언어의 고전적인 기능은 작업을 담당하는 기능 블록을 추가하여 다소 확장되었습니다. 외부 장치. 이 프로그램은 Windows 및 Linux를 실행하는 컴퓨터에서 작동합니다.

FLProg 사용자 인터페이스는 프로젝트가 개발 중인 시스템의 전체 모듈을 포함하는 가상 보드 세트인 방식으로 배열됩니다. 각 보드에는 이름과 주석이 있습니다. 작업 영역의 공간을 절약하기 위해 작업이 완료되면 접을 수 있으며 필요한 경우 다시 배포하고 조정합니다.

보드 이름 옆에 있는 빨간색 표시등 쌀. 십스키마에 오류가 있음을 나타냅니다. 오류를 수정하면 표시등이 녹색으로 바뀝니다. 주석 옆의 화살표는 이미지를 축소하기 위한 것입니다.

오른쪽 작업 공간 창( 쌀. 열하나) 요소 라이브러리용으로 예약되어 있습니다. 간단한 드래그 앤 드롭으로 프로젝트에 구성 요소를 추가할 수 있으며, 더블 클릭프로그램 요소에 대한 정보를 표시합니다. 프로그램에 제공된 블록 목록, 설명 및 프로그램 작업에 대한 도움말은 웹사이트에서 찾을 수 있습니다. 웹사이트에는 프로그램에서 지원하는 주변 장비 목록이 포함되어 있습니다. 이 목록은 지속적으로 업데이트됩니다.

프로그램이 개발됨에 따라 Bluetooth, 무선 채널 및 RS-485 인터페이스를 통한 정보 교환을 구성하고 3축 자이로스코프, 조도계 및 기타 센서와 함께 작동할 계획입니다. 추가 계획에는 개인용 컴퓨터 또는 모바일 장치에서 FLProg 환경을 사용하여 개발된 시스템에 액세스하기 위한 SCADA 시스템 개발이 포함됩니다.

개발 " 회로도» FLProg는 처리/배선 언어로 번역됩니다. 컴파일이 완료되면 프로젝트 스케치가 로드된 상태로 Arduino IDE 프로그램이 자동으로 열립니다. Arduino IDE에서 마이크로컨트롤러 모듈이 연결된 컴퓨터의 COM 포트를 지정하고 모듈 유형을 선택하고 프로그램을 마이크로컨트롤러에 로드해야 합니다.

FLProg 프로그래밍 환경은 프로그래밍 가능 로직 컨트롤러, 러시아 소프트웨어를 사용하여 작업할 수 있는 Arduino 모듈과 다릅니다.

문학

  1. FLProg 프로그램에 대한 도움말 작성. - URL http://flprogwiki.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5도움말 -%DO%BO%D0%B4%D0%BB%D1%8F_%D0%8F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC% D1%8BFLProg(23.06 15).
  2. 프로젝트에 사용된 장비. - URL