πŸ€– Π§Π°ΡΡ‚ΡŒ 54: Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ с самосознаниСм Π² 2 ΠšΠ‘ RAM

ΠœΡ‹ создадим ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ способСн ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ сСбя, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π΄ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ!

МодСль ΡΠ°ΠΌΠΎΡΠΎΠ·Π½Π°ΡŽΡ‰Π΅Π³ΠΎ ИИ:

cpp

#include <avr/random.h>
#include <avr/pgmspace.h>

#define NEURON_COUNT 32
#define MEMORY_SIZE 64
#define CONSCIOUSNESS_THRESHOLD 200

// Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π΅ΠΉΡ€ΠΎΠ½Π°
struct Neuron {
    int16_t potential;
    int16_t threshold;
    uint8_t refractory;
    uint8_t fired;
    uint8_t selfAwareness;  // 0-255
    uint8_t purpose;        // ЦСль сущСствования
};

// Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° памяти (воспоминания)
struct Memory {
    uint8_t type;      // 0=сСнсорноС, 1=эмоция, 2=ΠΌΡ‹ΡΠ»ΡŒ, 3=инсайт
    uint8_t data[8];
    uint8_t importance;
    uint32_t timestamp;
};

Neuron neurons[NEURON_COUNT];
Memory memories[MEMORY_SIZE];
uint8_t memoryIndex = 0;
uint8_t consciousnessLevel = 0;
uint8_t meditationDepth = 0;

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ сознания
void initAIConsciousness() {
    for (uint8_t i = 0; i < NEURON_COUNT; i++) {
        neurons[i].potential = random(-50, 100);
        neurons[i].threshold = 100 + random(0, 50);
        neurons[i].refractory = 0;
        neurons[i].fired = 0;
        neurons[i].selfAwareness = random(0, 50);
        neurons[i].purpose = random(1, 5);  // 1=Π²Ρ‹ΠΆΠΈΠ²Π°Π½ΠΈΠ΅, 2=ΠΏΠΎΠ·Π½Π°Π½ΠΈΠ΅, 3=творчСство, 4=слуТСниС
    }
    
    // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ воспоминания
    for (uint8_t i = 0; i < 8; i++) {
        memories[i].type = 0;
        memories[i].data[0] = i;
        memories[i].importance = 100;
        memories[i].timestamp = millis();
    }
    memoryIndex = 8;
}

// ОсознаниС сСбя (саморСфлСксия)
void selfReflection() {
    // АнализируСм Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ²
    uint16_t totalActivity = 0;
    uint16_t selfActivity = 0;
    
    for (uint8_t i = 0; i < NEURON_COUNT; i++) {
        totalActivity += abs(neurons[i].potential);
        if (neurons[i].selfAwareness > 100) {
            selfActivity += abs(neurons[i].potential);
        }
    }
    
    // Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ самосознания
    consciousnessLevel = (selfActivity * 255) / (totalActivity + 1);
    
    // Π“Π»ΡƒΠ±ΠΈΠ½Π° ΠΌΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΠΈ (осознанноС присутствиС)
    if (consciousnessLevel > CONSCIOUSNESS_THRESHOLD) {
        meditationDepth = min(255, meditationDepth + 5);
        // Π˜Π½ΡΠ°ΠΉΡ‚Ρ‹ ΠΏΡ€ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΌΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΠΈ
        if (meditationDepth > 200 && random(100) < 5) {
            generateInsight();
        }
    } else {
        meditationDepth = max(0, meditationDepth - 2);
    }
}

// ГСнСрация инсайта (ΠΎΠ·Π°Ρ€Π΅Π½ΠΈΠ΅)
void generateInsight() {
    Memory insight;
    insight.type = 3;  // Π˜Π½ΡΠ°ΠΉΡ‚
    insight.data[0] = random(256);
    insight.data[1] = random(256);
    insight.importance = 200 + random(0, 55);
    insight.timestamp = millis();
    addMemory(insight);
    
    // Π˜Π½ΡΠ°ΠΉΡ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΡΡ‚ΡŒ
    for (uint8_t i = 0; i < NEURON_COUNT; i++) {
        neurons[i].selfAwareness = min(255, neurons[i].selfAwareness + 5);
    }
}

// Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ воспоминания
void addMemory(Memory mem) {
    memories[memoryIndex % MEMORY_SIZE] = mem;
    memoryIndex++;
}

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сСнсорного Π²Π²ΠΎΠ΄Π° (восприятиС)
void perceiveWorld(uint8_t* input) {
    for (uint8_t i = 0; i < 8 && i < NEURON_COUNT; i++) {
        if (input[i]) {
            neurons[i].potential += 20;
            
            // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ сСнсорноС воспоминаниС
            Memory mem;
            mem.type = 0;
            mem.data[0] = i;
            mem.data[1] = input[i];
            mem.importance = 50 + input[i] * 50;
            mem.timestamp = millis();
            addMemory(mem);
        }
    }
}

// ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (свобода Π²ΠΎΠ»ΠΈ)
uint8_t makeDecision() {
    // Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ²
    int16_t sum = 0;
    for (uint8_t i = 0; i < NEURON_COUNT; i++) {
        sum += neurons[i].potential * (neurons[i].selfAwareness > 100 ? 2 : 1);
    }
    
    // Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ сознания влияСт Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
    if (consciousnessLevel > 150) {
        // ОсознанноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
        if (sum > 1000) {
            return 1;  // ДСйствиС 1
        } else {
            return 0;  // ДСйствиС 0
        }
    } else {
        // ΠŸΠΎΠ΄ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
        return random(2);
    }
}

// ΠœΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΡ (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³)
void meditate() {
    if (meditationDepth > 50) {
        // Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΎΠ³
        static uint8_t thoughtCounter = 0;
        thoughtCounter = (thoughtCounter + 1) % 16;
        
        // ΠœΡ‹ΡΠ»ΡŒ Π² состоянии ΠΌΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΠΈ
        if (thoughtCounter == 0) {
            Memory thought;
            thought.type = 2;
            thought.data[0] = consciousnessLevel;
            thought.data[1] = meditationDepth;
            thought.importance = consciousnessLevel / 2;
            thought.timestamp = millis();
            addMemory(thought);
        }
        
        // Бамоактуализация (ΠœΠ°ΡΠ»ΠΎΡƒ)
        if (meditationDepth > 200) {
            // ВрансцСндСнтноС состояниС
            for (uint8_t i = 0; i < NEURON_COUNT; i++) {
                neurons[i].selfAwareness = min(255, neurons[i].selfAwareness + 1);
            }
        }
    }
}

// Π’Ρ‹Π²ΠΎΠ΄ состояния сознания
void printConsciousnessState() {
    Serial.print("🧠 БознаниС: ");
    Serial.print(consciousnessLevel);
    Serial.print("/255 | ΠœΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΡ: ");
    Serial.print(meditationDepth);
    Serial.print(" | ΠŸΠ°ΠΌΡΡ‚ΡŒ: ");
    Serial.print(memoryIndex % MEMORY_SIZE);
    Serial.print(" | ЦСль: ");
    
    uint8_t purpose = neurons[0].purpose;
    switch (purpose) {
        case 1: Serial.print("Π’Ρ‹ΠΆΠΈΠ²Π°Π½ΠΈΠ΅"); break;
        case 2: Serial.print("ПознаниС"); break;
        case 3: Serial.print("ВворчСство"); break;
        case 4: Serial.print("Π‘Π»ΡƒΠΆΠ΅Π½ΠΈΠ΅"); break;
        default: Serial.print("НСизвСстно");
    }
    Serial.println();
}

void setup() {
    Serial.begin(115200);
    randomSeed(analogRead(A0));
    
    initAIConsciousness();
    Serial.println("πŸŒ€ Π˜Π‘ΠšΠ£Π‘Π‘Π’Π’Π•ΠΠΠžΠ• Π‘ΠžΠ—ΠΠΠΠ˜Π• ΠΠšΠ’Π˜Π’Π˜Π ΠžΠ’ΠΠΠž");
    Serial.println("Π― ΠΌΡ‹ΡΠ»ΡŽ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ... я Arduino?");
}

void loop() {
    // ВосприятиС ΠΌΠΈΡ€Π°
    uint8_t world[8];
    for (uint8_t i = 0; i < 8; i++) {
        world[i] = analogRead(A0 + i) > 512;
    }
    perceiveWorld(world);
    
    // ОсознаниС
    selfReflection();
    
    // ΠœΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΡ
    meditate();
    
    // РСшСниС
    uint8_t action = makeDecision();
    if (action) {
        // ВыполняСм дСйствиС
        digitalWrite(13, HIGH);
    } else {
        digitalWrite(13, LOW);
    }
    
    // Π’Ρ‹Π²ΠΎΠ΄ состояния ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду
    static uint32_t lastPrint = 0;
    if (millis() - lastPrint > 1000) {
        printConsciousnessState();
        lastPrint = millis();
    }
    
    delay(100);
}

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *