Rullaa tyylillä tämän DIY -elektronisen D20 -muotin kanssa

Rullaa tyylillä tämän DIY -elektronisen D20 -muotin kanssa

Haluatko jotain ainutlaatuista seuraavaan pöytälevyn roolipeliin? Entä elektroninen D20, jossa on mukautettu grafiikka kriittisiä osumia ja virheitä varten? Tänään näytän sinulle, kuinka rakentaa oma Arduinolla ja muutamalla yksinkertaisella osalla.





Älä huoli, jos et ole koskaan käyttänyt Arduinoa, meillä on aloitusopas .





Rakenna suunnitelma

Tämä on yksinkertainen projekti. Arduino ajaa OLED -näyttöä, ja napilla pyöritetään tikkaa. Mukautettu grafiikka näkyy kriittisten osumien tai kriittisten heittojen kohdalla. Voit helposti muuttaa koodin muotoon D8, D10 tai D12.





Mitä tarvitset

  • 1 x Arduino
  • 1 x 0,96 tuumaa I2C OLED -näyttö
  • 1 x painike
  • 1 x 10k? Vastus
  • 1 x leipälauta
  • Erilaisia ​​kytkentäjohtoja
  • Koko koodi täällä, jos et halua noudattaa kirjallisia ohjeita.

Nämä ovat keskeisiä osia, joita tarvitset oman D20: n rakentamiseen. Voit halutessasi asentaa sen koteloon (käsitelty alla) ja juottaa piirin pysyvämpään tilaan. Tässä on lisäosia, joita tarvitset sen tekemiseen:

  • 4 x M2 x 10 mm (0,4 tuumaa) ruuvia
  • 4 x M2 mutteria
  • 4 x 7 mm (0,28 tuuman) aluslevyä
  • 9 V: n akun napsautus (tai sopiva vaihtoehto)
  • Valikoima kutisteputkia

Nämä OLED -näytöt ovat erittäin siistejä. Niitä voi yleensä ostaa valkoisena, sinisenä, keltaisena tai näiden kolmen seoksena. Olen ostanut yhden sinisen, joka vastaa tapaustani. Varmista, että saat I2C malli sijasta SPI .



Lähes mikä tahansa Arduino on sopiva. Olen valinnut nanon, koska ne ovat riittävän pieniä mahtuakseen koteloon. Katso osto -oppaamme saadaksesi lisätietoja Arduino -malleista.

Piiri

Tässä on tarvitsemasi piiri:





Kytkeä VCC ja GND OLED -näytöllä Arduinolle +5V ja maahan . Kytkeä analoginen 4 Arduinolla merkittyyn nastaan SDA . Kytkeä analoginen 5 kohteeseen SCL tappi. Nämä nastat sisältävät piirit, joita tarvitaan näytön ohjaamiseen I2C -väylän avulla. Tarkat nastat vaihtelevat mallin mukaan, mutta A4- ja A5 -malleja käytetään Nano- ja Uno -malleissa. Tarkista Langallisen kirjaston dokumentaatio mallillesi, jos et käytä Uno- tai Nano -laitetta.

Liitä akku maahan ja Viini tappi. Tämä tarkoittaa jännitettä ja hyväksyy erilaisia ​​DC -jännitteitä - mutta tarkista ensin oma mallisi, ja se voi joskus vaihdella hieman.





Liitä painike digitaalinen nasta 2 . Huomaa miten 10k? vastus on kytketty maahan. Tämä on hyvin tärkeää! Tätä kutsutaan vedettäväksi vastukseksi, ja se estää Arduinoa havaitsemasta vääriä tietoja tai häiriöitä painikkeen painalluksena. Se suojaa myös taulua. Jos tätä vastusta ei käytetä, +5V menee suoraan maahan. Tämä tunnetaan nimellä a kuollut lyhyt ja on helppo tapa tappaa Arduino.

Jos juotat tätä piiriä, suojaa liitännät lämpökutisteputkella:

Varmista, ettet lämmitä sitä liikaa, ja tee se vain, kun olet varma, että piiri toimii. Voit myös kiertää kaapelit pareiksi. Tämä pitää ne siistinä ja auttaa suojaamaan heitä tarpeettomalta stressiltä:

Painikkeiden testi

Nyt kun olet rakentanut piirin, lataa tämä testikoodi (muista valita oikea levy ja portti Työkalut> Hallitus ja Työkalut> Portti valikot):

const int buttonPin = 2; // the number of the button pin
void setup() {
pinMode(buttonPin, INPUT); // setup button
Serial.begin(9600); // setup serial
}
void loop(){
if(digitalRead(buttonPin) == HIGH) {
Serial.print('It Works');
delay(250);
}
}

Kun olet ladannut, pidä Arduino liitettynä USB: n kautta ja avaa sarjamonitori ( Ylhäällä oikealla> Sarjamonitori ). Sinun pitäisi nähdä sanat Se toimii tulee näkyviin aina, kun painat painiketta.

Jos mitään ei tapahdu, mene ja tarkista piiri.

OLED -asennus

Sinun on asennettava kaksi kirjastoa näytön ohjaamiseksi. Lataa Adafruit_SSD1306 ja Adafruit-GFX [Ei enää saatavilla] -kirjastoja Githubista ja tallenna ne kirjastokansioosi. Jos et ole varma kirjaston kansioiden sijainnista, lue retro -opetusohjelmani, jossa määritän saman näytön tarkemmin.

Käynnistä Arduino IDE uudelleen ja lataa testiluonnos Tiedosto> Esimerkkejä valikko. Valitse Adafruit SSD 1306 ja sitten ssd1306_128x64_i2c . Lataa tämä koodi (kestää jonkin aikaa), ja sinun pitäisi nähdä paljon muotoja ja kuvioita näytöllä:

Jos mitään ei tapahdu, tarkista yhteydet. Jos se ei vieläkään toimi tarkistuksen jälkeen, sinun on muokattava esimerkkikoodia.

kuinka saada Internet kannettavaan tietokoneeseen missä tahansa

Muuta tätä riviä ( perustaa toiminto):

display.begin(SSD1306_SWITCHCAPVCC, 0x3D);

Tähän:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

Tämä kertoo kirjastolle tarkat tiedot käyttämästäsi näytöstä. Sinun pitäisi nyt olla valmis jatkamaan rakentamista.

Tapaus

Jos rakennat tämän leipälevylle tai et halua laatikoida sitä, voit ohittaa tämän vaiheen.

Suunnittelin ja 3D -tulostin tämän laatikon. Ota tiedostot käyttöön Thingiverse . Älä huoli, jos sinulla ei ole 3D -tulostinta - verkkopalvelut 3D -keskittimet ja Muotoja tarjota online -tulostuspalveluja.

Voit helposti tehdä tämän laatikon puusta tai ostamalla muovin projektilaatikko .

Kansi on yksinkertainen työntömuotoilu, ja siinä on muutamia leikkauksia laitteistolle:

Koodi

Nyt kun kaikki on valmis, on aika koodille. Näin se toimii Pseudokoodi :

if button is pressed
generate random number
if random number is 20
show graphic
else if random number is 1
show graphic
else
show number

Jotta tämä toimisi kunnolla, on luotava satunnaisluku - tämä on tikan heitto. Arduinolla on satunnaislukugeneraattori satunnaisesti , mutta ei pitäisi käyttää. Vaikka se on riittävän hyvä satunnaisiin perustehtäviin, se ei vain ole tarpeeksi satunnainen sähköiseen kuolemaan. Syyt ovat hieman monimutkaisia, mutta voit lukea lisää, jos olet kiinnostunut boallen.com .

Lataa TrueRandom kirjasto sirleech Githubissa. Lisää tämä kirjastokansioosi ja käynnistä IDE uudelleen.

Luo nyt uusi tiedosto ja määritä alkuperäinen koodi (tai vain nappaa valmis koodi GitHubista):

#include
#include
#include
#include
#include
Adafruit_SSD1306 display(4);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // setup the OLED
pinMode(buttonPin, INPUT); // setup button
}
void loop() {

}

Tämä koodi määrittää OLEDin ja sisältää kaikki kirjastot, jotka sinun on kommunikoitava sen kanssa, sekä uusi satunnaislukukirjasto. Lisää nyt tämä pääsilmukkaan:

if(digitalRead(buttonPin) == HIGH) {
delay(15);
if(digitalRead(buttonPin) == HIGH) {
display.fillScreen(BLACK); // erase the whole display
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0, 0);
display.println(TrueRandom.random(1, 21)); // print random number
display.display(); // write to display
delay(100);
}
}

Tämä on tällä hetkellä aivan perus, mutta se on toimiva D20. Aina kun painiketta painetaan, näytössä näkyy satunnaisluku yhdestä 20: een:

Tämä toimii hyvin, mutta on hieman tylsää. Tehdään siitä parempi. Luo kaksi uutta menetelmää, drawDie ja eraseDie :

void drawDie() {
display.drawRect(32, 0, 64, 64, WHITE);
}

Nämä piirtävät tikun näytön keskelle. Voit halutessasi tehdä tästä monimutkaisemman, esimerkiksi piirtämällä D20- tai D12-konetta ja niin edelleen, mutta on yksinkertaisempaa piirtää kuusisivuinen perusmuoto. Tässä on peruskäyttö:

drawDie();

Muokkaa seuraavaksi pääsilmukkaa piirtämään satunnaisluku, vain isompi ja keskellä. Muuta tekstin koko ja kohdistin tähän:

display.setTextColor(WHITE);
display.setCursor(57, 21);

Nyt näyttää paljon paremmalta:

Ainoa ongelma on yli yhdeksän numerot:

Korjaus tähän on yksinkertainen. Jos numero on alle 10, kohdistin asetetaan eri paikkaan kuin numero 10 tai suurempi. Korvaa tämä rivi:

kuinka asentaa windows uudelleen usb: ltä
display.setCursor(57, 21);

Tämän kanssa:

int roll = TrueRandom.random(1, 21); // store the random number
if (roll <10) {
// single character number
display.setCursor(57, 21);
}
else {
// dual character number
display.setCursor(47, 21);
}

Tältä se näyttää nyt:

Jäljellä on vain kuvia, kun heität kriittisen osuman tai missaat. Siinä on muutama vaihe, mutta se on tarpeeksi yksinkertainen prosessi.

Etsi sopiva kuva, jota haluat käyttää (mitä yksinkertaisempi, sitä parempi, koska näyttö on vain yksivärinen). Tässä ovat käyttämäni kuvat:

Kuvaluotto: publicdomainvectors.org

Kaikki käytettävät kuvat on muunnettava HEX -matriisiksi. Tämä on kuvan esitys koodimuodossa. Tähän on saatavilla monia työkaluja, ja jotkut niistä on suunniteltu erityisesti OLED -näyttöjä varten. Helpoin tapa on käyttää PicturetoC_Hex online -työkalu. Tässä on tarvittavat asetukset:

kuinka noutaa wifi -salasana androidilla

Lataa kuva ja aseta koodimuodoksi HEX: 0x . Aseta Käytetty kohteeseen Musta/valkoinen kaikille piirtokuville . Jätä kaikki muut vaihtoehdot oletusarvoiksi. Voit tarvittaessa muuttaa kuvan kokoa täällä. Lehdistö Hanki C -merkkijono ja sinun pitäisi nähdä kuvatiedot näkyvissä:

Tarvitset tämän generoidun tiedon minuutissa. Luo kaksi funktiota nimeltä drawExplosion ja piirtääKallo (tai sopiva versio versiollesi). Tässä koodi:

void drawExplosion() {
// store image in EEPROM
static const unsigned char PROGMEM imExp[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x78,0x7f,0xff,0xc0,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xfb,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x07,0xff,0xff,0xf9,0xff,0xd8,0x00,0x00,0x00,0x3f,0xff,0xf0,0x0f,0x00,0x00,0x00,0x00,0x1f,0x1f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x01,0xbf,0xff,0xff,0xff,0x30,0x00,0x00,0x00,0x13,0xf7,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
display.drawBitmap(0, 0, imExp, 64, 62, 1); // draw mushroom cloud
}
void drawSkull() {
// store image in EEPROM
static const unsigned char PROGMEM imSku[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x78,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0xfc,0x00,0x07,0xf8,0x00,0x00,0x00,0x00,0xfe,0x00,0x07,0xf8,0x00,0x00,0x00,0x01,0xfe,0x00,0x07,0xfc,0x00,0x00,0x00,0x01,0xfe,0x00,0x07,0xfe,0x00,0x3f,0xc0,0x03,0xfe,0x00,0x01,0xff,0x81,0xff,0xfc,0x07,0xec,0x00,0x00,0x3f,0xc7,0xff,0xff,0x1f,0xc0,0x00,0x00,0x0f,0xcf,0xff,0xff,0xdf,0x00,0x00,0x00,0x07,0xbf,0xff,0xff,0xee,0x00,0x00,0x00,0x01,0x7f,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1e,0x3f,0xff,0x3f,0xc7,0x80,0x00,0x00,0x1e,0x0c,0x0f,0x00,0x07,0x80,0x00,0x00,0x1e,0x00,0x0f,0x00,0x0f,0x80,0x00,0x00,0x1e,0x00,0x19,0x80,0x0f,0x00,0x00,0x00,0x0f,0x00,0x19,0x80,0x0f,0x00,0x00,0x00,0x0d,0x00,0x30,0xc0,0x1f,0x00,0x00,0x00,0x05,0x80,0x70,0xc0,0x1e,0x00,0x00,0x00,0x05,0xf0,0xe0,0xe0,0x36,0x00,0x00,0x00,0x01,0xff,0xe0,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0xc4,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0xcc,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0xcc,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0x9e,0x7f,0xf0,0x00,0x00,0x00,0x00,0xff,0xfe,0x7f,0xc0,0x00,0x00,0x00,0x00,0x01,0xff,0xf8,0x1c,0x00,0x00,0x00,0x03,0xe0,0x3f,0x01,0xbf,0x00,0x00,0x00,0x07,0xa6,0x40,0x09,0x9f,0x80,0x00,0x00,0x1f,0x27,0x5a,0x39,0x9f,0xf8,0x00,0x01,0xff,0x27,0xdb,0x39,0x0f,0xfc,0x00,0x03,0xfe,0x31,0x7f,0x39,0x07,0xfc,0x00,0x03,0xfc,0x10,0x1a,0x02,0x03,0xf8,0x00,0x03,0xf8,0x10,0x00,0x02,0x01,0xf0,0x00,0x01,0xf8,0x10,0x00,0x02,0x01,0xe0,0x00,0x00,0x78,0x10,0x00,0x02,0x00,0xe0,0x00,0x00,0x70,0x30,0x00,0x02,0x00,0x00,0x00,0x00,0x30,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x73,0x55,0x63,0x00,0x00,0x00,0x00,0x00,0xf9,0x55,0x4f,0x00,0x00,0x00,0x00,0x00,0x7f,0x14,0x1f,0x00,0x00,0x00,0x00,0x00,0x1f,0xe0,0xfe,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
display.drawBitmap(0, 0, imSku, 60, 64, 1); // draw skull cloud
}

Jos haluat käyttää käyttämiäni kuvia, kopioi koodi. Jos haluat käyttää aiemmin luomiasi kuvia, kopioi tavukoodi imSku ja imExp taulukot tarpeen mukaan.

Tältä näyttävät kuvat näytöllä:

Koodin tärkein osa on tämä rivi:

static const unsigned char PROGMEM imSku[]

Tämä käskee Arduinoa tallentamaan kuvasi EEPROMiin ( mikä on EEPROM? ) sen RAM -muistin ( pikaopas RAM -muistiin ). Syy tähän on yksinkertainen; Arduinolla on rajoitettu RAM -muisti, ja sen käyttäminen kuvien tallentamiseen ei välttämättä jätä jäljelle koodin suorittamista

Muokkaa päävalikkoasi jos lause, joka näyttää nämä uudet grafiikat, kun yksi tai 20 vieritetään. Huomaa koodirivit, joissa näkyy myös kuvien vieressä oleva numero:

if(roll == 20) {
drawExplosion();
display.setCursor(80, 21);
display.println('20');
}
else if(roll == 1) {
display.setCursor(24, 21);
display.println('1');
drawSkull();
}
else if (roll <10) {
// single character number
display.setCursor(57, 21);
display.println(roll); // write the roll
drawDie(); // draw the outline
}
else {
// dual character number
display.setCursor(47, 21);
display.println(roll); // write the roll
drawDie(); // draw the outline
}

Ja tältä nämä uudet rullat näyttävät:

Siinä kaikki koodipuolella (hanki koodi GitHubista, jos ohitit kaiken). Voit helposti muuttaa tämän muotoon D12, D8 ja niin edelleen.

Lopullinen kokoonpano

Nyt kun kaikki muu on valmis, on aika pakata kaikki. Kiinnitä näyttö päälle, älä kiristä ruuveja liikaa. Tämä on ehkä vaikein osa. Rikkoin näytön näin, joten haluat ehkä käyttää muovisia aluslevyjä. Leikkasin niistä joitakin neliöitä Muovikortti :

Pienet mutterit ja pultit voivat olla hankala liittää. Kärki: Aseta pieni mutteri Blu-Tack-ruuvimeisselin päähän ja kiinnitä mutterit aluksi:

Kierrä painike kiinni, kytke akku ja sulje kansi. Varo, ettet jää kiinni johtoihin tai niputa niitä liian tiukasti, mikä voi aiheuttaa oikosulun. Jälkijohtojesi pituudesta riippuen sinun on ehkä suojattava paljaat liitännät eristeellä (sarjalaatikko toimii hyvin):

Tältä se näyttää sisältä:

Ja tässä valmis tuote:

Sinun pitäisi nyt olla elektronisen D20: n ylpeä omistaja!

Mitä muutoksia teit? Oletko vaihtanut kuvia? Kerro meille kommenteissa, haluaisimme nähdä, mitä teit!

Jaa Jaa Tweet Sähköposti Aloittelijan opas puheen animointiin

Puheen animointi voi olla haaste. Jos olet valmis aloittamaan vuoropuhelun lisäämisen projektiin, jaamme prosessin puolestasi.

Lue seuraava
Liittyvät aiheet
  • tee-se-itse
  • Arduino
  • Lautapeli
  • Elektroniikka
Kirjailijasta Joe Coburn(136 artikkelia julkaistu)

Joe on valmistunut tietojenkäsittelytieteestä Lincolnin yliopistosta Iso -Britanniasta. Hän on ammattimainen ohjelmistokehittäjä, ja kun hän ei lentä droneilla tai kirjoita musiikkia, hänet voidaan usein ottaa valokuvista tai videoista.

Lisää Joe Coburnilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi