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

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

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

<< Íàçàä

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

Àòîìíûé ñåêðåò âå÷íîãî áëåñêà çîëîòà 20.06.2026

Çîëîòî èçäàâíà ñ÷èòàåòñÿ ñèìâîëîì âå÷íîñòè è áëàãîðîäñòâà íå òîëüêî èç-çà ñâîåé ðåäêîñòè, íî è áëàãîäàðÿ óäèâèòåëüíîé õèìè÷åñêîé ñòîéêîñòè.  îòëè÷èå îò áîëüøèíñòâà ìåòàëëîâ, îíî íå îêèñëÿåòñÿ íà âîçäóõå, íå òóñêíååò è íå ïîêðûâàåòñÿ ðæàâ÷èíîé äàæå ñïóñòÿ òûñÿ÷åëåòèÿ. Ýòà óíèêàëüíàÿ èíåðòíîñòü ïîçâîëèëà çîëîòûì àðòåôàêòàì ñîõðàíÿòü ïåðâîçäàííûé áëåñê ñ äðåâíèõ âðåìåí. Îäíàêî òî÷íûé ìåõàíèçì òàêîé çàùèòû äîëãî îñòàâàëñÿ çàãàäêîé äëÿ ó÷åíûõ. Íåäàâíåå èññëåäîâàíèå àìåðèêàíñêèõ õèìèêîâ-âû÷èñëèòåëåé ðàñêðûëî, ÷òî äåëî íå ïðîñòî â ñëàáîì âçàèìîäåéñòâèè ñ êèñëîðîäîì, à â îñîáîé àòîìíîé ñòðóêòóðå ïîâåðõíîñòè ìåòàëëà. Ñîòðóäíèêè Òóëåéíñêîãî óíèâåðñèòåòà Ñàíòó Áèñâàñ è Ìýòüþ Ì. Ìîíòåìîð ïðîâåëè äåòàëüíîå êîìïüþòåðíîå ìîäåëèðîâàíèå, ÷òîáû ïîíÿòü, êàê ìîëåêóëû êèñëîðîäà âçàèìîäåéñòâóþò ñ ïîâåðõíîñòüþ çîëîòà. Ó÷åíûå ñðàâíèëè äâà îñíîâíûõ òèïà àòîìíûõ ñòðóêòóð: "ðåêîíñòðóèðîâàííûå" è "íåðåêîíñòðóèðîâàííûå" ïîâåðõíîñòè. Áûëî äîêàçàíî, ÷òî ïðèðîäíàÿ ñïîñîáíîñòü çîëîòà ê ïåðåñòðîéêå àòîìîâ èãðàåò êë ...>>

Ñìàðôîí Realme 16T 5G 20.06.2026

 ñåãìåíòå äîñòóïíûõ ñìàðòôîíîâ ñ àêöåíòîì íà äëèòåëüíóþ ðàáîòó áåç ïîäçàðÿäêè êîìïàíèÿ Realme ïðåäñòàâèëà èíòåðåñíóþ íîâèíêó - ìîäåëü Realme 16T 5G. Ãëàâíûì ïðåèìóùåñòâîì óñòðîéñòâà ñòàëà ïî-íàñòîÿùåìó âïå÷àòëÿþùàÿ áàòàðåÿ åìêîñòüþ 8000 ìÀ÷, êîòîðàÿ ñïîñîáíà îáåñïå÷èòü äî òðåõ äíåé àâòîíîìíîé ðàáîòû ïðè óìåðåííîì èñïîëüçîâàíèè. Ïðè ýòîì èíæåíåðàì óäàëîñü ñîõðàíèòü îòíîñèòåëüíî êîìïàêòíûé êîðïóñ òîëùèíîé ìåíåå 9 ìì è âåñ âñåãî 224 ãðàììà, ÷òî äåëàåò ñìàðòôîí óäîáíûì äëÿ ïîâñåäíåâíîãî íîøåíèÿ íåñìîòðÿ íà âíóøèòåëüíûé àêêóìóëÿòîð. Ñìàðòôîí îñíàùåí áîëüøèì 6,8-äþéìîâûì LCD-äèñïëååì ñ âûñîêîé ÷àñòîòîé îáíîâëåíèÿ 144 Ãö è ïèêîâîé ÿðêîñòüþ äî 1200 íèò. Òàêîå ñî÷åòàíèå îáåñïå÷èâàåò ïëàâíóþ êàðòèíêó â äèíàìè÷íûõ ñöåíàõ è êîìôîðòíîå âîñïðèÿòèå êîíòåíòà äàæå ïîä ïðÿìûìè ñîëíå÷íûìè ëó÷àìè. Çà ïðîèçâîäèòåëüíîñòü îòâå÷àåò ýíåðãîýôôåêòèâíûé ïðîöåññîð MediaTek Dimensity 6300, äîïîëíåííûé îïåðàòèâíîé ïàìÿòüþ LPDDR4X è íàêîïèòåëåì UFS 2.2. Äëÿ ýôôåêòèâíîãî îòâîäà òåïëà âî âðåìÿ ïðîäîëæèòåëüíûõ íàãðó ...>>

Ïðîáëåìà íàáîðà âåñà ïîñëå 40 19.06.2026

Ñ âîçðàñòîì ìíîãèå ëþäè çàìå÷àþò, ÷òî ïîääåðæèâàòü ïðèâû÷íûé âåñ ñòàíîâèòñÿ âñå ñëîæíåå, äàæå åñëè ðàöèîí è óðîâåíü àêòèâíîñòè ñóùåñòâåííî íå ìåíÿþòñÿ. Ó÷åíûå èç Êàðîëèíñêîãî èíñòèòóòà â Øâåöèè ðàñêðûëè îäíó èç êëþ÷åâûõ áèîëîãè÷åñêèõ ïðè÷èí ýòîãî ÿâëåíèÿ. Îíè ïîêàçàëè, ÷òî ñ ãîäàìè â æèðîâîé òêàíè çàìåäëÿåòñÿ ïðîöåññ îáíîâëåíèÿ ëèïèäîâ, èç-çà ÷åãî îðãàíèçì ïîñòåïåííî íàêàïëèâàåò æèð. Ýòî åñòåñòâåííîå âîçðàñòíîå èçìåíåíèå îáúÿñíÿåò, ïî÷åìó ïîñëå 40 ëåò òåëî íà÷èíàåò "ðàáîòàòü" èíà÷å, ñïîñîáñòâóÿ íàáîðó âåñà.  äîëãîñðî÷íîì èññëåäîâàíèè ñïåöèàëèñòû íàáëþäàëè çà æèðîâîé òêàíüþ 54 ìóæ÷èí è æåíùèí íà ïðîòÿæåíèè â ñðåäíåì 13 ëåò. Íåçàâèñèìî îò òîãî, íàáèðàëè ó÷àñòíèêè âåñ èëè, íàîáîðîò, õóäåëè, ó âñåõ áåç èñêëþ÷åíèÿ ñêîðîñòü ëèïèäíîãî îáìåíà â æèðîâûõ êëåòêàõ çàìåòíî ñíèæàëàñü. Æèð â êëåòêàõ îáíîâëÿåòñÿ âñå ìåäëåííåå, è ýòîò ïðîöåññ ïðîèñõîäèò àâòîìàòè÷åñêè ñ òå÷åíèåì âðåìåíè. Òå, êòî íå êîìïåíñèðîâàë çàìåäëåíèå óìåíüøåíèåì êàëîðèéíîñòè ïèòàíèÿ, â ñðåäíåì íàáèðàëè îêîëî 20% îò èñõîäíîãî â ...>>

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

Îïàñíûå ãðèáêîâûå îáëàêà 29.01.2020

Ó÷åíûå Êàëèôîðíèéñêîãî óíèâåðñèòåòà â Èðâàéíå (ÑØÀ) îáíàðóæèëè, ÷òî áîëüøîå ÷èñëî íàíî÷àñòèö, ñîäåðæàùèõñÿ â àòìîñôåðíîì âîçäóõå, ó÷àñòâóþùèõ â îáðàçîâàíèè îáëàêîâ è âûçûâàþùèõ ïîòåíöèàëüíî îïàñíóþ àñòìó ó ëþäåé, íà ñàìîì äåëå ÿâëÿþòñÿ ãðèáêîâûìè ñïîðàìè.

 2016 ãîäó èññëåäîâàòåëè â òå÷åíèå ìåñÿöà îòáèðàëè ïðîáû â Îêëàõîìå ñ ïîìîùüþ óñòðîéñòâà, êîòîðîå óëàâëèâàåò ÷àñòèöû äèàìåòðîì 20-60 íàíîìåòðîâ, à çàòåì ðàçìåùàåò èõ íà òîíêîé ïëàòèíîâîé íèòè. Ïîñëå èñïàðåíèÿ ìîëåêóë ìàññ-ñïåêòðîìåòð âûñîêîãî ðàçðåøåíèÿ ïðîàíàëèçèðîâàë ïîëó÷åííûå ãàçû, óñòàíîâèâ èõ õèìè÷åñêèé ñîñòàâ.

Ïî ñëîâàì ó÷åíûõ, ïîïàâøèå â âîçäóõ ñïîðû âïèòûâàþò âîäó, íàáóõàþò è ðàçðûâàþòñÿ íà ôðàãìåíòû äèàìåòðîì 30 íàíîìåòðîâ, êîòîðûå íàìíîãî ìåíüøå êëåòîê, ÷åé äèàìåòð äîñòèãàåò òûñÿ÷è íàíîìåòðîâ. Ýòè ÷àñòèöû ñïîñîáíû íàìíîãî ãëóáæå ïðîíèêàòü â ëåãêèå. Âîçìîæíàÿ àëëåðãåííîñòü ôðàãìåíòîâ ñïîð îáúÿñíÿåò, ïî÷åìó ó íåêîòîðûõ ëþäåé âîçíèêàþò ïðèñòóïû àñòìû âî âðåìÿ äîæäåé.

Íàíî÷àñòèöû ìîãóò èãðàòü ðîëü ÿäåð, ê êîòîðûì ïðèñîåäèíÿþòñÿ ìîëåêóëû âîäû. Òåì ñàìûì îáðàçóþòñÿ ëåäÿíûå êðèñòàëëû, ôîðìèðóþùèå, â ñâîþ î÷åðåäü, îáëàêà.

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

▪ Ðàáî÷àÿ ñòàíöèÿ Toshiba Tecra W50 ñ ýêðàíîì Ultra HD 4K

▪ Äóõè, çàìåíÿþùèå êîôå

▪ Âûðàùåí ñâåòÿùèéñÿ êàðòîôåëü

▪ Ôîòîêîìïàêòû Sony Cyber-shot DSC-WX500 è DSC-HX90V

▪ Øëÿãåðû îò êîìïüþòåðà

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

 

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

▪ ðàçäåë ñàéòà Èñòîðèè èç æèçíè ðàäèîëþáèòåëåé. Ïîäáîðêà ñòàòåé

▪ ñòàòüÿ Ïûëü âåêîâ. Êðûëàòîå âûðàæåíèå

▪ ñòàòüÿ Íà ñêîëüêèõ ìàòåðèêàõ ìîæíî âñòðåòèòü ñðåäèçåìíîìîðñêèé êëèìàò? Ïîäðîáíûé îòâåò

▪ ñòàòüÿ Ðåäàêòîð-äèêòîð íîâîñòåé ðàäèîñòàíöèè. Äîëæíîñòíàÿ èíñòðóêöèÿ

▪ ñòàòüÿ Óëüòðàëèíåéíûé óñèëèòåëü ñ ìèêðîôîííûì âõîäîì. Ýíöèêëîïåäèÿ ðàäèîýëåêòðîíèêè è ýëåêòðîòåõíèêè

▪ ñòàòüÿ Êðåïêèé ñïè÷å÷íûé êîðîáîê. Ñåêðåò ôîêóñà

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

Èìÿ:


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


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





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

www.diagram.com.ua

www.diagram.com.ua
2000-2026