Diskuze: C# obrázková prezentace / propojení s čidlem

C# .NET .NET (C# a Visual Basic) C# obrázková prezentace / propojení s čidlem American English version English version

Aktivity (3)
Avatar
Radek Brázdil:24. září 18:54

Zdravím, prvně bych vám chtěl představit "můj projekt" do školy který vyžaduje škola. Studuji 4. ročník elektrotechniky a dostali jsme za úkol udělat 3D tablo třídy. Tablo by mělo fungovat tak že se vytisknou panáčci z plastu ti zvednou nad hlavu svou fotku. a pak se zase sklopí. Tohle vše je udělané přes arduino. Pak je tu druhá část kterou potřebuji vyřešit.
Potřeboval bych k tomu udělat "prezentaci" našich fotek. Vezmeme že panáček na kterým jsem označený já tak zvedne nad hlavu fotku na které jsem vyfocen a vedle na monitor by se měla objevit nějaká jiná fotka na které jsem já + hláška. Poté se můj panáček sklopí a zvedne se zase druhý a na monitoru by se měla sama překlepnout fotka. To se dá načasovat lehce, ale mě zajímá jestli jde program spustit čidlem jakmile před čidlem někdo projde pustí se prezentace načasovaná s arduinem. Takže lze propojit čidlo s c#? Popřípadě bych byl rád za pomoc. Dále potřebuji aby když je prezentace neaktivní tam byla fotka řekněme naší školy a hned po aktivaci čidlem by se pustila "prezentace" a po ukázání poslední fotky by tam byla zase fotka naší školy. hodím sem zdroják který mám zatím. Začínám se teprve učit programovat. tak se omlouvám :) Děkuji za případné rady :).

Zkusil jsem: using System;
using System.Collec­tions.Generic;
using System.Componen­tModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Window­s.Forms;

namespace SlideShow
{
public partial class Form1 : Form
{
public Form1()
{
InitializeCom­ponent();
}

string[] pictures = { "apples.jpg", "flower1.jpg", "mountain.jpg", "sunset.jpg", "waterfall.jpg" };

int i = 0;

private void timer1_Tick(object sender, EventArgs e)
{

i++;

if (pictures.Length == i)
{
i = 0;
}

pictureBox1.Image = Image.FromFile("i­mages/" + pictures[i]);

}

private void Form1_Load(object sender, EventArgs e)
{

pictureBox1.Image = Image.FromFile("i­mages/" + pictures[0]);
}

private void toolStripButton2_Clic­k(object sender, EventArgs e)
{

timer1.Enabled = false;

i++;

if (pictures.Length == i)
{
i = 0;
}

pictureBox1.Image = Image.FromFile("i­mages/" + pictures[i]);

timer1.Enabled = true;
}

private void toolStripButton1_Clic­k(object sender, EventArgs e)
{

timer1.Enabled = false;

if (i == 0)
{
i = pictures.Length;
}

i--;

pictureBox1.Image = Image.FromFile("i­mages/" + pictures[i]);

timer1.Enabled = true;
}
}
}

Chci docílit: .

 
Odpovědět 24. září 18:54
Avatar
don.jarducius:24. září 19:37

Ahoj, jen tě nasměruju, to Arduino propoj s PC, USB kabelem, zobrazí se ti jako sériový port... čidlo připoj k Arduinu… tam se ti bude reagovat líp na přerušení. Pokud Arduino zjistí pohyb, pošli si hlášku přes sériový port PC a tam ji zpracuj v C# = spusť prezentaci.

PS: to časování můžeš vyřešit taky z Arduina… vždyť program v něm musí přesně vědět, kterou figurku zvedá...

Editováno 24. září 19:39
 
Nahoru Odpovědět 24. září 19:37
Avatar
Radek Brázdil:27. září 11:46

Arduino propojený s PC mám usb kabelem. Čidlo je připojeno k arduinu a arduino je naprogramovaný panáčci se zvedají a sklápěj. Jak mám propojit ten c# s arduinem? nebo jak nastavit aby c# reagoval na ty signály?

 
Nahoru Odpovědět 27. září 11:46
Avatar
Roman
Člen
Avatar
Odpovídá na Radek Brázdil
Roman:2. října 19:36

Člověče na to že jsi ve 4. ročníku celkem hloupá otázka.
Za mích mladých let jsem před maturitou ovládal vše pomocí up8051 kde se kodovalo v asambleru a komunikoval jsme přes com/lpt porty pc programem napsaným v Céčku.
Dneska máte k dispozici celé desky a kód píšete v IDE s nastepavaci a základní refaktorizaci a přes to všechno se ptáš jak ovládat / komunikovat mezi pc - arduinem. Něco je shnilého v tomto školním kraji.

 
Nahoru Odpovědět 2. října 19:36
Avatar
Odpovídá na Roman
Jan Procházka:4. října 14:02

Roman: Není to o školním kraji, je to všeobecné.

Dneska můžeš vyrobit a naprogramovat leccos aniž bys měl náznak tušení o tom, co v těch krabičkách (PC, raspberry, arduino) vlastně je a proč...

 
Nahoru Odpovědět 4. října 14:02
Avatar
Odpovídá na Radek Brázdil
Jan Procházka:4. října 14:09

Pokud můžeš použít desku Arduino Leonardo, tak ta umí přes knihovny keyboard.h a joystick.h emulovat další USB klávesnici/jo­ystick.

Tedy, můžeš mít kód v leonardu, který reaguje na čidla, hejbe s paňácama, rozsvěcí světla a odesílá "zmáčknutí kláves" přes USB.

V počítači potom stačí reagovat na jednotlivé stisky kláves, které Ti bude Leonardo-klávesnice posílat jako bys je mačkal na klávesnici sám.

 
Nahoru Odpovědět 4. října 14:09
Avatar
Radek Brázdil:15. října 18:42

Všem děkuji za rady :) Mám to hotové :)

 
Nahoru Odpovědět 15. října 18:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.