DoorPi 2.0 Board - Zusammenbau und Troubleshooting

Begonnen von e3xtreme, 02 Dezember 2017, 23:11:31

Vorheriges Thema - Nächstes Thema

e3xtreme

Hallo meine Lieben,
Ich habe nun die Bauteile und Module bestellt und konnte schonmal den ersten Prototyp händisch zusammenbauen, zwar fehlen noch ein paar Teile, aber ich kann den Thread schonmal starten und ein bisschen berichten.  ;D

Updates:
02.12.17
Modulliefertermin für Pololu 27.12.17 ....  :o :'(, wenn es jemand ohne Supply haben will kann ich die Bestellung noch bis 1 Woche vorher ändern, alles andere sollte demnächst eintrudeln. Alles was ich derzeit schon hab ist aufgebaut, der Arduino blinkt fröhlich vor sich hin und wird erkannt, lässt sich aber nicht programmieren 🤔 , könnte an der Verkabelung liegen, da der USB Hub noch fehlt
30.11.17
PCBs und Vogelfutter wurde am 29.11.17 geliefert
1.Manueller Lötversuch hat schon begonnen, die Endgegener micro-USB Buchse, FTDI und MCP sind geschafft, der Rest ist Kinderkacke --> Wochenende

Gunther

#1
und sind die Teile schon angekommen oder in Sicht?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Ich wollte nochmal nachhaken, wie der Stand ist.

VG
Gunther
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

dquantz

Jo, ein Lebenszeichen wäre schon ganz schön...

MR.Matthias

Hallo zusammen!
ich wollte gerne mal wissen wie weit die Platine ist? Hast du schon welche verschickt? bzw kannst du schon sagen wie lange es noch dauert?

Dann wollte ich gerne noch wissen wie ihr euer restliches Zubehör zusammenstellt?
wie z.B. :
Welche Kamera benutzt ihr? Mit IR oder ohne?
Klingeltaster oder macht ihr alles über Display?
RFID, Fingerprint oder Zahlenschloss?

Gunther

Ich hole den Thread nochmal hoch. Nachdem nun schon einige Boards angekommen sind - DANKE DAFÜR! - interessiert mich natürlich, wie Ihr vorgeht.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

#6
Habe heute mal mit der Verkabelung begonnen. Danke nochmal für die viele Vorarbeit!

1.) Gibt es irgendwo für V29 eine Belegung der Ports bzw. eine Beschreibung der Bezeichnungen?
Das meiste ist selbsterklärend bzw. aus dem Wiki-Eintrag zum alten Board ableitbar.

2.) Was mir momentan fehlt: Wo kann ich das Board mit Strom versorgen? Ist das Uin? Falls ja, welcher ist welcher?
Muss ich bei den Lautsprechnern wegen + und - aufpassen (sind nicht getrennt bezeichnet)

3.) Den RPI verbinde ich mit dem Micro-USB?

4.) Wie spreche ich den Arduino an? Ist der mit der USB-Verbindung über den PI ansprechbar?

Edit: Da e3xtreme hier nicht regelmäßig reinschaut, trage ich mal seine Antwort aus dem Dropboxpaper hier rein. Freue mich über weitere Mittester.
ZitatHallo, ich werde mich wie schon gesagt erst dem Aufbauen und erst dann der Anleitung widmen, für die Programmierung sollte der USB Port ausreichen. Am besten einen USB 3 Port verwenden der hat bestimmt genug  Saft, bei Uin ist es egal wie rum, da ein gleichrichter eingebaut ist ​🙂​
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

alexmetz

#7
Ich mach mal lieber hier weiter:

@Gunther:
wie hast Du denn den Arduino am Mac angesprochen? Habe auch mal per USB an den Mac angeschlossen, weiß aber nicht, wie ich den in dem Arduino IDE anspreche.

UPDATE:
Habe bei Port "dev/cu.usbserial-A907WHWW" eingestellt. Den gibt's nur, wenn das DoorPi-Board eingesteckt ist.
Bekomme folgende Fehlermeldung:
Arduino: 1.8.5 (Mac OS X), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00

Muss ich bei der Wahl des Programmers was beachten?

LG,
Alex
FHEM auf RaspberryPi 4
Homematic

Gunther

Hallo Alex,

ich habe das Board (inkl. Arduino) direkt an den Mac per USB angeschlossen.
Was passiert denn, wenn Du den Blink-Sketch aufspielst? Wenn der Arduino richtig angeschlossen ist, sollte nach dem Upload die LED im Sekundentakt blinken.

Zu meiner Forschungsarbeit:
Im ersten Step wollte ich nun folgendes erreichen:
1.) Eingebaute LED in Klingeltaster dauerleuchten lassen (an LED1)
2.) Klingeltaster zum Rennen bringen (an RNG1)

1.) Eingebaute LED in Klingeltaster dauerleuchten lassen (an LED1)
1. habe ich geschafft.
Mein Sketch dazu sieht wie folgt aus:
#include <SPI.h>              // We use this library, so it must be called here.
#include <MCP23S17.h>         // Here is the new class to make using the MCP23S17 easy.

// Einbindung der beiden MCP23S17
// https://playground.arduino.cc/Main/MCP23S17
// Bank 1 is address 0 (A0=GND A1=GND A2=GND)
// Bank 2 is address 4 (A0=+ A1=GND A2=GND)
MCP Bank1(0, 10);
MCP Bank2(4, 10);   

void setup() {
  Serial.begin (9600); // Ausgabe in der Seriellen Konsole starten um z. B. Klingelknopf zu prüfen
 
  Bank1.begin();
  Bank2.begin();

  Bank1.pinMode(9, HIGH); // Pin9 auf Bank1 (RNG1 --> GPB0 auf Bank1)
 
  pinMode(3, OUTPUT); // LED vom Klingeltaster direkt an Arduino (LED1 am Doorpi-Board)
}

void loop() {
  int Klingeltaster; // Definition des Klingeltasters
  Klingeltaster = Bank1.digitalRead(HIGH); // Zuweisung des Wertes zum Klingeltaster
  Serial.println(Klingeltaster,DEC); // Serielle Ausgabe um Klingeltaster im Seriellen Monitor zu prüfen
 
  digitalWrite(3, LOW);   // LED von Klingeltaster Dauer-AN (komischerweise funktioniert das mit LOW statt mit HIGH)
}

Da die Pins LED1 laut Schaltplan direkt am Arduino hängen (Pin3), war die Einbindung hier relativ einfach. Der folgende Part ist hier entscheidend:

void setup() {
  pinMode(3, OUTPUT); // LED vom Klingeltaster direkt an Arduino (LED1 am Doorpi-Board)
}

void loop() {
  digitalWrite(3, LOW);   // LED von Klingeltaster Dauer-AN (komischerweise funktioniert das mit LOW statt mit HIGH)
}


Wo ich lange gesucht habe, war, dass
digitalWrite(3, HIGH)
nicht wie erwartet zum Erfolg geführt hat. Ich habe einfach mal getestet und komischerweise funktioniert LOW hier.

2.) Klingeltaster zum Rennen bringen (an RNG1)
Zum Teil 2 wird es dann etwas schwieriger. Leider ist mein Handeln noch nicht von Erfolg geprägt, auch wenn ich recht sicher bin, dass ich nicht weit weg bin.

Folgender Link hilft weiter:
https://playground.arduino.cc/Main/MCP23S17

Der Klingeltaster ist an RNG1 angeschlossen. Dieser hängt laut Schaltplan am MCP23S17 und zwar an GPB0.
Um Pins von einem oder mehreren MCP23S17 im Arduino verwenden zu können sind ein paar Dinge zu beachten:
1.) Verkabelung muss passen (MISO, MOSI, SCK - vgl. Link)
2.) Der Pin auf dem Arduino, an dem der Chip ausgewählt wird muss bekannt sein (CS - ChipSelect - vgl. Schaltplan) (in unserem Fall: Pin10 auf Arduino)
3.) Die Adressen der MCP23S17 müssen bekannt sein.
Laut Schaltplan, gehe ich davon aus, dass diese wie folgt sind:
MCP23S17-PiFace hat Adresse 0 (A0=GND A1=GND A2=GND)
MCP23S17-Add-On hat Adresse 4 (A0=+ A1=GND A2=GND)
4.) Der Pin am MCP23S17 muss bekannt sein (bei uns lt. Schaltplan GPB0, was in der obigen Anleitung Pin9 entspricht)

Den Rest habe ich im Sketch-Code kommentiert.
Leider bekomme ich im Seriellen Monitor keine Ausgabe bei Drücken des Tasters.

Vielleicht hilft Euch das schonmal weiter.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Was mich wundert:
Ich habe an LED3 mal eine LED gehängt.
Diese leuchtet direkt. Das sollte doch eigentlich nicht sein, oder?

 
Im setup:
Bank2.pinMode(6, LOW); // Pin6 auf Bank1 (LED3 --> GPA5 auf Bank2)

Im loop:
Bank2.digitalWrite(LOW);

Weder High noch LOW im loop ändern am Zustand etwas.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

alexmetz

#10
ja das Board hängt direkt am Mac bei mir. Aber ich schaffe es schon gar nicht den Sketch hoczuladen (s.o. UPDATE).

Und noch was: wieso ist RNG1 (GPB0 am PiFace) PIN 9 am PiFace? Lt. Schaltplan müsste es doch 1 sein. Oder versteh ich da was falsch?
Entsprechend müsste LED3 (GPA5 am PiFace) PIN 26 sein.

LG
Alex.
FHEM auf RaspberryPi 4
Homematic

Gunther

#11
Hast Du unter "Werkzeuge --> Board" "Arduino Pro or Pro Mini" ausgewählt?
Und unter Prozessor: "ATmega328P (5V, 16 MHz)"?
Programmer steht bei mir auf AVRISP mkII

Zu den Pins: Ich habe mich an die Anleitung hier gehalten:
https://playground.arduino.cc/Main/MCP23S17
Demzufolge (vgl. Grafik unter Wiring Example) hat GPB0 die PIN-Adresse 9.
Und LED3: GPA5 (auf dem Add-On Board) hat PIN-Adresse 6.

Vielleicht liege ich ja auch falsch mit den PINs.
Du hast Dich an die Bezeichnungen neben den Boards bezogen, richtig? Wie kommst Du dann bei RNG1 auf PIN 1? Da steht ja R30. (EDIT: Du bist über die Grafik in der Dropbox gegangen, richtig?)

Ich habe übrigens die Bibliothek von Cort Buffington eingebunden. Ging leider nicht per ZIP sondern nur manuell.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

alexmetz

#12
Zitat von: Gunther am 21 Mai 2018, 12:09:52
Hast Du unter "Werkzeuge --> Board" "Arduino Pro or Pro Mini" ausgewählt?
Und unter Prozessor: "ATmega328P (5V, 16 MHz)"?
Programmer steht bei mir auf AVRISP mkII

hab ich genauso. Ich glaub es ist irgendwie ein Treiber-Problem. Ich habe nämlich unter "Werkzeuge --> Port" nur folgendes Gerät:
Zitatcu.usbserial-A907WHWW

Ich brauche aber wohl:
Zitattty.usbserial-A907WHWW

Im Terminal wird es unter "/dev/" auch angezeigt (das "tty.usbserial-A907WHWW"), nicht aber in der Arduino IDE...

Zitat von: Gunther am 21 Mai 2018, 12:09:52
Zu den Pins: Ich habe mich an die Anleitung hier gehalten:
https://playground.arduino.cc/Main/MCP23S17
Demzufolge (vgl. Grafik unter Wiring Example) hat GPB0 die PIN-Adresse 9.
Und LED3: GPA5 (auf dem Add-On Board) hat PIN-Adresse 6.

Vielleicht liege ich ja auch falsch mit den PINs.
Du hast Dich an die Bezeichnungen neben den Boards bezogen, richtig? Wie kommst Du dann bei RNG1 auf PIN 1? Da steht ja R30. (EDIT: Du bist über die Grafik in der Dropbox gegangen, richtig?)
Genau. Den hier: https://www.dropbox.com/s/fzgzxy9f9vrb4oo/DoorPi.pdf?dl=0
Da stehen rote Zahlen neben den Pins. Ich dachte die sind es...
Bin aber absoluter Laie. Ich tu mir schon schwer, den Schaltplan überhaupt zu verstehen...


UPDATE:
Bin nach dieser Anleitung vorgegangen, um den Treiber zu installieren. Hat aber nur das o.g. Ergebnis geliefert:
https://learn.sparkfun.com/tutorials/how-to-install-ftdi-drivers/mac

NOCH'N UPDATE:
wollte das hochladen mal über den Raspberry mit avrdude versuchen. Er findet da ein /dev/ttyUSB0.
Jetzt macht mir die Arduino IDE beim export 2 Dateien, eine mit Bootloader, eine ohne. Welche nehm ich da?

Und passt das flash-Kommando so? Trau mich nicht recht...
avrdude -pm328p -cavr109 -P /dev/ttyUSB0 -b57600 -D -Uflash:w:Dateiname.hex:i

3. UPDATE
Kann es sein, dass mein Bootloader auf dem Arduino kaputt ist? Wie bekomme ich den neu geflasht? Scheint ja über den FTDI nicht zu gehen...

4. UPDATE
Habe mal das DorrPi-Board am Raspberry angeschlossen und folgende Befehl abgesetzt:
avrdude -vv -patmega328p -carduino -P/dev/ttyUSB0 -b57600
Ergebnis:
avrdude: Version 6.3
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/root/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
...
FHEM auf RaspberryPi 4
Homematic

Gunther

#13
Deine Fragen kann ich Dir leider nicht beantworten.

Komisch ist, dass einige PINs Spannung haben:

5V haben:
PBL3
PBL2
1W
Display
Stromversorgung

3V haben:
LED3
LED2

Sollten die nicht solange auf 0 stehen, bis der Arduino Sketch 5V drauf gibt?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Ich habe nun zum Test mal LED angeschlossen an:
LED1 (Arduino)
LED2 (MCP23S17 - Add-On)
LED3 (MCP23S17 - Add-On)

Mein Test-Sketch schaut so aus:
#include <SPI.h>
#include <MCP23S17.h>

MCP iochip(7,10);

void setup() {
iochip.begin();
iochip.pinMode(1, OUTPUT);
iochip.pinMode(2, OUTPUT);
iochip.pinMode(3, OUTPUT);
iochip.pinMode(4, OUTPUT);
iochip.pinMode(5, OUTPUT);
iochip.pinMode(6, OUTPUT);
iochip.pinMode(7, OUTPUT);
iochip.pinMode(8, OUTPUT);
iochip.pinMode(9, OUTPUT);
iochip.pinMode(10, OUTPUT);
iochip.pinMode(18, OUTPUT);
iochip.pinMode(19, OUTPUT);
iochip.pinMode(20, OUTPUT);
iochip.pinMode(21, OUTPUT);
iochip.pinMode(22, OUTPUT);
iochip.pinMode(23, OUTPUT);
iochip.pinMode(24, OUTPUT);
iochip.pinMode(25, OUTPUT);
iochip.pinMode(26, OUTPUT);
iochip.pinMode(27, OUTPUT);
iochip.pinMode(28, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
iochip.digitalWrite(1, HIGH);
iochip.digitalWrite(2, HIGH);
iochip.digitalWrite(3, HIGH);
iochip.digitalWrite(4, HIGH);
iochip.digitalWrite(5, HIGH);
iochip.digitalWrite(6, HIGH);
iochip.digitalWrite(7, HIGH);
iochip.digitalWrite(8, HIGH);
iochip.digitalWrite(9, HIGH);
iochip.digitalWrite(10, HIGH);

iochip.digitalWrite(18, HIGH);
iochip.digitalWrite(19, HIGH);
iochip.digitalWrite(20, HIGH);
iochip.digitalWrite(21, HIGH);
iochip.digitalWrite(22, HIGH);
iochip.digitalWrite(23, HIGH);
iochip.digitalWrite(24, HIGH);
iochip.digitalWrite(25, HIGH);
iochip.digitalWrite(26, HIGH);
iochip.digitalWrite(27, HIGH);
iochip.digitalWrite(28, HIGH);
digitalWrite(3, HIGH);
delay(1000);
iochip.digitalWrite(1, LOW);
iochip.digitalWrite(2, LOW);
iochip.digitalWrite(3, LOW);
iochip.digitalWrite(4, LOW);
iochip.digitalWrite(5, LOW);
iochip.digitalWrite(6, LOW);
iochip.digitalWrite(7, LOW);
iochip.digitalWrite(8, LOW);
iochip.digitalWrite(9, LOW);
iochip.digitalWrite(10, LOW);

iochip.digitalWrite(18, LOW);
iochip.digitalWrite(19, LOW);
iochip.digitalWrite(20, LOW);
iochip.digitalWrite(21, LOW);
iochip.digitalWrite(22, LOW);
iochip.digitalWrite(23, LOW);
iochip.digitalWrite(24, LOW);
iochip.digitalWrite(25, LOW);
iochip.digitalWrite(26, LOW);
iochip.digitalWrite(27, LOW);
iochip.digitalWrite(28, LOW);
digitalWrite(3, LOW);
delay(1000);
}


Ich habe nun alle 8 Board-Adressen von 0-7 getestet.

Mein erwartetes Testergebnis war, dass alle 3 LEDs im Sekundentakt blinken.
Die Am Arduino verrichtet das perfekt.
Die beiden anderen am MCP leider nicht.

Ich bin mit meinen begrenzten Möglichkeiten leider am Ende.

By the way: Die Doku der library für den MCP scheint falsch zu sein.
Danach müßte es lauten:
iochip.pinMode(1, LOW);

irgendwo habe ich gelesen, dass das falsch ist und wie der normale Pin-Mode lauten muss:
iochip.pinMode(1, OUTPUT);
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden