Tipps und Tricks
Leiterplatten - Fertigung
Der beste und preiswerteste Produzent von Leiterplatten ist: (allerdings in China)
http://www.smart-prototyping.com/ Dort bekommt man z.B. 10 Platinen 100x100mm für unter 22€ (insgesamt) incl. Versand. Das fällt unter die Zoll Grenze. Perfekte PCB's, mit Lötstopplack, beidseitiger Druck und was man so braucht. Qualität 1a, Preis 1a, Service 1a, Lieferzeit China-üblich ein paar Wochen Datenformat: Gerber Bin maximal zufrieden. Neben der Qualität und dem Preis ist der Support hervorzuheben. Sehr freundlich, schnell und unkompliziert. Hatte mal einen Fehler in den Gerber Dateien. Ich bekam am nächsten Tag eine freundliche Email von einer "Minnie" mit einem ScreenShot worauf der Fehler sofort sichtbar war. Schnell korrigiert und per Mail zurück geschickt. Eine Stunde später wieder eine freundliche Email "Vielen Dank, ihr Auftrag ist zur Produktion eingesteuert" So muss es sein. Die ebseite bietet auch noch andere Finessen. |
NRF24 mit AtTiny84 mit der ARDUINO-IDE
Und es geht doch ...
Allerdings etwas trickreich. Leider sind die Beschreibungen im Internet häufig einfach falsch oder mit unüblichen Cores und Libraries getestet.
Ich arbeite mit der aktuellen Arduino-Ide, dem "normalen" Tiny-Core und der NRF24-Library.
Da geht standardmässig erst mal gar nichts.
Woran hakts meistens:
Verschaltung:
Man darf nicht MISO-MISO und MOSI-MOSI verbinden wie sonst üblich sondern genau umgekehrt. MISO-MOSI, MOSI-MISO. Grund: der AtTiny hat nicht wirklich eine SPI Schnittstelle sondern nur DI und DO, also eine SPI, die nur in einer Richtung funktioniert. Angegeben ist die Slave-Logik, der Tiny fungiert hier aber als Master! Also MOSI ist der Input DI. Beim NRF24 ist es ebenso. Auch hier ist MOSI der Input. Das passt also nicht zusammen.
Ein 4.7u bis 10u Kondensator gehört noch an die Versorgungspins des NRF24 ! (siehe Bild)
Library:
Die Standard-NRF24-Library, die man mit dem Library-Manager installiert, hat für den Tiny84 verdrehte Pins, da sie für einen anderen Tiny-Core erstellt wurde. Die muss man patchen. :-(
Und zwar die Datei RF24.cpp ziemlich am Ende:
Original - geht nicht, bzw. nur mit dem angegebenen unüblichen Core
#elif defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
// these depend on the core used (check pins_arduino.h)
// this is for jeelabs' one (based on google-code core)
# define DI 4 // PA6
# define DO 5 // PA5
# define USCK 6 // PA4
# define SS 3 // PA7
Das muss geändert werden in: (für den "normalen" Core)
// these depend on the core used (check pins_arduino.h)
# define DI 6 // PA6
# define DO 5 // PA5
# define USCK 4 // PA4
# define SS 3 // PA7
Und schon läuft die Kiste.
Zugegeben: Eine Reihe grauer Haare habe ich diesem Umstand zu verdanken. Da muss man erst einmal drauf kommen, dass die Lib, gerade beim Tiny84 einen Fehler hat - mit einem normalen Arduino geht es problemlos. Graue Haare, Stirnfalten, mehrere Stunden, ein gutes Oszi, viel Testsoftware und noch mehr Hirnschmalz waren nötig um da drauf zu kommen.
Hier die gepatchte-Version:
rf24.zip | |
File Size: | 330 kb |
File Type: | zip |
Das ist ein drahtloser Bodenfeuchte- oder Regensensor. Man sieht schön den selbst gedruckten Batteriehalter, die Platine von Smart-Prototyping und rechts oben den NRF24 und unten den "Empfänger", ein WeMOS D1 mini als Gateway (der die Verbindung zum WLAN herstellt) mit angestecktem NRF24 (der die Verbindung zum Sensor aufrecht erhält). Am Display sieht man die gemessene Feucht (96) und die Batteriespannung des Sensors (3.16V).
Das Ganze hält mit einem Satz Batterien rechnerisch 5 Jahre. (ok ok, in der Praxis vermutlich eher etwas weniger)
Das Ganze hält mit einem Satz Batterien rechnerisch 5 Jahre. (ok ok, in der Praxis vermutlich eher etwas weniger)
Batteriehalter zum Selber-Drucken.
Wer über einen 3D-Drucker verfügt, findet auf Thingiverse.com eine ideale Vorlage zum Drucken von konfigurierbaren Batteriehaltern so wie man sie braucht.
http://www.thingiverse.com/thing:456900 Meine Hochachtung dem Autor. |