It's important here to keep it simple! No unnecessary components.
Therefore, typical components of such a device are omitted:
For firing a triac, the port pin is reprogrammed to an output with low level. Internal port resistance should suffice for gate current limiting, so there is no external resistor. If you decided to use anti-parallel diodes for D10..D17, firing with positive and negative pulses allows better usage of the energy stored in the electrolytic capacitors C2 and C3, because these are charged in advance by the capacitor C1.
This dimmer requires 8 adjances DMX Addresses out of the 512 byte address space. Therefore, a 6-bit address is suitable. This is done by a 6 position DIP switch and integrated pull-up resistors.
The symmetrical DMX signal is fed to the fast opto coupler 6N136 (cheaper and less power consuming than 6N137). Negative signal level will be clipped by diode D0. So the sender or cable “sees” a partial termination of 470 Ω; multiple devices can be connected before a bus overload occurs.
The power supply is done with capacitive resistance C1 and voltage limiters. The LEDs D3 and D4 operate as zener diodes. Their lighing can be used as an operation control.
The quartz crystal oscillator cannot be omitted (except by a ceramic resonator). The operating voltage is not stable enough for reliable operation of the internal RC oscillator, and RS-232 requires tight tolerances. For the RS-232 receiver with 250 kBaud, 2 MHz are required at least. The less the ATtiny's clock frequency, the less is the power consumption, and the less (and cheaper) would be C1.
If you decide to use (more expensive) microcontrollers with built-in USB hardware you need a bunch of opto couplers to the triacs. This tends to be expensive too.