Modul parkovacich senzorov / univerzalny "auto" modul

Pochváľte sa ostatným čo zaujímave ste vyrobili alebo práve vyrábate!

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
Duro
Stály člen
Stály člen
Príspevky: 458
Dátum registrácie: 30 Aug 2014, 21:36
Bydlisko: Bratislava
Vek: 37

Modul parkovacich senzorov / univerzalny "auto" modul

Príspevok od používateľa Duro » 31 Dec 2016, 17:54

PDC4v10_01.jpg
Kedze po dlhej dobe som popracoval na niecom nekomercnom, tak Vam predstavujem jedno moje zariadenie menom PDC4.

Cele to zacalo tak, ze som si chcel do auta domontovat parkovacie sezory, no mam zle skusenosti s cinskymi sadami a tak som sa na bazosi dostal som sa k original (VW) parkovacim ultrazvukovym senzorom za par eur. Vdaka zawinovemu clanku ako senzory komunikuju, som sa rozhodol postavit modul, kde budu senzory pripojene, budu obsahovat pipac a po zapnuti cuvacieho svetla modul dostane napajanie....
Po rychlom teste a skuske senzorov na vyvojovej doske, som sa rozhodol pre "esteticku" konstrukciu miesto akehosi spletenca vyvojovej DPS+bizuterie v aute.
Zacal som od krabicky. Z jedneho projektu mi ostalo par krabiciek zo switchu, ktora je kompaktnych rozmerov a ma na sebe male vetracie dierky, cez ktore dobre pojde zvuk z pipaku (reproduktoru). Rozhodol som sa teda pouzit tuto krabicku. Navyse mala aj oznacenie 1-5 (povodne porty) a 6x svetlovod na LED diodu, tiez s oznacenim.
Pri kresleni schemy som si povedal, ze ak pridam este par sucistok vznikne mi z toho celkom roznorode vyuzitelny modul.

Skoncilo to tym, ze mam v podstate univerzalny "auto" modul s klucovymi vlasnostami:
-modul ma 4x 12V vstupo/vystup (otvoreny kolektor) na pripojenie 12V signalov (napr meranie zapnutych svetiel), pripadne spinanie napr. rele (ochrana dioda je uz v module), LED...
-kazdy vstupo/vystup je pripojeny na vystup MCU, ktory vie pracovat v PWM mode
-kazdy vstupo/vystup je pripojeny na vstup MCU, ktory vie byt aj AD prevodnik
-na boku krabice je diera povodne na napajaci konektor a na DPS je miesto na osadenie 3pin uhloveho konektora do dvoch moznych hlbok a ziskat tak konektivitu UART alebo I2C (pull-up rezistory su v module). Napr na pre debug kabel, prepojenie s inymi modulmi..
-cez delic je napajacie napatie pripojene na AD prevodnik MCU, takze je mozne monitorovat napajacie (palubne) napatie a urobit si tak napr "odpojovac" niecoho pri nizkom napatie, resp modul denneho svietenia a pod..
-obsahuje bzuciak, ktory moze byt 5V, ale i 12V (nastavitelne zmenou polohy rezistora - prepojky).
-na miesto bzuciaku moze byt dokablovane i rele, resp reproduktor, kedze je zapojeny na PWM pin
-vo vnutri modulu je ISP konektor, ktory pri odpusteni si bzuciaku moze sluzit aj ako SPI port (SS sa da zobrat napr z LED5, v SPI slave mode by sa uz musel obetovat i port1)
-modul obsahuje DCDC menic na napajanie MCU s dostatocnou rezervou na napajanie pripadnych periferii.
-modul obsahuje polyswitch a transil ako vratnu ochranu pri pripadnom prepati/pretazni/prepolovani (napr skrate na vodicoch do senzorov)

Chcem len podotknut, ze pri inom ako planovanom pouziti, sa moze stat, ze niektore komponenty treba zamenit za ine, resp. ich vynechat. Schema ktoru prikladam teda neobsahuje jedine mozne hodnoty suciastok.
Co sa programu tyka, pouzivam moj program ktory nema nic spolocne so zawinovym prikladom, vsak nechcem ho zverejnovat, nakolko som v programovani zaciatocnik.
Ak by niekto mal o stavbu zaujem ostalo mi par DPS a tiez mam i par krabiciek.
Prílohy
PDC4v10_02.jpg
PDC4v10_03.jpg
PDC4v10_04.jpg
PDC4v10_05.jpg
PDC4v10_06.jpg
PDC4v10_07.jpg
PDC4v10_08.jpg
PDC4_v10SCH.jpg
0
Merať znamená vedieť.

Používateľov profilový obrázok
budvar10
Pokročilý člen
Pokročilý člen
Príspevky: 982
Dátum registrácie: 15 Dec 2014, 10:55
Bydlisko: Košice

Re: Modul parkovacich senzorov / univerzalny "auto" modul

Príspevok od používateľa budvar10 » 08 Jan 2017, 12:38

Veľmi pekne. :thumbup:
Slušne zapájkované. Páči sa mi, že si začal od krabičky a tým pádom je to pekný finálny výrobok.
Daj sem aj program, nehanbi sa. Čo na tom, že si začiatočník. Trochu kritiky snáď znesieš od rýpalov, a možno ti to pomôže z jeho vylepšením.
Za mňa +1.
0

Používateľov profilový obrázok
Duro
Stály člen
Stály člen
Príspevky: 458
Dátum registrácie: 30 Aug 2014, 21:36
Bydlisko: Bratislava
Vek: 37

Re: Modul parkovacich senzorov / univerzalny "auto" modul

Príspevok od používateľa Duro » 09 Jan 2017, 20:32

dik, za +, cakal som skor obvyklu miestnu kritiku..

Vacsina bizuterie je 0603, takze sa to da pajkovat normalou pajkou v pohode. Nie je to sice idealne ako reflow i ked raz by som si rad urobil piecku s ktorou by to malo byt o poznanie lepsie.

Sice nerad, ale pripajam teda aj kod (resp z neho) i ked by si z neho nikto nemal brat priklad, nakolko je to v podstate prvy funkcny pokus a nie je to zrovna ucesane. Navyse to funguje tak, ze sa urobia 4 merania, zisti sa ktore je najmensie a podla toho sa udeje spravne pipnutie (delayom). Tzn ked sa pipa, tak sa nemeria. Ale kedze sa cuva pomaly a beep nie je velmi dlhy, tak to neprekaza.


Main vyzera takto:

Kód: Vybrať všetko

int main(void)
{
	HWinit();

	while (1)
	{
		Led5On();
		uint8_t distancePDC1 = MeasurePDC1();
		_delay_ms(SILENT_TIME);

		uint8_t distancePDC2 = MeasurePDC2();
		_delay_ms(SILENT_TIME);
		Led5Off();

		uint8_t distancePDC3 = MeasurePDC3();
		_delay_ms(SILENT_TIME);

		uint8_t distancePDC4 = MeasurePDC4();
		_delay_ms(SILENT_TIME);

		uint8_t distanceMIN = 255;
		uint8_t distanceMINat = 0;

		if (distancePDC1<distanceMIN) {distanceMIN = distancePDC1; distanceMINat = 1;}
		if (distancePDC2<distanceMIN) {distanceMIN = distancePDC2; distanceMINat = 2;}
		if (distancePDC3<distanceMIN) {distanceMIN = distancePDC3; distanceMINat = 3;}
		if (distancePDC4<distanceMIN) {distanceMIN = distancePDC4; distanceMINat = 4;}

		if (distanceMIN<255)
		{
			if (distanceMINat == 1) {Led1On(); Led2Off(); Led3Off(); Led4Off();}
			if (distanceMINat == 2) {Led1Off(); Led2On(); Led3Off(); Led4Off();}
			if (distanceMINat == 3) {Led1Off(); Led2Off(); Led3On(); Led4Off();}
			if (distanceMINat == 4) {Led1Off(); Led2Off(); Led3Off(); Led4On();}
		}
		else {Led1Off(); Led2Off(); Led3Off(); Led4Off();}


		if (distanceMIN<DISTANCE_MINIMUM) BeepON();
		else if (distanceMIN<DISTANCE_BEEP1) PulseBeep1();
		else if (distanceMIN<DISTANCE_BEEP2) PulseBeep2();
		else if (distanceMIN<DISTANCE_BEEP3) PulseBeep3();
		else BeepOFF();		
		
	}
}
a meranie vyzera takto:

Kód: Vybrať všetko

uint8_t MeasurePDC1()
{
	MakePulsePDC1(); //make start pulse for PDC
	TCNT0 = 0; //reset timer
	while ((TCNT0 < 8)&&(PINC & (1<<PC0)) ); //wait to first falling edge generated by PDC or 8 on timer. This is used for check connected PDC.
	if (TCNT0>=8) return 255;//if timer ended at value specified above set distance to max (PDC not connected)
	else //else we can measure distance
	{
		TCNT0 = 0; //reset timer
		while (TCNT0 < MAXIMUM_PDC_TRANSMIT_TIME); //wait till low pulse generated by PDC should be at H. This is done to check if obstacle is not too close.
		if ((PINC & (1<<PC0))==0) return 0;//if pulse is held low return 0 as obstacle is too close
		while ((TCNT0 < 255)&&((PINC & (1<<PC0)) == 0) ); //wait to rising edge or 255 on timer
		if (TCNT0==255) return 255;//if timer ended distance is max (no rising edge found)
		while ((TCNT0 < 255)&&(PINC & (1<<PC0)) ); //wait to falling edge or 255 on timer
		if (TCNT0==255) return 255;//if timer ended distance is max
		else
		{
			return (TCNT0);//return TCNT0 as distance
		}
	}
	
	return 255; //should never happened
}
0
Merať znamená vedieť.

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Modul parkovacich senzorov / univerzalny "auto" modul

Príspevok od používateľa lh » 11 Jan 2017, 06:11

Pekné, len poznámka k tým vstupom. Málokedy je v palubnej sieti 12V. Bolo by ich treba nejako chrániť, aby si neodpísal ten MCU.
0

Používateľov profilový obrázok
budvar10
Pokročilý člen
Pokročilý člen
Príspevky: 982
Dátum registrácie: 15 Dec 2014, 10:55
Bydlisko: Košice

Re: Modul parkovacich senzorov / univerzalny "auto" modul

Príspevok od používateľa budvar10 » 11 Jan 2017, 08:04

Duro napísal:dik, za +, cakal som skor obvyklu miestnu kritiku..
Vacsina bizuterie je 0603, takze sa to da pajkovat normalou pajkou v pohode. Nie je to sice idealne ako reflow i ked raz by som si rad urobil piecku s ktorou by to malo byt o poznanie lepsie.
Hej sú tu takí.
0603 to je už len taký prach. Ja robím väčšinou s 1206. Stane sami, že mi to vystrelí z pinzety a už to nenájdem.
0

Používateľov profilový obrázok
zawin
Administrátor
Administrátor
Príspevky: 2639
Dátum registrácie: 17 Júl 2006, 00:00
Vek: 34
Kontaktovať používateľa:

Re: Modul parkovacich senzorov / univerzalny "auto" modul

Príspevok od používateľa zawin » 11 Jan 2017, 09:12

Pekná práca, teší ma že si sa inšpiroval mojim článkom :) Mohol by si spraviť krátke video ako to beží?
0
Sú dve veci, ktoré sú nekonečné - vesmír a ľudská hlúposť. Ale s vesmírom som si ešte nie celkom istý. /Einstein/

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok