Sida 3 av 7

Re: Gratis Logg mjukvara

Postat: 19 oktober 2011, 21:39:14
av lizerdboy
absolut, du lär behöva en MCU i mellan som tolkar data , men som sagt det vet du mer om när du får reda på vad den spottar ut.

hur ser anslutningen ut ? är det någon standard ?
annars så får du testa och mäta och se om du kan lista ut vilken pinne som agerar dataut om det är seriel förstås då

Re: Gratis Logg mjukvara

Postat: 19 oktober 2011, 21:51:59
av tecno
3-polig Tuchel så jag inbillar mig att det är analogt, så nåt måste till emellan till USB/Seriellt skulle jag tro.

Re: Gratis Logg mjukvara

Postat: 19 oktober 2011, 21:55:35
av lizerdboy
då är det bara att ta fram multimetern :)

precis antingen något som liknar thepirateboy´s kort eller liknande skulle funka bra.

Re: Gratis Logg mjukvara

Postat: 20 oktober 2011, 10:19:12
av jesse
Jag ska ut och resa, så jag får nog inga data loggade förrän i nästa vecka. Lyckades dock registrera programmet. (Det var 120 dpi på skärmen som ställde till det - jag är en sådan där jobbig användare som ändrar på sådant - skyller på att jag är närsynt :D )

Re: Gratis Logg mjukvara

Postat: 23 oktober 2011, 18:06:29
av Maxtruman
Jag har fått ta del av lizerdboy's logg mjukvara och kört lite tester idag på mitt vindkraftprojekt.
Vindkraftverket är ett hemmabygge med en turbin på 2.4m i diameter.
DSC_0033_small.jpg
Turbinen är kopplad till en likriktare och därefter till en växelriktare som omvandlar likströmmen till 230V 50Hz växelström.

Den stora utmaningen med det här projektet har jag upptäckt vara att få till en vettig lastbalansering. Vinden är väldigt dynamisk vilket får turbinen att skena om man inte har en tillräckligt hög last.
Lasten är i detta fall växelriktaren men den reglerar tyvärr inte tillräckligt snabbt för att kunna hantera de snabba variationerna i utspänningen från turbinen. Växelriktaren klarar bara upp till 100V sen smäller det.

Jag måste alltså bygga en egen regulator för att hålla spänningen på lagom nivå.
Till detta verkar Logg mjukvaran vara ett perfekt verktyg för att analysera "systemet".

Jag har än så länge bara kopplat upp på en labbplatta som består av: PIC16F876A + MAX232 + lite skyddskretsar som drar relän och bromsar turbinen om spänningen blir för hög.
I slutändan vill jag även mäta ström, varvtal mm.

Bild på labbplattan:
DSC_0032_small.jpg
Å här är en graf jag fick ut från loggern:
Capture4.PNG
Jag samplar inte så ofta men ville bara få det att funka först, sen får man väl fintrimma lite.
Jag fick det att funka i stort sätt omedelbart vilket får anses vara ett gott betyg! :)

/Jonas

Re: Gratis Logg mjukvara

Postat: 23 oktober 2011, 18:45:59
av lizerdboy
Det här en av dom roligaste bitarna, att se att programmet kommer till användning, och vilka projekt ideer som det används med :)

Härligt att se ett ordentligt projekt, har du en projekt tråd till vindsnurran ??
tips, du kan välja constant som Timer läge, nu försöker programmet kolla i RX bufferten var 5ms.
välj konstant med den tiden som du har i mellan varje data skick, 500ms


Jag skulle vara mer än glad om du kunde göra sänd rutinen som ett exempel program och posta/skicka till mig.
så kan jag lägga upp det så andra lättare kan förstå hur man får i gång det.

Re: Gratis Logg mjukvara

Postat: 24 oktober 2011, 13:41:27
av jesse
Har varit bortrest hittills, och har en tuff arbetsvecka framför mig, så när jag börjar testa vet jag inte .... men om jag gissar rätt så tar det lång tid.... hoppas det inte är 30 dagars begränsning på demoversionen... :roll:

Re: Gratis Logg mjukvara

Postat: 24 oktober 2011, 17:33:30
av lizerdboy
alla som har fått en nyckel har fått 200 dagar demo, sedan är det bara att höra av sig :)
grund tanken med tids begränsningen är att jag får en uppfattning hur stort intresset är efter en längre tid användning
och även kunna fråga om feedback.

Sista fliken kan man se hur många dagar man har kvar
Bild

Re: Gratis Logg mjukvara

Postat: 10 november 2011, 17:44:52
av dubbear
Har fått tid att komma igång med detta program nu, så här kommer en fråga.

Jag förstår inte hur data från uc'n skall vara formaterad,

Ska ja bara sicka rådata som chars?
och i så fall hur skiljer den på dom olika kurvorna?

Tacksam för svar, Hackar lite på en batteriladdare

Re: Gratis Logg mjukvara

Postat: 10 november 2011, 17:57:46
av lizerdboy
Tjena

Det du ska skicka är en sträng med den data du vill plotta,

Data1:Data2:Data3 osv

Data1 motsvarar kanal1 , osv

Alla data kanaler kan vara i olika format, detta ställer du in i "Input settings"
Bild

Det är viktigt att du använder ":" mellan varje data värde

upp till 8 stycken data värden kan skickas, detta ger max 8 kanaler som man kan plotta samtidigt.

När du skickat så många kanaler du vill plotta så avslutar du med hexadecimala tecknet 0x0A som motsvarar newline =/n = 0x0A

slutligen 2 kanaler
FF:00/n

4 kanaler
FF:A0:33:B1/n

jag skickar newline på det här sättet

Kod: Markera allt

Com_SendData(0x0A);       //  \n
Och min sänd rutin ser ut så här, lite slarvigt

Kod: Markera allt

		sprintf(dispStr_Logg ,"%X" , (signed int)(Angle * 10));
		send_command(dispStr_Logg, 0);
                send_command(":",0);

		sprintf(dispStr_Logg ,"%X" , (signed int)(P * 1));
		send_command(dispStr_Logg, 0);
                send_command(":",0);

		sprintf(dispStr_Logg ,"%X" , (signed int)(I * 1));
		send_command(dispStr_Logg, 0);
                send_command(":",0);

		sprintf(dispStr_Logg ,"%X" , (signed int)AngleWithoutDiff);
		send_command(dispStr_Logg, 0);
                send_command(":",0);

		sprintf(dispStr_Logg ,"%X" ,(signed int)AngleWithoutDiff);
		send_command(dispStr_Logg, 1);    <--- Motsvarar /n = 0x0A

sista raden så säger jag till att alla kanaler är skickade

Kod: Markera allt

send_command(dispStr_Logg, 1);    <--- Motsvarar /n = 0x0A
Och så skickas allt igen nästa omgång i loopen


Grovt så kan man se det så här
Det här tolkar programmet som 3 kanaler med en uppdaterings frekvens på 10Hz.

Kod: Markera allt


loop
{
      delay(100ms);

      send(ADC_ch1_value_inHexFormat);
      send(":");
      send(ADC_ch2_value_inHexFormat);
      send(":");
      send(ADC_ch3_value_inHexFormat);
      send(0x0A);
}
Hojta till om det är något som jag inte förklara bra eller bara svamligt :)

Re: Gratis Logg mjukvara

Postat: 10 november 2011, 18:20:14
av thepirateboy
Och får att förtydliga ännu en gång så måste man alltså göra om värdet till ASCII

För oss som inte har så häftiga MCU:er som kan köra sprintf, här är en liten kodsnutt

Kod: Markera allt

uint8_t adc_value = analog_read_ADC(0, INTERNAL_REF);
usb_serial_putchar(convert_digit(adc_value>>4));
usb_serial_putchar(convert_digit(adc_value));
usb_serial_putchar('\n');

uint8_t convert_digit(uint8_t c) 
{
    c &= 0x0f;
    c += (c <= 9) ? '0' : 'A'-10;
    return c;
}
Det här med att välja dataformat får jag inte riktigt ihop, var är t ex uChar ?

Re: Gratis Logg mjukvara

Postat: 10 november 2011, 18:24:53
av lizerdboy
char 8 bitar,1byte

signed: -128 to 127
unsigned: 0 to 255

Re: Gratis Logg mjukvara

Postat: 10 november 2011, 18:30:05
av lizerdboy
kollade upp min AVR kod

Kod: Markera allt

loop this 
{
		ItoH(Tempreture ,6,0);
		send_command(":",0);
		ItoH(HOT_DATA,6,0);
		send_command(":",0);
		ItoH(Temp_Set,6,1);
}




void ItoH(unsigned int num, char *str, unsigned char End) 
{
unsigned char i,val;

str[4]='\0';
for (i=3;i<4;i--) {
    val=num%16;
    if (val<10) str[i]='0'+val;
    else str[i]='A'+val-10;
    num=num>>4;
    }
	send_command(str,End); 
}



void send_command(char * command, char newline){

	unsigned char i=0;

	while(*(command+i)!='\0'){
		send_single_byte(*(command+i));
		i++;
	}

	if(newline == 0x01)
	{
		send_single_byte(0x0A);
	}
}


Re: Gratis Logg mjukvara

Postat: 10 november 2011, 18:32:54
av thepirateboy
Jo, jag vet inte om jag missuppfattat något men du visar ett exempel där man skickar två byte i ASCII-format:
FF:00/n
men det går inte att välja t ex uChar i listan.

Hur gör man t ex om man vill skicka en unsigned int (16bitar)
FF00/n ?? och i så fall vilken är höga och låga byten?

Eller har jag missat något totalt?

EDIT: ska kolla ditt senaste inlägg och se om jag blir klokare.

Re: Gratis Logg mjukvara

Postat: 10 november 2011, 18:38:47
av lizerdboy
haha nu fattar jag , det fanns inte Uchar :D
okay, det ska jag nog kunna fixa.


Det spelar ingen roll när det gäller unsigned värden då programmet inte ser någon skillnad när man skickar

0009
eller
09
eller
9

båda blir decimala värdet 9

så sätt inställningen på Uint ist så ska det funka


första tecknet är det högsta, tex 1234/n i hexadecimalt värde så ger det 4660 decimalt