RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 Brauche idee zur Umsetzung meines Programms

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: Brauche idee zur Umsetzung meines Programms

Aw: Brauche idee zur Umsetzung meines Programms 11 Jahre 7 Monate her #1454

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo,

inzwischen habe ich die Funktion copro_ready getestet und verbessert.
Manchmal wird der letzte Schritt an einem Rad nicht ausgeführt, weil der Widerstand zu hoch ist.

void copro_ready(void) {
uint8_t i=0; //Zähler für vorzeitigem Abbruch
do {
delay(200);
copro_update();
if (abs(copro_target_distance) < 2) i++;
if (i == 20) return; // Vorzeitiger Abbruch.

} while (copro_target_distance != 0);
}


Georg
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Brauche idee zur Umsetzung meines Programms 11 Jahre 7 Monate her #1464

  • Henry
  • Henrys Avatar
  • OFFLINE
  • Senior Boarder
  • Beiträge: 37
Danke für Eure Ideen :clap:

Habe diese aber noch nicht ausprobiert. Zu wenig Zeit!

Gruß Henry
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Brauche idee zur Umsetzung meines Programms 11 Jahre 6 Monate her #1512

  • Henry
  • Henrys Avatar
  • OFFLINE
  • Senior Boarder
  • Beiträge: 37
Hallo!
Leider lässt sich dieses in meinen Programm nicht umsetzen.

An für sich erscheint das simpel,aber ich hänge irgendwo fest!

Der Gedanke: Wenn Hindernis vorne liegend, dann Motor stop.Wenn weniger als 10sec.(Hindernis wird entfernt),normal die Linie weiterfahren.
Wenn Hindernis vorne liegend,dann Motor stop und Hindernis länger als 10 sec.dort liegt, dann um 180° wenden.


Mein Problem ist: Ich bekome die Zeit oder Zählung nicht eingebaut.Mit einer "while-schleife" klappt zwar die drehung,aber die Sensoren funktionieren nicht richtig und häng dann in dieser Schleife fest.Hab mit "break" und "continue"alles ausprobiert.Ohne erfolg!Bin zwar auf richtigen Weg,tritt aber irgendwie nur auf der Stelle.

Könntet Ihr mir helfen?

Meine Idee dazu:(1 von 7)

static char sec 0;
if(++sec)
{
sec=0;
}
intcounter=0;
if(copro_update())
{
for(uint8_t sensor=0;sensor<5;sensor++)
{
distances_qualitative[sensor]=(uint8_t)
(copro_distance[sensor]/256);
if((distances_quantitative[2]==2)&&(sec<=10))
{
copro_stop();
}
else if((distances_quantitative[2]==2)&&(sec>=10))
{
switch(++counter)
{
case 200:
copro_setTargetRel(-0x30,0x30,30);
break;

case290:
copro_stop();
counter=0;
break;
}
}
}
}

PS.Wie der obige Auszug(quellentext) funktioniert die drehung nicht.Könnte aber an der Zeit liegen!
Hat jemand Idee, wie ich die Zeit oder Counter oder Zählung so einbinden kann?
Mit "Sleep" und "delay" hatte ich ebenfalls schon ausprobiert(Ohne Erfolg:( )
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Brauche idee zur Umsetzung meines Programms 11 Jahre 6 Monate her #1514

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
static char sec 0;
if(++sec)
{
sec=0;
}
was soll denn hier passieren?
Wenn Du Dir einen Tick bauen willst, musst Du sec++ machen.-
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Brauche idee zur Umsetzung meines Programms 11 Jahre 6 Monate her #1515

  • Henry
  • Henrys Avatar
  • OFFLINE
  • Senior Boarder
  • Beiträge: 37
Hallo BirgerT

Wollte damit die Sekunden raufzählen.Zumindest hoffe ich das.
Würde das so funktionieren oder gibt es andere Lösungen?

Ps.Im Nibo tutorial unter "Ab die Post" ist z.B. switch (++counter)

Ich nehme an es spielt keine Rolle ob (++sec) oder (sec++).
Gruß
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Brauche idee zur Umsetzung meines Programms 11 Jahre 6 Monate her #1516

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Lieber Henry,
ich möchte Dir (und allen Einsteigern) ein Buch empfehlen - "Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie" von Günter Schmitt - oder dass C Tutorial auf mikrocontroller.net..
Hast Du denn schon mal die vorgeschlagene Änderung sec++ statt ++sec ausprobiert?
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.045 Sekunden

Werbung