Motion Simulator!

Gewoon even offtopic praten over van alles en nog wat.

Moderator: Moderators

Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

Snap er ff niets van....
7 van de 8 steppers doen het...

maar 1 dus niet... maar ook als ik op de Nucleo zelf meet doen die 2 outputs niets....?

Code: Selecteer alles

#define LED_BUILTIN_Green PA5
#define oDir1 PC1
#define oStep1 PC0
#define oDir2 PC3
#define oStep2 PC2
#define oDir3 PC10
#define oStep3 PC11
#define oDir4 PC13
#define oStep4 PC12
#define oDir5 PC15
#define oStep5 PC14
#define oDir6 PC5
#define oStep6 PC4
#define oDir7 PC7
#define oStep7 PC6
#define oDir8 PC9
#define oStep8 PC8
Alle outputs doen het alleen PC14 en PC15 niet?
Is er met deze outputs iets anders, als alle andere?

nou maar ff verder zoeken....
http://www.arjan-swets.com (met cnc filmpjes)
hfjbuis
Donateur
Berichten: 3057
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: Motion Simulator!

Bericht door hfjbuis »

Niet alle pinnen van een processor zijn beschikbaar. Sommigen dienen voor een USB of debug aansluiting of hebben geen output functionaliteit.
Je zult in de datasheet van de processor moeten kijken welke functionaliteit er op een Pin zit.
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

Afbeelding

ja ik heb deze gebruikt.. maar daar zie ik toch niets bijzonders?
PC13 doet het wel.. en PC 14 en PC15 niet...?

Afbeelding

PC14 en PC15 geven wel beide dat NC by default SB48 opened?
wat betekend dat?

heb ik weer precies 2 pinnen gekozen waar wat bijzonders mee is?
http://www.arjan-swets.com (met cnc filmpjes)
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

Afbeelding

Vond wel dit... dus ik denk dat ik maar ff 2 andere pinnen kies... :-)
Heb aan de onderkant van de print PA0 en PA1 doorverbonden aan PC14 enPC15, ik dacht als ze Not Connected zijn, maakt dat volgens mijn niet zo veel uit... en nu draaien al me steppers.... dus ook weer opgelost....

ben bijna weer net zo ver als ik was... nu alleen met een andere controller....
wel hoorde ik al, dat de motors veel sneller draaide als met de Arduino Due...
ben benieuwd.....
http://www.arjan-swets.com (met cnc filmpjes)
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

Zo dat scheelt wel...


Dit was de Arduino Due,


en dit is de Nucleo F446Re
en ik heb hier nog even wat tijd in gemaakt... omdat ik er anders bang van werd...
verder is het programma nog het zelfde....
nu eens kijken of we het mooier kunnen krijgen..... Leuk... :-)
http://www.arjan-swets.com (met cnc filmpjes)
hfjbuis
Donateur
Berichten: 3057
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: Motion Simulator!

Bericht door hfjbuis »

Ik had niet gedacht dat het verschil tussen 80 (duo) en 180 MHz (nucleo) zo groot zou zijn. Mogelijk dat het verschil zo groot is omdat de duo geen FPU heeft.
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

ja waar het door komt weet ik ook niet...
maar het programma is het zelfde....
ik heb hier zelfs nog een delay in gezet van 10ms geloof ik... wat ging zo hard....
alle touwtjes vlogen om me oren.... :-)
http://www.arjan-swets.com (met cnc filmpjes)
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

Afbeelding

Dit snap ik even niet... 100/6562 =0,015239

maar de serial print laat 0,02 zien?

iemand enig idee?
http://www.arjan-swets.com (met cnc filmpjes)
hfjbuis
Donateur
Berichten: 3057
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: Motion Simulator!

Bericht door hfjbuis »

Swets schreef: 09 jan 2023 23:03 Dit snap ik even niet... 100/6562 =0,015239
maar de serial print laat 0,02 zien?
Afgerond is dat 0.02. Voor een double is het default format blijkbaar 2 decimalen.

Wil je een ander formaat, dan kun je het getal eerst formatteren met dtostrf() en dit vervolgens printen.
dtostrf gebruikt een buffer om de string in op te slaan. Hier een voorbeeld met 3 decimalen en een minimum breedte van 8 karakters.

Code: Selecteer alles

 int reading = analogRead(sensorPin);
  float voltage = reading * 5.0;
  voltage /= 1024.0;  
float  temperatureC = (voltage) * 100;
char buffer[18];
String tem = dtostrf(temperatureC, 8, 3, buffer);
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

maar in het programma wordt er wel echt gerekend met het onafgeronde getal?
het is puur alleen serial print?
http://www.arjan-swets.com (met cnc filmpjes)
hfjbuis
Donateur
Berichten: 3057
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: Motion Simulator!

Bericht door hfjbuis »

Swets schreef: 10 jan 2023 07:38 maar in het programma wordt er wel echt gerekend met het onafgeronde getal?
het is puur alleen serial print?
Het is alleen de print die afgerond wordt.
There are only 2 limits, the sky and your imagination
hfjbuis
Donateur
Berichten: 3057
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: Motion Simulator!

Bericht door hfjbuis »

Hier een link naar de grbl library voor het printen. Daar kun je code van kopiëren. Deze lib is niet gemaakt voor leesbaarheid maar maximale snelheid zonder andere bibliotheken te gebruiken.
https://github.com/MetalWorkerTools/grb ... bl/print.c

een stukje uit de lib voor het printen van een float:

Code: Selecteer alles

// Convert float to string by immediately converting to a long integer, which contains
// more digits than a float. Number of decimal places, which are tracked by a counter,
// may be set by the user. The integer is then efficiently converted to a string.
// NOTE: AVR '%' and '/' integer operations are very efficient. Bitshifting speed-up
// techniques are actually just slightly slower. Found this out the hard way.
void printFloat(float n, uint8_t decimal_places)
{
  if (n < 0) {
    serial_write('-');
    n = -n;
  }

  uint8_t decimals = decimal_places;
  while (decimals >= 2) { // Quickly convert values expected to be E0 to E-4.
    n *= 100;
    decimals -= 2;
  }
  if (decimals) { n *= 10; }
  n += 0.5; // Add rounding factor. Ensures carryover through entire value.

  // Generate digits backwards and store in string.
  unsigned char buf[13];
  uint8_t i = 0;
  uint32_t a = (long)n;
  while(a > 0) {
    buf[i++] = (a % 10) + '0'; // Get digit
    a /= 10;
  }
  while (i < decimal_places) {
     buf[i++] = '0'; // Fill in zeros to decimal point for (n < 1)
  }
  if (i == decimal_places) { // Fill in leading zero, if needed.
    buf[i++] = '0';
  }

There are only 2 limits, the sky and your imagination
Gebruikersavatar
Swets
Berichten: 2661
Lid geworden op: 09 feb 2007 21:49
Locatie: krimpen aan den IJssel
Contacteer:

Re: Motion Simulator!

Bericht door Swets »

bedankt weer, ik ga het bekijken!
http://www.arjan-swets.com (met cnc filmpjes)
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Motion Simulator!

Bericht door hugo stoutjesdijk »

hfjbuis schreef: 10 jan 2023 10:03
Swets schreef: 10 jan 2023 07:38 maar in het programma wordt er wel echt gerekend met het onafgeronde getal?
het is puur alleen serial print?
Het is alleen de print die afgerond wordt.
Vind ik eerlijk gezegd wel heel merkwaardig. Heb in m'n hele programmeer carrière (die eigenlijk niet zoveel voorsteld) nog nooit mee gemaakt. Blijkbaar nooit te oud om te leren. :mrgreen:
Ik zou voor het printen die Procent100 even met 1000 vermenigvuldigen voordat ie geprint wordt, dan weet je het zeker.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Plaats reactie