배열 Number1과 Number2에 다음과 같은 숫자들이 정수 형태와 문자 형태로 정의되었다. Number1과 Number2

각각에 대하여 sort() 함수로 정렬시 어떤 형태로 바뀌는가?


Number1 = array(2, 17, 23, 5, 9, 15, 1, 3, 7, 22);

Number2 = array("2", "17", "23", "5", "9", "15", "1", "3", "7", "22");


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    $Number1=array(2,17,23,5,9,15,1,3,7,22);
    $Number2=array("2","17","23","5","9","15","1","3","7","22");
    sort($Number1);
    foreach($Number1 as $num)
    {
        print $num." ";
    }
    print "<br>";
    sort($Number2);
    foreach($Number2 as $num)
    {
        print $num." ";
    }
?>
cs

 


 

출력결과

똑같이 정렬되서 나옴

'프로그래밍 > PHP' 카테고리의 다른 글

(PHP) Sort 함수를 이용하여 내림차순 정렬 만들기  (0) 2016.07.10
(PHP) for문과 배열  (0) 2016.07.10
(PHP) 파일 사용하기  (0) 2016.07.10
(PHP)form을 이용한 값 전달  (0) 2016.07.10
(PHP) 클래스  (0) 2016.07.10

fopen() 함수 mode 종류

 모드

설명 

 r

읽기 전용으로 파일 열기, 파일 포인터는 파일의 시작에 위치 

 r+

 읽고 쓰기로 파일 열기, 파일 포인터는 파일의 시작에 위치

 w

 쓰기 전용으로 파일 열기, 파일 포인터는 파일의 시작에 위치

파일이 존재하면 내용을 삭제, 파일이 존재하지 않으면 파일을 생성

 w+

 읽고 쓰기로 파일 열기, 파일 포인터는 파일의 시작에 위치

파일이 존재하면 내용을 삭제, 파일이 존재하지 않으면 파일을 생성

 a

 쓰기 전용으로 파일 열기, 파일 포인터는 파일의 끝에 위치

파일이 존재하지 않으면 파일을 생성

 a+

 읽고 쓰기로 파일 열기, 파일 포인터는 파일의 끝에 위치

파일이 존재하지 않으면 파일을 생성

 


bool fclose(int filepointer) : 파일을 닫는 함수


int fputs(int filepointer, string str) : 파일 포인터가 가리키는 곳에 str의 내용을 쓰는 함수


string fgets(int filepointer, int length) : 파일 포인터가 가리키는 곳에 length-1 byte 만큼 읽는다.


1
2
3
4
5
6
7
8
9
10
11
12
13
<?
    $filep = fopen("./exam.txt","a");
    
    if(!$filep) die ("파일을 열 수 없습니다.");
    
    fputs($filep"1 2 3 4 5 6 7 8 9 0\n");
 
    fclose($filep);
    
    $filep=fopen("./exam.txt","r");
    while($line=fgets($filep,1024))
        print $line."<br>";
?>
cs

3번 실행할 경우

5번 실행할 경우

'프로그래밍 > PHP' 카테고리의 다른 글

(PHP) Sort 함수를 이용하여 내림차순 정렬 만들기  (0) 2016.07.10
(PHP) for문과 배열  (0) 2016.07.10
(PHP) 배열과 정렬  (0) 2016.07.10
(PHP)form을 이용한 값 전달  (0) 2016.07.10
(PHP) 클래스  (0) 2016.07.10

form 태그를 이용한 값전달


index.php

1
2
3
4
5
6
<form method=post action="lecture10_form1.php">
    <input type="text" name="val01" size=5>
    <input type="text" name="operator" size=1>
    <input type="text" name="val02" size=5>    
    <input type="submit" value="계산하기">
</form>
cs


lecture10_form1.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
    extract(array_merge($HTTP_GET_VARS,$HTTP_POST_VARS));
 
    switch($operator)
    {
        case("+"):
            $result=$val01+$val02;
            print $val01."+".$val02." = ".$result;
            break;
        case("-"):
            $result=$val01-$val02;
            print $val01."-".$val02." = ".$result;
            break;
        case("*"):
            $result=$val01*$val02;
            print $val01."*".$val02." = ".$result;
            break;
        case("/"):
            $result=$val01/$val02;
            print $val01."/".$val02." = ".$result;
            break;
    }
?>
cs

extract(array_merge($HTTP_GET_VARS,$HTTP_POST_VARS));

위 함수를 이용하여 GET, POST 방식을 이용할 수 있음


select 태그를 이용한 값 전달


index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<form method=post action="lecture10_form1.php">
    <select name="val01" size="1">
        <option value="2">2단</option>
        <option value="3">3단</option>
        <option value="4">4단</option>
        <option value="5">5단</option>
        <option value="6">6단</option>
        <option value="7">7단</option>
        <option value="8">8단</option>
        <option value="9">9단</option>
    </select>
    <input type="submit" value="결과 보기">
</form>
cs

lecture10_form1.php

1
2
3
4
5
6
7
<?
    extract(array_merge($HTTP_GET_VARS,$HTTP_POST_VARS));
 
    print $val01."단 <p>";
    for($i=1;$i<10;$i++)
        print $val01." * "$i." = "$val01*$i."<br>";
?>
cs


라디오 박스, 체크박스 를 이용한 값전달


index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form method=post action="phpnform3.php">
    이름 <input type="text" name="u_name" size=10>
    <br>
    성별 <input type="radio" name="sexual_type" value="남자">남  
         <input type="radio" name="sexual_type" value="여자" checked>여
    <br>
    관심사항 <input type="checkbox" name="interesting[]" value="Web Programming"> Web Programming  
    <input type="checkbox" name="interesting[]" value="Graphics"> Graphics  
    <input type="checkbox" name="interesting[]" value="Mathematics"> Mathematics  
    <input type="checkbox" name="interesting[]" value="Databases"> Databases
    <p>
    <input type="submit" value="전송"
    <input type="reset" value="다시쓰기">
</form>
cs


phpnform3.php

1
2
3
4
5
6
7
8
<?
    extract(array_merge($HTTP_GET_VARS,$HTTP_POST_VARS));
    print "이름: ".$u_name."<br>";
    print "성별: ".$sexual_type."<br>";
    print "관심사항: ";
    for($i=0;$i<count($interesting);$i++)
        print "[".$interesting[$i]."]";
?>
cs


​ 

'프로그래밍 > PHP' 카테고리의 다른 글

(PHP) Sort 함수를 이용하여 내림차순 정렬 만들기  (0) 2016.07.10
(PHP) for문과 배열  (0) 2016.07.10
(PHP) 배열과 정렬  (0) 2016.07.10
(PHP) 파일 사용하기  (0) 2016.07.10
(PHP) 클래스  (0) 2016.07.10

클래스 선언

1
2
3
4
5
6
7
8
<?PHP
    class 클래스명    
    {
        ... 속성 선언 ...
 
        ... 함수 선언 ...
    }
?>
cs

public : 객체 생성후 어디서나 호출 가능한 상태

private : 객체 내부에서만 호출이 가능한 것 (메소드, 멤버변수 앞에 Underbar(_)를 붙이면 됨)

상속 : 자식 클래스가 부모 클래스로부터 특성을 상속 받는 것을 말함.

부모클래스에 있는 속성과 메소드를 그대로 사용할 수 있는 성질

클래스명 뒤에 'extends 상속받을클래스명' 을 적으면 됨



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?PHP
    class fruit
    {
        var $_fruit_name$_price$_color;
        function fruit($name$price$color)
        {
            $this->_fruit_name=$name;
            $this->_price=$price;
            $this->_color=$color;
        }
        
        function print_fruit()
        {
            print "Fruit name : $this->_fruit_name <br>";
            print "Fruit name : $this->_price <br>";
            print "Fruit name : $this->_color <br>";
            print "<br>";
        }
    }
    $Apple = new fruit('Apple',1000,'red');
    $Orange = new fruit('Orange',2000,'orange');
    $Banana = new fruit('Banana',500,'yellow');
    $Pear = new fruit('Pear',3000,'gray');
    $Apple->print_fruit();
    $Orange->print_fruit();
    $Banana->print_fruit();
    $Pear->print_fruit();
?>
cs

​▲ 클래스 사용 예제


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?PHP
    class People    
    {
        var $Name$Age;
        function printPeople()
        {
            print "Name : ".$this->Name."<br>";
            print "Age : ".$this->Age."<br>";
        }
    }
    class Professor extends People
    {
        var $Office_No;
        function Professor($name,$age,$no)
        {
            $this->Name=$name;
            $this->Age=$age;
            $this->Office_No=$no;
        }
        function printProfessor()
        {
            $this->printPeople();
            print "Office_No : ".$this->Office_No."<br>";
        }
        function printProfessor2()
        {
            print "Name : ".$this->Name."<br>";
            print "Age : ".$this->Age."<br>";
            print "Office_No : ".$this->Office_No."<br>";
        }
    }
    $object = new Professor("Kim","37","107");
    $object->printProfessor();print"<br>";
    $object->printProfessor2();
?>
cs

▲ 클래스 상속 사용 예제

'프로그래밍 > PHP' 카테고리의 다른 글

(PHP) Sort 함수를 이용하여 내림차순 정렬 만들기  (0) 2016.07.10
(PHP) for문과 배열  (0) 2016.07.10
(PHP) 배열과 정렬  (0) 2016.07.10
(PHP) 파일 사용하기  (0) 2016.07.10
(PHP)form을 이용한 값 전달  (0) 2016.07.10

SG90 라즈베리파이 연결

 색

핀 

 오렌지

GPIO18 (wiringPi에서 1번핀)

 레드

5V

 브라운

GND



예제 파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <wiringPi.h>
#include <stdlib.h>
#include <softPwm.h>
 
void lock();
void unLock();
 
int pin = 1;
 
int main(void)
{
  if(wiringPiSetup()==-1) exit(1);
  pinMode(pin ,OUTPUT);
  digitalWrite(pin,LOW);
  softPwmCreate(pin,0,200);
  printf("Test Servo motor\n");
    int i=0;
  while(1){
    scanf("%d",&i);
    if(i)
      lock();
    else
      unLock();
  }
  return 0;
}
void lock(){
  softPwmWrite(pin,14);
}
 
void unLock(){
  softPwmWrite(pin,22);
}
cs
 

결과 사진

0이나 1 입력시



라즈베리파이 vncserver 설치

sudo apt-get install tightvncserver

vncserver 실행

vncserver

비밀번호 설정 -> 처음 설정시 1이 뜨는데 VNCViewer에서 접속할때 사용됨



접속할 곳(PC)에서 VNCViewer 설치

https://www.realvnc.com/download/viewer/


라즈베리파이 IP:번호 입력후 Connect

설정한 비밀번호 입력



접속 완료


wiringPi : 라즈베리파이에서 C언어로 gpio사용과 프로그래밍을 할수있는 도구


http://wiringpi.com/download-and-install/


라즈비안 최신버전으로 업그레이드
sudo apt-get update
sudo apt-get upgrade

라즈비안에 Git 설치

sudo apt-get install git-core

Git으로 WiringPi 얻기

git clone git://git.drogon.net/wiringPi

WiringPi 폴더로 들어가서 버전 업데이트 하기

cd wiringPi
git pull origin

WiringPi의 build 스크립트 실행하기

cd wiringPi
./build

각 명령어 실행시 '권한이 없다'가 뜨면 앞에 sudo를 붙이면 됨



gpio 핀에 대한 정보 보기

gpio -v
gpio readall


라즈베리파이 핀

Usb to Serial Converter

2핀  (5V)

+5V

6핀  (GND)

GND

8핀  (TXD)

RXD

10핀 (RXD)

TXD

 



예제 소스

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<string.h>
#include<errno.h>
 
#include<wiringSerial.h>
 
int main(){
    int fd;
    if((fd=serialOpen("/dev/ttyAMA0",115200))<0){
        fprintf(stderr,"Unable to open serial device: %s\n", strerror(errno));
        return 1;
    }
    for(;;){
        putchar(serialGetchar(fd));
        fflush(stdout);
    }
}
cs

 

출력 결과

입력 받은데로 문자 출력


(1)에서 나온 방법들 중 성공한 방법

https://www.abelectronics.co.uk/kb/article/1035/raspberry-pi-3-serial-port-usage



① 터미널에서 라즈베리파이 설정창 접속
sudo raspi-config


Expand FileSystem 선택

Advanced Options -> Serial -> Enable 선택


② 라즈베리파이 업데이트

sudo apt-get update
sudo apt-get upgrade

③ 라즈베리파이 /boot/config.txt 편집

sudo nano /boot/config.txt

맨 아랫줄에 dtoverlay=pi3-miniuart-bt 설정 -> 블루투스 사용안함 설정 같은것

저장후 재시작


④ /boot/cmdline.txt 편집

sudo nano /boot/cmdline.txt

다음과 같이 문서를 편집 : serial 연결시 115200으로 연결하면 됨

dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

연결 상황


연결후 아무 글씨도 안뜰경우 엔터를 치면 나옴 -> 연결이 된 것을 확인


여러가지 포럼을 찾아본 결과 라즈베리파이 3에서는 Serial(UART) 통신이 내장 Bluetooth 때문에 바뀐듯 하다.

기존에 사용하였던 ttyAMA0 을 블루투스를 끈 상태에서 사용하는 등 방식이 까다로워 졌고, 해외 포럼에선 속도도 많이 떨어졌다고 한다.


여러가지 방법들


https://www.abelectronics.co.uk/kb/article/1035/raspberry-pi-3-serial-port-usage

https://openenergymonitor.org/emon/node/12311

http://raspberrypi.stackexchange.com/questions/45570/how-do-i-make-serial-work-on-the-raspberry-pi3


+ Recent posts