Përmbajtje:

Prototipi i tingullit Arduino-Raspberry Pi: 9 hapa (me fotografi)
Prototipi i tingullit Arduino-Raspberry Pi: 9 hapa (me fotografi)

Video: Prototipi i tingullit Arduino-Raspberry Pi: 9 hapa (me fotografi)

Video: Prototipi i tingullit Arduino-Raspberry Pi: 9 hapa (me fotografi)
Video: Leap Motion SDK 2024, Nëntor
Anonim
Prototipi i tingullit Arduino-Raspberry Pi
Prototipi i tingullit Arduino-Raspberry Pi

Prototipi i tingullit të krijuar me një Arduino dhe Raspberry Pi ka për qëllim të jetë një mënyrë e thjeshtë për të luajtur 4 tinguj ose zhurma të ndryshme, ndërsa ka mundësinë të ndërrojë grupet e zërit me një çelës dhe të shfaqë tingullin aktual me një ekran LCD.

*Ju lutemi vini re: Kodi për projektin është 99% i plotë, por nuk është funksional.

Raspberry Pi kontrollon ekranin LCD 16x2 dhe koduesin rrotullues ndërsa Arduino lexon hyrjet analoge nga rezistorët e ndjeshëm ndaj forcës (FSRs) dhe dërgon një sinjal tek Arduino për të luajtur një tingull. Ne të dy nuk kishim përdorur kurrë një Arduino ose Pi më parë në këtë klasë, por profesori ynë na dha të gjitha mjetet dhe udhëzimet e nevojshme për të koduar dhe ndërtuar lehtësisht këtë projekt. TinkerCad, një mjet falas online i modelimit 3D nga AutoDesk, u përdor për të modeluar projektin tonë.

Pjesa më e vështirë e projektit ishte gjetja e një mënyre për të bërë që Arduino dhe Raspberry Pi të komunikojnë me komunikimin serik. Ne fillimisht donim të përdornim Pi vetëm për tërësinë e projektit, por na duhej Arduino për të lexuar sinjalin analog nga FSR -të. Ne ishim lehtësisht në gjendje të dërgonim rreshta fjalësh ose numrash nga Arduino dhe t'i shfaqnim në Pi, por aty ku erdhi çështja ishte kur u përpoqëm t'i lexonim ato vlera në Python dhe t'i zbatonim ato në deklarata kushtesh për t'i përpunuar ato.

Aftësitë e kërkuara

  • Kuptim i thjeshtë i C/C ++ për kodimin Arduino
  • Kuptim i thjeshtë i Python për kodimin e Raspberry Pi
  • Njohuri se si lidhet një dërrasë buke
  • Aftësitë themelore të modelimit 3D
  • Dëshira për të mësuar dhe zgjeruar programimin, instalimet elektrike dhe ndërtimin e diçkaje të pastër

Lista e Pjesëve

1 x mjedër Pi 3

1 x Elegoo Uno OSE Arduino Uno

1 x 830 Kufi Breadboard

1 x GPI Breakout Board (RSP-GPIO)

1 x Kabllo fjongo për bordin e shpërthimit

4 x Rezistenca të ndjeshme të Forcës së Vogël

1 x Ekran LCD bazë i Karakterit 16x2

1 x Modul Kodifikues Rotari

24 x Tela meshkuj në femra

10 x Tela meshkuj në meshkuj

4 x 10k rezistorë

Potenciometër 1 x 10k

1 x jastëk me shkumë kopshti (dyqan dollarësh)

Hapi 1: Testoni FSR me Arduino

Provoni FSR me Arduino
Provoni FSR me Arduino

Ne së pari vendosëm të provonim FSR me Arduino. FSR -të dërgojnë një sinjal analog dhe për këtë arsye na është dashur të përdorim një Arduino pasi Pi nuk merr analog pa qarqe të tjera. Ne donim të testonim pragjet për t'u siguruar që presat ishin në një presion të mirë. Ne zbuluam se ishte rreth 150 nga gjithsej 1000. Komploti serik në Arduino IDE ishte shumë i dobishëm për këtë hap.

Hapi 2: Hartoni Planet për Bordin

Hartoni Planet për Bordin
Hartoni Planet për Bordin
Hartoni Planet për Bordin
Hartoni Planet për Bordin

Ne pastaj hartuam dhe matëm planet për bordin. Ne donim të kishim 4 pllaka për të luajtur tingujt, një vend për një ekran LCD për të shfaqur grupin aktual të tingullit dhe një kodues rrotullues për të ndryshuar grupin e zërit.

Hapi 3: Modeloni Bordin në TinkerCad

Modeloni Bordin në TinkerCad
Modeloni Bordin në TinkerCad
Modeloni Bordin në TinkerCad
Modeloni Bordin në TinkerCad
Modeloni Bordin në TinkerCad
Modeloni Bordin në TinkerCad

Pasi u hartuan planet, ne modeluam tabelën në një uebfaqe online, falas, të modelimit 3D, të quajtur TinkerCad nga Autodesk. Ne e rekomandojmë shumë për ata prej jush që nuk duan të shpenzojnë mijëra para për softuerë të mëdhenj të modelimit 3D pasi është i lehtë për t’u përdorur, i bazuar në cloud dhe ka mbështetje të plotë për printimin 3D.

Pasi u modelua, na u desh ta ndanim në 2 pjesë në mënyrë që ta vendosnim në printer. Ajo u shtyp shumë mirë, por gabimi im nuk ishte madhësia e slotit të ekranit LCD (mos e bëni atë gabim!) Ne kemi ngarkuar skedarët. STL të majtë dhe të djathtë nëse dëshironi t'i kontrolloni ato.

Hapi 4: Provoni ekranin LCD

Provoni ekranin LCD
Provoni ekranin LCD

Ne tashmë e kishim përdorur ekranin në Arduino dhe ishte shumë e lehtë për tu konfiguruar. Sidoqoftë, ishte më e vështirë për ta drejtuar atë me Pi. Me disa orë për zgjidhjen e problemeve në Google dhe ngacmimin me tela, më në fund e filluam punën. Ju lutemi shihni kodin përfundimtar të Python në fund për të parë se si funksionoi. Ne përdorëm disa faqe në internet për të na ndihmuar ta lidhim atë dhe të shkruajmë kodin. Kontrolloni ato:

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

Hapi 5: Provoni koduesin rrotullues me ekranin LCD

Provoni koduesin rrotullues me ekranin LCD
Provoni koduesin rrotullues me ekranin LCD

Ne pastaj donim të shihnim nëse mund ta bënim ekranin LCD të ndryshonte tekstin kur koduesi u rrotullua. Kodifikuesi nuk ka një sasi të caktuar këndesh ose rrotullimesh, kështu që në kod kemi numëruar sa herë është rrotulluar në drejtim të akrepave të orës ose në drejtim të kundërt të akrepave të orës dhe e kemi bërë atë të llogaritet në 3. Nëse kalon, ai kthehet në 0, dhe nëse do të ishte nën 0, do të kthehej deri në 3. Ata numra mund të vendosen për sa shumë grupe tingujsh që ju pëlqejnë, por ne përfunduam ndonjëherë duke testuar një grup tingulli. Sigurohuni që tingujt tuaj të jenë në të njëjtën dosje/vendndodhje me vendin ku po ekzekutohet kodi kryesor Python.

Hapi 6: Mblidhni Bordin

Mblidhni Bordin
Mblidhni Bordin
Mblidhni Bordin
Mblidhni Bordin
Mblidhni Bordin
Mblidhni Bordin

FSR -të rrëshqasin nën katër lojëra elektronike të ndryshme. Ne i përqendruam ato dhe i regjistruam. Ne ju rekomandojmë shirit ngjitës ose ndoshta edhe ngjitje sepse shiriti i thjeshtë skocez ishte i tmerrshëm në ngjitjen e materialit të printuar 3D. Pas një udhëtimi të shpejtë në dyqanin e dollarit, ne gjetëm një jastëk të butë por të hollë të gjurit të kopshtit që mund ta prisnim në katër pjesë për t'i përdorur si butona për dërrasën. Ne i premë ato në mënyrë që ata të ishin në gjendje të përshtaten mirë në pikat e tyre në mënyrë që të mund të qëndrojnë në vend, por gjithashtu të hiqen lehtësisht nëse është e nevojshme.

Hapi 7: Përlidhni të gjitha

Wire It All Up
Wire It All Up
Wire It All Up
Wire It All Up

Pas montimit të tabelës dhe vendosjes së FSR -ve, koduesit dhe ekranit në vend, ne lidhëm gjithçka. Ju mund të përdorni 2 dërrasa buke, por ne ishim në gjendje të vendosnim gjithçka në një. Fotografia duket si një rrëmujë, por ne kemi bërë një diagram skematik në një program falas të quajtur Fritzing. Vini re se mund të ndryshoni ato kunja në të cilat dëshironi të bashkëngjitni gjithçka, por diagrami korrespondon me kodin tonë.

Hapi 8: Përfundoni Kodimin e GJITHÇKA

Kjo ishte pjesa e ndërlikuar. Siç u tha në hyrje, ne nuk mund ta përfundonim këtë pjesë. Kodi është 99%, por pjesa që nuk funksionoi ishte komunikimi serik nga Arduino në Pi. Ne mund t'i dërgojmë informacionet me lehtësi kur lidhim Arduino me Pi me kabllon USB, por Pi nuk mund të bëjë asgjë përveçse të shfaqë atë informacion në ekran. Ne donim që të ishim në gjendje të tregojmë se cili buton është shtypur dhe ta bëjmë atë të luajë një tingull specifik, por të dhënat që po vinin përmes komunikimit nuk mund të vendoseshin në një deklaratë të gjendjes për të provuar se cili buton ishte shtypur.

Ju lutemi shihni kodin e bashkangjitur, shënimet janë komentuar në kodin Python për Pi. Kodi Arduino duhet të jetë 100%.

Hapi 9: Përfundoni

Përfundoni
Përfundoni

Në përgjithësi, ky projekt ishte një përvojë e madhe mësimi për ne të dy dhe shpresojmë që ky shkrim mund t'u japë studentëve, mësuesve ose punonjësve të ardhshëm frymëzim për projektin e tyre dhe t'i udhëzojë ata duke mësuar nga gabimet tona. Bërtisni profesorit tonë të mrekullueshëm të robotikës i cili ndihmoi jashtëzakonisht shumë gjatë kohës sonë në klasë dhe na dha mundësinë të argëtohemi dhe të mësojmë shumë në një klasë të lartë COMP! Faleminderit per leximin:)

Recommended: