Menu English Ukrainian Russo Casa

Libreria tecnica gratuita per hobbisti e professionisti Libreria tecnica gratuita


ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA
Libreria gratuita / Schemi di dispositivi radioelettronici ed elettrici

Robot semplice. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / Apparecchiatura di radiocomando

Commenti sull'articolo Commenti sull'articolo

Questo articolo presenta uno schema di un semplice "robot". Va alla luce e, se non c'è fonte di luce, viene attivata la modalità "Ricerca libera", ad es. il robot guiderà e, in caso di collisione, si allontanerà e si girerà.

Robot semplice. Diagramma schematico del robot
(clicca per ingrandire)

Il cuore del robot è un microcontrollore ATMEL: AT90S2313, ma puoi usare qualsiasi altro di questa azienda, questo microcontrollore ha 2kb di memoria per il programma, 15 porte di ingresso / uscita, alimentazione disponibile - 4-6V. I motori saranno controllati da un "macchinista" - un microcircuito L293D (l'analogo domestico è KR1128KT4A). Come sensore, si è deciso di prendere le fotoresistenze SF3-1.

Il robot è composto da due motori. Ecco come funzioneranno per determinate azioni:

Squadra Motore da viaggio Motore oscillante
avanti (F) in avanti stop
avanti-destra (FR) in avanti in avanti
avanti-sinistra (FL) in avanti назад
indietro (B) назад stop
indietro-destra (BR) назад in avanti
dietro a sinistra (BL) назад назад
dietro a sinistra (BL) stop stop

Elementi radio utilizzati nel circuito:

Microcontrollore AT90S2313

Microcircuito L293D (analogico domestico - KR1128KT4A)

2 fotoresistenza SF3-1

Quarzo a 4MHz

Condensatori 22-24pF

Stabilizzatore 7805 (o KREN5A)

Resistenza da 100 ohm (opzionale)

Due motori

Power Vbat - 4 batterie AA o 1 corona (9V)

Alimentazione Vm - 1 corona (9V)

Dopo aver assemblato il circuito, è necessario scaricare il programma sul microcontrollore e il robot è pronto:

/************************************************** **** ***

Tipo di chip: AT90S2313

Frequenza di clock: 4,000000 MHz

Modello di memoria: minuscolo

Dimensione SRAM esterna: 0

Dimensione dello stack di dati: 32

************************************************** ***** **/

#includi <90s2313.h>

#includere

#includere

// assegnazione di definizioni per la comodità di lavorare con le periferiche

#definisci OUT PORTB

#definisci MOTORE_F 7

#definisci MOTORE_B 6

#define TURN_R 5

#definire TURN_L 4

#definire IN PIND

#definisci LUCE_R 0

#define LUCE_L 1

#define PARAURTI_F 2

#define PARAURTI_B 3

// Possibili modalità di guida

enum {STOP, F, FR, FL, B, BR, BL};

// ------------------------------------------------ ------------------------------

// Ritardo t x 10 ms

// ------------------------------------------------ ------------------------------

void Delay_10ms(carattere non firmato)

{carattere i;

per(i=0;i

// tabella delle probabilità per la scelta della direzione del movimento

// in base alla direzione di movimento corrente

carattere senza segno p[7][7] =

{14, 43, 57, 71, 86, 93, 100,

7, 43, 71, 100, 100, 100, 100,

7, 50, 93, 100, 100, 100, 100,

7, 50, 57, 100, 100, 100, 100,

29, 29, 29, 29, 57, 79, 100,

36, 36, 36, 36, 71, 93, 100,

36, 36, 36, 36, 71, 79, 100};

// direzione di movimento attuale

carattere non firmato this_move;

// ------------------------------------------------ ------------------------------

// Attiva la combinazione di motori per muoverti in una determinata direzione

// ------------------------------------------------ ------------------------------

void go(direzione del carattere senza segno){

interruttore (direzione) {

caso ARRESTO:

FUORI.MOTORE_F=0;

FUORI.MOTORE_B=0;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

caso F:

FUORI.MOTORE_F=1;

FUORI.MOTORE_B=0;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

caso FR:

FUORI.MOTORE_F=1;

FUORI.MOTORE_B=0;

OUT.TURN_R=1;

OUT.TURN_L=0;

break;

caso FL:

FUORI.MOTORE_F=1;

FUORI.MOTORE_B=0;

OUT.TURN_R=0;

OUT.TURN_L=1;

break;

caso B:

FUORI.MOTORE_F=0;

FUORI.MOTORE_B=1;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

caso BR:

FUORI.MOTORE_F=0;

FUORI.MOTORE_B=1;

OUT.TURN_R=1;

OUT.TURN_L=0;

break;

caso BL:

FUORI.MOTORE_F=0;

FUORI.MOTORE_B=1;

OUT.TURN_R=0;

OUT.TURN_L=1;

break;

}

}

// ------------------------------------------------ ------------------------------

// Selezione della direzione del movimento nel passaggio successivo in base alla tabella delle probabilità

// ------------------------------------------------ ------------------------------

carattere non firmato next_move(void){

charpp senza segno, i;

pp = rand()/327; // ottiene un numero casuale 0..99

for (i=0;i<7;i++){ // cercando una corrispondenza nella tabella delle probabilità

se (p[questo_move][i] > pp) si interrompe;

}

this_move = io; // scrive la nuova direzione ricevuta come quella corrente

ritorno(i);

}

// ------------------------------------------------ ------------------------------

// Gestione dell'interruzione del paraurti anteriore (INT0 = PD2)

// ------------------------------------------------ ------------------------------

interrompere [EXT_INT0] void ext_int0_isr(void)

{

if(this_move==FR) vai(BL);

if(this_move==FL) vai(BR);

altrimenti vai(B);

Ritardo_10ms(250); // partenza entro 2.5 x 2 sec

Ritardo_10 ms(250);

questa_mossa=B;

}

// ------------------------------------------------ ------------------------------

// Gestione dell'interruzione del paraurti posteriore (INT1 = PD3)

// ------------------------------------------------ ------------------------------

interrompere [EXT_INT1] void ext_int1_isr(void)

{

if(this_move==BR) vai(FL);

if(this_move==BL) vai(FR);

altrimenti vai(F);

Ritardo_10ms(250); // partenza entro 2.5 x 2 sec

Ritardo_10 ms(250);

questa_mossa=F;

}

// ------------------------------------------------ ------------------------------

// "Passeggiata casuale"

// ------------------------------------------------ ------------------------------

unsigned char walk(vuoto){

// questo ciclo organizza il "roaming libero" mentre

// nessun segnale da nessuno dei sensori di luce

while((IN.LIGHT_R) && (IN.LIGHT_L)){

vai(next_move()); // ottieni la prossima direzione di movimento e

Ritardo_10ms(250); // muovendosi in questa direzione 2.5 sec

}

// questo ciclo organizza il movimento verso la luce mentre

// è presente un segnale da almeno uno dei sensori di luce

while((IN.LUCE_R==0) || (IN.LUCE_L==0)){

if((IN.LIGHT_R==0) && (IN.LIGHT_L==0)) go(F);

altrimenti se(IN.LIGHT_R==0) go(FR);

altrimenti se(IN.LIGHT_L==0) vai(FL);

}

ritorno (0);

}

// ------------------------------------------------ ------------------------------

// Programma principale

// ------------------------------------------------ ------------------------------

void main (void)

{

DDRB=0xff; // Assegna tutte le linee della porta B all'output

PORTAB = 0x00; // e impostali bassi

DDR=0x00; // Assegna tutte le linee della porta D all'input

PORTA=0xff; // collega i resistori di carico interni

// Inizializzazione degli interrupt esterni

// INT0: attivato

// Modalità INT0: Fronte discendente

// INT1: attivato

// Modalità INT1: Fronte discendente

GIMSK=0xC0;

MCUCR=0x0A;

GIFR=0xC0;

// abilita gli interrupt

#asm("sei")

// avvia il ciclo principale

mentre(1) cammina();

}

Scarica il programma, il file del firmware e il diagramma del robot in formato sPlan

Pubblicazione: cxem.net

Vedi altri articoli sezione Apparecchiatura di radiocomando.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

Energia dallo spazio per Starship 08.05.2024

La produzione di energia solare nello spazio sta diventando sempre più fattibile con l’avvento di nuove tecnologie e lo sviluppo di programmi spaziali. Il capo della startup Virtus Solis ha condiviso la sua visione di utilizzare la Starship di SpaceX per creare centrali elettriche orbitali in grado di alimentare la Terra. La startup Virtus Solis ha svelato un ambizioso progetto per creare centrali elettriche orbitali utilizzando la Starship di SpaceX. Questa idea potrebbe cambiare significativamente il campo della produzione di energia solare, rendendola più accessibile ed economica. Il fulcro del piano della startup è ridurre i costi di lancio dei satelliti nello spazio utilizzando Starship. Si prevede che questa svolta tecnologica renderà la produzione di energia solare nello spazio più competitiva rispetto alle fonti energetiche tradizionali. Virtual Solis prevede di costruire grandi pannelli fotovoltaici in orbita, utilizzando Starship per fornire le attrezzature necessarie. Tuttavia, una delle sfide principali ... >>

Nuovo metodo per creare batterie potenti 08.05.2024

Con lo sviluppo della tecnologia e l’uso crescente dell’elettronica, la questione della creazione di fonti energetiche efficienti e sicure sta diventando sempre più urgente. I ricercatori dell’Università del Queensland hanno svelato un nuovo approccio alla creazione di batterie a base di zinco ad alta potenza che potrebbero cambiare il panorama del settore energetico. Uno dei problemi principali delle tradizionali batterie ricaricabili a base d’acqua era il loro basso voltaggio, che ne limitava l’utilizzo nei dispositivi moderni. Ma grazie ad un nuovo metodo sviluppato dagli scienziati, questo inconveniente è stato superato con successo. Nell'ambito della loro ricerca, gli scienziati si sono rivolti a uno speciale composto organico: il catecolo. Si è rivelato un componente importante in grado di migliorare la stabilità della batteria e aumentarne l'efficienza. Questo approccio ha portato ad un aumento significativo della tensione delle batterie agli ioni di zinco, rendendole più competitive. Secondo gli scienziati, tali batterie presentano numerosi vantaggi. Hanno b ... >>

Contenuto alcolico della birra calda 07.05.2024

La birra, essendo una delle bevande alcoliche più comuni, ha un gusto unico, che può cambiare a seconda della temperatura di consumo. Un nuovo studio condotto da un team internazionale di scienziati ha scoperto che la temperatura della birra ha un impatto significativo sulla percezione del gusto alcolico. Lo studio, condotto dallo scienziato dei materiali Lei Jiang, ha scoperto che a diverse temperature, le molecole di etanolo e acqua formano diversi tipi di cluster, che influenzano la percezione del gusto alcolico. A basse temperature si formano più grappoli piramidali, che riducono l'asprezza del gusto dell'"etanolo" e rendono la bevanda meno alcolica. Al contrario, con l'aumentare della temperatura, i grappoli diventano più a catena, determinando un gusto alcolico più pronunciato. Questo spiega perché il gusto di alcune bevande alcoliche, come il baijiu, può cambiare a seconda della temperatura. I dati ottenuti aprono nuove prospettive per i produttori di bevande, ... >>

Notizie casuali dall'Archivio

Difesa aerea laser Skyranger 30 HEL 11.02.2022

Rheinmetall (Germania) ha introdotto il sistema di difesa aerea portatile Skyranger 30 HEL, che vanta una combinazione di un cannone automatico da 30 mm, missili di difesa aerea a corto raggio (SHORAD) e un laser ad alta energia per proteggere le unità mobili.

Lo Skyranger 30 HEL è una torretta robotica costruita attorno al cannone revolver Oerlikon KCA 30 x 173 mm, creato per il caccia Saab 37 Viggen ed è stato aggiornato a 30 mm x 173 KCE, che spara proiettili a frammentazione di tungsteno programmabili a una velocità di 1200 giri al minuto.

Con un peso di sole 2,5 tonnellate circa, la torretta può essere montata su veicoli corazzati 6x6 o più grandi per fornire copertura da aerei, elicotteri e droni. Tuttavia, non sono sempre efficaci e possono essere pericolosi o illegali da usare nelle aree edificate, motivo per cui lo Skyranger 30 include anche missili SHORAD per far fronte alle minacce di basso livello.

Loro, come la pistola, sono guidati utilizzando una serie di radar, videocamere, telemetri laser e sensori a infrarossi in grado di tracciare bersagli in un arco di 360 gradi a una distanza massima di 20 km.

L'ultima aggiunta a questo set per lo Skyranger 30 HEL è un'arma laser ad alta energia con i suoi sensori. Questo laser emette un raggio da 20 kW che può agganciarsi automaticamente ai bersagli e neutralizzarli.

L'obiettivo immediato degli sviluppatori è aumentare questa potenza a 50 kW e, idealmente, a 100 kW in futuro. Ciò fornirà allo Skyranger 30 HEL non solo una gittata molto lunga, ma anche una fornitura praticamente illimitata di munizioni laser al costo di circa un dollaro per colpo.

Altre notizie interessanti:

▪ Nuovi modelli desktop iMac

▪ Ebbrezza musicale

▪ ViewSonic VSD241 All-in-One con processore NVIDIA Tegra 3

▪ Motore a benzina ecologico di Mazda

▪ Trilioni di fotogrammi al secondo fotocamera

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Storie dalla vita dei radioamatori. Selezione dell'articolo

▪ articolo Nastro adesivo. Storia dell'invenzione e della produzione

▪ articolo Cos'è l'attività solare? Risposta dettagliata

▪ articolo Muscoli dall'aria. Laboratorio di scienze per bambini

▪ articolo Un semplice regolatore di corrente di un trasformatore di saldatura. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

▪ articolo Regolatore di corrente su trinistor. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Lascia il tuo commento su questo articolo:

Nome:


E-mail (opzionale):


commento:





Tutte le lingue di questa pagina

Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito

www.diagram.com.ua

www.diagram.com.ua
2000-2024