Levande ISS tracker med Raspberry Pi med en SenseHat (uppdaterad) (1 / 2 steg)

Steg 1: Skriptet

Du kan hitta fullständiga skriptet på: Bitbucket

Först av alla bibliotek behövs:

  • SenseHat bibliotek. (Jag ersatte den standard installerade RTIMUlib av RTIMUlib2)
  • OS och sys kommandot parsning som slutar skriptkörning
  • json för att hämta data API samtal i en Python ordbok
  • urllib2 för åtkomst till URL via webben
  • datum/tid och tid av uppenbara skäl
  • pygame för tolkning av händelserna joystick
  • IssFlags en andra Python-skript som innehåller alla sprite definitioner av flaggor

Huvudavsnittet innehåller uttalanden för att hämta händelser (joystick rörelser) pygame kön. Denna del ska alltid vara i det viktigaste kretsar av skriptet. Joysticken är en 5-vägs knapp (uppåt, nedåt, vänster, höger, tryck) som producerar 10 olika evenemang (5 gånger KEYUP, 5 gånger KEYDOWN). När trycka joysticken, producerar en 2 händelser (KEYUP och KEYDOWN) med samma tangentkoden (upp, ner, vänster, höger). Jag städade först i kön efter att ha läst en enda händelse, men när jag till funktionen trackISS() i de viktigaste loop, på något märkligt sätt, pygame hanteras både händelser innan du rensar kön. För det börjar därför funktionen handle.event() med filter på händelsetypen. Resten talar för sig själv.

trackISS() lades till huvudloop göra skriptet lite mer livliga: när inga nycklar som är platsen för ISS visas. Funktionen hålls enkel: få en json post från API, berika de uppgifter som mottagits via ett anrop till en andra API och visa resultatet.

En beskrivning av Apis och några exempel på hur man använder dem, kan hittas på: ISS API

Datastrukturen för json posterna kan också hämtas enkelt genom att kopiera url i en webbläsare. (Efter alla ett API är bara en "inte-så-bra-ser-url".) A 'försöka – utom' uttalande hanterar tillgång till API-url. Detta görs för att förhindra att skriptet brakande när URL: en inte är tillgänglig (orsakad av t.ex. förlust av wifi, en glitch från din leverantör eller underhåll på API-servern, etc.).

Den första API returnerar en mängd data som solar koordinater, hastighet, synlighet och jorden koordinater. För att berika informationen med landkoden och den aktuella tidszonen, måste latitud och longitud returneras av den första API läggas till den andra URL av enkla strängkombination.

Den andra API returnerar endast data när ISS är ovan mark. Ovanför havet returnerar API den ökända "404 sida inte grunda misstag". Så, efter att ha kontrollerat tillgängligheten av URL-adressen, kontrollerar skriptet för en HTTPError också. När möter en HTTPError, visas läget vid havet. Om data har returnerats, används landskoden att söka fram den flaggan.

Funktion showLevels() behandlar data om pitch och rulle. Den innehåller en loop kontroll RPi orientering och timing hallon idle position. Varje gång RPi flyttas inom den maximala inaktiva tid, antalet rader och collumns beräknas och visas. Storleken på LCD-matrisen (8 x 8) bestämmer upplösningen på nivån (180 degr / 8). Eftersom det finns inget centrum/mitten av matrisen, har den rad/kolumnen till att börja med skall fastställas varje gång, beroende på rörelsen (näsa eller svans, vänster eller höger). Det är ingen sofistikerade kodning, bara hantera varje krav/begränsa i taget.

Funktionen environmentals() synar bara för varje sensor i taget. Kodning för varje sensor tas direkt ur de SenseHat exempel (mappen ingår i installationen). Tänk på att kräver magnetometer inaktiverar gyroskopet och accelerometern. Måste du slå dem på varje gång med hjälp av den 'set_imu_config (bool, bool, bool) " uttalande.

Hittills för vad jag kunde få ur SenseHat. Förhoppningsvis hjälper människor med de första stegen med hjälp av styrelsen. Jag är nyfiken på andra/nya idéer för apllications. Och naturligtvis gärna driva fler flaggor i skriptet IssFlag.py.

Se Steg
Relaterade Ämnen

Bygga en GPS-tracker med Raspberry Pi (författare: Arnoud Buzing)

Detta inlägg visar hur man bygger en enkel GPS-tracker med Wolfram språket på en Raspberry Pi.Steg 1: hårdvaraFör att återskapa detta experiment behöver du följande hårdvara (förutom Raspberry Pi själv):Ultimate GPS BreakoutUSB till seriell kabel för...

Realtid GPS Tracker med integrerad Google Maps

Detta projekt beskrivs hur du kan bygga en mobil realtid GPS tracker med integrerad Google Maps. Jag började detta projekt främst för att se om jag kan integrera alla olika bitar av hårdvara och programvara för att få en fungerande lösning, och det t...

Bygga en ISS pekaren Tracker med Adafruit HUZZAH ESP8266

Översikt – del 1 Alt/Az pekarenExpanderande på min Stepper Motor controller med Adafruit Huzzah ESP8266 WiFi modul genom att lägga till en liten Servo, skapade jag en mekanisk anordning som kan flytta i Azimut (med en Stepper) och höjd (med en Servo)...

Dual axis solar tracker med online energi monitor

Projektet var ett av mina sista projekt jag gjorde på min utbytesstudier i Finland.För detta projekt arbetat jag tillsammans med Fatbardh.Detta är en mycket större och mer avancerad version av ett av mina första projekt någonsin.Också en solar tracke...

Manipit - IRONMAN JARVIS-liknande Hand Motion Tracking med målade handskar

Note(May, 12, 2015) ***Om du inte kan titta på videon från den inbäddade filen, du kan titta på det här!********************************Har du sett filmen, "Iron Man"?I filmen manipulerar Tony virtuella objekt av hans hand rörelser.Det är riktig...

Arduino Solar Tracker med lysdioder!

Så jag kom nyligen över lite information hade jag glömt. Lysdioder generera lite spänning när under belysning av ett spektrum av våglängder. Dags att utnyttja denna underlighet för att göra en DIY solar tracker för mina solpaneler!Koden finns över på...

Motion Tracker med PIRs, Arduino och en Servo

detta är min motion tracking huvudet med fyra PIRs (passiva infraröda sensorer), en Arduino Uno styrelse och en servo.Det är ett enkelt sätt att ge intryck av att huvudet (birdy) faktiskt följer rörelsen.Det är mycket lätt att bygga men lite tidskräv...

Solar tracker med arduino - från varje dag material

Här solar tracker modellera konstruktion är så enkelt att det finns inget behov av ett fullt utrustat laboratorium för att skapa den. Jag gjorde det faktiskt i mitt kök! Å andra sidan är huvudtanken och mjukvaran så att jag skulle våga använda dem i...

Face Tracking med bearbetning och OpenCV

datorseende är otroligt. Chansen att se världen omkring dem kan computational processer. Det är nödvändigt för många robotic program, maskininlärning och interaktiva projekt. OpenCV är ett open source bibliotek dator vision som gör datorn vision funk...

Hur man gör en GSM läge Tracker med AdaFruit FONA och Arduino

IntroduktionI denna handledning som vi kommer att göra en webb ansluten plats logger med Adafruit FONA styrelsen, en Arduino och Sparkfun datatjänst. Det kommer att få sin position med hjälp av triangulering och skicka den till en online-databas med...

GPS bil tracker med Intel Edison

Gå till nästa projekt med hjälp av Intel Edison transport och säkerhet kittet skapade jag ett mycket grundläggande program för att spåra en bil med Grove GPS. Detta projekt tog mig lite mer arbete på grund av komplexiteten av att hantera GPS-data och...

Robot objekt Tracker med CV

Detta är ett projekt vi har genomfört för vår robotics klass. Man använder OpenCV för att spåra objektets plats av färg. Sedan översätts läge informationen till kommandon som styr roboten att ett gröna mål genom en mikrokontroller.Steg 1: Att få mate...

Cellulära GPS tracker med Cloud kartor

detta projekt visar dig hur man bygger en enhet som spår GPS-position, skickar data via en Skywire cellulära anslutningen till molnet och tomter GPS-koordinater på kartan cloud anslutna spår som kan nås från en dator eller smart-telefon i världen.Ste...

IPhone / iPod Touch bindemedel klipp stå med kabel etablera uppdaterad

inspirerade av andra (Tack killar du vet vem du är) jag bestämde mig att ta ställning för min iPod Touch 3G (som inte kommer med ett stativ) med den stationära stapelvara... bindemedel klipp. Även om vissa smarta konstruktioner har visat innan, jag v...

Knex bil med stort bagageutrymme (uppdaterad).

Hi , this is my knex car , which has a very big trunk. Bilen har ett brett stil bodykit och en stor spoiler på stammen. Chassais har moddat göra det mycket starkare och hela bilen är mycket bättre än min mini cooper. Det har ett tak som kan tas bort...

"Träd-Nex" - träbearbetning med naturliga former (uppdaterad)

ju mer jag arbetar med trä, ju mer jag älskar det och ju mer jag känner djup beundran & respekt för det.Respekt för att underlätta arbetet, även med grundläggande verktyg.Respekt för sin enorma variation - varje bit av trä är unik och inte två stycke...

Dynamiska värden i PyQt fönster (tracking ISS)

Detta instructable beskriver användningen av dynamiska variabler i ett PyQt fönster.Qt kan bygga interaktiva, ansluten (Ms/Linux/Android/IoS) fönster. Py Qt kan bygga sådan i Python. Huvudloop för en PyQt scripts består av fönster metoder, använda de...

Solar Power LinkIt (med Tracking)

Mediatek LinkIt en har en hel massa häftiga funktioner, tillsammans med inbyggd GPS och GPRS, medföljande batteri och laddare gjorde verkligen min dag, strömförsörjning till ett projekt om ofta ett elände, så det är bra att bokstavligen ha "batterier...

Raspberry Pi GPS Tracker

I denna tutorial ska jag försök att skapa en GPS-tracker med en raspberry pi med en GPS dongle och en liten bit av linux. Jag inte skriva de flesta av koden används allt jag helt enkelt göra samla resurser tillsammans och sätta dem på ett ställe. All...