Zeigt her eure geilen Projekte!

Mich schon, normalerweise gehört das zu :wink:

Hier werden ähnliche Sachen diskutiert (mit Links zu den gewünschten Beschreibungen) Natürlich für einen Uno :wink:

Entschuldige, dass ich mich erst heute melde.

Für alle die es interessiert, hier der Code und die Verdrahtung.

Pin 5 und 11 geben ein PWM Signal aus, um die Zeilen und Spalten am Display zu synchronisieren.

Die Widerstände agieren zusammen mit den internen 75Ω als Spannungsteiler (0-0.7V) um 4 verschiedene Helligkeiten pro Farbe anzuzeigen.

Hier noch der Code:

/*
 * graphicsCard.c
 *
 * Created: 22.06.2024 15:04:17
 * Author : Simon Fink
 */ 

#include <avr/io.h>
#include <avr/interrupt.h>



/* Version 5
/*

Color Pins:

PA0 : Red Dark
PA1 : Red Bright
PA2 : Green Dark
PA3 : Green Bright
PA4 : Blue Dark
PA5 : Blue Bright

Connect PG5 to PL2 for signal pulse


*/


#define PINHSYNC PIN5
#define PINVSYNC PIN3


int main(void)
{
	//general timer Register stop all timer
	GTCCR = (1<<TSM)|(1<<PSRASY)|(1<<PSRSYNC);
	//Timer 5 for horizontal pixel counter
	DDRG |= (1<< PIN5);
	DDRB |= (1<< PIN7);
	TCCR5A = 0x00;
	TCCR5B = (1<<WGM52);
	OCR5A =12;
	TCCR5B |= (1<<CS52)|(1<<CS51)|(1<<CS50);

	//pixelCounter
	
	//Timer 0 for horizontal pixel Timer
 	TCCR0B = (1<<WGM02);
 	TCCR0A = (1<< WGM01) |(1<<WGM00);
	TCCR0A |= (1<<COM0B1);
 	OCR0A = 63;
	OCR0B = 31;
	TIMSK0 |= (1<<TOIE0);
	
	//timer 2 for vertical pixel Timer
	TCCR2A = (1<<WGM21);
	TCCR2B = 0x00;
	OCR2A = 250;
	
	TIMSK2 |= (1<<OCIE2A);
	
	
	
	// config Timer 1 for hsync pulse
	
	DDRB |= (1<< PINHSYNC);
	
	TCCR1A = (1<<WGM11);
	TCCR1B = ((1<<WGM12)|(1<<WGM13));
	
	TCCR1A |= ((1<<COM1A1)|(1<<COM1A0));
	ICR1 = 415;
	OCR1A = 31;
	// use the timer to get the visible area horizontally
	//OCR1B = 31;

	
	
	
	
	// setup for vsync
	
	DDRE |= (1<< PINVSYNC);
	//config timer 3 for vsync pulse
	
	
	TCCR3A = (1<<WGM31);
	TCCR3B = ((1<<WGM32)|(1<<WGM33));
	
	TCCR3A |= ((1<<COM3A1)|(1<<COM3A0));
	ICR3 = 27999;//27519;
	//ICR3 =266;
	OCR3A = 127;//159;
	
	//setup for color pins
	DDRA = 0xFF;
	
	
	//OCR3B = 1010;
	TIMSK3 |= (1<<TOIE3);
	
	//config timer 4 for vertical pixel count (value/500) max vaule: 3500; prescaler: 64  (2ms = 500 pulses)
	TCCR4A = 0x00;
	TCCR4B = (1<<WGM42);
	OCR4A = 3500;
	
	//enable interrupts
	sei();
	
	//set start value of every timer to 0
	TCNT1 = 0;
	TCNT0 = 0;
	TCNT3 = 0;
	TCNT4 = 0;
	TCNT2 = 0;
	
	//start Timer
	TCCR1B |= (1<<CS10);	//ps1
	TCCR0B |= (1<<CS00);	//ps1
	TCCR3B |= (1<<CS31);	//ps8
	TCCR4B |= (1<<CS41)|(1<<CS40); //ps64
	TCCR2B |= (1<<CS22)|(1<<CS20); //ps128
	
	//general timer Register start
	GTCCR = 0;
	
	PORTA = 0x01;
	
    while (1) 
    {

		
    }
}

//array for setting up the Pixel Colors

							// 1	2	 3	  4    5
uint8_t pixelsNew[91] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
			/*1*/		 0x00,0x3D,0x3D,0x3D,0x3D,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
			/*2*/		 0x00,0x3D,0x15,0x3D,0x15,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
			/*3*/		 0x00,0x3D,0x0D,0x3F,0x0D,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
			/*4*/		 0x00,0x3D,0x3F,0x2B,0x3F,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
			/*5*/		 0x00,0x3D,0x3D,0x3F,0x3F,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
						 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
						 };
uint8_t actPixel = 0x00;
uint8_t pixNumber = 0;

//set pix number to actual pixel number vertically
ISR(TIMER2_COMPA_vect)
{
	pixNumber = 13*(TCNT4/500);
	//pixNumber = 0;
}

//synchronize timers
ISR(TIMER3_OVF_vect)
{
	TCNT2 = 0;
	TCNT4 = 0;
}
//write color Value at the desired Pins
ISR(TIMER0_OVF_vect)
{
	PORTA = actPixel;
	actPixel = pixelsNew[TCNT5 + pixNumber];

 }

Bitte entschuldigt den unaufgeräumten Code

LG Simon

Dankeschön :slightly_smiling_face:

Für ein schönes Timing schau Dir mal die ROM Rutinen vom C64 an.
siehe:
https://www.c64-wiki.de/wiki/C64_für_Insider
Web Archive ist ja leider noch Offline bei Intresse irgendwo auf meinem Rechner müsste ich noch was haben.
Gruß Martin

1 Like

Danke, werde ich mir anschauen

[OT] Ist seit ein paar Tagen wieder online [/OT]

3 posts were split to a new topic: PWM Signal an A bis A3 einlesen

sehr schöne idee

Hallo zusammen,

ich habe mein Projekt zwar schon in einem eigenen thread veröffentlicht, aber da es auch irgendwie hier her gehört und auf besonderen Wunsch von @uwefed hier ein Link zu meinem Projekt:

Vielen Dank für die Anregung!

Grüße
Nils

Mein GrowLED-Controller


Bilder sind etwas veraltet, den jetzt wird noch der VPD angezeigt.

1 Like

Hab mal ein Gehäuse für den Arduino Uno R4 gebastelt :slight_smile: Fotos von dem 3D-Druck kommen noch, in die Bohrungen kommen M3 Gewindeinsätze aus Metall.



2 Likes

Hier geht es zum Original Beitrag von mir:
ESP32 3D Scanner für das Handy per Bluetooth oder Externer Cam
Hallo alle zusammmen
Ich habe mir die Seite Openscann.eu genau angesehen, aber leider gibt es keine Arduino Version mehr.



Es werden nur Versionen für Raspi angeboten.
Daher habe ich mich im Net umgesehen, und eine Version gefunden die als Scanner mit der Kobination eines Handy gedacht ist.
Das handy wird per Bluetooth mit dem Scanner gekopplet, und die Bilder der Kamera werden vom Scanner gemacht mit Hilfe einer Bluetooth Funktion die in der Sofware vorhanden ist.
Das ganze Funktioniert mit Android oder auch IOS.
Leider war die Software nicht mehr zu kompilieren, da es viel Fehler und Warnungen gab.
Ich habe das Teil überarbeitet, und auch wieder wie beim Original einen Anschluss für eine Externe Kamera über einen Optokoppler hinzugefügt.
Desweiteren habe ich einen Anschluss für einen Restaster hinzugefügt.
Und zu guter letzt das Handbuch zu den Scanner auf Deutsch übersetzt, worin aber noch der Externe Cam Anschluss und der Resetanschuss fehlen, das werde ich aber die Tage noch nacharbeiten.
Ferner habe ich die komplette Platine überarbeitet, und als Gerberdaten hinzugefügt.
Das ganze Projekt ist zu finden auf Github unter der folgenden Adresse:

Ich hoffe es ist erlaubt, hier einen Link zu Github zu setzen!?

Ich hoffe diese Version meines Scanners wird vielen Helfen, und viel Spaß beim Nachbau.

Gruß Ralph

4 Likes

Moin zusammen,

ich habe mein „Das Geheimnis im Sockel“ für unseren Verein abgeschlossen.

Es ist ein Spaßobjekt für unseren Messestand im Rahmen „Chemnitz Kulturhauptstadt 2025“ und sollte Bezug zum Thema bzw. der Stadt haben und hauptsächlich Kinder belustigen.

Wir hatten hier diskutiert, da mir die Schaltung für das Arduino-Shield Sorgen machte und ich habe nebenbei auch gute Tipps zur Lösung des „Spezialeffekts“ bekommen…

Motorenauswahl und zuckende Servos sind nun Geschichte und es läuft. Zum Schluss natürlich anders als geplant :zany_face:.

Ich habe alles in einem Video zusammen geschnitten…

Gruß, Marcel

10 Likes




Ich liebe es, Elektronik mit "Platinen" aus dem 3D-Drucker zu produzieren. Die "Leiterbahnen" sind dann ganz einfach Drähte, die ich einlöte.
Meine letzten Projekte sind "Midiwoush", eine Serie von Midi-Geräten zur Synthesizer-Steuerung, mit je einem Arduino Pro-Micro und je einem 0.95"-Display, dann eine Uhr mit einem ESP32-Wroom-Modul.
Ich habe noch eine Uhr mit einem Farbdisplay, die habe ich aber leider nicht gefunden für ein Foto. Da habe ich eine Flip-Clock programmiert, die animiert die "Karten" flippt wie bei den alten Uhren, auch mit einem ESP32-WROOM.

2 Likes

Sind das Kaugummis? Also ich modelliere meine „Gehäuse“ bis die Bauteile auf ein mm genau reinpassen, mit Klick und Schraubverbindungen, das erfordert dann teilweise mehrere Probedrucke. Wahrscheinlich mache ich was falsch

Das ist Patafix, allerdings von Bison (Action-Markt)

So, aktuelles Projekt so gut wie fertiggestellt...
Es ist ein Midi-Controller für ein Eurorack. Es wird per USB-Midi beschickt und ermöglicht 8 verschiedene Spannungen zwischen 0 und 5V zu steuern. Diese sind als Mono-3,5mm-Klinkenbuchsen ausgeführt und können über Patchkabel einen oder mehrere Synthesizer beeinflussen. Der Name "MidiWoush" kommt daher, dass man mit einem so gesteuerten Filter einen "Woush"-Effekt erreichen kann.
DIe RGB-LED des ESP32-S3-WROOM beleuchtet den Midiwoush-Schriftzug (leider nur den Bereich um das i von Midi und W von Woush) und erzeugt eine automatische Farbwechsel-Animation. Die Helligkeit der Animation ist über die Tasten regelbar.


Thema meiner Facharbeit im Rahmen meiner Ausbildung zum Staatlich geprüften Techniker für Mechatronik:
Entwicklung und Konstruktion eines Modularen Bewässerungs- und
Dokumentationssystems GA_MK23 für forst- und landwirtschaftliche
Versuchsflächen

Das modulare System besteht aus einem Controllermodul, bis zu 8 Verteilermodulen mit insgesamt 64 Kanälen und (theoretisch) bis zu 6400 in die Anbauflächen verteilten Sonden.

Die Sonden sammeln verschiedene Daten aus den Anbauflächen


Programmiert und Eingestellt werden sie über ein Externes Tool.


Das Verteilermodul teilt den Wasseranschluss in je 8 Kanäle auf, jeder Kanal verfügt über ein bistabiles Magnetventil und einen Durchflusssensor.


In der Steuereinheit sitzt die Steuerplatine.

Das Controllermodul hat als Kern eine Raspi3, auf dem eine MariaDB läuft. Hier werden die verschiedenen Daten gesammelt und ausgewertet.

Und so sieht das Ganze dann im Feld aus

6 Likes

versuche momentan mit nem 4 achs joystick und nem arduino nano eine steuerung hin zubekommen die mir das 3d zeichnen leichter machen soll also nicht die maus ersetzen soll sondern das ich das bauteil drehen und heran zommen kann über den joystick bekomme dur den code net hin da das komplettes neuland ist für mich über tipps oder hilfe wäre ich euch sehr dank bahr