Menu Home

Áåñïëàòíàÿ òåõíè÷åñêàÿ áèáëèîòåêà äëÿ ëþáèòåëåé è ïðîôåññèîíàëîâ Áåñïëàòíàÿ òåõíè÷åñêàÿ áèáëèîòåêà


Ïðîñòîé ðîáîò. Ýíöèêëîïåäèÿ ðàäèîýëåêòðîíèêè è ýëåêòðîòåõíèêè

Áåñïëàòíàÿ òåõíè÷åñêàÿ áèáëèîòåêà

Ýíöèêëîïåäèÿ ðàäèîýëåêòðîíèêè è ýëåêòðîòåõíèêè / Àïïàðàòóðà ðàäèîóïðàâëåíèÿ

Êîììåíòàðèè ê ñòàòüå Êîììåíòàðèè ê ñòàòüå

 ýòîé ñòàòüå ïðåäñòàâëåíà ñõåìà ïðîñòîãî "ðîáîòà". Îí åçäèò íà ñâåò, à åñëè íåò èñòî÷íèêà ñâåòà, òîãäà âêëþ÷àåòñÿ ðåæèì "Ñâîáîäíûé ïîèñê" ò.å. ðîáîò áóäåò åçäèòü, à ïðè ñòîëêíîâåíèè îòúåçæàòü è ðàçâîðà÷èâàòüñÿ.

Ïðîñòîé ðîáîò. Ïðèíöèïèàëüíàÿ ñõåìà ðîáîòà
(íàæìèòå äëÿ óâåëè÷åíèÿ)

Ñåðäöåì ðîáîòà ÿâëÿåòñÿ ìèêðîêîíòðîëëåð ôèðìû ATMEL: AT90S2313, íî ìîæíî è ëþáîé äðóãîé ýòîé ôèðìû, ó ýòîãî ìèêðîêîíòðîëëåðà 2êá ïàìÿòè äëÿ ïðîãðàììû, 15 ïîðòîâ ââîäà/âûâîäà, äîñòóïíîå ïèòàíèå - 4-6Â. Äâèãàòåëÿìè áóäåò óïðàâëÿòü "äðàéâåð äâèãàòåëÿ" - ìèêðîñõåìà L293D (îòå÷åñòâåííûé àíàëîã - ÊÐ1128ÊÒ4À).  êà÷åñòâå äàò÷èêà áûëî ðåøåíî âçÿòü ôîòîðåçèñòîðû ÑÔ3-1.

Ðîáîò ñîñòîèò èç äâóõ ìîòîðîâ. Âîò êàê îíè áóäóò ðàáîòàòü ïðè îïðåäåëåííûõ äåéñòâèÿõ:

Êîìàíäà Õîäîâîé äâèãàòåëü Äâèãàòåëü ïîâîðîòà
âïåðåä (F) âïåðåä ñòîï
âïåðåä-âïðàâî (FR) âïåðåä âïåðåä
âïåðåä-âëåâî (FL) âïåðåä íàçàä
íàçàä (B) íàçàä ñòîï
íàçàä-âïðàâî (BR) íàçàä âïåðåä
íàçàä-âëåâî (BL) íàçàä íàçàä
íàçàä-âëåâî (BL) ñòîï ñòîï

Èñïîëüçóåìûå ðàäèîýëåìåíòû â ñõåìå:

Ìèêðîêîíòðîëëåð AT90S2313

Ìèêðîñõåìà L293D (îòå÷åñòâåííûé àíàëîã - ÊÐ1128ÊÒ4À)

2 ôîòîðåçèñòîð ÑÔ3-1

Êâàðö íà 4ÌÃö

Êîíäåíñàòîðû 22-24 ïÔ

Ñòàáèëèçàòîð 7805 (èëè ÊÐÅÍ5À)

Ðåçèñòîð 100 Îì (Îïöèîíàëüíî)

Äâà ìîòîðà

Ïèòàíèå Vbat - 4áàòàðåéêè ïàëü÷èêîâûå, èëè 1 êðîíà (9Â)

Ïèòàíèå Vm - 1êðîíà (9Â)

Ïîñëå ñáîðêè ñõåìû, íåîáõîäèìî çàãðóçèòü ïðîãðàììó â ìèêðîêîíòðîëëåð è ðîáîò ãîòîâ:

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

Chip type : AT90S2313

Clock frequency : 4,000000 MHz

Memory model : Tiny

External SRAM size : 0

Data Stack size : 32

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

#include <90s2313.h>

#include <stdlib.h>

#include <delay.h>

// íàçíà÷åíèå îïðåäåëåíèé äëÿ óäîáñòâà ðàáîòû ñ ïåðèôåðèåé

#define OUT PORTB

#define MOTOR_F 7

#define MOTOR_B 6

#define TURN_R 5

#define TURN_L 4

#define IN PIND

#define LIGHT_R 0

#define LIGHT_L 1

#define BUMPER_F 2

#define BUMPER_B 3

// Âîçìîæíûå ðåæèìû äâèæåíèÿ

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

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

// Çàäåðæêà t õ 10ms

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

void Delay_10ms(unsigned char t)

{char i;

for(i=0;i<t;i++) delay_ms(10);}

// òàáëèöà âåðîÿòíîñòåé äëÿ âûáîðà íàïðàâëåíèÿ äâèæåíèÿ

// èñõîäÿ èç òåêóùåãî íàïðàâëåíèÿ äâèæåíèÿ

unsigned char 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};

// òåêóùåå íàïðàâëåíèå äâèæåíèÿ

unsigned char this_move;

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

// Âêëþ÷åíèå êîìáèíàöèè ìîòîðîâ äëÿ äâèæåíèÿ â çàäàííîì íàïðàâëåíèè

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

void go(unsigned char direction){

switch (direction) {

case STOP:

OUT.MOTOR_F=0;

OUT.MOTOR_B=0;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

case F:

OUT.MOTOR_F=1;

OUT.MOTOR_B=0;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

case FR:

OUT.MOTOR_F=1;

OUT.MOTOR_B=0;

OUT.TURN_R=1;

OUT.TURN_L=0;

break;

case FL:

OUT.MOTOR_F=1;

OUT.MOTOR_B=0;

OUT.TURN_R=0;

OUT.TURN_L=1;

break;

case B:

OUT.MOTOR_F=0;

OUT.MOTOR_B=1;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

case BR:

OUT.MOTOR_F=0;

OUT.MOTOR_B=1;

OUT.TURN_R=1;

OUT.TURN_L=0;

break;

case BL:

OUT.MOTOR_F=0;

OUT.MOTOR_B=1;

OUT.TURN_R=0;

OUT.TURN_L=1;

break;

}

}

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

// Âûáîð íàïðàâëåíèÿ äâèæåíèÿ â ñëåäóþùåì øàãå ïî òàáëèöå âåðîÿòíîñòåé

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

unsigned char next_move(void){

unsigned char pp, i;

pp = rand()/327; // ïîëó÷àåì ñëó÷àéíîå ÷èñëî 0..99

for (i=0;i<7;i++){ // èùåì ñîîòâåòñòâèå â òàáëèöå âåðîÿòíîñòåé

if (p[this_move][i] > pp) break;

}

this_move = i; // çàïèñûâàåì íîâîå ïîëó÷åííîå íàïðàâëåíèå êàê òåêóùåå

return(i);

}

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

// Îáðàáîòêà ïðåðûâàíèÿ îò ïåðåäíåãî áàìïåðà (INT0 = PD2)

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

interrupt [EXT_INT0] void ext_int0_isr(void)

{

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

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

else go(B);

Delay_10ms(250); // îòúåçä â òå÷åíèå 2.5 õ 2 ñåê

Delay_10ms(250);

this_move=B;

}

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

// Îáðàáîòêà ïðåðûâàíèÿ îò çàäíåãî áàìïåðà (INT1 = PD3)

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

interrupt [EXT_INT1] void ext_int1_isr(void)

{

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

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

else go(F);

Delay_10ms(250); // îòúåçä â òå÷åíèå 2.5 õ 2 ñåê

Delay_10ms(250);

this_move=F;

}

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

// "Ñëó÷àéíîå áëóæäàíèå"

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

unsigned char walk(void){

// ýòîò öèêë îðãàíèçóåò "ñâîáîäíîå áëóæäàíèå" ïîêà

// íåò ñèãíàëà íè îò îäíîãî èç äàò÷èêîâ îñâåùåííîñòè

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

go(next_move()); // ïîëó÷àåì ñëåäóþùåå íàïðàâëåíèå äâèæåíèÿ è

Delay_10ms(250); // äâèæåìñÿ â ýòîì íàïðàâëåíèè 2.5 ñåê

}

// ýòîò öèêë îðãàíèçóåò äâèæåíèå íà ñâåò, ïîêà

// åñòü ñèãíàë õîòÿ áû îò îäíîãî èç äàò÷èêîâ îñâåùåííîñòè

while((IN.LIGHT_R==0) || (IN.LIGHT_L==0)){

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

else if(IN.LIGHT_R==0) go(FR);

else if(IN.LIGHT_L==0) go(FL);

}

return(0);

}

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

// Ãëàâíàÿ ïðîãðàììà

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

void main(void)

{

DDRB = 0xff; // íàçíà÷àåì âñå ëèíèè ïîðòà B íà âûõîä

PORTB = 0x00; // è óñòàíàâëèâàåì íà íèõ íèçêèé óðîâåíü

DDRD = 0x00; // íàçíà÷àåì âñå ëèíèè ïîðòà D íà âõîä

PORTD = 0xff; // ïîäêëþ÷àåì âíóòðåííèå íàãðóçî÷íûå ðåçèñòîðû

// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

// INT1: On

// INT1 Mode: Falling Edge

GIMSK=0xC0;

MCUCR=0x0A;

GIFR=0xC0;

// ðàçðåøàåì ïðåðûâàíèÿ

#asm("sei")

// çàïóñêàåì ãëàâíûé öèêë

while(1) walk();

}

Ñêà÷àòü ïðîãðàììó, ôàéë ïðîøèâêè è ñõåìó ðîáîòà â ôîðìàòå sPlan

Ïóáëèêàöèÿ: cxem.net

Ñìîòðèòå äðóãèå ñòàòüè ðàçäåëà Àïïàðàòóðà ðàäèîóïðàâëåíèÿ.

×èòàéòå è ïèøèòå ïîëåçíûå êîììåíòàðèè ê ýòîé ñòàòüå.

<< Íàçàä

Ïîñëåäíèå íîâîñòè íàóêè è òåõíèêè, íîâèíêè ýëåêòðîíèêè:

Íàéòè íåñòàíäàðòíîå ðåøåíèå ïîìîæåò äíåâíîé ñîí 10.07.2025

Êîãäà çàäà÷è êàæóòñÿ íåðàçðåøèìûìè, à èäåè íå ïðèõîäÿò â ãîëîâó, îäíèì èç ýôôåêòèâíûõ ñïîñîáîâ ñòèìóëÿöèè ìûøëåíèÿ ìîæåò îêàçàòüñÿ... äíåâíîé ñîí. Íîâîå èññëåäîâàíèå, ïðîâåäåííîå â Èíñòèòóòå ðàçâèòèÿ ÷åëîâåêà îáùåñòâà Ìàêñà Ïëàíêà â Áåðëèíå, ïîêàçûâàåò, ÷òî äàæå êîðîòêèé îòäûõ, îñîáåííî åñëè îí äîñòèãàåò îïðåäåëåííîé ñòàäèè ñíà, ñïîñîáåí çíà÷èòåëüíî ïîâûñèòü êðåàòèâíîñòü è óëó÷øèòü ñïîñîáíîñòü ê àíàëèòè÷åñêîìó ìûøëåíèþ. Àâòîðû ýêñïåðèìåíòà ñîñðåäîòî÷èëè âíèìàíèå íà âòîðîé ñòàäèè ñíà, èçâåñòíîé êàê N2.  ýòîò ìîìåíò ìîçãîâàÿ àêòèâíîñòü çàìåäëÿåòñÿ, à õàðàêòåðíûå ýëåêòðè÷åñêèå èìïóëüñû, òàê íàçûâàåìûå ñîííûå âåðåòåíà, ñâèäåòåëüñòâóþò î òîì, ÷òî ìîçã àêòèâíî îáðàáàòûâàåò ïîëó÷åííóþ ðàíåå èíôîðìàöèþ. Èññëåäîâàòåëè ñ÷èòàþò, ÷òî èìåííî â ýòîì ñîñòîÿíèè ìîçã ëó÷øå âñåãî îòäåëÿåò âàæíûå äåòàëè îò âòîðîñòåïåííûõ, ôîðìèðóÿ òåì ñàìûì îñíîâó äëÿ âíåçàïíûõ îçàðåíèé - òîãî ñàìîãî "ýôôåêòà ýâðèêè".  õîäå ðàáîòû ó÷åíûå ïðèâëåêëè 90 äîáðîâîëüöåâ â âîçðàñòå îò 18 äî 35 ëåò. Ó÷àñòíèêàì ïðåäëîæèëè ...>>

Ïîëíîðàçìåðíûå íàóøíèêè Nothing Headphone (1) 10.07.2025

Êîìïàíèÿ Nothing, ïðîñëàâèâøàÿñÿ îðèãèíàëüíûìè ðåøåíèÿìè â äèçàéíå è èíòåðôåéñå, ïðåäñòàâèëà ñâîå ïåðâîå ïîëíîðàçìåðíîå óñòðîéñòâî - íàóøíèêè Headphone (1), îáúåäèíèâ ýñòåòèêó ïðîçðà÷íîñòè ñ âûñîêîêëàññíûì çâóêîì. Headphone (1) ñðàçó ïðèâëåêàþò âíèìàíèå íåîáû÷íûì âíåøíèì âèäîì. Èõ ÷àøêè âûïîëíåíû â ôîðìå òàê íàçûâàåìîãî "ñêâåðêëà" - äèçàéíåðñêîãî ãèáðèäà êðóãà è êâàäðàòà. Ïîëóïðîçðà÷íûå ýëåìåíòû ÷àñòè÷íî îòêðûâàþò âíóòðåííþþ êîíñòðóêöèþ, à ëåãêèé àëþìèíèåâûé êîðïóñ äåëàåò óñòðîéñòâî íå òîëüêî âèçóàëüíî ëåãêèì, íî è êîìôîðòíûì ïðè íîøåíèè. Ïðè âåñå âñåãî 329 ãðàììîâ íàóøíèêè âûãëÿäÿò è îùóùàþòñÿ ïðåìèàëüíî. Êîíöåïöèÿ ñîçäàâàëàñü â ñîòðóäíè÷åñòâå ñ áðèòàíñêèì áðåíäîì KEF - ïðèçíàííûì ýêñïåðòîì â îáëàñòè àóäèîòåõíèêè. Îäèí èç íàèáîëåå îáñóæäàåìûõ àñïåêòîâ íîâèíêè - êà÷åñòâî çâó÷àíèÿ. Íàóøíèêè îñíàùåíû 40-ìèëëèìåòðîâûìè äèíàìè÷åñêèìè äðàéâåðàìè, îáåñïå÷èâàþùèìè íàñûùåííûå áàñû è âûðàçèòåëüíóþ äåòàëèçàöèþ. Àäàïòèâíàÿ ñèñòåìà íàñòðîéêè íèçêèõ ÷àñòîò ïîäñòðàèâàåòñÿ ïîä èíäèâèäóàëüíîå âî ...>>

Ìàññîâûé âûëîâ èçìåíèë îáëèê áàëòèéñêîé òðåñêè 09.07.2025

×åëîâå÷åñêîå âìåøàòåëüñòâî â ïðèðîäó ÷àñòî îñòàâëÿåò ñëåäû, êîòîðûå íå âèäíî ñðàçó. Îäíàêî â íåêîòîðûõ ñëó÷àÿõ ïîñëåäñòâèÿ ñòàíîâÿòñÿ î÷åâèäíûìè íå òîëüêî ïî âíåøíåìó âèäó æèâîòíûõ, íî è íà óðîâíå èõ ÄÍÊ. Òàê ïðîèçîøëî ñ áàëòèéñêîé òðåñêîé - êîãäà-òî êðóïíîé è ìíîãî÷èñëåííîé ðûáîé, ñåãîäíÿ îíà èçìåíèëàñü äî íåóçíàâàåìîñòè. Íîâîå èññëåäîâàíèå ïîêàçàëî: ÷ðåçìåðíûé ëîâ íå ïðîñòî ñîêðàòèë åå ÷èñëåííîñòü, íî è âûçâàë ãåíåòè÷åñêóþ ïåðåñòðîéêó. Òðåñêà íåêîãäà ñ÷èòàëàñü âàæíåéøèì ïðîìûñëîâûì âèäîì â Áàëòèéñêîì ìîðå. Ðûáàêè äîáûâàëè åå â îãðîìíûõ êîëè÷åñòâàõ, è âçðîñëûå îñîáè íåðåäêî äîñòèãàëè ìåòðà â äëèíó. Îäíàêî óæå â íàøè äíè ñðåäíèé ðàçìåð òðåñêè óïàë ïî÷òè âäâîå. Ó÷åíûå èç íåìåöêîãî èíñòèòóòà GEOMAR ïðèøëè ê âûâîäó, ÷òî âèíîâàò â ýòîì íå òîëüêî ýêîëîãè÷åñêèé êðèçèñ, íî è åñòåñòâåííûé îòáîð, âûçâàííûé èìåííî äåÿòåëüíîñòüþ ÷åëîâåêà. Ãåíåòè÷åñêèå èçìåíåíèÿ ñòàëè ðåàêöèåé íà äàâëåíèå ñî ñòîðîíû ïðîìûøëåííîãî ðûáîëîâñòâà. Îäíèì èç êëþ÷åâûõ îòêðûòèé ñòàëî òî, ÷òî ó âîñòî÷íîáàëòèéñêîé òðåñ ...>>

Ñëó÷àéíàÿ íîâîñòü èç Àðõèâà

Òðàíñèâåðû RS485 íå òðåáóþò èñïîëüçîâàíèÿ ñîãëàñóþùèõ ðåçèñòîðîâ 22.06.2006

Êîìïàíèÿ Linear Technology ïðåäñòàâèëà äâå íîâûå ìèêðîñõåìû: LTC2859 è LTC2861, êîòîðûå ïðåäñòàâëÿþò ñîáîé ïîëóäóïëåêñíûé è ïîëíîäóïëåêñíûé òðàíñèâåðû RS485, èõ îòëè÷èòåëüíîé îñîáåííîñòüþ ÿâëÿåòñÿ íàëè÷èå âñòðîåííîãî ïîäêëþ÷àåìîãî ñîãëàñóþùåãî ðåçèñòîðà.

Òðàäèöèîííî ïðè ñîçäàíèè ñåòåé íà îñíîâå ïðîòîêîëà RS485 ïîëüçîâàòåëü áûë äîëæåí ñàìîñòîÿòåëüíî óñòàíàâëèâàòü ñîãëàñóþùèå ðåçèñòîðû ñîïðîòèâëåíèåì 120 Îì. Ìåñòà èõ óñòàíîâêè îïðåäåëÿëèñü â çàâèñèìîñòè îò òîïîëîãèè ñîåäèíèòåëüíûõ ëèíèé è îò ðàñïîëîæåíèÿ óçëîâ ñåòè. Ïî ìåðå ðàñøèðåíèÿ ñåòè ïîëüçîâàòåëü áûë äîëæåí óñòàíàâëèâàòü äîïîëíèòåëüíûå ñîãëàñóþùèå ðåçèñòîðû.

Óïðàâëÿþùàÿ ïðîãðàììà èìååò âîçìîæíîñòü ïîäêëþ÷àòü òåðìèíèðóþùèå ðåçèñòîðû â òðàíñèâåðàõ LTS2859/LTS2861, ïðè ýòîì îáåñïå÷èâàåòñÿ ñîãëàñîâàíèå äëÿ íóæíîãî êîëè÷åñòâà óçëîâ ñåòè - áåç êàêîãî-ëèáî ôèçè÷åñêîãî ó÷àñòèÿ ñî ñòîðîíû ïîëüçîâàòåëÿ.

Äðóãèå èíòåðåñíûå íîâîñòè:

▪ Òåëåâèçîðû Sharp è Pioneer ïðèçíàíû ñàìûìè ýêîëîãè÷íûìè

▪ Áàêòåðèè, êîòîðûå åäÿò ãðÿçü è äûøàò ýëåêòðè÷åñòâîì

▪ ×àñû óïðàâëÿþò òåëåâèçîðîì

▪ ÈÈ äëÿ áûñòðîãî ïîèñêà ëåêàðñòâ

▪ Ãèáêàÿ êåðàìèêà

Ëåíòà íîâîñòåé íàóêè è òåõíèêè, íîâèíîê ýëåêòðîíèêè

 

Èíòåðåñíûå ìàòåðèàëû Áåñïëàòíîé òåõíè÷åñêîé áèáëèîòåêè:

▪ ðàçäåë ñàéòà Ñïðàâî÷íèê ýëåêòðèêà. Ïîäáîðêà ñòàòåé

▪ ñòàòüÿ Î áåäíîì ãóñàðå çàìîëâèòå ñëîâî. Êðûëàòîå âûðàæåíèå

▪ ñòàòüÿ Ïî÷åìó àññåíèçàòîðîâ íàçûâàþò çîëîòàðÿìè? Ïîäðîáíûé îòâåò

▪ ñòàòüÿ Êîíòðîëåð-áèëåòåð, ãàðäåðîáùèê. Òèïîâàÿ èíñòðóêöèÿ ïî îõðàíå òðóäà

▪ ñòàòüÿ Ñûð. Ïðîñòûå ðåöåïòû è ñîâåòû

▪ ñòàòüÿ Ãåíåðàòîð ïîäìàãíè÷èâàíèÿ. Ýíöèêëîïåäèÿ ðàäèîýëåêòðîíèêè è ýëåêòðîòåõíèêè

Îñòàâüòå ñâîé êîììåíòàðèé ê ýòîé ñòàòüå:

Èìÿ:


E-mail (íå îáÿçàòåëüíî):


Êîììåíòàðèé:





Ãëàâíàÿ ñòðàíèöà | Áèáëèîòåêà | Ñòàòüè | Êàðòà ñàéòà | Îòçûâû î ñàéòå

www.diagram.com.ua

www.diagram.com.ua
2000-2025