kostenloser Webspace werbefrei: lima-city


Hilfe bei der Microcontroller/Board-Wahl

lima-cityForumSonstigesTechnik und Elektronik

  1. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    So da ich ja jetzt beim CCCamp war und da einiges an interessantem Spielzeug gesehen habe, möchte ich selbst in der nächsten Zeit auch anfangen etwas zu basteln. Zum einen wollen ich und ein Kumpel auch einfach mal so einen Quadrocopter bauen und zum anderen wollte ich gern einen "Funkfernflitzer" basteln, der noch ein bisschen mehr kann bzw. evtl. auch autonome Programme fahren kann.
    Dafür braucht man ja aber einen entsprechenden Microcontroller und ein dazu gehöriges Board und da fängt der Schlamassel an. Davon gibt es Massen!:eek: Deshalb hoffe ich hier kennt sich einer aus oder kennt jemand der sich auskennt.
    Im Prinzip sind meine Anforderungen nur, dass man nicht zu viel löten muss, stecken wäre mit lieber, da ich weder Werkstatt noch -zeug für großartige Bauten habe und mich ehrlich gesagt auch die Programmierung mehr interessiert, als das Bauen. Es sollte auch nicht zu viel Kosten, da ich nicht soviel Geld zur Verfügung habe.
    Am besten wäre mir könnte einer Aufschüsseln welche Kennzahlen wichtig sind und worauf ich achten muss, um den richtigen zu erwischen.
    Bisher dachte ich an so eine RN-Platine mit Atmel Mega 32. Reicht das für auch für eine einfache KI oder wird der Speicherplatz eng?
    Danke schonmal.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Oh je oh je, ich habs befürchtet :-)

    Also:

    Zum einen ist deine Rocket bereits ein komplettes Evaluationsboard für den darauf verbauten Chip, nachteil an der Sache ist die sagen wir...mäßige Doku und das Anwendungssystem mit den Signaturen der Loadables usw. usf. eine für den Einstig in die Richtung Hardwareprogrammierung / Physical Computing ist das eher mäßig gut geeignet meiner Meinung nach, aber das liegt sicher auch viel daran das ich eigentlich kein C kann.

    Ansonsten empfehle ich immer wenn man sich mit einem Einstig in die Hardware befassen will das man wie überall anders auch erstmal lernt zu kriechen (LED's blinken) bevor man sich an einen Quadrocopter mit drahtloser Fernsteuerung wagt. Wer sich mit Hardware befasst muss, selbst wenn er ein fähiger Programmierer ist, nämlich ein paar Dinge sehr schnell und oft schmerzlich lernen, dazu gehört:

    a) Hardware interagiert mit ihrer Umwelt -- selbst wenn ein algorithmus zur Drehzahlsteuerung von Rotoren mathematisch vollkommen korrekt arbeitet kann eine Böhe Seitenwind die Verhältnisse völlig auf den kopf stellen, es genügt also nicht das ding programmieren zu können, man muss wissen was im Einsatz für verhältnisse auftreten können und damit rechnen, sonst stürzt das ganze schöne Konstrukt trudelnd in die nächste Schlammpfütze

    b) Hardware ist nicht konsistent -- wenn ich einen Schalter einlese mit einem Microcontroler, dann hat dieser Schalter mit nichten nur 2 Werte (Ein oder Aus) sondern es gibt eine Vielzahl möglicher Zwischenstufen (Techniker sprechen vom verbotenen Bereich) diese Zwischenstufen gehören möglichst konsequent ind Hard und in Software gefiltert denn in der E-Technik gillt das Prinzip der doppelten Sicherheit, wann immer sie möglich ist.
    Zudem ist Hardware für Störungen anfällig die mit dem eigentlichen Problem gar nichts zu tun haben. Wer es schon erlebt hat das ein Transistor beim berühren des Basis Widerstands durchschaltet (obwohl er das tunlichst bleiben lassen sollte in diesem Moment) weiß was ich meine

    c) Hardware ist langsam -- verglichen mit einem PC ist hardware unwahrscheinlich langsam, während es bei einem PC keine Rolle spielt ob ich eine zusätzliche Variable einführe oder nicht ist das in Hardware oft etwas ganz anderes, Speicher und Rechenzeit sind knapp und die Programme müssen dem Rechnung tragen

    d) Hardware ist schnell -- anders als bei PCs muss man sich um viele Dinge kümmern die einen sonst gar nicht interessieren und diese Dinge ändern sich mitunter rasend schnell, man muss also effizient und Laufzeit optimiert programmieren damit der algorithmus für die Aufgabe nicht zu langsam ist.

    Für den Einstieg empfehehle ich einen Arduino oder einen Arduino Clone, das hat den vorteil das die Elektronik robust ist und man mit ein paar wenigen Grundschaltungen erstanliche Ergebnisse erziehlen kann und trotzdem lernt wie ein Hardware Entwickler zu denken.

    Was ich heute erst endeckt habe (und es gar nicht glauben konnte) Microsoft (ja genau der Redmonder Pinguinverächter) hat eine (Achtung !) Open Source Plattfom fürs Physical Computing herausgebracht, das System hört auf den Namen Gadgeteers und wird mithilfe des .NET Frameworks in C# programmiert, das Zeug ist modular aufgebaut und wird einfach zusammen gesteckt.

    Wenn man es klassisch angeht kann man sich auch so ein Evaluationsboard besorgen (bspw. für ATMEL) und damit beginnen, die Dinger haben grundlegende E/A Elemente schon integriert und lassen sich bspw. mit sowas dann auch noch erweitern, es gibt sogar Adapter für den Anschluss eigener Schaltungen, fakt ist aber hier das man erstmal recht viel über das Design des verwendeten Controlers lernen muss bevor man da sinnvolle Dinge mit anstellen kann, aber das ist auf jeden fall der direkteste Weg auf den Chip *g*
  4. Ich hab nen Atmega8 und als "Board" hab ich einfach ein Steckboard mit dem man rum bastelt und einen USB Programmer und das ganze funktioniert relativ gut und billig ist es auch.
  5. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    @fatfox:
    Ich wusste, dass du schreiben würdest, dass du befürchtet hast. ;-)

    Ich denke so ein Arduino ist für den Anfang eine gute Wahl, weil man da einfach nur USB anschließen muss und per Software das Programmierte gleich übertragen kann und der einen entsprechenden Bootloader hat. Außerdem ist er vergleichsweise billig, man kann viel Zubehör ebenfalls recht presiwert kaufen und es gibt ziemlich viel Beispielmaterial.
    Deshalb finde ich es grade so komisch, dass ich nicht allein per Google etc. darauf gestoßen bin.

    Das Problem mit den Steckboards scheint ja irgendwie an den Kabeln zu liegen und schnell geht die Übersicht verloren.
    Ich bin auch kein Neuling in sowas, im Gymi hatten wir das in Physik auch, aber ohne Microcontroller und in der Berufsschule konnten wir auch mit dem Digiboard (Schalter, LEDs, Und, Oder etc. Schaltungen, Taktgeber, Flipflops und sogar etwas EEPROM ) basteln (die gestellten Aufgaben waren natürlich Kinderkram deshalb war ich früher fertig und konnte mich meinen eigenen Kreationen widmen *angeb*). Allerdings ist das mit selber Löten, Routen etc. was ganz anderes.:slant:

    Achso und zu dem von Microsoft: Davon hab ich auch shcon gelesen, aber ich hege eine gewisse Abneigung gegen die CLR und deren Kumpels, also ist das für mich zumindest noch keine Alternative, da zudem wahrscheinlich auch dadurch, dass es verhältnismäßig neu ist wenig Basteleien von anderen vorhanden sind.

    Beitrag zuletzt geändert: 19.8.2011 17:52:19 von reimann
  6. Hi

    Wie fatfox schon sagte: ohne Hardware Kenntniss geht es nicht und meine Erfahrung hat mich auch gelehrt das Erfahrung wichtiger ist als ein makelloses theoretisches Verständnis.

    Daher leg ich dir ans Herz einfach ein Steckboard zu holen und die Bauteile einzeln zu kaufen. Du lernst dabei die Hardware kennen und programmieren. Der Weg ist teilweise echt mühsam (viele Kabel stecken, defekte Bauteile finden und und und ...) aber du wirst von beginn an mit den Kinderkrankheiten vertraut. Außerdem wirst du ja von Zeit zu Zeit besser und du kannst einfach neue Komponenten ausprobieren. Weiterer Vorteil: Spart Geld.

    So oder so wirst du ja erstmal klein Anfangen müssen und vll erstmal LEDs zum blinken bringen oder auf Tastendrücke reagieren. Selbst das ist schon eine kleine Herrausforderung und keineswegs so trivial wie es klingt. Wie Fatfox schon sagte: in der Theorie gehts nur darum ne 0 oder 1 zu lesen/schreiben, in der Praxis wirst du dich aber mit Stromtreibern und Entprellung auseinandersetzen müssen. Und genau das schult deine Erfahrung die so unglaublich wichtig ist.

    Irgendwann kommst du dann auch mal an den Punkt, das ein Projekt ein ordentliches Design braucht (grad dann wenn Störsignale und Signallaufzeiten eine Rolle spielen). Dann würde ich mich nicht mehr mit Steckboards herumschlagen und fertige Kits kaufen oder eventuell meine Platinen selbst machen. Wenn du diesen Weg halt gleich einschlägst fehlt dir die nötige Erfahrung auf der untersten Ebene und kann dich bei komplexeren Projekten zur Verzweiflung treiben.

    Leider klingt sowas immer sehr langwierig und langweilig. Was soll man sich Ewigkeiten mit Kleinigkeiten herumschlagen die später überhaupt keinen praktischen nutzen haben (ne LED bekommt man schließlich auch mit ner 1.5 V Batterie zum leuchten ;) ). Das schöne an dem Thema ist halt das jeder kleine Teilerfolg dich unglaublich motiviert und du niemals den Spaß verlieren wirst. Du wirst später auch mal deine Erfahrungen teilen und dich auf Fachgespräche mit anderen einlassen. All das find ich persönlich viel befriedigender als das eigentliche Produkt das ich mal gebaut habe.

    Und bedenke: Egal was du machen wirst, du wirst es nicht tun weil du es brauchst, sondern weil du es kannst :D

    Gruß Tobi

    PS: microcontroller.net ist wohl die beste Anlaufstelle für den Einstieg. Wenn du den geschafft hast steht dir alles offen.

    Beitrag zuletzt geändert: 20.8.2011 21:25:08 von ttobsen
  7. Hallo alle miteinander,

    das Arduino Board sieht recht interessant aus und daher will ich gleich mal ein paar Fragen einbringen:
    (Vorsicht! Ich bin auf dem Gebiet eigentlich vollständig Ahnungslos, daher hoffe ich, dass man mir sachliche Fehler verzeiht.)

    1. Was muss ich machen bzw. welche Schaltung brauche ich, um die digitalen Ein- bzw. Ausgänge des Boards mit 24V Ein- bzw Ausgängen zu Verbinden (industrielle Steuerungen haben leider meisten 24V).
    2. Kann man mit dem Board auch im µs-Bereich genau Schalten, z.B. 20µs Delay und dann für 700µs eine LED einschalten.
    3. Gibt es eine einfachen Weg Interrupt-Routinen zu setzen oder muss man da auf AVR, Assembler oder ähnliches zurückgreifen.
    4. Kann man Interrupts für Änderungen an den digitalen Eingängen und für eingehende Daten über den seriellen Port setzen?
    5. Gibt es Timer, die nach Ablauf einen Interrupt auslösen (die delay() Funktion scheint mir etwas unpraktisch)? Wenn ja, wie viele und wie genau sind die?

    Schonmal Danke für die Antworten.
  8. darkpandemic schrieb:
    Hallo alle miteinander,

    das Arduino Board sieht recht interessant aus und daher will ich gleich mal ein paar Fragen einbringen:
    (Vorsicht! Ich bin auf dem Gebiet eigentlich vollständig Ahnungslos, daher hoffe ich, dass man mir sachliche Fehler verzeiht.)

    1. Was muss ich machen bzw. welche Schaltung brauche ich, um die digitalen Ein- bzw. Ausgänge des Boards mit 24V Ein- bzw Ausgängen zu Verbinden (industrielle Steuerungen haben leider meisten 24V).
    2. Kann man mit dem Board auch im µs-Bereich genau Schalten, z.B. 20µs Delay und dann für 700µs eine LED einschalten.
    3. Gibt es eine einfachen Weg Interrupt-Routinen zu setzen oder muss man da auf AVR, Assembler oder ähnliches zurückgreifen.
    4. Kann man Interrupts für Änderungen an den digitalen Eingängen und für eingehende Daten über den seriellen Port setzen?
    5. Gibt es Timer, die nach Ablauf einen Interrupt auslösen (die delay() Funktion scheint mir etwas unpraktisch)? Wenn ja, wie viele und wie genau sind die?

    Schonmal Danke für die Antworten.


    Hallo,

    für 24V I/O habe ich bisher immer einen Spannungsteiler mit Reihenwiderstand zur Strombegernzung verwendet, im industriellen Umfeld solltest du aber dafür besser einen Optokoppler benutzen.

    Ja es gibt einen µs delay Funktion, da das Board mit 16Mhz läuft, sollte die Auflösung bei sinniger Programmierung ausreichen.

    Interrupts sind vorgesehen, vgl. http://www.arduino.cc/en/Reference/AttachInterrupt

    Interrupts gibt es meiner Meinung nach (hab es noch nicht gebraucht) sowohl für das eintreffen von Daten am seriellen Port als auch für definierte Interrupt Eingänge.

    delay() funktioniert innerhalb einer Interrupt Routine ohnehin nicht wie normalerweise, man kann verzögern indem man sinnlos zählt aber da gibt es sicher noch andere Möglichkeiten, das ev. mal im Arduino-Forum fragen.
  9. Hallo fatfox,

    herzlichen Dank für die Antworten, das hilft mir schonmal ein bisschen weiter.
    Das mit dem Spannungsteiler lasse ich lieber. Einmal hat mir jemand einen Magnetbandsensor auf den Tisch gelegt und gemeint, dass ich ihn zum laufen bringen sollte. Nachdem das nicht mein Fachgebiet ist habe ich mir halt eine Spannungsteiler gebaut und versucht die Ticks mit der Soundkarte zu zählen. Das hat aber erst funktioniert, als der Gesamtwiderstand so klein war, dass die Ströme den Sensor halb gegrillt haben. Ich habe das aber erst nach 10 Minuten gemerkt ;-) (der Sensor hat es überlebt.)
    Timer scheint es ja leider keine zu geben, aber ich denke, dass kann man dann evtl. mit kuzen Delays und Intervalzählung simulieren.
    Auf jedenfall werde ich mir das noch genauer anschauen.

    Edit: Und mit Spannungsteilern kann ich auch nicht von 5V auf 24V anheben. Das muss ich aber auch hinbekommen. Und für mich wäre es ja nur eine schnelle Lösung bis die Elektroniker das "Produkitv-Kästchen" fertig haben. Das dauert halt auch meistens mehrere Tage.


    Beitrag zuletzt geändert: 21.8.2011 20:25:44 von darkpandemic
  10. Wie gesagt, man nimmt dann zusätzlich einen Widerstand in Reihe in die Signalleitung damit die Endstufe des Sensors nicht überlastet wird (ich habe damals mit standard M18 Lichtschranken gearbeitet und den Strom auf der Signalleitung auf 2mA begrenzt).

    Der Grund warum ich das im Produktiveinsatz nicht einsetzen würde ist ein anderer, wenn durch ein durchgescheuertes Kabel oder einen Sensordefekt ein Kurzschluss auftritt, ist nicht auszuschließen das dieser den Eingang des Arduinos erreicht, deswegen würde ich hier in jedem Falle eine galvanische Trennung vornehemen.

    Ausgangsseitig muss man eben ne normale Verstärkerstufe nachschalten, idealerweise mit einem Optokoppler, Zwischenkreistransistor und einem Relais samt Freilaufdiode wie bspw. hier. Wenn du wieder nicht galvanisch trennen musst kannst du bspw. einen IRF510 ODER 520 MOSFET ohne Gate Widerstand an den Ausgang anschließen und damit dann bis zu 100V bei max 5,6A / 9,6A (Spitzenlast 20A) schalten.

    BTW:

    http://ruggedcircuits.com/html/ruggeduino.html


    Beitrag zuletzt geändert: 22.8.2011 0:23:25 von fatfox
  11. Hallo fatfox,

    wieder einmal herzlichen Dank. Die Relaisschaltung gefällt mir und sollte tun was ich brauche ;-)
    Und bei meine Fähigkeiten Elektronik zu schrotten scheint mir das Ruggeduino auch eine gute Idee zu sein. Aber scheinbar gibt es keine deutschen Bezugsquellen. Da muss ich halt nochmal schauen.

    Meine Schaltung sah damals so aus: http://dl.dropbox.com/u/33460450/Schaltung.png.
    Für ein brauchbares Signal an der Soundkarte musste ich den Poti auf 80Ω runterdrehen.
    Wo hätte ich da jetzt noch eine Widerstand nachschalten können um den Strom zu begrenzen?

    Danke für alles
    darkpandemic

    Edit: Ich bin damals davon ausgegangen, dass Soundkarten nur ~1V verkraften. Daher der 100Ω Widerstand.


    Beitrag zuletzt geändert: 22.8.2011 13:49:23 von darkpandemic
  12. darkpandemic schrieb:
    [...]

    Meine Schaltung sah damals so aus: http://dl.dropbox.com/u/33460450/Schaltung.png.
    Für ein brauchbares Signal an der Soundkarte musste ich den Poti auf 80? runterdrehen.
    Wo hätte ich da jetzt noch eine Widerstand nachschalten können um den Strom zu begrenzen?

    Danke für alles
    darkpandemic

    Edit: Ich bin damals davon ausgegangen, dass Soundkarten nur ~1V verkraften. Daher der 100? Widerstand.


    Ich schicke mal 2 Skizzen vorweg: http://www.fat-fox.de/pics/Spannungsteiler_01.png

    Also ich weiß nicht was du damals gemacht hast aber wenn ich den Spannungsteiler 100:80 Ohm berechne bekomme ich ohne Belastung am Mittelpunkt +10,7V an deiner soundkarte lagen also 13,3V (24V - 10,7V) an, die fallen nämlich über den 100Ohm Widerstand ab, allgemein ist es befremdlich gegen +24V ein Signal auszuwerten, ich würde hierzu ein schönes sauberes Massepotential bevorzugen, aber gut ich kenne deinen Sensor und deine Soundkarte jetzt nicht und ich weiß auch nicht wie die Eingänge an der Soundkarte funktionieren.

    Jedenfalls gehört der Widerstand zur Strombegrenzung in Reihe in die Plus Leitung, also die Leitung die das Signal repräsentiert, ich habe das für mein Verständnis von Signalverarbeitung gegen Masse mal in Schaltung 1 skizziert.

    Für den Arduino funktioniert das analog, wie in Schaltung 2, wenn du jetzt die Leitung zum Signalpin hinter dem Widerstand R2 kurzschließen würdest dann würde der Widerstand den Strom auf ein paar wenige Miliampere begrenzen, da die meisten IC Eingänge aber hochohmig sind fließt im Normalbetrieb kaum Strom weswegen die Spannung mit rund 4,9V bei meinem Spannungsteiler aus R1 und R3 ziehmlich komplett vom Arduino erkannt werden kann und sicher im erlaubten Bereich liegt.

    Beitrag zuletzt geändert: 22.8.2011 20:41:15 von fatfox
  13. Hallo fatfox,

    vielen Dank für die Skizzen. An Stelle des Potis hatte ich ursprünglich einen 2.2 kOhm Widerstand. Damit hätte ich dann ungefähr 1V an der Soundkarte gehabt und insgesamt nur 10 mA. Leider hat die Soundkarte damit kein Signal aufgenommen (Line-In Eingang einer Realtek OnBoard Soundkarte). Deswegen habe ich dann den Poti eingebaut und geschaut, ob ich damit irgendwo ein Signal bekomme. Als ich das gewünschte Signal hatte war der Poti dann halt auf 80 Ohm und der Strom folglich bei 133 mA. Das war für den Sensor dann zuviel. Die Soundkarte hatte damit offensichtlich kein Problem. Ich kann mich noch entfernt erinnern, dass ich die Soundkarte vor Jahren schon mal als Oszi missbrauchen wollte und da meine ich, dass der gute Messbereich von -12V bis +12V war. Als ich aber im Internet gesucht habe stand dort überall halt 1V (effektive Spannung) deshalb wollte ich es erstmal darauf auslegen.
    Eigentlich hätte es wohl funktioniert, wenn ich einfach einen 240 Ohm und einen 300 Ohm Widerstand verwendet hätte. Dann wären die Ströme ja wieder klein genug gewesen.
    Und das mit dem Widerstand zur Strombegrenzung und der Masse werde ich mir merken. Danke für den Hinweis, bevor ich es schmerzlich lernen muss :thumb:
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!