lautes denken: raspberry o.ä. für fahrrad?

Dieses Thema im Forum "Elektrik, Elektronik" wurde erstellt von geist4711, 14.07.2019.

  1. guinness

    guinness

    Beiträge:
    61
    Die Shift-Taste ist defekt.
     
  2. Rheinknie

    Rheinknie

    Beiträge:
    895
    Ort:
    Markgräfler Land
    Liegerad:
    Flux S-900
    Nein. Schlichtweg ein Irrglaube, dass man die Deutsche Sprache ohne Groß- und Kleinschreibung richtig flüssig lesen kann.
     
  3. winido

    winido

    Beiträge:
    1.031
    Ort:
    Raum Kaiserslautern
    Velomobil:
    Leiba x-stream
    Ahh! Das ist es, was hier so unscheinbar anders ist. Ist noch nicht zu meinen Hirn vorgedrungen gewesen. Evtl. lese ich auch nur zu oft engl. Texte.
     
  4. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    müssige diskusion um schreibweisen.....
    etwas mehr tolleranz täte da gut.

    bin bei meinem projekt nun dabei diverse sensoren ein zu binden.
    3-achs-neigungsmelder funzt schonmal, schaltet aber noch nichts(wird erst später relevant, wenn die alarmanlage kommt)
    spannungssensor für akku zickt leider schwer rum, will sich nicht einbinden lassen, die bibliotheken zicken rum.
    IR-bewegungsmelder ist im zulauf.
    RFID-sensor funzt, schaltet aber auch noch nix(auch später alarmanlage/wegfahrsperre)
    kleine nacharbeiten beim blinker-rpogramm noch nötig, manchmal bleibt de blinker auf 'an' stehen wenn man den ausschaltet, da fehlt noch eine kleine abfrage-schleife die die LAD's sicher abschaltet.
    FET's sind intergriert und funktionieren gut.
    habe 2 4-wege-joystick-ähnliche schalter gefunden, sind im zulauf, ähnlich kran-steuerung.
    werde sehen ob und wie ich die in lenker-rohre eingebaut bekomme.
    wenn es klappt wäre damit alles zu schaltende bequem abgedeckt.
    gangschaltung muss ich mich zwingend noch dran setzen das konzept um zu setzen.

    LED's bekommen erstmal 120° linsen, mal sehen wie das dann ausschaut. dann sehen ob/wie ich das vergiesse, für blinker/rücklicht.
    frontlicht-LED's steht noch komplett offen wie ich das realisiere, wird wohl blinker und scheinwerfer vorn einzeln werden, nicht zusammengefasst wie hinten.
     
  5. guinness

    guinness

    Beiträge:
    61
    Vielleicht meint der Gute ja auch Dein Grundwissen in Sachen Rechtschreibung und Grammatik.
     
  6. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    @guinness: Was ich über Rechtschreibung weiss, hat nichts damit zu tun, wie ich schreibe, da missverstehst du etwas.
    Das hat krankheitsbedingte Gründe, was ich schon vor lägern mal geäusssert habe.
    Es hat auch nichts damit zu tun was, auch hier zb, eigentlich Thema ist, nämlich Programmierung im dortigen Forum und Elektronik an meinm Quad hier.
    Sonst müsste ich ja 'frei übersetzt' jetzt anfangen an deinm Grundwissen über Rechtschreibeung zu zweifeln weil du deinen Foren-Namen klein schreibst, gell? ;-)......................
    So, jetz aber bitte zurück zum eigentlichen Thema!

    heute kam die Tastatur und wurde angeschlossen.
    Leider produziert das Beispiel-sketch diverse fehler, sehr blöd für einen Beispiel-code wo gezeigt werden soll wie man des einbindet....
     
    Zuletzt bearbeitet: 21.08.2019
    smö gefällt das.
  7. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    folien-tastatur funktioniert mittlerweile, sitze noch an der gangschaltung und wie ich die mit einem art 'setup' verknüpfe, programmtechnisch.
    blinkerschaltung läuft jetzt problemfrei
    ein anderer spannungs-senosr (max471) ist heute gekommen und wird demnächst eingebunden, zur akku-überwachung zb.
    magnetsensor und ir-bewegungsmelder sind nun auch da, für alarmanlage und eventuellen tacho bzw als sensor für die bremsleuchten, also an den bremsgriffen die taster will ich probieren mit den magnetsensoren zu machen.
     
  8. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    habe nun die Licht- und Gangschaltungs-Software soweit fertig. Eine Art Setup für die gangschaltung ist 'in Bau'.
    fürs Bremslicht sind die Magnetschalter integriert.
    wenn das Gangschaltungs-Setup steht, kommt der Spannungs-sensor zur Akku-überwachung.
    Dann geht's an die nächsten sachen.
    Mache mir auch schon gedanken über buchsen/stecker die noch von nöten sein werden -nicht ganz trivial wenn es denn wasserdicht werden soll, genauso wie eine gute kabelbaum-planung.
    dachte erst an diese Bühnentechnik-stecker (20-40 kontakte) aber die sind gross und zu schwer.
    es gibt so wasserdichte auto-stecker, sehr schön, aber nur max 6pole.
    Mal sehn was es letztendlich wird...
    Ach, und ein vernünftiger wasserdichtes akku-gehäuse brauchts auchnoch.
    Was habt ihr eigentlich so an euren Velos an Steckverbindern usw?
    Hier wirds wohl ein ip68Gehäuse mit durchsichtigem Deckel geben, 'normaler schaltkasten' also. Da kommt dann die elektronik rein, display im deckel aber von aussen sichtbar und eben die 4x4 folientastatur sowie die halterung für die RFID-Marke ( eine karte wie eine kreditkarte wär auch machbar).
     
    TitanWolf gefällt das.
  9. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    mal Bilder von meinem 'Testplatz', wo ich die Sachen erstmal ausprobiere:
    20190904_015922_Burst01.jpg 20190904_015926.jpg
    links oben die 3 step-down-wandler 5,1v (für raspberry-pi), 5v, und 3,3v,
    mitte oben der testservo, rechts daneben die Tastatur, da neben der RFID-Sensor.
    zentral das grosse steckboard für LED's, Fet's, usw und auf diesem der spannungs-sensor.
    links unten das display(20x4), darunter die beiden magnet-sensoren, rechts davon das kleine steckboard mit den tastern und der arduino mega2560.
    die pappe auf dem das ganze liegt ist nur damit der platz 'mobil' bleibt, das ich noch anders auf meinem wohnzimmertisch machen kann.... ;-)
    Für neugierige mal ein einblick in den 'arduino-sketch' den ich bisher fertig habe
    nein, der code ist nich ganz 'sauber' aber funktioniert und ich komme damit klar ;-) :

    Code:
    Code:
    //Lichtschaltung mit Fahrlicht/Fernlicht(PWM), Bremslicht über Magnetschaltern
    // Blinker mit Millis, Hoch-/runterschalten mit 250ms verzögerung
    //mit servo-ansteurung, noch ohne servo-setup
    
    #include <Servo.h>
    #include <Wire.h> //Wire.h Bibliothek einbinden
    #include <LiquidCrystal_I2C.h> //LiquidCrystal_I2C.h Bibliothek
    
    Servo Schaltservo;  // servo ist schaltservo
    int Servowinkel = 1;
    int Schaltvariable = 0;
    int Gangnummer = 0;
    int Servoposition[] = {1, 25, 50, 75, 100, 125, 150, 175} ; //array servopositionen
    
    
    LiquidCrystal_I2C lcd(0x23, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
    //Hier wird lcd benannt, die Adresse angegeben „0x23“ und die
    //Pinnbelegung durch das I²C Modul angegeben
    
    //millis
    unsigned long previousMillis2 ; // Variable zum Speichern des alten Wertes
    unsigned long interval2 ; // Variable für gewünschte Zeitdauer (1sek=1000)
    int t3 = 250;  // t3 zeit
    
    unsigned long previousMillis ; // Variable zum Speichern des alten Wertes
    unsigned long interval ; // Variable für gewünschte Zeitdauer (1sek=1000)
    int t = 150;  // t auf AUSzeit
    int t2 = 500; // t2 auf EINzeit
    
    //taster/schalter/eingänge bezeichnung/pin
    int Fahrlicht_t = 36;    //schalter
    int Fernlicht_t = 34;    //taster
    int MaginPin1 = 22;       //taster
    int MaginPin2 = 38;       //taster
    int Hupe_t = 28;         //taster
    int Blinker_li_t = 32;   //taster
    int Blinker_re_t = 30;   //taster
    int Hochschalten_t = 24; //taster hochschalten
    int Runterschalten_t = 26; //taster runterschalten
    
    
    //ausgänge bezeichnung/pin
    int Frontlicht_led = 2; //PWM_led
    int Ruecklicht_led = 3; //PWM_led
    int Blinker_li_led = 4;
    int Blinker_re_led = 5;
    int Hupe_led = 6;           //über FET
    
    
    
    void setup() {
      //lcd
      lcd.begin(20, 4); //Display starten, Größe Display 20 4
      lcd.backlight(); //Beleuchtung Display einschalten
    
      Schaltservo.attach(7);  // attaches the servo on pin 7 to the servo object
      Schaltservo.write(0);
     
      pinMode(Hochschalten_t, INPUT_PULLUP);
      pinMode(Runterschalten_t, INPUT_PULLUP);
      //Fahrlicht
      pinMode(Fahrlicht_t, INPUT_PULLUP);
      pinMode(Fernlicht_t, INPUT_PULLUP);
      pinMode(MaginPin1, INPUT_PULLUP);
      pinMode(MaginPin2, INPUT_PULLUP);
      pinMode(Frontlicht_led, OUTPUT);
      pinMode(Ruecklicht_led, OUTPUT);
      //Blinker
      pinMode(Blinker_li_t, INPUT_PULLUP);
      pinMode(Blinker_re_t, INPUT_PULLUP);
      pinMode(Blinker_li_led, OUTPUT);
      pinMode(Blinker_re_led, OUTPUT);
      //Hupe
      pinMode(Hupe_t, INPUT_PULLUP);
      pinMode(Hupe_led, OUTPUT);
    }
    
    void loop() {
      //display initiieren
      lcd.setCursor(0, 0); //Text beim 1. Zeichen 1. Reihe beginnen
      lcd.print("RBS"); //Display 1 soll oben „Display 1“ anzeigen
      lcd.setCursor(5, 0); //Text beim 1. Zeichen 2. Reihe beginnen
    
      //Gangschaltung tasten
      if (digitalRead(Hochschalten_t) == LOW && Gangnummer < 7 ) {
        if (millis() - previousMillis2 > interval2 ) {  //millis zählen
          previousMillis2 = millis() ;                 //millis setzen
            interval2 = t3 ;              //AUSzeit
            Gangnummer = ++Schaltvariable ; //Gang hochschalten
          
          }
        }
    
        if (digitalRead(Runterschalten_t) == LOW && Gangnummer > 0 ) {
          if (millis() - previousMillis2 > interval2 ) {  //millis zählen
            previousMillis2 = millis() ;                 //millis setzen
              interval2 = t3 ;              //AUSzeit
              Gangnummer = --Schaltvariable ;  //Gang runterschalten
            
            }
          }
          lcd.println("Gang:");
          lcd.println(Gangnummer);
          Schaltservo.write(Servoposition[Gangnummer]);
          delay(200);
    
      //Fahrlichtschaltung
    
      if (digitalRead(Fahrlicht_t) == LOW) {
        analogWrite(2, 80);  //PWMled auf (pin2, wert80)
        analogWrite(3, 80);  //PWMled auf (pin3, wert80)
      }
      else {
        analogWrite(2, 0);  //PWMled auf (pin2, wert0)
        analogWrite(3, 0);  //PWMled auf (pin3, wert0)
      }
    
    
      //Fernlichtschaltung
    
      if (digitalRead(Fernlicht_t) == LOW) {
        analogWrite(2, 255);  //PWMled auf (pin2, wert255)
      }
      else {
        if (digitalRead(Fahrlicht_t) == LOW)
        {
          analogWrite(2, 80);  //PWMled auf (pin2, wert80)
        }
        else {
          analogWrite(2, 0);  //PWMled auf (pin2, wert0)
        }
      }
    
    
      //Bremslichtschaltung
    
      if (digitalRead(MaginPin1) == LOW || digitalRead(MaginPin2) == LOW) {
        analogWrite(3, 255);  //PWMled auf (pin3, wert255)
      }
      else {
        if (digitalRead(Fahrlicht_t) == LOW) {
          analogWrite(3, 80);  //PWMled auf (pin3, wert80)
        }
        else {
          analogWrite(3, 0);  //PWMled auf (pin3, wert0)
        }
      }
    
    
      //Blinkerschaltung
    
      //Blinker_links
    
      if (digitalRead(Blinker_li_t) == LOW) {
        if (millis() - previousMillis > interval ) {  //millis zählen
          previousMillis = millis() ;                 //millis setzen
          if ( digitalRead(Blinker_li_led) == HIGH ) { //wenn led == an
            interval = t ;              //AUSzeit
            digitalWrite(Blinker_li_led, LOW); //led aus
          }
          else {
            interval = t2 ;            //EINzeit
            digitalWrite(Blinker_li_led, HIGH) ;  //led an
          }
        }
      }
      if (digitalRead(Blinker_li_t) == HIGH) {
        digitalWrite(Blinker_li_led, LOW) ;  //led aus
      }
    
      //Blinker_rechts
    
      if (digitalRead(Blinker_re_t) == LOW) {
        if (millis() - previousMillis > interval ) {  //millis zählen
          previousMillis = millis() ;                 //millis setzen
          if ( digitalRead(Blinker_re_led) == HIGH ) { //wenn led == an
            interval = t ;              //AUSzeit
            digitalWrite(Blinker_re_led, LOW); //led aus
          }
          else {
            interval = t2 ;            //EINzeit
            digitalWrite(Blinker_re_led, HIGH) ;  //led an
          }
        }
      }
      if (digitalRead(Blinker_re_t) == HIGH) {
        digitalWrite(Blinker_re_led, LOW) ;  //led aus
      }
    
    
      //Hupenschaltung
    
      if (digitalRead(Hupe_t) == LOW) {
        digitalWrite(Hupe_led, HIGH);
      }
      else
      {
        digitalWrite(Hupe_led, LOW);
      }
    }
    
    [Für Programmcode gibt es auch hier einen Code-Tag … - Reinhard -]
     
    Zuletzt von einem Moderator bearbeitet: 05.09.2019
    Kraeuterbutter gefällt das.
  10. nikolauzi

    nikolauzi

    Beiträge:
    14
    Wie wär's damit:
    https://www.ebay.de/itm/1-2-4-8-10-...hash=item340b2816ec:m:m6S2zotruNeXX1Burfy7hgQ
    Immerhin 12 Kontakte.

    Interessantes Projekt. Habe bei mir einen STM8 Controller als ECU drin. Damit ich nicht soviele Kabel brauche eine einfache Eindrahtschnittstelle (wired AND), mit der ich z.B. nur 3 Kabel vom Lenkerschalter+Bremssensor zur ECU brauche. Die ECU hat dann viele Schaltausgänge und die Schnittstelle.
    Kommt bald noch einiges an der Schnittstelle hinzu, 2. Lenkerschalter (links), Helligkeitssensor, Musiksteuerung, etc. Kann dann einfach drangehangen werden:)

    Der Nikolauzi
     
    schadddiiieee gefällt das.
  11. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    ja, sowas in der art buchse/stecker wird es wohl werden.
    sowas änhliches, in 2 und 5-pol hab ich schon hier, für akku den 2-poligen und für anderes (noch nicht genau festgelegt) die 5-pol.
    entscheident werden dabei nachher die kabel(-durchmesser) sein die ich verwende, wegen den 'dichtnippeln'.

    sowas ähnliches mit mehrfach-digital-input und I2C-bus dachte ich auch erst, aber die paar meter kabel gehen noch so, lohnt mir den aufwand nicht :)

    hab heute weiter am 'gangschaltungs-setup gearbeitet, will es so einrichten das ich den servo per tasten über seinen gesamten wegbereich 'fahren' kann und speicherplätze setzen für die einzelnen servopositionen.
    knifflig das ganze, zb ist die folien-tastatur bei mir tückisch, darüber den servo 'fahren lassen' und der sevor läuft nicht wie er soll, mit normelan tastern geht es....
    irgendwas stimmt da noch nicht....

    heut kamen erstmal noch ein paar LED' und die vorwiderstände.
    dann kann es bei der kosntruktion der lampen und blinkern nun auch etwas weiter gehen.
     
  12. nikolauzi

    nikolauzi

    Beiträge:
    14
    Naja, bezüglich Erweiterungsfähigkeit ist das ein großer Vorteil, da man ganz einfach etwas hinzufügen kann, ohne Kabel zu verlegen:) Wer weiß, was Dir/mir noch so einfällt!
     
  13. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    habe die software nun soweit fertig, das:
    Bremslicht über Magnetkontakte angesteuert wird
    Hupe über Taster angesteuert wird
    Blinker links und rechts über Taster blinken
    Tagfahr-/Abblend-licht über Taster funktioniert, Tagfahrlicht je Tastendruck ein- oder aus-geschaltet wird
    Abblendlicht wird über Taster geschaltet, (optional wie das Tagfahrlicht auch möglich)
    Gangschaltung hoch-/runter- über Taster den schaltservo ansteuern
    Parkposition(Gang 8) kann man mit der Taste '#' auf der Folientastatur einschalten(später auch über einen servo zb die kette sperren o.ä.)

    alle ausgänge werden über FET's geschaltet.

    Mit der Folientastatur kann man ins 'Gangschaltunssetup' gehen (taste 'C') und bekommt dann auf dem display (anzeigenreihe 2) den 'servowinkel' angezeigt, der gerade aktuell ist
    rückkehr ins normale programm mit 'D'.

    den servowinkel im setup kann man mit den Tasten 'A' (rauf) und 'B' (runter) ändern.
    ein druck auf die zahlen 1-8 der folientstatur, speichert dann den servowert der gerade eingestellt ist unter dem jeweiligen Gang zwischen(im programm, nicht im speicher).
    mit '*' kann man die neueintsellungen aller gänge fest in den speicher übernehmen und bei bedarf mit der zahl '0' die werte aus dem speicher auch wieder in das laufende programm übernehmen(nur im setup).

    im display sieht man ständig der derzeit eingelegten gang
    mit '9' kann man sich alle derzeitigen winkel aller gänge auf dem display anzeigen lassen(reihe 2 und 3).
    in der letzten reihe der display-anzeige wird die akkuspannung und 'parken' für parkpositions-schalter angezeigt.

    als nächstes werde ich mal sehen ob ich den sensor für beschleunigung und den ir-bwewegungsmelder zu einer art alarmanlage zusammen bauen kann, die man mit 'parkposition' zusammen aktivert :)

    und wie ich den RFID-leser mit ins programm integriere das dieser die ganze elektronik überhaupt erst zur nutzung freigibt....
     
    Kraeuterbutter und Rolf-Ka gefällt das.
  14. geist4711

    geist4711

    Beiträge:
    395
    Ort:
    Hamburg
    der RFID-leser ist nun integriert, auch programmtechnisch.
    bin jetzt dabei die 'alarmanlage' (3x nur ein kurze zeit blinken, dann 'blinken und hupen' jedes mal wenn wer am quad wackelt) über beschleunigungs-sensor, ein- und ab-schaltbar zu programmieren...

    da würde es auch die möglichkeit geben, einen oder mehrere magnet-schalter(zb für den deckel/klappen) mit ein zu beziehen.

    evtl wird es später statt der folien- eine kapazitive tastatur geben, so das man die tastatur im gehäuse von innen ankleben kann und es kein kabel(flaches folien-'kabel') durch den deckel geben muss.
    gut für wasserdichtigkeit auf dauer...
    auch buchsen/stecker bin ich schon am genauer nach schauen, in wasserdicht.
    achja, und 2 kleine 2S-4000mA lipo-akkus hab ich mal zum testen bestellt, überlege da einen silikon-verguss zu machen -ist aber noch nicht sicher.
    ach, und die reflektoren die ich pimpen will zu rückleuchten, sind auch bestellt.
    mal sehen wie das später wird :)
     


  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden