Forum: Mikrocontroller und Digitale Elektronik didaktische Unterstützung bei einem kleinen, privaten Softwareprojekt gesucht


von Matthias H. (maethes26)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin dabei einen Atmel µ-Controller zu programmieren und tue mich 
damit allein sehr schwer.

Ich bin 34 Jahre alt und habe nur ein wenig Programmiergrundkenntnisse 
in C.


Ist hier jemand bereit  mir über Teamviewer oder noch besser persönlich 
kostenpflichtig zu helfen?
Ich bin bereit 50€ die Stunde zu bezahlen, z.B. mittels Paypal 
Sofortüberweisung.

Studenten der Informatik ab dem 3. Semester können mir sicher gut 
helfen. Erfahrungen mit µ-Controllern von Atmel wären hilfreich.

Ich benötige hauptsächlich Hilfe bei der Timeransteurung, einlesen von 
Tastatureingaben über ein Matrix-Tastenfeld, Analogauswertung und der 
strukturierten Programmierung z.B. mittels Funktionen, um das Wichtigste 
zu nennen.
Ich arbeite mit einem Atmega32, es kann aber gern auch noch gewechselt 
werden

Anbei habe ich auch schon eine Grafcet-Ablaufsteurung der Software 
erstellt, die ich mit Eurer Hilfe umsetzen möchte.


Meine private Emailadresse lautet: mathes.hamann@googlemail.com

Ich komme aus dem Raum Düsseldorf.


Viele Grüße und bis dann. ..

: Verschoben durch User
von Guest (Gast)


Lesenswert?

Spar dir das Geld, mach allein und frag hier im Forum nach Tipps und 
Anstößen in die richtige Richtung. Ist billiger und lernst mehr dabei.

von Matthias H. (maethes26)


Lesenswert?

Hallo Guest,

vielen Dank für Deine Antwort.

Ja, das Forum hilft einem sehr viel. Die Erfahrung habe ich auch schon 
sehr oft gemacht.

Dann hatte ich jemanden, der sich persönlich um mich per Teamviewer 
gekümmert und mich geführt hat.
Dadurch habe ich wichtige, grundlegende Arbeits- und programmierweisen 
gelernt, die ich so nicht hätte erfragen können.

Daher nun hier auch meine konkrete Frage bezüglich der Unterstützung.


Viele Grüße und Euch allen noch einen schönen Samstag Abend
wünschst Euch MAtthias aus Düsseldorf.

von SW (Gast)


Lesenswert?

Nimm vielleicht mal Kontakt zu einem Hackerspace o.ä. auf:

http://hackerspaces.org/wiki/Duesseldorf

Da findest Du sicher gleichgesinnte und auch welche, die dich gerne mal 
unter die Fittiche nehmen.

von Guest (Gast)


Lesenswert?

Matthias H. schrieb:
> Dann hatte ich jemanden, der sich persönlich um mich per Teamviewer
> gekümmert und mich geführt hat.
> Dadurch habe ich wichtige, grundlegende Arbeits- und programmierweisen
> gelernt, die ich so nicht hätte erfragen können.

Das liegt oft daran, dass die falschen Fragen gestellt werden. Die 
Fragenden haben sich schon irgendeine Struktur überlegt und wollen 
nurnoch wissen wie sie GENAU DAS implementieren. Eine Frage a la "Wie 
ziehe ich so ein Projekt auf?" liest man nur ganz selten.

In deinem Fall zB. wird das schon fast Threading wenn ich dein Diagramm 
richtig interpretiere. Deshalb würde ich für jede Hardware Funktion 
außer dem Timer eine art Lib, also ein C und H File erstellen, mit 
jeweils ähnlichen Funktionen und einem Vernünftigen Namensschema. zB 
soll jede Lib eine Funktion libname_init( void ); haben.
Außerdem eine Lib mit dem Timer als Thread Scheduler. Eventuell dafür 
dann nested Interrupts aktivieren, um eine vernünftige Zeitbasis zu 
haben. Man kann ja dann zu Funktionslaufzeit neue Threads sperren. Dann 
kannst du dein ganzes Diagramm da mehr oder weniger so implementieren 
wie dus hingemalt hast.

von Guest (Gast)


Lesenswert?

Achso, 50 Euro pro Stunde? Bist du Millionär? In 10 Stunden schafft man 
praktisch nix. 100 Mannstunden schon eher, macht 5000 Euro?

von Matthias H. (maethes26)


Lesenswert?

Hallo Gast,

dem Hackerspace Düsseldorf habe ich gestern aus diesem Grund einen 
Besuch abgestattet. :-)

Am ersten Abend hat sich bezüglich der Programmierhilfe noch nichts 
ergeben. Ich werde aber noch einige weitere Male hingehen. Es waren 
augenscheinlich nur zwei junge C Programmierer anwesend und die hatten 
keine Zeit oder Lust.


Einen schönen Abend noch.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

> einen Atmel µ-Controller zu programmieren

In welcher Programmiersprache / Programmierumfeld soll es denn erfolgen, 
beliebt ist C für Arduino

und hast du schon dein Arbeitsumfeld am laufen, also ein 
Beispielprogramm vom PC auf den uC gespielt und auf dem Demoboard 
laufen, denn all das kann kein Teamviewer für dich geradebiegen.

Dann käme die nächste Feststellung: Was soll es denn werden ? Dein 
Ablaufdiagramm suggeriert, daß der Motor eine Rückmeldung über die 
Position mit einem Motorpoti macht, dessen Sollstellung über Tasten UP 
und DOWN eingegeben wird, demnach in Stufen. In wievielen Stufen denn ?

Das (Arduino-)Programm zu deinem Diagramm wäre eher simpel:
1
#include <LiquidCrystal.h>
2
#include <EEPROM.h>
3
4
int motor_forward = ?; // Pin der den Motor vorwärts laufen lässt
5
int motor_reverse = ?; // Pin der den Motor rückwärts laufen lässt
6
int motor_poti = ?, // Pin an dem das Motorpoti hängt
7
int motor_shunt = ?; // Pin am Motorshunt zur Strommmessung
8
int button_forward = ?; // Pin an dem der Taster vorwärts hängt
9
int button_reverse = ?; // Pin an dem der Taster rückwärts hängt
10
int poti; // Poti Position 0..1023
11
int soll; // Sollposition 0..10, im EEPROM gespeichert
12
int current;
13
int msec; // Millisekunden
14
15
LiquidCrystal lcd(?, ?, ?, ?, ?, ?); // Pins an denen LCD hängt
16
17
void setup() 
18
{
19
   lcd.begin(16, 2); // angenommen 16 Zeichen in 2 Zeilen Display 
20
   pinMode(motor_forward, OUTPUT);     
21
   pinMode(motor_reverse, OUTPUT);
22
   msec = 0;
23
   soll=EEPROM.read(0);
24
}
25
26
void loop() 
27
{
28
  if(msec==1000)
29
  {
30
    current=analog_read(motor_shunt);
31
    lcd.setCursor(0, 2);
32
    lcd.print("Amps ");
33
    lcd.print(current);
34
    lcd.print("     ");
35
    msec=0;
36
  }
37
  if(msec%500==0)
38
  {
39
    if(digitalRead(button_forward)&&soll<10) soll++;
40
    if(digitalRead(button_reverse)&&soll>0) soll--;
41
    if(EEPROM.read(0)!=soll) EEPROM.write(0, soll);
42
  }
43
  if(msec%20==0)
44
  {
45
    poti=analog_read(motor_poti);
46
    lcd.setCursor(0, 1);
47
    lcd.print("Poti ");
48
    lcd.print(poti);
49
    lcd.print("     ");
50
  }
51
  poti = analog_read(motor_poti);
52
  poti = (poti - 12 ) / 100; // auf Sollpositionen 0..10 umrechnen
53
  digitalWrite(motor_forward, poti < soll);  
54
  digitalWrite(motor_reverse, poti > soll);  
55
  delay(1);
56
  msec++;
57
}

aber ich sage dir, daß es nicht besonders befriedigend sein wird. Die 
Tasten werden zu langsam abgefragt, auch wenn sie wie wohl beabsichtig 
im Halbsekundentakt zählen, die Anzeigen (Position, Strom) sind sehr 
unterschiedlich - die eine zu schnell, die andere zu langsam,
und die Motorreglung erfolgt nicht mit einem PID-Regler, sondern abrupt, 
der Motor fährt die Positionen nur ungenau an.

von Guest (Gast)


Lesenswert?

Man kann sich das Leben auch leicht machen. Siehe Arduino. Dabei lernt 
man halt nix.

von MaWin (Gast)


Lesenswert?

> Guest (Gast)
> In 10 Stunden schafft man praktisch nix.

DU schaffst in 10 Stunden nix.

von Guest (Gast)


Lesenswert?

MaWin schrieb:
>> Guest (Gast)
>> In 10 Stunden schafft man praktisch nix.
>
> DU schaffst in 10 Stunden nix.

ICH schon. Aber der Anfänger der kaum C kann schafft nix.

von Seano L. (Gast)


Lesenswert?

Matthias H. schrieb:
> Ich bin bereit 50€ die Stunde zu bezahlen, z.B. mittels Paypal
> Sofortüberweisung.
Für nen Fuffi programmiere ich dir das in der Kaffeepause runter, 
Arduinokinder machen das schon für eine Packung Gummibärchen.
Willste was lernen oder einfach nur schnelle Ergebnisse?

Was solln das eigentlich genau werden wenns fertig ist? Motorsteuerung 
aber was hängt denn da drann, alte Waschmaschine zum Kartoffel waschen, 
Modellbahn,.... ?

von FDPler (Gast)


Lesenswert?

Police schrieb im Beitrag #3330690:
> Mach deinen Scheißdreck alleine!

Jetzt werden sie mal nicht ausfallend, junger Mann.

von Cyblord -. (cyblord)


Lesenswert?

Also das finde ich jetzt mal nen echt gutes Angebot. Mal keiner der nen 
kompletten Aufbau inkl. Inbetriebnahme für lau haben will.

Wär ich noch Student, wär ich dabei. Da wird sich doch sicher einer 
finden.

gruß cyblord

von FDPler (Gast)


Lesenswert?

cyblord ---- schrieb:
> gruß cyblord

Hast du nichmal am Samstagabend ein Sozialleben?

von Cyblord -. (cyblord)


Lesenswert?

FDPler schrieb:
> cyblord ---- schrieb:
>> gruß cyblord
>
> Hast du nichmal am Samstagabend ein Sozialleben?

Ähm, wenn dann so wenig wie du, oder?

von FDPler (Gast)


Lesenswert?

cyblord ---- schrieb:
> Ähm, wenn dann so wenig wie du, oder?

Ja, traurig!

von Cyblord -. (cyblord)


Lesenswert?

FDPler schrieb:
> cyblord ---- schrieb:
>> Ähm, wenn dann so wenig wie du, oder?
>
> Ja, traurig!

Find ich nicht. Ich war die letzten Wochenden auf Achse und will jetzt 
mal etwas entspannen. Ich bin doch nicht mehr 20 und Student und löte 
mich von Do. bis So. zu.

von schweizer (Gast)


Lesenswert?

Erstmal müsstest du schreiben was du genau machen wilst, das diagramm 
ist zumindest für mich unklar, die abfragezeiten sind wahrscheinlich 
nicht sinnvoll...

von Matthias H. (maethes26)


Lesenswert?

Hallo zusammen,

vielen Dank an alle für Eure Kommentare.

Ich hatte noch nicht die Zeit mir alle durchzulesen. Das werde ich erst 
morgen Abend schaffen.

Ich habe aber schon mal die Projektbeschreibung in der kurzen Zeit 
erweitern können.
Ich weiß, da wird Euch noch einiges an Informationen fehlen, die ich 
dann gern in das Dokument einpflegen werde.

*********
Es geht mir hier aber nur darum eine einfache, grundsolide  Software zu 
schreiben.
Das möchte ich lernen und dabei Spaß haben.

*****


Die Hardware möchte ich so verwenden, denn um diese zu ändern habe ich 
keine Zeit.

Hier ist der Link für die PDF Datei. 
https://www.dropbox.com/s/htbenkjmanhfg5e/Projektbeschreibung%20Motorsteuerplatine.pdf

Viele Grüße und bis morgen Abend.

von Peer (Gast)


Lesenswert?

Ich bin ich studiere Mikroelektronik im 1.Mastersemester und habe schon 
einige Erfahrungen im Bereich AVR , ARM (Stm32,TI Stellaris)und 
natürlich dementsprechend auch C-Kenntnisse.

Ich frage mich gerade wie dein Angebot zu verstehen ist. Suchst du 
jemandn, der dich Schritt für Schritt leitet und mit dir zusammen das 
Projekt bearbeitet oder jemanden, der dir nur bei speziellen Fragen 
weiterhilft falls du mal feststeckst und sch eine Vorgehensweise für 
dich überlegt.
In beiden Fällen wäre es glaube ich sinnvoll, wenn der/diejenige eine 
identische Hardware vorliegen hat, um fehlerhafte Hardware 
auszuschließen oder Hardwareverhalten selber zu beobachten.

Im Prinzip würde ich an deiner Stelle erstmal ganz klein anangen und 
eine LED blinken lassen. Denn vielleicht mal die Initialisierung der 
GPIO-Ports in eine Funktion auslagern usw. Ein Poti einlesen, um die 
Blinkfrequenz zu steuern ist vielleicht der nächste Schritt, wovon du 
denn auch schon Teile für deine Anwendungnutzen kannst.

Dafür braucht man meiner Meinung nach nicht sonderlich viel Hilfe 
erstmal.
Grundsätzlich gilt bei solchen Proekten immer das Prinzp Divide and 
Conquer.

Teile dein Problem auf mehrere kleine und füge sie später zusammen. 
Bearbeite jedes Problem (ADC, Display,..) erstmal für sich und wenn 
alles läuft, fügst du sie zusammen.

von Marc Rupprath (Gast)


Lesenswert?

Hallo;

http://www.das-labor.org/

Sprich einfach mal mit den Leuten dort.

Gruß

von MaWin (Gast)


Lesenswert?

Ach du Scheisse, Matthias H. sucht für SEINE Aufgabe den Ghostwriter.
Übrigens sind die im PDF gemachten Aussagen grösstenteils lächerlich,
künstliche Problemlösungswegfehlplanungm, weil der Laden offenbar
mit der richtigen Lösung überfordert ist. Und so lügt sich die ganze
Kette in die Tasche bis der Elefant ein Mäuslein gebiert, welches zwar
das Problem nicht löst, aber jeder hat nach Vorschrift gearbeitet.

von TTL (Gast)


Lesenswert?

Na für 50Euro die Stunden kann ich dir das auch Professionell anbieten.
Hab ein Ing.-Büro in Düsseldorf.

von Guest (Gast)


Lesenswert?

MaWin schrieb:
> Ach du Scheisse, Matthias H. sucht für SEINE Aufgabe den Ghostwriter.
> Übrigens sind die im PDF gemachten Aussagen grösstenteils lächerlich,
> künstliche Problemlösungswegfehlplanungm, weil der Laden offenbar
> mit der richtigen Lösung überfordert ist. Und so lügt sich die ganze
> Kette in die Tasche bis der Elefant ein Mäuslein gebiert, welches zwar
> das Problem nicht löst, aber jeder hat nach Vorschrift gearbeitet.

Klär uns auf, was für ein "Laden" ist das?

von John (Gast)


Angehängte Dateien:

Lesenswert?

Also das verstehst Du unter: kleines, privates Softwareprojekt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.