[SUCHE] Einen Programmierer für einen GUI, der Parameter ins EEPROM lädt.

Guten Abend,

so, versuche es auch hier nochmal.

Da mir das Projekt echt viel bedeutet, brauche ich dringed Hilfe.

Ich suche jemanden, der einen GUI fertigstellt, welcher den bereits hochgeladenen Sketch im Arduino per USB anpasst bzw. modifiziert. Auch ein Tool, welches ein Template modifiziert und dieses dann auf den Arduino lädt, wäre denkbar. Ich habe schon im Visual Basic-Forum und im AVR Forum gefragt. Aber entweder die einen kennen sich nicht mit Arduino aus, oder die anderen haben keine Kenntnisse in Visual Basic.

Vielleicht habe ich hier endlich mal den Nerv getroffen? Ich habe in Visual Basic mal die Oberfläche entworfen, die Code fehlt halt noch. Die Arduino-Sketch habe ich mal angehängt. So ungefähr wird er aussehen, bloß dass noch 5 weitere Ausgänge hinzukommen und der Ausgang 13 auf einen anderen, PWM-fähigen Ausgang angepasst wird.

Angepasst in dem Code werden nur PWM-Frequenz, Delay und Einschaltdauer des jeweiligen Ausgangs.

Der Arduino-Code steht, das ganze sollte aber sehr leicht und trotzdem schön umgesetzt werden.

Alternativ wäre auch eine Umsetzung in AVR ohne Arduino Bootloader möglich, damit kenne ich mich aber leider nicht aus. Auch da würde ich mich freuen, wenn mir geholfen wird!

Als Entlohnung ließe sich logischerweise über Geld sprechen. Würde mich natürlich über kostenlose Arbeit freuen, aber ich weiß auch, dass Zeit = Geld ist 8)

Ich würde mich extremst freuen, wenn mir jemand helfen würde!

Liebe Grüße,

waxmuth

Hier noch der Code:

void setup()  { 
  pinMode(13, OUTPUT);
} 

void loop()  {
  digitalWrite(13, HIGH);   
  delay(10);
  digitalWrite(13, LOW);
  delay(200);
  digitalWrite(13, HIGH);   
  delay(10);
  digitalWrite(13, LOW);
  delay(200);
  digitalWrite(13, HIGH);   
  delay(10);
  digitalWrite(13, LOW);
  delay(200);
  digitalWrite(13, HIGH);   
  delay(50);
  digitalWrite(13, LOW);
  delay(1500);
}

Bild der Oberfläche hängt an

Vorweg: Ich bin die nächsten Monate ausgebucht... :smiley:
Aber da, was du vorhast, ist doch keine Änderung des Sketches. Da gibt man doch nur weiter, welcher Ausgang wie beschaltet werden soll. Im Prinzip das, was mit Firmata möglich ist, wenn ich mich recht entsinne: http://firmata.org/wiki/Main_Page

Mein erster Ansatz dazu:
Lass VB über die serielle Schnittstelle die Parameter aus der GUI an den Arduino senden. In VB geht das über MS Comm Control 6.0, ich selbst habe das aber noch nicht gemacht.
Der Arduino horcht, ob was gesendet wird und ändert daraufhin die Zustände der Pins.

Guten Morgen,

ich bedanke mich schonmal für eure Hilfe.

Das Problem ist aber, dass ich die Werte auf dem Arduino so anpassen will, dass er sie auch im computerlosen Zustand behält.

Beispielsweise setze ich im GUI den delay von 100ms auf 1000ms. Dann auf den Arduino "uploaden" und er übernimmt das ganze so auch.

Aus meiner Sicht ist das doch eine Anpassung des Sketches?! :blush:

Bitte korrigiert mich und helft mir :slight_smile:

sth77:
Vorweg: Ich bin die nächsten Monate ausgebucht... :smiley:
Aber da, was du vorhast, ist doch keine Änderung des Sketches. Da gibt man doch nur weiter, welcher Ausgang wie beschaltet werden soll. Im Prinzip das, was mit Firmata möglich ist, wenn ich mich recht entsinne: http://firmata.org/wiki/Main_Page

Habe mir das eben mal angesehen. Prinzipiell ist der Ansatz nicht schlecht. Der Arduino behält auf jeden Fall seinen Zustand, wenn man das Programm beendet. Zieh man in aber vom USB ab und beendet das Programm und steckt ihn wieder hinein, ist logischerweise nix mehr da. Also das ist praktisch eine Livesteuerung + Analogauswertung.

Aber ich möchte ja auch das Timing anpassen. So ganz klappen kann das doch nicht, oder liege ich da falsch? :blush: :blush:

Das ganze soll an Board eines RC-Flugzeugs mitgenommen werden, deshalb muss das Setting bzw. die Werte gespeichert werden. PCB Layout steht, die Ardu-Software werkelt ja auch. Aber an Visual Basic hapert es. Wenn jemand was vernünftiges, einfaches und kleines umsetzt, lässt sich gerne über eine Entlohnung reden.
waxmuth

Der Sketch muß nicht für die Anpassung der Werte verändert werden. Es müssen nur die Parameten übertragen werden und der Sketch nimmt diese vom PC entgegen und speichert sie zB im internen EEPROM ab. Nach dem Einschalten werden die Werte aus dem EEPROM gelesen und diese für die PWM-Frequenz, Delay und Einschaltdauer verwendet.

Viele Grüße Uwe

Morgen,

Danke für die hilfreiche Antwort!!

Da bin ich ja gar nicht drauf gekommen, kenne mich nicht ganz mit dem umfang eines arduino aus.

Ntürlich, das EEPROM gibts ja auch noch, man man man :grin:

So, wenn mir da jetzt noch jemand bei der Umsetzung helfen könnte... Ich wäre ja so sehr dankbar!!

Waxmuth

Unter Hilfe verstehen wir: Du schreibst den Sketch und wir helfen die Fehler auszubügeln.
Grüße Uwe

Ups, ja ich meinte das anders. Sage ich es so: wenn mir das jemand umsetzen würde, würde ich mich sehr freuen.

Ich gucke mir das nachher aber auch nochmal selber an, wenn ich am PC bin.

Die Umsetzung als Sketch könnte ich mit eurer Hilfe bestimmt schaffen, aber Visual Basic... Das wir nix, und im VB-forum kennt sich leider keiner mit Arduino aus.

Liebe Grüße,

Yannick

Der VB-Programmierer muss nichts vom Arduino verstehen, der Hardware-Programmeirer nichts von VB. Es muss nur ein Protokoll definiert werden, nach dem beide zusammenspielen. So muss das VB-Programm nur eine von dir definierte Zeichenfolge über die serielle Schnittstelle schicken, z.B. in dieser Art: D01,1, heißt "übersetzt" setze digitalen Ausgang 1 auf HIGH. Der Arduino muss dieses Protokoll auswerten, lauscht also an der seriellen Schnittstelle. Ob er einen Rückgabewert an das VB-Programm sendet oder nicht, liegt an der Definition des Protokolls. Und da bist du gefragt, das musst du vorgeben, bevor irgendjemand mit der Arbeit beginnen kann.

Ja, das wird ja immer besser :slight_smile:

So langsam blicke ich da auch durch.

Das protokoll könnte ja folgendermaßen aussehen:

P03-50-10
W50
P05-50-50
W50
P06-70-20
W50

p03 für ausgang 03, zweiter wert (z.b. 50) pwm-frequenz und der 3. Wert der Zeile als einschaltdauer.
W50 steht für das delay zwischen den beiden schritten.

Eine Rückgabe wäre nicht von nöten.

Waxmuth

Hallo zusammen,

darin sehe ich ebenfalls kein Problem. Man kann einfach per SerialRead die neuen Werte einlesen und in den eeprom schreiben. Beim nächsten Start liest man diese dort aus.
Das VB Programm muss lediglich um die Komponente für die Serielle Schnittstelle erweitert werden, die im rein lesenden Zugriff in Sekunden programmiert ist.
Dank .NET gibt es dort aber auch massenweise fertige Komponenten, die auch beim Lesen die allermeisten Fehlerquellen berücksichtigen.
Z.B. Hier:
Serial Port Communication

Kann dir gerne bei Problemen helfen. Aber Vorsicht! Bin C#-ler :smiley:

Trib:
Kann dir gerne bei Problemen helfen. Aber Vorsicht! Bin C#-ler :smiley:

:grin: so lange es funktioniert, ist mir das wuppe.

Ich habe wie gesagt leider keine Ahnung von Schnittstellenprogrammierung, und von VB erst recht nicht.

Deswegen wäre ich sehr froh, wenn ich mit dir zusammenarbeiten könnte :slight_smile:

Yannick

waxmuth:
Ich habe wie gesagt leider keine Ahnung von Schnittstellenprogrammierung, und von VB erst recht nicht.

Das Du keine Ahnung von Schnittstellen hast, ist nicht wild. Aber warum startest Du ein VB-Projekt, wenn Du das auch nicht kannst? :astonished:

Der von mir gepostete Link ist dann natürlich schon etwas komplex, da in dem Tutorial von dem Optimum der Schnittstellenprogrammierung ausgegangen wird.
Letztendlich ist es aber so, dass man die Klasse SerialPort aus dem Namespace System.IO.Ports nutzen kann.

Imports System.IO.Ports

Dann instanziert man den Spaß und übergibt die Einstellungen des Ports. Das bekommt man Dank Visual Studio ganz einfach hin, in dem man einen Punkt hinter die Klasse macht (Intellisense nennt sich das). Dort kann man dann die Übertragungsrate, die Port Nummer und vieles mehr übergeben.

Private comPort As New SerialPort()
comPort.BaudRate = 8000
comPort.Port = 'COM1'
...usw...
If Not (comPort.IsOpen = True) Then
  comPort.Open()
comPort.Write("Text der übermittelt wird")

Falls nötig könnte man nun ein Event zu abbonieren, um ein mögliches Ergebnis vom Arduino zu empfangen.

AddHandler comPort.DataReceived, AddressOf comPort_DataReceived

Natürlich kann ich Dir das auch "mal eben" komplett programmieren. Aber wo wäre dann der Lerneffekt :wink:
So schwierig ist das Ganze wirklich nicht! Denke es sind alle wichtigen Elemente benannt.

Trib:
Das Du keine Ahnung von Schnittstellen hast, ist nicht wild. Aber warum startest Du ein VB-Projekt, wenn Du das auch nicht kannst? :astonished:

Einfach mal reinschauen :grin: :grin:

Habe vor einiger Zeit mal einen Umrechner von Fahrenheit in Clesius gebastelt, das war aber auch eher nach Anleitung :smiley:

Hmm,

lieber wäre es mir, du würdest den Code fertigstellen, aber du hast natürlich nicht ganz unrecht.

Trib:
...So schwierig ist das Ganze wirklich nicht!

Das sehe ich leider ganz anders :blush: Ich habe aktuell nicht mal eine Idee, wo ich da überhaupt ansetzen müsste.

Yannick

ich kann dir zwar nicht helfen, dich aber vieleicht ein wenig ermuntern!

ich habe mir anfang januar meinen erstes arduino board geholt. hatte bis dahin noch nicht wircklch damit zu tun.
jetzt nach fast 4 wochen habe ich meine terrarien-steuerung fast fertig. es ist zwar einiges an arbeit sich alles mal durchzulesen aber es geht.

ich würde sagen das ich dein projekt jetzt nach knapp 4 wochen ganz alleine hin bekommen würde mit arduino und processing! wenn du processing noch nicht kennst, guck es dir an. die ide ist wie die arduino ide aufgebaut, benutzt aber java und kein c als grundgerüst. gibt es aber viele anleitung und tut´s im netz zu. damit könntest du auch die pins direkt ansprechen.

cu

Hi,

danke für die Mutmacherei :smiley:

Aber ich habe auch eigentlich gar keine Zeit dafür, mich richtig in die Materie einzuarbeiten. Selbst wenn ich das Projekt jetzt hinbekommen würde, würde ich den Stoff nächste Woche schon nicht mehr wissen. Dafür gibt es neben der Schule leider viel zu viel zu tun. BWL, Rechnungswesen und VWL sind leider nicht ganz ohne, da gibt's viel zu tun. Fremdsprachen gibt's auch noch.

waxmuth

Wenn Du kein VB kannst, dann lern besser gleich C#. Das sieht ähnlicher aus wie die Arduinosprache und fühlt sich auch ganz allgemein besser. Alles was mit VB geht, geht mit C# erst recht. Und schwierig zu lernen ist das auch nicht.

So wie sich das hier anhört vom Starter. Ist das nach dem Prinzip;
Ich will was neues für mich machen, habe aber keine richtige Lust mich damit zu beschäftigen.
Gibt bestimmt einen hier der sowas gerne für mich macht. Wie ein
Vorrschreibr schon richtig sagte, Arduino ist so leicht zu lernen das du in etwa 3 Wochen dein Projekt selber umsetzten könntest. Wenn die 3 Wochen zuviel sind das ist das Projekt evtl. Auch nicht dass richtige.
Gruß
Volodani

volvodani:
So wie sich das hier anhört vom Starter. Ist das nach dem Prinzip;
Ich will was neues für mich machen, habe aber keine richtige Lust mich damit zu beschäftigen.
Gibt bestimmt einen hier der sowas gerne für mich macht. Wie ein
Vorrschreibr schon richtig sagte, Arduino ist so leicht zu lernen das du in etwa 3 Wochen dein Projekt selber umsetzten könntest. Wenn die 3 Wochen zuviel sind das ist das Projekt evtl. Auch nicht dass richtige.
Gruß
Volodani

Du liegst damit nicht ganz falsch, unlust spielt da auch eine Rolle, wenn auch eine kleine.

Vornehmlich habe ich da einfach keine Zeit zu, mir den Stoff anzueignen. Ich besuche derzeit ein Berufskolleg (Wirtschaft; Höhere Handelsschule - Fachabitur) und da gibt es schon genug für BWL, Rechnungswesen, VWL, Informatik, Mathe und Fremdsprachen zu tun. Da habe ich eher weniger Zeit und Lust, mir nach 10 Stunden Schule pro Tag noch irgendwelche Programmiersprachen reinzuknüppeln. Wenn am Wochenende mal ein wenig Zeit bleibt, dann "spiele" ich ganz gerne mal mit dem Arduino rum.

Außerdem habe ich ja nicht verlangt, es umsonst zu tun. Daher ist deine Aussage vielleicht nicht ganz richtig.

waxmuth

Also auch noch Anstiftung zur Schwarzarbeit ;-).
So ernst war das auch nicht gemeint. In erster Linie bekommst du hier sehr kompetente Hilfe bei deinen Programmen auch schon mal schöne Codeschnippsel zu benutzen, aber am meinsten ist halt tippen probieren und wenn dann was nicht klar ist gibbet hier kompetente Hilfen :slight_smile: