Servosteuerung zur Ansteuerung von 6 Servos über USB

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
noch eine USB-Buchse Typ B zum Einlöten und einen Quarz mit 12MHz

Die Klemmen links unten sind zur Versorgung der Servos mit 6V.
Die Schaltung selbst wird über USB mit Spannung versorgt.

Das Platinenlayout habe ich als PDF beigefügt, falls ihr Eagle gerade nicht installiert habt.

Ich drucke immer mit einem Laserdrucker auf Folie.
Ich traue mich fast nicht es zu schreiben, aber bei einer einzigen, so kleinen Platine ätze
ich gerne mit Salzsäure und Wasserstoffperoxyd (etwa 2 zu 1).
Geht innerhalb von 2 Minuten - kalt und ohne Rühren. 
ACTUNG: wegen der Dämpfe nur im Freien mit Rückenwind
Schutzbrille, Gummihandschuhe und ein grauer Meisterkittel sind Pflicht!

 

 

Schaltplan

   

Firmware

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)

Treiber

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:

man benötigt libusb-win32, das gibt es hier http://libusb-win32.sourceforge.net bzw genau
hier http://sourceforge.net/project/showfiles.php?group_id=78138. ist ein windoof installer,
den man in seinen programme-ordner (oder sonstwohin) entpackt. dort, unter
"C:\Programme\LibUSB-Win32\lib\bcc\libusb.lib" findet sich die besagte library.

und die "usb.h" ? die gibt es auch dort, unter "C:\Programme\LibUSB-Win32\include\usb.h".
beides kopiert man am besten in sein jeweiliges projektverzeichnis. dann kompilieren, und fertig ist das konsolen-executable

Quelle: (http://www.roboternetz.de/phpBB2/printview.php?t=42073&start=0)

Die Steuersoftware

Delphi

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

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.

 

Zweck des Ganzen

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


Downloads

Lizenz: die Firmware steht unter GPL-Lizenz wegen dem USB-Treiber

Platine (Eagle-Files)

AVR Firmware mit LCD 2x20 Zeichen (funktioniert nicht wenn kein Display angeschlossen ist)

AVR Firmware ohne LCD

Treiber

Windows C-Steuerprogramm

Windows Delphi Steuerprogramm