- Weiterentwicklung des XR2206 Funktionsgenerators (inkl. Schaltplan)
- Einstellbarer Frequenzbereich (Grenzen ermitteln, coarse/fine oder Mehrgang)
- Dreieckswelle testen und schaltbar machen
- Umstellung auf symmetrische Spannungsversorgung
- Optional: Justage Sinus-Symmetrie
- Aufbau im Gehäuse
- Verbesserung des alten Labornetzteils LM723
- Schaltplanerstellung des Ist-Zustandes
- Debugging Instabilität und springen der Spannung
- Coarse/Fine oder Mehrgang Regelung
- Erweiterte Funktionalität Spannungsanzeige
- Optional: Erweiterte Funktionalität Strombegrenzung (soweit als Mockup auf bestehender Platine realisierbar) und Stromanzeige
- Optional: Alte Bauteile soweit ermittelbar ersetzen
- Optional: komplett neuer Schaltplan
- Ansteuerung eines bipolaren Schrittmotors mittels L297 und L298
- Aufbau einer CAN-Bus-Kommunikation zwischen zwei Micros mittels MCP-2515 und MCP-2551
- Aufbau eine drahtlosn Kommunikation zwischen zwei Micros mittels Funkmodul RFM70
- Ansteuerung von Gleichstrommotor mittels Motortreiber BA6209 und B57928
- Ansteurung eines 3D-Beschleunigungssensors von ELV
Unsere Plattform für Ideen, Austausch, Sammlung und Dokumentation von Elektronikprojekten und diversen anderen interessanten Dingen... Arduino, Raspberry Pi, Robotik, etc.
▼
Dienstag, 13. Dezember 2011
Aktuelle Projektideen
Obwohl ich Moment wenig Zeit habe an Projekten zu arbeiten, möchte ich trotzdem meine Ideen festhalten:
Sonntag, 27. November 2011
XR2206: Einfachste Beschaltung
Ich hatte ja noch den Schaltplan der einfachen Beschaltung des XR2206 versprochen. Jetzt hab ich ihn endlich gezeichnet:
Hab eine feste Frequenz von 1 kHz eingestellt: f=1/(C1*R1). Statt der 5k1 im Datenblatt für R4, R5 hab ich 4k7 genommen. Als Versorgungsspannung hab ich ca. 15V aus dem Labornetzteil genommen.
Hab eine feste Frequenz von 1 kHz eingestellt: f=1/(C1*R1). Statt der 5k1 im Datenblatt für R4, R5 hab ich 4k7 genommen. Als Versorgungsspannung hab ich ca. 15V aus dem Labornetzteil genommen.
Montag, 14. November 2011
Und er schwingt doch (noch)! XR2206
Ich hätte es kaum für möglich gehalten, aber ich hab ihn zum Laufen gekriegt (natürlich just in dem Moment, als ich mir über ebay einen neuen XR2206 bestellt hatte, im Glauben der alte sei abgeraucht -dem war nicht so). Jetzt hab ich drei von den Dingern...
Stur nach Beispielschaltung im Datenblatt und zunächst mal ohne symmetrische Spannungsversorgung. Aber sieht doch trotzdem toll aus, oder? War ein schönes Erfolgserlebnis :-). Schaltplan folgt noch. Ach ja, hab ich schon erwähnt, dass ich mein 1505er total cool finde ;-).
Lust auf Schweißkurs?
Ich hab mir irgendwie in den Kopf gesetzt, dass ich schweißen lernen möchte. Zuerst E-Handschweißen, dann WIG (ist einfach am coolsten und für Feinmechanik/Robotik auch am besten geeignet). Optional noch MAG, aber ich denke, wenn man WIG kann, ist das nicht mehr nötig.
In München gibt es coole Samstagskurse zu erschwinglichen Preisen:
http://www.schweisskurse-merkle.de/Region-München/aktuelle-schweisskurstermine-region-muenchen.html
Vielleicht können wir nächstes Jahr mal einen gemeinsam machen. Würde sicher Spaß machen :-).
Es gibt übrigens um 200 Euro einen total genialen WIG-Inverter, HF und gepulst mit super Bewertungen, und das Argon ist auch nicht so teuer. Dazu einen coolen Automatik Schweißhelm. Bleibt nur die Sache mit dem Anschleifen der Wolframelektroden...
Berlan WIG/TIG Inverter Schweißgerät 180A
Cooler Schweißhelm
In München gibt es coole Samstagskurse zu erschwinglichen Preisen:
http://www.schweisskurse-merkle.de/Region-München/aktuelle-schweisskurstermine-region-muenchen.html
Vielleicht können wir nächstes Jahr mal einen gemeinsam machen. Würde sicher Spaß machen :-).
Es gibt übrigens um 200 Euro einen total genialen WIG-Inverter, HF und gepulst mit super Bewertungen, und das Argon ist auch nicht so teuer. Dazu einen coolen Automatik Schweißhelm. Bleibt nur die Sache mit dem Anschleifen der Wolframelektroden...
Berlan WIG/TIG Inverter Schweißgerät 180A
Cooler Schweißhelm
Sonntag, 13. November 2011
Pollin AVR Evaluationsboard: Inbetriebnahme
Nachdem wir bei unserer letzten Bastelsession schon fast fertig mit dem Aufbau geworden sind, hab ich es nun fertig gebaut und nach einigen kleineren Problemen in Betrieb genommen. Bzgl. Teile: es waren zu viele LEDs dabei, dafür fehlten die Taster, ein LED war zudem kaputt (natürlich das Netzt-LED, das du Phil schon eingebaut hattest). Taster hatte ich noch genug im Fundus :-). Dann leuchtete zumindest shon mal die Netz-LED beim Anschließen an die Stromversorgung.
Hab gleich auch noch die beiden anderen LEDs auf dem Board gecheckt. Die waren in Ordnung, aber irgendwer hat sie falsch herum eingelötet ;-). Es war halt schon kurz vor dem Abendessen, als wir das gemacht hatten und wahrscheinlich waren wir schon unterzuckert... Aber es hatte auch ein Gutes: ich konnte gleich ausgiebig das Auslöten mittels Entlötlitze und (reichlich) Fluxstift üben.
Dann ging es daran das Board mittel USB2Serial-Konverter an Rechner anzuschließen und das Beispielprogramm (schnell umgeschrieben auf den AtMega8, den ich grade zur Hand hatte) mittels PonyProg zu flashen (über Bit-Banging). Tja, das hat nicht funktioniert. Verbindung zum Board instabil, flashen dauert ewig (im Minutenbereich) und schließlich immer mit Fehlermeldung abgebrochen. Hatte auch Angst, dass ich den AVR "verfused". Bitbanging ist echt Mist und ist nicht mal im Notfall brauchbar - bloß keine Zeit damit vertun.
Da musste ein gscheiter Programmer her: mein AVRUsbLab ;-). Das funktionierte mit AVR-Studio raz-faz und ohne Probleme. Konnte das mit Bascom compilierte HEX-file dort mittels MKII-Protokoll super flashen.
Tataa: das Testprogramm funktioniert! Die viel beschriebenen Probleme mit Spannungseinbruch und einfrieren/resetten wegen der Hardwareentprellung der Taster treten bei mir nicht auf. Habs daher erst mal so gelassen, da es funktioniert hat. Auch die Rückkommunikation zum PC über die zweite serielle Schnittstelle funktionierte tadellos (man muss nur die Baudrate der Schnittstelle am PC von 9600 auf 19200 erhöhen).
Zum Schluss noch ein schönes Foto ;-):
Hab gleich auch noch die beiden anderen LEDs auf dem Board gecheckt. Die waren in Ordnung, aber irgendwer hat sie falsch herum eingelötet ;-). Es war halt schon kurz vor dem Abendessen, als wir das gemacht hatten und wahrscheinlich waren wir schon unterzuckert... Aber es hatte auch ein Gutes: ich konnte gleich ausgiebig das Auslöten mittels Entlötlitze und (reichlich) Fluxstift üben.
Dann ging es daran das Board mittel USB2Serial-Konverter an Rechner anzuschließen und das Beispielprogramm (schnell umgeschrieben auf den AtMega8, den ich grade zur Hand hatte) mittels PonyProg zu flashen (über Bit-Banging). Tja, das hat nicht funktioniert. Verbindung zum Board instabil, flashen dauert ewig (im Minutenbereich) und schließlich immer mit Fehlermeldung abgebrochen. Hatte auch Angst, dass ich den AVR "verfused". Bitbanging ist echt Mist und ist nicht mal im Notfall brauchbar - bloß keine Zeit damit vertun.
Da musste ein gscheiter Programmer her: mein AVRUsbLab ;-). Das funktionierte mit AVR-Studio raz-faz und ohne Probleme. Konnte das mit Bascom compilierte HEX-file dort mittels MKII-Protokoll super flashen.
Tataa: das Testprogramm funktioniert! Die viel beschriebenen Probleme mit Spannungseinbruch und einfrieren/resetten wegen der Hardwareentprellung der Taster treten bei mir nicht auf. Habs daher erst mal so gelassen, da es funktioniert hat. Auch die Rückkommunikation zum PC über die zweite serielle Schnittstelle funktionierte tadellos (man muss nur die Baudrate der Schnittstelle am PC von 9600 auf 19200 erhöhen).
Zum Schluss noch ein schönes Foto ;-):
Samstag, 5. November 2011
Let's make robots - our first robot
Als Fan von Hobby-Robotik und dem Make Video Blog von Frits "fritsl" Lyneborg, hatte ich für unser wochenendliches Basteln den "Start here"-Robot der Robo-Seite letsmakerobots.com ausgesucht. Philipp und ich haben ihn dann auch gebaut, ging problemlos von der Hand - das Tutorial ist echt gut zum durcharbeiten.
Der Roboter funktioniert wunderbar - wie beschrieben. Un hübsch ist er geworden (siehe Fotos). Lediglich ein leichter Linksdrift bei Geradeausfahrt. Den haben wir über einen kleinen Trick im Code (siehe unten) korrigiert, natürlich parametrierbar ;-). Die Drift scheint sich nämlich mit abnehmender Akkuladung zu verändern...
Der Roboter funktioniert wunderbar - wie beschrieben. Un hübsch ist er geworden (siehe Fotos). Lediglich ein leichter Linksdrift bei Geradeausfahrt. Den haben wir über einen kleinen Trick im Code (siehe unten) korrigiert, natürlich parametrierbar ;-). Die Drift scheint sich nämlich mit abnehmender Akkuladung zu verändern...
Unser einfacher Code funktioniert ganz gut, sodass der Robo auch aus Ecken wieder rauskommt:
' ----------------------------------------------------------------
' lmr my first robot first test program
symbol dangerlevel = 80 ' how far away should thing be,
symbol dangerlevel = 80 ' how far away should thing be,
' before we react
symbol turn = 200 ' this sets how much should be turned
symbol servo_turn = 700 ' this sets for how long time we should
symbol turn = 200 ' this sets how much should be turned
symbol servo_turn = 700 ' this sets for how long time we should
' wait for the servo to turn befor we
' measure distance
symbol rightdelay=10 ' after rightdelay times calling nodanger,
symbol rightdelay=10 ' after rightdelay times calling nodanger,
' turn only left wheel (drift correctiion)
' ----------------------------------------------------------------
' initialisation stuff
gosub totalhalt ' initially stop and turn head forward
b3 = 0 ' variable b3 is used to keep track of how often
' ----------------------------------------------------------------
' initialisation stuff
gosub totalhalt ' initially stop and turn head forward
b3 = 0 ' variable b3 is used to keep track of how often
' "nodanger" has been called
' ----------------------------------------------------------------
' main loop
main:
readadc 0, b1 ' read how much distance ahead
if b1 < dangerlevel then
gosub nodanger ' if nothing ahead drive forward
else
gosub whichway ' if obstacle ahaed then decide which way is better
end if
goto main
' ----------------------------------------------------------------
' including drift correction by stopping right wheel for
' ----------------------------------------------------------------
' main loop
main:
readadc 0, b1 ' read how much distance ahead
if b1 < dangerlevel then
gosub nodanger ' if nothing ahead drive forward
else
gosub whichway ' if obstacle ahaed then decide which way is better
end if
goto main
' ----------------------------------------------------------------
' including drift correction by stopping right wheel for
' one cycle after nodanger has been called rightdelay times
nodanger: ' combination to make the robot drive forward
if b3<rightdelay then
high 4 : low 5 : low 6 : high 7
else
high 4 : low 5 : low 6 : low 7
b3=0
endif
b3 =b3+1
return
' ----------------------------------------------------------------
' looking and deciding which way to turn
whichway:
gosub totalhalt ' first stop!
' Look oneway
gosub lturn ' look to one side
pause servo_turn ' wait for the servo to finish turning
readadc 0, b1
gosub totalhalt
' Look the other way
gosub rturn ' look to one side
pause servo_turn ' wait for the servo to finish turning
readadc 0, b2
gosub totalhalt
' Decide which way
if b1 <= b2 then
gosub body_lturn
else
gosub body_rturn
end if
return
' ----------------------------------------------------------------
' turn robot right
body_rturn:
high 4: low 5 : high 6 : low 7
pause turn : gosub totalhalt
return
'-----------------------------------------------------------------
' turn robot left
body_lturn:
low 4 : high 5: low 6 : high 7
pause turn : gosub totalhalt
return
' ----------------------------------------------------------------
' turn head right
rturn:
servo 0, 100
return
' ----------------------------------------------------------------
' turn head left
lturn:
servo 0, 200
return
' ----------------------------------------------------------------
nodanger: ' combination to make the robot drive forward
if b3<rightdelay then
high 4 : low 5 : low 6 : high 7
else
high 4 : low 5 : low 6 : low 7
b3=0
endif
b3 =b3+1
return
' ----------------------------------------------------------------
' looking and deciding which way to turn
whichway:
gosub totalhalt ' first stop!
' Look oneway
gosub lturn ' look to one side
pause servo_turn ' wait for the servo to finish turning
readadc 0, b1
gosub totalhalt
' Look the other way
gosub rturn ' look to one side
pause servo_turn ' wait for the servo to finish turning
readadc 0, b2
gosub totalhalt
' Decide which way
if b1 <= b2 then
gosub body_lturn
else
gosub body_rturn
end if
return
' ----------------------------------------------------------------
' turn robot right
body_rturn:
high 4: low 5 : high 6 : low 7
pause turn : gosub totalhalt
return
'-----------------------------------------------------------------
' turn robot left
body_lturn:
low 4 : high 5: low 6 : high 7
pause turn : gosub totalhalt
return
' ----------------------------------------------------------------
' turn head right
rturn:
servo 0, 100
return
' ----------------------------------------------------------------
' turn head left
lturn:
servo 0, 200
return
' ----------------------------------------------------------------
' stop motors and head forward
totalhalt:
low 4 : low 5 : low 6 : low 7
servo 0, 153
wait 1
return
totalhalt:
low 4 : low 5 : low 6 : low 7
servo 0, 153
wait 1
return
"Brainless Bug": Nachtrag
Ach ja, ich hatte vergessen zu erwähnen, dass ich auch nach verschiedenen Optimierungsmaßnahmen und nach dem Erstellen einer schönen neuen Strecke auf DIN A2 und mit schwarzen Gewebetape, ich es nicht geschafft habe den Linienverfolger zum Verfolgen von Linien zu bringen...
Hab den Sensor neu abgeschirmt und teilweise geschwärzt. So konnte ich erreichen, dass auch bei Tageslicht der Unterschied zwischen weissen und schwarzen Flächen gut erkannt wird. Aber der Roboter fährt maximal geradeaus und nie nach links.
Da es noch viele andere interessante Projekte gibt, werde ich das Linienfolgerprojekt mal ad acta legen. Hab für später noch Teile für eine Variante mit anderer Sensorik, mal sehen.
Hab den Sensor neu abgeschirmt und teilweise geschwärzt. So konnte ich erreichen, dass auch bei Tageslicht der Unterschied zwischen weissen und schwarzen Flächen gut erkannt wird. Aber der Roboter fährt maximal geradeaus und nie nach links.
Da es noch viele andere interessante Projekte gibt, werde ich das Linienfolgerprojekt mal ad acta legen. Hab für später noch Teile für eine Variante mit anderer Sensorik, mal sehen.
Freitag, 4. November 2011
"Brainless Bug": endlich ein Foto ;-)
Dass man auch sehen kann, wie hübsch unser kleiner Linienfolger geworden ist. Das ist schön die "refurbished" Version, da die erste von meinem 3-jährigen Sohn Julian auf mechanische Festigkeit getestet wurde ;-).
Sonntag, 2. Oktober 2011
Einfacher "brainless bug" Kantenfolger aus Eisstäbchen
Ein einfacher Kantenfolger ist es also geworden, nach dem Originalvorbild des Spurt-Robot der Uni Rostock.
Benötigte Bauteile:
Soweit so gut. Aufbau war unproblematisch. Funktionierte auch prinzipiell, aber am Feintuning happerts noch. Bis jetzt bin ich auf verschiedene Probleme gestoßen.
Bei Tageslicht drehen immer beide Räder, da müsste eine entsprechende Begrenzung des Basisstroms mit Vorwiderstand her. Auf die schnelle konnten wir leider keinen passenden Wert aus der Widerstandsdekade finden und Trimmer hatten wir grad keinen zur Hand. Bei Kunstlicht am Abend funktioniert die Abstimmung aber, daher lassen wir den Punkt mal so (obwohl ich schon ausführliche Berechnungen und eine Mess-Strategie entwickelt habe).
Nächstes Problem war, dass der Bot sich nicht nach links dreht, wenn er über einer hellen Fläche fährt - bestenfalls geradeaus. Das recht Rad mit der Verdickten Antriebsachse dreht also zu langsam. Die Achse weiter zu verdicken half nicht wirklich, am Schluss war sie schon viel zu dick... Hab wieder alles runtergmacht und die Achsverdickung mit 3 Lagen Schrumpfschlauch neu aufgebaut. Dann hab ich folgenden Trick versucht: stärker Spannung des Treibriemens auf dem linken Rad mit der unverdickten Antriebsachse. Das hat dann den gewünschten Effekt gebracht - die durch die Spannung höhere Reibung hat die Drehzahl des linken Rades soweit reduziert, dass der Roboter jetzt auf weissen Flächen nach links dreht.
Auf dem schwarzen Gewebeband dreht er auch schön nach rechts, auf dem blauen allerdings nicht. Hab also das blaue Stück (das schwarze Band war uns ausgegangen ;-)) mit Edding schwarz angemalt. Das funktioniert leider nicht optimal und der Bot fährt meistens gerade drüber. Muss also schwarzes Tape besorgen, oder mit schwarzer Farbe nochmal drübergehen.
Außerdem ist der Bot etwas zu rückenlastig und kippt beim Losfahren oder wenn er über leichte Unebenheiten fährt gerne nach hinten. Da muss der Batteriehalter noch etwas nach vorne versetzt werden.
Die optimale Einstellung und Abschirmung des LDR konnte ich bis jetzt nicht finden. Entweder der Sensor ist zu weit vom Boden weg und der Roboter erkennt keine schwarzen Flächen mehr, oder er ist zu nah, sodass er immer einen Rechtsdrall hat. Außerdem ist der Sensor sehr empfindlich gegen leichte Unebenheiten der Bahn, was sofort zu einem Abkommen von der Linie zur Folge hat.
Benötigte Bauteile:
- 2 kleine DC-Motoren
- 1 Stück Schlauch (z.B. Fahrradventilschlauch oder Schrumpfschlauch) zur Achsenverdickung (ca. 10mm lang)
- 3 Mignon-Zellen AA plus Halter für die drei Zellen (meine Motoren liefen mit 3V zu schwach)
- 1 Transistor BD137
- 1 Fotowiderstand M9960-11b
- 2 Kugellager „608”
- 1 Luftballon
- 1 Eisstäbchen
- 1 Stück Riffelstab, ca. 8cm lang, Durchmesser 8mm
- Heisskleber
- Etwas Schaltdraht
- Etwas schwarzes Papier zum Abschirmen des LDR
Soweit so gut. Aufbau war unproblematisch. Funktionierte auch prinzipiell, aber am Feintuning happerts noch. Bis jetzt bin ich auf verschiedene Probleme gestoßen.
Bei Tageslicht drehen immer beide Räder, da müsste eine entsprechende Begrenzung des Basisstroms mit Vorwiderstand her. Auf die schnelle konnten wir leider keinen passenden Wert aus der Widerstandsdekade finden und Trimmer hatten wir grad keinen zur Hand. Bei Kunstlicht am Abend funktioniert die Abstimmung aber, daher lassen wir den Punkt mal so (obwohl ich schon ausführliche Berechnungen und eine Mess-Strategie entwickelt habe).
Nächstes Problem war, dass der Bot sich nicht nach links dreht, wenn er über einer hellen Fläche fährt - bestenfalls geradeaus. Das recht Rad mit der Verdickten Antriebsachse dreht also zu langsam. Die Achse weiter zu verdicken half nicht wirklich, am Schluss war sie schon viel zu dick... Hab wieder alles runtergmacht und die Achsverdickung mit 3 Lagen Schrumpfschlauch neu aufgebaut. Dann hab ich folgenden Trick versucht: stärker Spannung des Treibriemens auf dem linken Rad mit der unverdickten Antriebsachse. Das hat dann den gewünschten Effekt gebracht - die durch die Spannung höhere Reibung hat die Drehzahl des linken Rades soweit reduziert, dass der Roboter jetzt auf weissen Flächen nach links dreht.
Auf dem schwarzen Gewebeband dreht er auch schön nach rechts, auf dem blauen allerdings nicht. Hab also das blaue Stück (das schwarze Band war uns ausgegangen ;-)) mit Edding schwarz angemalt. Das funktioniert leider nicht optimal und der Bot fährt meistens gerade drüber. Muss also schwarzes Tape besorgen, oder mit schwarzer Farbe nochmal drübergehen.
Außerdem ist der Bot etwas zu rückenlastig und kippt beim Losfahren oder wenn er über leichte Unebenheiten fährt gerne nach hinten. Da muss der Batteriehalter noch etwas nach vorne versetzt werden.
Die optimale Einstellung und Abschirmung des LDR konnte ich bis jetzt nicht finden. Entweder der Sensor ist zu weit vom Boden weg und der Roboter erkennt keine schwarzen Flächen mehr, oder er ist zu nah, sodass er immer einen Rechtsdrall hat. Außerdem ist der Sensor sehr empfindlich gegen leichte Unebenheiten der Bahn, was sofort zu einem Abkommen von der Linie zur Folge hat.
Freitag, 23. September 2011
Unknown project x2 - was kann das nur sein ;-) ?
Ich wollte es nicht zu einfach machen, daher nur eine Teilmenge der Bauteile der jeweiligen Projekte ;-). Ich denke wir werden morgen bei unserer Bastelsession viel Spaß haben... Ich hoffe es funktioniert alles so wie es gedacht ist! Cu
Montag, 19. September 2011
So jetzt kann's losgehen: Bezugsquellen für Sparkfun in Europa
Das erste Posting :-). Damit es nicht ganz inhaltsfrei wird, gleich mal ein Tip bzgl. Bezugsquellen:
Technobots aus UK hat jetzt alle Sparkfun-Produkte im Sortiment! Auch sonst ein interessantes Portfolio. Versandkosten ohne Tracking sind auch nicht so hoch.
technobotsonline.com
Sparkfun-Produkte gibt es auch über den Elektronikladen über den Münchener Händler PTL-Elektronik. Ist aber kein Endkundenkanal, also keine Recht wie Endkunde (Widerruf, Gewährleistung).
Technobots aus UK hat jetzt alle Sparkfun-Produkte im Sortiment! Auch sonst ein interessantes Portfolio. Versandkosten ohne Tracking sind auch nicht so hoch.
technobotsonline.com
Sparkfun-Produkte gibt es auch über den Elektronikladen über den Münchener Händler PTL-Elektronik. Ist aber kein Endkundenkanal, also keine Recht wie Endkunde (Widerruf, Gewährleistung).