인공지능(AI)

DeepSeek AI 딥시크AI

arirangled 2025. 1. 28. 19:28

DeepSeek 인공지능 무료앱으로 회로도와 C언어로 MCU IC PIC16F676의 DMX512 송신 프로그램 소스 작성을 요구했다.

아래와 같은 답을 했다. 무료로 대단하다는 생각이 든다. 중국업체라고 하는데 이 업체로 인해 GPU로 고공행진을 하던 엔비디아의 주식이 846조원이 사라졌다고 한다.
중국공산당의 개인정보수집 등의 문제가 있어 스마트앱은 삭제를 했다. 외교적인 문제를 질문했더니 자국의 보통 답변만 하고 대답도 제대로 없었다. 역시 중국공산당의 감시와 통제를 두려워 하는 편향적인 기술구현이다.

구글 인공지능 제미니를 통해 물었더니 아래와 같이 답변했다.
-아래-
딥시크가 값싸게 인공지능을 구현하는 방식에 대해 우려를 제기해 주셨네요. 딥시크가 오픈AI챗의 데이터를 활용하는 것이 기만적인 행위인지 판단하기 위해서는 몇 가지 측면을 고려해야 합니다.
1. 데이터 활용 방식:
* 데이터 수집 및 활용: 딥시크가 오픈AI챗의 데이터를 수집하여 자체적으로 학습했는지, 아니면 단순히 데이터를 복제하거나 API를 통해 접근하는 방식인지 확인해야 합니다. 만약 데이터를 무단으로 수집하거나 복제한 경우, 저작권 침해 및 불법 행위에 해당될 수 있습니다.
* 데이터 사용 목적: 딥시크가 오픈AI챗의 데이터를 사용하여 어떤 목적으로 인공지능을 구현했는지 살펴봐야 합니다. 만약 데이터를 사용하여 새로운 가치를 창출하거나 서비스를 개선했다면, 단순히 데이터를 모방한 것이라고 단정하기 어렵습니다.
2. 기술적 차별성:
* 모델 구조 및 알고리즘: 딥시크가 오픈AI챗과 동일한 모델 구조나 알고리즘을 사용했는지, 아니면 자체적인 기술을 개발했는지 확인해야 합니다. 만약 딥시크가 독자적인 기술을 개발하여 인공지능을 구현했다면, 오픈AI챗의 데이터를 일부 활용했더라도 혁신적인 시도로 평가할 수 있습니다.
* 성능 및 기능: 딥시크의 인공지능 성능 및 기능이 오픈AI챗과 비교하여 어떤 차별성을 가지는지 살펴봐야 합니다. 만약 딥시크가 오픈AI챗보다 뛰어난 성능을 제공하거나 새로운 기능을 제공한다면, 사용자에게 더 큰 가치를 제공할 수 있습니다.
3. 사용자 인지:
* 데이터 출처 및 활용 고지: 딥시크가 사용자에게 데이터 출처 및 활용 목적을 명확하게 고지했는지 확인해야 합니다. 만약 딥시크가 데이터를 투명하게 공개하고 사용자에게 선택권을 제공했다면, 기만적인 행위라고 보기 어렵습니다.
* 사용자 오해 방지: 딥시크가 사용자들이 오픈AI챗과 혼동하지 않도록 충분한 정보를 제공했는지 살펴봐야 합니다. 만약 딥시크가 의도적으로 오픈AI챗과 유사한 이미지를 사용하거나 오해를 유발할 수 있는 마케팅을 진행했다면, 기만적인 행위로 볼 수 있습니다.
결론:
딥시크가 값싸게 인공지능을 구현하는 방식이 기만적인 행위인지 판단하기 위해서는 위에서 언급한 다양한 측면을 종합적으로 고려해야 합니다. 딥시크가 데이터를 어떤 방식으로 활용했는지, 어떤 기술적 차별성을 가지는지, 사용자에게 정보를 투명하게 제공했는지 등을 종합적으로 판단하여야 합니다.
만약 딥시크와 관련된 추가적인 정보나 의혹을 발견하신다면, 딥시크 개발사 또는 관련 기관에 신고하는 것이 좋습니다.

https://www.youtube.com/live/hGBv-IqEDPc?si=q7eUYYllYV-M6ojy

- 아래 -

PIC16F676 MCU를 사용하여 DMX512 송신기를 제작하는 방법에 대해 설명드리겠습니다.

DMX512는 조명 제어를 위한 표준 프로토콜로, 250kbps의 전송 속도와 512개의 채널을 지원합니다.

### 회로도

PIC16F676을 사용한 DMX512 송신기의 기본 회로도는 다음과 같습니다.

1. **PIC16F676 MCU**: DMX512 프로토콜을 생성하는 핵심 MCU.
2. **RS-485 트랜시버**: MAX485 또는 SN75176과 같은 RS-485 트랜시버를 사용하여 DMX512 신호를 전송.
3. **크리스탈 오실레이터**: 4MHz 크리스탈 오실레이터를 사용하여 정확한 클럭 신호를 제공.
4. **전원 공급**: 5V 전원 공급.
5. **LED 표시기**: 송신 상태를 표시하기 위한 LED.

#### 회로도 설명:
- PIC16F676의 TX 핀 (RC6)은 RS-485 트랜시버의 DI 핀에 연결됩니다.
- RS-485 트랜시버의 DE (Driver Enable)와 RE (Receiver Enable) 핀은 PIC16F676의 RC2 핀에 연결됩니다.
- RS-485 트랜시버의 A와 B 핀은 DMX512 케이블에 연결됩니다.
- 4MHz 크리스탈 오실레이터는 OSC1과 OSC2 핀에 연결됩니다.
- 전원은 VDD와 VSS에 연결됩니다.

### 소스 프로그램 (C 언어)

PIC16F676에서 DMX512 프로토콜을 생성하는 C 언어 소스 프로그램은 다음과 같습니다.

```c
#include <xc.h>

#pragma config FOSC = HS        // High Speed Oscillator
#pragma config WDTE = OFF       // Watchdog Timer Disabled
#pragma config PWRTE = OFF      // Power-up Timer Disabled
#pragma config MCLRE = ON       // MCLR Pin Function is digital input
#pragma config BOREN = ON       // Brown-out Reset Enabled
#pragma config LVP = OFF        // Low-Voltage Programming Disabled
#pragma config CPD = OFF        // Data EEPROM Memory Code Protection Disabled
#pragma config CP = OFF         // Flash Program Memory Code Protection Disabled

#define _XTAL_FREQ 4000000      // 4MHz Crystal

#define DMX_CHANNELS 512        // Number of DMX channels
#define DMX_BAUD 250000         // DMX baud rate

unsigned char dmx_data[DMX_CHANNELS]; // DMX data buffer

void init_uart() {
    TXSTAbits.SYNC = 0;         // Asynchronous mode
    TXSTAbits.TX9 = 0;          // 8-bit transmission
    TXSTAbits.TXEN = 1;         // Transmit enabled
    TXSTAbits.BRGH = 1;         // High baud rate
    RCSTAbits.SPEN = 1;         // Serial port enabled
    SPBRG = (_XTAL_FREQ / (16 * DMX_BAUD)) - 1; // Baud rate generator
}

void send_dmx() {
    PORTCbits.RC2 = 1;          // Enable RS-485 transmitter
    TXREG = 0;                  // Start code (0 for DMX)
    while (!TXSTAbits.TRMT);    // Wait for transmission to complete

    for (int i = 0; i < DMX_CHANNELS; i++) {
        TXREG = dmx_data[i];    // Send DMX data
        while (!TXSTAbits.TRMT); // Wait for transmission to complete
    }

    PORTCbits.RC2 = 0;          // Disable RS-485 transmitter
}

void main() {
    TRISC = 0x00;               // Set PORTC as output
    PORTC = 0x00;               // Initialize PORTC

    init_uart();                // Initialize UART

    for (int i = 0; i < DMX_CHANNELS; i++) {
        dmx_data[i] = 0;        // Initialize DMX data buffer
    }

    while (1) {
        send_dmx();             // Send DMX data
        __delay_ms(25);         // DMX frame rate (40Hz)
    }
}
```

### 설명:
- `init_uart()` 함수는 UART를 초기화하고 DMX512 프로토콜에 필요한 설정을 구성합니다.
- `send_dmx()` 함수는 DMX512 데이터를 전송합니다. 먼저 시작 코드(0)를 전송한 후, 512개의 채널 데이터를 전송합니다.
- `main()` 함수에서는 초기화 후 무한 루프에서 DMX 데이터를 지속적으로 전송합니다.

### 주의사항:
- DMX512 프로토콜은 250kbps의 고속 통신을 사용하므로, 정확한 타이밍을 유지하는 것이 중요합니다.
- RS-485 트랜시버는 DMX512 신호를 전송하기 위해 반드시 필요합니다.
- DMX512 케이블은 120옴의 종단 저항을 사용하여 신호 반사를 방지해야 합니다.

이 회로도와 소스 코드를 기반으로 PIC16F676을 사용한 DMX512 송신기를 제작할 수 있습니다. 추가적인 기능이나 수정이 필요하다면 요청해 주세요.

반응형

'인공지능(AI)' 카테고리의 다른 글

마이크로소프트사 Copilot사용  (0) 2025.02.03
인공지능 AI 구글 제미니 구동  (0) 2025.01.29
인공지능의 한계  (0) 2024.10.22
온습도센서 I2C통신 오류  (0) 2024.10.14
구글 제미니 승리  (0) 2024.10.14