Ein ATMega8 erhält über
USB die Winkelwerte (0-255) für die jeweiligen Servos
z.B:
USB_sende(2,100); // Servo2, Wert100
Ein Display kann angeschlossen werden und zeigt dann die 6 Werte an
Eine Bitte: wenn jemand die Schaltung nachbaut
und Fehler findet oder ich etwas unklar beschrieben habe,
meldet euch bitte bei mir damit ich die Seite entsprechend korrigiere. Vielen
Dank.
Aufbau
der Schaltung: Außer dem was sowieso in jede Bastelkiste gehört benötigt man Die Klemmen links unten sind zur Versorgung der Servos mit 6V. Das Platinenlayout habe ich als PDF beigefügt, falls ihr Eagle gerade nicht installiert habt. Ich drucke immer mit einem Laserdrucker auf Folie.
|
Geschrieben mit dem AVR-Studio 4.16 in C
Das HEX-File zum direkten Brennen des AVR liegt im Verzeichnis default
Als Grundlage habe ich den Artikel von robocat im
Roboternetz genommen
(http://www.roboternetz.de/phpBB2/printview.php?t=42073&start=0)
Der USB-Treiber stammt von:
Objective Development Software GmbH
(http://www.obdev.at/products/vusb/prjcontrol.html)
Denkt bitte daran die Fuses auf externen Quarz zu setzen: CKSEL1 CKSEL2 und
CKSEL3 gesetzt
(Vorsicht: Bei eineigen Programmiergeräten sind die Bits invertiert! also CKSEL0 ist gesetzt)
Ein neuer AT-Mega8 hat immer den internen Taktgeber auf 1MHz.
Hier zur Kontrolle ein schöner Fuse-Calkulator:
(http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_online.html)
Windows benötigt natürlich auch noch eine Treiber damit das Gerät erkannt wird (Siehe Download)
Beim Einstecken des fertigen Gerätes an den USB-Port sollten die LEDs kurz blinken. Dann meldet sich der Assistent (Hier WinXP)
Im zweiten Bild sieht man schon den Namen des Gerätes (USB-ROBO1) wenn nicht
- keine Ahnung!
Jetzt den Ordner mit dem Treiber wählen.
In der Systemsteuerung erscheint das Gerät dann so:
Die Steuersoftware benötigt noch LIBUSB ich zitiere hier mal Robocat:
Quelle: (http://www.roboternetz.de/phpBB2/printview.php?t=42073&start=0)
Leider bietet Borland das kostenlose Delphi 2005 nicht mehr an.
schade ließ sich sehr leicht und schnell programmieren, obwohl ich keine Ahnung
von Delphi habe
Java ist ja recht ungeeignet für Sowas - also besser C
Ich habe Bloodshed genommen
http://www.bloodshed.net/download.html
Visual-C habe ich mir zwar auch noch getestet - aber als ich nach 10
Minuten Suche noch nicht rausfand wo man das Lib-Verzeichnis für den Linker
eingibt,
habe ich beschlossen: einfaches Programm -> einfache Software.
Ich stelle also erstmal eine einfache Konsolenanwendung hier ein:
So kann jeder über die simple Funktion USB_sende beliebig die Servos ansteuern - auch ohne große Programmierkenntnisse.
Vielleicht schreibt ja jemand ein schönes Programm mit grafischer Oberfläche - und schickt es mir :)
bei den Projektoptionen muss man noch einstellen dass die libusb.lib gelinkt wird.
Ich möchte gerne so einen Roboterarm bauen und steuern
Ein Projekt von Martin Jacobsen:
http://www.martin-jacobsen.de/index.php?option=com_content&task=view&id=25&Itemid=31
AVR Firmware mit LCD 2x20 Zeichen (funktioniert nicht wenn kein Display angeschlossen ist)