Sensor-Platinen als Prototyp

frontseite_black

pewduino Sensor (Oberseite)

Ich war ungeduldig. Da die Hardware im Wesentlichen schon klar ist, und nur noch die Software der Sensoren nach Vollendung schreit, habe ich mir eine runde Sensorplatine gelayoutet.

Dank des Internets war schnell klar, welches Programm dafür geeignet ist. Ich habe die Freeware Version der Software “Eagle” von CADSOFT genommen. Nach ein paar Tutorial-Videos und Google-Suchen konnte ich eine kleine Platine zaubern.

Da ich die Platine noch nicht erhalten habe, kann ich an dieser Stelle nur mal eine grobe 3D-Visualisierung anbieten. Wie zu erkennen ist, werden wir 3x Vishay TSOP31238 auf einer Platine verwenden. In 120°-Anordnung wird eine größtmögliche Abdeckung bzw. Erkennung erreicht. Viele “Konkurrenten” im Internet beschränken sich auf einen oder maximal zwei IR-Receivern. Allerdings lässt sich aus den Datenblättern erkennen, in welchen Bereichen der TSOP eben noch zuverlässig IR erkennen kann, oder eben nicht.

Außerdem werden die Sensoren in SMD-Bauweise hergestellt. Aus Platzgründen ist es nicht anders möglich.

pewduino Sensor (Unterseite)

pewduino Sensor (Unterseite)

Im Netz findet man einige Seiten zu chinesischen Herstellern von Leiterplatten. Ich bin einfach mal das Risiko eingegangen und habe die Produktionsdaten der Platine versendet und per Paypal bezahlt. Es werden mir 10 Prototypen-Platinen mit einem Durchmesser von 37mm für ca. 15 Euro erstellt.

Ich habe sowas vorher noch nie gemacht, und lasse mich einfach mal überraschen, wenn es in die Hose geht, habe ich wenigstens die Erfahrung gesammelt. Ist ja auch was wert ;)

Weiterführende Links:
http://www.cadsoft.de
http://www.elecrow.com

Es werde Licht. Buntes Sensor-Licht.

Wie bereits angekündigt, habe ich ein kleines Video angefertigt, das eine kleine Auswahl der verschiedenen RGB-Lichtsignale zeigen soll.

Weiter unten gibt’s mehr Informationen, aber hier erstmal das Video:

Geplant ist also, dass der Markierer, die benötigten Lichtsignale an den Sensor sendet und dieser einfach nur ausführt. Der Markierer kann dabei auf eine Anzahl von bis zu 255 möglichen Lichtsignalen zurückgreifen.

In dem Video lassen sich die verschiedenen Farben schlecht unterscheiden, darum habe ich nicht alle gezeigt. Farben.. das kennt ihr.

9 Farben habe ich bislang eingebaut. Rot und Grün sind keine Teamfarben mehr. Die Farben sind einzig und allein dafür da, um Schaden und Heilung anzuzeigen.

Ja, ich weiß, der Sensor kann immer noch kein IR empfangen. Kommt schon noch ;) Da kann ich ja auch auf bereits existierende Funktionen zurückgreifen. Glaub ich.

Redesign der Sensoren mit i2c-Bus

sensor_in_devEs geht weiter im Pewduino-Projekt. Unser erster Meilenstein ist die Entwicklung von funktionierenden Sensoren. Zur Zeit wird der Sensor noch auf einem Mini-Breadboard mit Arduino Nano entwickelt. Wie ich im vergangen Post schon erwähnte, findet ein Atmel Mikrokontroller Platz in jedem Sensor.

Verbunden werden die Sensoren über den i2c-Bus. Der Arduino unterstützt die i2c-Kommunikation mittels der Wire-Library.

I2C muss man sich wie das heimische Netzwerk (LAN) vorstellen, nur eben viel simpler, aber ähnlich, denn jedes Gerät bekommt eine eigene Adresse zugewiesen. Allerdings gibt es keine automatische IP-Adressenvergabe, wenn ein neues Gerät in das “Netzwerk” angeschlossen wird. Und um maximale Benutzerfreundlichkeit zu gewährleisten, war die erste Hürde, dass jeder Sensor eine einzigartige Adresse im i2c-Netz bekommt, ohne dabei jeden Sensor manuell konfigurieren zu müssen. Es soll Plug-n-Play sein. So einfach. Keine kabelgebundene Konfiguration über den PC oder per Schalterchen auf dem Sensorboard.

Und da das i2c keinen “DHCP-Server” vorsieht, musste an dieser Stelle so etwas erst einmal entwickelt werden. Sehr simpel und rudimentär, aber es funktioniert.

Neue Sensoren bekommen vom Master, der Microcontroller der im Markierer steckt, eine Adresse zugewiesen, und prüfen selbstständig, ob die Adresse im Netz doppelt vorkommt. Denn das muss dringend vermieden werden!

Als nächsten Schritt muss die i2c-Kommunikation funktionieren. Der Sensor wird auf Befehle des Markierers reagieren, und andersrum. Aus dem Grund könnte im nächsten Blogpost wieder mal ein Video folgen. Yeah.

 

weiterführende Links:
http://www.i2c-bus.org/de/i2c-bus/
http://de.wikipedia.org/wiki/I%C2%B2C
http://arduino.cc/en/pmwiki.php?n=Reference/Wire

Unterstützungsaufruf erfolgreich

Also nun ist es schon fast wieder ein Monat her, seit dem ich den Hilfe-Aufruf gestartet habe. Und es haben sich auch welche von euch gemeldet. Vielen Dank erstmal dafür!

Aufgrund der Praktikabilität, Bootzeit und Stromaufnahme des Raspberry Pis, wurde vorerst wieder ein Atmega328 als Markierer-Mikrokontroller ins Konzept aufgenommen. Ich hab mich da von den “Neuen” mal beraten lassen, ich hab ja keine Ahnung ;)

Ob es ein Atmega328 bleibt, muss die Entwicklung zeigen, denn grob Überschlagen könnte die Firmware größer werden als in den Atmega328 reinpasst (ca. 30K).

Mein ursprüngliches Problem war das gleichzeitige Senden und Empfangen von IR-Signalen. Das habe ich auch immer noch nicht mit EINEM Atmega gelöst bekommen. Aus diesem Grund verwende ich nun mehrere Atmegas. Klingt komisch, ist aber so. Allerdings werden dadurch auch weitere Vorteile nutzbar:

  • Dadurch das nun jeder Sensor einen eigenen Microcontroller erhält, kann sich der Sensor fast völlig auf das Empfangen konzentrieren.
  • Die Anzahl der Sensoren ist nun nicht mehr fix, jeder Anwender kann “fast” beliebig viele Sensoren hinzufügen. Alle Sensoren werden einfach in Reihe geschaltet.
  • Die Sensoren lassen sich nun lokalisieren, d. h. der Markierer weiß, welcher Sensor ausgelöst hat.
  • Es wird in den Sensoren RGB-LEDs (5mm) eingebaut. Dadurch kann das Team in seinen Teamfarben leuchten, sofern das für das Spiel eingestellt wird.

Das war erstmal ein kleiner Ausblick, was kommen wird. Zunächst konzentrieren wir uns auf die Sensoren, danach auf das Senden des IR-Signals. Erster Sensorprogrammcode wurde bereits geschrieben und sieht vielversprechend aus. Im Laufe dieser Woche werde ich dazu noch weitere Details zu den Sensoren bekannt geben.

 

Suche Unterstützung

Lang lang ist’s her, das hier etwas Neues geschrieben stand. Allerdings habe ich die Idee eines DIY-Lasertags nicht aufgegeben! Mir fehlen nur leider die programmiertechnischen Fähigkeiten, und darum auch der “kleine” Aufruf.

Wenn jm. Lust hat mitzuwirken, kann er sich gerne bei mir melden:
blog_ at _pewduino_ . _org

Meine Ideen:
Als Basis könnte aufgrund des fehlenden multitaskings (senden + gleichzeitig empfangen) auch ein Raspberry Pi dienen (?)

Smartphone als Display im Markierer, Kommunikation über Bluetooth

Soundausgabe würde dann einfach über die Smartphone Lautsprecher gesehen.

Über das Smartphone als Display können Sensoren (GPS, Kompass, Bewegung) ins lasertag Spiel einfließen

Über das Smartphone können Online-Verbindungen hergestellt werden -> Live Positionsdaten der Spieler und vieles mehr.

Fazit: Programmierung würde sich auf die Programmierung eines Raspberrys und einer Smartphone-App erweitern. Als Grafiker/Mediengestalter sind meine Grenzen dort definitiv erreicht. Aber da das Internet voller Nerds ist hoffe ich vll. Unterstützung für ein solches Projekt zu finden. Ich denke hier besteht die Möglichkeit etwas völlig Neues zu erschaffen.

DIY Laser Tag Shield part 2

pewduino_shield_2Nun habe ich auch den Verstärker eingebaut und heute abend, wenn es dunkler wird, kann ich noch mal einen Test machen. Leider muss es dunkel sein, um eine Vergleichbarkeit zu meinen anderen Tests zu schaffen. Ich finde, es sieht schon garnicht so schlecht aus :)

Summary: I build in my amplifier circuit and do another range test in the evening. I need to wait for dusk, because of the comparability to my other range tests. They were made without direkt sunlight, too. I think my DIY laser tag shield looks pretty neat!

laser tag shield

pewduino_shield

Heute Abend habe ich schonmal den 555 Timer auf eine Art DIY laser tag shield gelötet. Ich bin kein Meister was Lochrasterplatinen löten anbelangt, aber irgendwie hab ich’s dann doch ohne Kurzschluss hingekriegt. Das rote Kabel führt die 38 kHz Oszillation. Morgen kommt dann meine Verstärkerschaltung mit Mosfet statt Transistor drauf. Dann könnte ich nochmals einen Versuch draußen wagen, ob die Reichweite nochmals erhöht wurde und ob alles funktioniert. Also diese Arduino Lasertag Shield Idee gefällt mir irgendwie, schließlich gibt es für den Mikrocontroller jede Menge Shields, Ethernet-, Servomotor-, WLAN-Shield. Wer Interesse an weiteren Shields zum Kaufen und Experimentieren hat, kann das gerne hier tun:

http://www.watterott.com/de/Boards-Kits/Arduino/Shields oder
http://www.tinkersoup.de/index.php?cPath=22_64

Summary: This evening I soldered my 555 Timer circuit on a perfboard. Tomorrow I try to solder my amplifier circuit on the board, so I can try it outside and hopefully I can extend my range. The red wire is the 38 kHz output. I like the idea of a laser tag shield for the Arduino. There are many other shields available, for example ethernet-, motor- and wifi-shields. If you are interested, you can buy them here, for example:

https://www.sparkfun.com/categories/240