- 20. Dezember 2011: Ich habe geschafft einen "PI-Reglung" (Proportional-Integrative) zu bauen. Die Motoren laufen jetzt deutlich synchroner, allerding haben sie immer noch ein Fehler, den ich per Programm nicht lesen kann... Ich befürchte, dass die Schaltung, die die Werte der optischen Encoders liest, ein Fehler hat.
- 19. Dezember 2011: Endlich Urlaub, endlich wieder Zeit für Giskard. Erstes Problem: die USB-PCMCIA-Karte ist Kaputt... Ich muss einen Ersatz suchen...
- 12. Oktober 2010: Ein anderes "kleines" Problem der VTY war, dass einige Befehle asynchron liefen, also es waren einige Sekunden zu warten, bis die Antwort kam. Und in der Zwischenzeit konnte der Nutzer weitere Befehle eingeben. Das war nicht schön! Endlich habe ich geschafft, alle VTY-Befehle zu ändern, dass sie synchron arbeiten!
- 10. Oktober 2010: Endlich habe ich geschafft, ein Multisprachsystem für die VTY einzurichten! Ab sofort sind die Beschreibungen der Befehle, sowie die Ausgaben in derselben Sprache der GUI.
- 07. Oktober 2010: Probleme mit der Kommunikation zwischen die GUI und den Mikrocontroller. Sehr oft hat die GUI nicht gewartet, bis die Leitung frei war um Befehle zu schicken, dass zum Problem führte. Die Pakete vom Mikrocontroller wurden falsch interpretiert und führten sehr oft zum Programmabstürz. Nach einer langen Suche, habe ich endlich den Fehler gefunden und korrigiert. Nun scheint es gut zu laufen...
- 06. Oktober 2010: Wieder etwas Zeit für das Projekt. Seit Juli, mit der Einrichtung der Cisco-Stil-VTY, hatte die GUI zwei separate Logsysteme. Da diese Sache mich immer gestört hatte, habe ich endlich alles zusammen in einem System übernommen.
- 26. September 2010: Endlich wieder Zeit für dieses Projekt! Ab sofort werden die Nutzer, die das Fern-GUI-Programm nutzen, mit PAM authentifiziert. Dazu ist ein neuer VTY-Befehl "reset force" verfügbar, dieser wird als letzte Hoffnung benutzt und forciert ein Reset bei Ausschalten der Schaltungen.
- 22. August 2010: Noch einige Änderungen bei den Motorensteuerungsfunktionen. Da der PWM-Wert ein 16 Bits Zahl ist, ist eine Division ohne Zahlen nach dem Komma nicht immer möglich und ab und zu ist ein Motor doch langsamer als der andere. Die Lösung ist, den schnelleren Motor kurz anzuhalten, wenn der Unterschied der gefahrenen Schritten zwischen den Motoren zu hoch ist.
- 15. August 2010: Die Motoren konnten mit einem Finger gebremst werden. Das konnte ich NICHT akzeptieren. Zum Glück war die Lösung einfach. Ich habe eine zu hohe PWM-Frequenz benutzt. Nun laufen die Motoren mit voller Kraft.
- 07. August 2010: Die Version 1.0 des Programms für die Motorensteuerung ist da! Auch die kleinen Ungenauigkeiten wegen der Divisionen der Integervariablen sind behoben worden. Der neue Debugger hat geholfen!
- 07. August 2010: Ich habe mich entschieden, einen RS232-Debugger zu basteln. Letzten Endes muss man nur ein "MAX232" und ein paar Kondensatoren löten und der ATMega8 kann RS232 sprechen. Die Fleury-Funktionen für die Verwaltung der UART werden aber nur kompiliert, wenn DEBUGRS232 aktiv ist (um Speicherplatz zu sparen).
- 03. August 2010: Nach zwei Wochen in denen ich viel geflucht habe, um die Motoren gleichmäßig drehen zu lassen, endlich Erfolge! Die erste Version des Programms für die Motorensteuerung ist fertig. Ein kurzes Video zeigt die Motoren die sich endlich synchron drehen.
- 25. Juli 2010: Große Änderungen bei der GUI. Nun gibt es eine VTY (nur auf localhost, Port 2005) im Cisco-Stil, um die Geräte direkt anzusprechen. Es wird mir helfen bei der Entwicklung...
- 24. Juli 2010: Mario, freundlicherweise, hat mir die optische Encoders zusammen mit den Motoren verbunden. Ein Bild seiner ausgezeichneten Arbeit befindet sich in der Abschnitt "Bilder".
- 29. Juni 2010: Nach einigen Tests kann ich beginnen das Programm für die Steuerung der Motoren (PID) zu schreiben. Zum Glück bewegen sich die Motoren unterschiedlich schnell. Ziel des Programms ist, dass sie sich gleichmäß bewegen. Ich muss auch keinen extra Test schreiben. Gut so! Wenn ich das also geschafft habe, bin ich fertig.
- 26. Juni 2010: Nach vielen Flüchen ist endlich auch die Schaltung für die optischen Encoders fertig. Ohne den Oszilloskop von Marian hätte ich das Problem nie gefunden. Ich überlege auch ein solches Gerät zu kaufen. Wenn sie wenigstens nicht so teuer wären...
- 12. Juni 2010: Nach noch einer langen Pause, habe ich die Platine für die Motorensteuerung fertig gelötet. Sofort danach habe ich gemerkt, dass ich den Anschluss für die Batterie falsch geplant habe: ich brauche einen AKL055-2, und ich habe einen Jumper benutzt. Mist! Mit einem Kabel habe ich das Problem gelöt, es sieht aber etwas häßlich aus...
- 10. Januar 2010: Nach einer langen Pause, wieder was neues: ich habe entschieden, selber die nötigen Schaltungen zu planen und zu bauen (mit der guten Hilfe vom Marian und Sergio, ein guter Freund aus Italien). Heute habe ich endlich geschafft, ein Relais über die serielle Schnittstelle zu steuern. Nun kann ich die gesamte Elektronik des Roboters per Programm ein- und ausschalten!
- 09. Dezember 2009: Heute was schlechtes: nachdem ich festgestellt habe, dass das Gehäuse des Roboters neugebaut werden muss (mit den Rädern anderes plaziert) Marian und Mario ziehen sich vom Projekt zurück. Zu wenige Zeit. Schade, aber nicht zu ändern. Danke Marian und Mario für eure Arbeit.
- 11. November 2009: Nun funktioniert den Servo für die Kamera wieder. Grund des Problems war einfach, dass mit dem neuen 16MHz-Takt, der ATMega128 zu schnell für den armen ATTiny ist. Die Lösung ist einfach der "Prescaler" bei der ATMega128 zu aktieren. Jetzt bewegt sich auch die Kamera und Giskard kann durch die Gegend schauen.
- 09. November 2009: Endlich Erfolge! Nach der Verschiebung der Masklogik (akzeptierte Wörter) vom ATMega8 zum ATMega128 läft das Programm stabil.
Erste Versuche mit der Oberfläche: Giskard hört und führt die Befehle auf. Nun weiter mit der Implementation... - 07. November 2009: Auch die Kommunikation zwischen ATMega128 und ATMega8 ist fertig!
- 01. November 2009: Das Programm für den ATMega8 (Spracherkennung über VoiceDirect 364) ist fertig! Es geht weiter...
- 28. Oktober 2009: Marian hat die Probleme mit den Motoren (scheinbar!) gelöst. Giskard ist wieder zu Hause und die Entwicklung geht weiter!
Erstmal die neue Steuerung des VoiceDirects über einem separaten Controller (ATMega8). - 12. September 2009: Und schon wieder Probleme! Die Räder bewegen sich sehr schlecht und zum Teil ab und zu in die falsche Richtung.
Marian behauptet, es sei der Schrittmotorenkontroller der Täter. Warten Sie auf neue Entwicklungen! - 10. September 2009: Da das aktuelle Protokoll für die Kommunikation über RS232 zu instabil ist, wird die Version 2 entwickelt.
Eine Paritätsprüfung des Pakets wird hinzugefügt und mehrere mögliche Kommunikationsfehler werden aufgefangen.
Nun spricht der Mikrocontroller ganz klar mit dem Laptop!
Dazu wird angefangen die neue Version der GUI (diesmal in C) zu schreiben.
Diese integriert das Kommunikationsmodul (früher, mit der PERL-GUI, waren die zwei Teile getrennt) - 11. März 2009: Das Projekt fängt wieder an! Der Code wird von vorn neugeschrieben. Zu viele Probleme um eine Patch zu entwickeln
- Anfang September 2008: Das Projekt wurde unterbrochen. Viele mechanische und elektronische Probleme, und dazu sehr wenig Zeit...
- 21. Oktober 2007: Noch ein neuer Mikrocontroller.
Der ATMega32 reicht nicht mehr. Ab diesem Datum wird der ATMega128 (der aktuelle) benutzt. - 29. September 2006: Letzte Version des Programms für den ATMega8.
Der Mikrocontroller wurde dann aufgrund seiner Grenzen nicht mehr verwendet. Jetzt wird ein ATMega32 benutzt - 1. Oktober 2005 (geschätzt!): Anfang des Projektes.
Zuerst wurde die Nutzeroberfläche (in PERL) geschrieben. Gleichzeitig arbeitet Marian an die Schaltungen. Der Mikrocontroller ist ein ATMega8 vom Atmel
- 20 Dicembre 2011: Sono riuscito a modificare il controller dei motori in modo da avere un "Controller PI" (Proportional-Integrative). Ora i motori girano decisamente più sincroni, ma ci sono ancora degli errori che non riesco a leggere da programma. Temo che il circuito che legge i dati dagli encoders ottici abbia un problema.
- 19 Dicembre 2011: Finalmente le ferie, finalmente un po' di tempo per Giskard... Primo problema: la scheda USB-PCMCIA ha reso l'anima. Devo cercare un'alternativa...
- 12 Ottobre 2010: Un altro dei "piccoli" problemi della VTY che mi aveva sempre disturbato era che alcuni comandi venivano eseguiti in maniera asincrona e quindi la risposta arrivava dopo qualche secondo. In quel caso l'utente aveva però la possibilità di inserire altri comandi. E questo non era bello! Finalmente sono riuscito a far diventare sincroni tutti i comandi della VTY!
- 10 Ottobre 2010: Finalmente sono riuscito a creare un sistema multilingue per la VTY! Ora le descrizioni dei comandi e le loro risposte sono nella stessa lingua della GUI.
- 07 Ottobre 2010: Problemi nella comunicazione tra la GUI e il microcontroller. Molto spesso la GUI non aspettava che la linea fosse libera per spedire comandi, con il risultato che i pacchetti dal microcontroller venivano interpretati in maniera errata, portando quasi sempre al blocco totale del programma. Dopo lunghe ricerche, ho finalmente inchiodato l'errore e l'ho corretto. Ora pare funzionare bene...
- 06 Ottobre 2010: Oggi avevo nuovamente un po' di tempo e l'ho usato per unificare i due (prima separati) sistemi di Logs che aveva la GUI. Il secondo sistema di Log era stato introdotto a Luglio con la VTY stile Cisco.
- 26 Settembre 2010: Finalmente di nuovo un po' di tempo per il progetto! Da adesso gli utenti che si collegano tramite la GUI remota vengono autenticati via PAM. Inoltre ho introdotto il comando VTY "reset force", da usarsi nei casi più estremi. Questo comando forza un reset del sistema spegnendo i circuiti.
- 22 Agosto 2010: Ancora qualche correzione nella gestione dei motori. Visto che il valore PWM è un intero a 16 Bits non è sempre possibile una divisione senza decimali e ogni tanto uno dei motori è più lento dell'altro. La soluzione che ho implementato è semplicemente di fermare il motore più veloce se la differenza del numero di passi è troppo elevata.
- 15 Agosto 2010: I motori venivano fermati con un dito. NON è accettabile. La soluzione è stata abbastanza semplice. La frequenza del PWM era troppo alta. Ora i motori funzionano a piena potenza.
- 07 Agosto 2010: La versione 1.0 del programma per il controllo dei motori ha visto la luce! Anche le piccole imprecisioni dovute alle divisioni tra variabili di tipo Integer sono state corrette. Il nuovo Debugger mi è stato d'aiuto!
- 07 Agosto 2010: Mi sono deciso a crearmi un piccolo Debugger via RS232. In fondo si tratta solo di saldare un "MAX232" e un paio di condensatori e l'ATMega8 può parlare RS232. Le funzioni di Fleury per la gestione della UART verranno compilate solo quando DEBUGRS232 è attiva (per risparmiare preziosa memoria).
- 03 Agosto 2010: Dopo aver passato due settimane infernali per cercare di far girare uniformemente i motori, finalmente dei risultati! La prima versione del programma per il controllo dei motori è pronta. Un breve video mostra i motori che, finalmente, si muovono all'unisono.
- 25 Luglio 2010: Grandi modifiche alla GUI. Da adesso esiste una VTY (solo su localhost, porta 2005) stile Cisco per la gestione a basso livello dei vari dispositivi. Mi aiutera' a sviluppare...
- 24 Luglio 2010: Mario, molto gentilmente, si è offerto di collegare gli encoders ottici ai motori. Una foto del suo ottimo lavoro nella sezione delle foto.
- 29 Giugno 2010: Dopo alcuni tests di base, si comincia con la scrittura del programma per la gestione dei motori (PID). Fortunatamente i motori si muovono a velocità diversa: bene così! Lo scopo del programma è proprio controllarne la velocità. Non devo neanche pensare dei tests. Una volta che gireranno all'unisono, avrò finito il programma...
- 26 Giugno 2010: E dopo molto bestemmie anche l'adattatore per gli encoders ottici funziona. Senza l'oscilloscopio prestatomi da Marian non avrei mai scoperto l'errore. Medito di acquistarne uno. Non costassero cosi' cari...
- 12 Giugno 2010: Dopo un'altra lunga pausa, finalmente il circuito per il controllo dei motori è pronto. Subito dopo averlo finito mi sono accorto di un errore: il contatto per la batteria è pensato male, dovrei usare un AKL055-2 e invece ho usato un Jumper. Merde! Comunque con un pezzo di cavo il problema è risolto. Peccato che sia brutto da vedersi...
- 10 Gennaio 2010: Dopo una lunga pausa, finalmente qualcosa di nuovo: ho deciso di tentare da solo di pianificare e creare fisicamente i circuiti che mancano al robot (con l'aiuto di Marian e di Sergio, un vecchio amico dall'Italia). Oggi sono finalmente riuscito a comandare un Relais tramite la porta seriale. Ora posso accendere e spegnere l'elettronica del Robot via programma!
- 09 Dicembre 2009: Oggi una brutta notizia: dopo aver visto che deve essere rifatta la struttura meccanica del robot (con le ruote piazzate diversamente), Marian e Mario hanno deciso di ritirarsi dal progetto. Troppo poco tempo a disposizione. Grazie comunque a Marian e Mario per il loro lavoro.
- 11 Novembre 2009: E finalmente funziona nuovamente il Servo che controlla la telecamera. Il problema era semplicemente che l'ATMega128 con il nuovo Clock a 16MHz è troppo veloce per il povero ATTiny. La soluzione è semplicemente attivare il "Prescaler". Ora la telecamera si muove e Giskard può guardarsi intorno.
- 09 Novembre 2009: Finalmente i primi risultati! Dopo aver spostato la logica delle maschere (parole ammesse al riconoscimento) dall'ATMega8 all'ATMega128 il programma gira stabile.
I primi tentativi con l'interfaccia semigrafica sono incoraggianti: Giskard sente ed esegue i comandi. E ora si continua l'implementazione... - 07 Novembre 2009: Anche la comunicazione tra l'ATMega128 e l'ATMega8 è pronta!
- 01 Novembre 2009: Il programma per l'ATMega8 (riconoscimento vocale tramite VoiceDirect 364) è pronto! Avanti così...
- 28 Ottobre 2009: Marian ha (apparentemente!) risolto i problemi con i motori. Giskard è nuovamente a casa e lo sviluppo riprende!
Per prima cosa verrà scritta la nuova gestione del VoiceDirect tramite un Controller separato (ATMega8). - 12 Settembre 2009: E nuovamente sorgono problemi! Le ruote si muovono molto male e ogni tanto addirittura nella direzione sbagliata.
Marian ritiene che il problema sia nel controller dei motori passo-passo, prossimo alla fine della sua esistenza terrena. Restate in attesa di aggiornamenti! - 10 Settembre 2009: Visto che l'attuale protocollo per la comunicazione via RS232 è troppo instabile, viene sviluppata la versione numero 2.
Viene aggiunto il controllo di parità sul pacchetto, nonchè vengono intercettati molti possibili errori di comunicazione.
Ora il microcontroller parla chiaro con il laptop!
In più viene cominciata la riscrittura della GUI (stavolta in C).
Il nuovo codice integra il modulo per la comunicatione (prima, con la GUI in PERL, era un modulo separato) - 11 Marzo 2009: I lavori riprendono! Il codice viene riscritto da capo. Troppi problemi per cercare di metterci delle toppe
- Inizio Settembre 2008: Il progetto viene fermato. Troppi problemi meccanici ed elettronici e troppo poco tempo per tentare di risolverli
- 21 Ottobre 2007: Ancora un cambio di piattaforma.
L'ATMega32 non è più sufficiente. Da questa data verrà usato un ATMega128 (tutt'ora in uso) - 29 Settembre 2006: Ultima versione del codice scritta su un ATMega8.
Questo microcontroller viene poi abbandonato per i suoi limiti in favore di un ATMega32 - 1 Ottobre 2005 (stimato!): Inizio dei lavori.
Per prima cosa viene scritto il programma (in PERL) per la gestione dell'interfaccia. Contemporaneamente Marian lavora ai circuiti. Il Microcontroller è un ATMega8 della Atmel